cancel
Showing results for 
Search instead for 
Did you mean: 

Usuarios externos en Alfresco y SSO passthru

cesarista
World-Class Innovator
World-Class Innovator
Hola:

Tengo una cadena de autenticacion del tipo:

<pre>
authentication.chain=alfrescoNtlm1:alfrescoNtlm,passthru1Smiley Tongueassthru,ldap1:ldap-ad
</pre>

y dos conjuntos de usuarios, uno en Alfresco y otro en el directorio activo (AD), que sincronizo via LDAP. Hasta ahi va todo bien.

Me puedo loguear sin problema con los usuarios correspondientes y puedo administrar los usuarios "externos" con Alfresco desde su interfaz.

Cuando activo el SSO para los usuarios internos (AD) del AD veo que:
- Necesito que passthru sea el primero en la cadena autenticacion (mutable) –> y el SSO de usuarios internos funciona.
- El otro conjunto de usuarios "externos" no se autentica (?).
- Ademas no puedo administrarlos porque ya no es el subsistema mutable.

¿ Tiene esto sentido ? ¿ Puedo tener un conjunto de usuarios externos gestionados y administrados en Alfresco, y tener SSO de red contra el AD ?

Un saludo.

–C.
44 REPLIES 44

Buenas Angel (Martin):

Alfresco intenta autenticarse en cada uno de los subsistemas de la cadena en orden y para en el momento que lo consigue. Por eso en explotación te sale esa traza, porque el userPentaho no existe en el LDAP y es el primer subsistema de la cadena. Y por eso en pruebas no falla precisamente. El error que mencionas no es exactamente "un error", es un intento de autenticación (pero no tiene una traza de ERROR). La pregunta adecuada es si userPentaho se autentica en explotación ? Si es así no pasa absolutamente nada... se autenticará a la segunda cada vez. 

En mi caso, en la pregunta original, obtenía un ERROR, y la consecuencia era que Alfresco no intentaba autenticar en el siguiente subsistema de la cadena, con lo que mi "userPentaho" no se llegaba a autenticar nunca. Por eso me vi forzado a cambiar el orden. Si te pasa lo que a mi, pues cambia el orden de la cadena. No parece lo más natural, ya cada vez que se autenticase un usuario ldap, este lo intentaría primero en la base de datos de Alfresco... pero bueno.

Comentar también que lo que suelo intentar cuando encadeno varios subsistemas de autenticación es poner el más masivo primero (como has hecho en explotación). Pero por ejemplo, en este caso tuve que cambiar el orden para atajar los problemas comentados. Quitaría el DEBUG de esa clase porque puede ser muy chillón.

También te recomendaría que mantengas los entornos (desarrollo, pruebas, producción) uniformes para evitar sorpresas como estas.

Saludos.

--C.

Buenas Cesar.

Mira te pongo el escenario: en nuestro entorno de Explotación primero intenta por LDAP y falla porqué no existe ese usuario y luego por Alfresco y si. Perfecto. Esto es lo que ocurre casi siempre.

Sin embargo, hay veces que cuando intenta en primera instancia autenticar por LDAP, en vez de fallar normal y pasar a la autenticación de Alfresco, pues saca el error ese de "closed socket" y se para el proceso y salta el error 500.

Disculpa Cesar mi ignorancia, pero es que llevo solo 6 meses con alfresco y estoy aprendiendo aun, a base de cabezazos.

Gracias.

¿Qué versión de Alfresco estáis empleando? Por tus comentarios entiendo que estáis utilizando servicios web SOAP, lo que me hace retrotraerme a varios años atrás...

Hyland Developer Evangelist

Buenas Angel,

pues estamos usando Alfresco 3.4.7. Estamos en proceso de actualizaciones y migraciones.

En ese caso me inclinaría por pensar que se trata de una incidencia del producto (ni siquiera queda un registro de incidencias consultable de aquella época) y lo solucionaría de manera temporal hasta que esa actualización llegue.

Hyland Developer Evangelist

El caso es encontrar la solución temporal jejeje Smiley Happy

No te preocupes Angel Martin, esto se aprende siempre así

Si el comportamiento no es completamente reproducible y ocasional, te aconsejaría que cambies el orden de la cadena para evitar problemas, y compruebes que el job funciona correctamente (además de tener los entornos mas coherentes).

En el analisis del problema, es importante también saber cuantas veces al día falla, si falla durante el día o la noche, en determinados intervalos de tiempo (por ejemplo, durante la jornada), si podría derivar de un problema de conectividad con el LDAP, si coinciden los problemas de autenticación con tareas de mantenimiento del LDAP...  (dado que cuando se atasca en el LDAP llega a leerse un ServiceUnavailable)

Caused by: javax.naming.ServiceUnavailableException: chap.junta-andalucia.es:389; 

Por último, otra posibilidad de regatear el error o de manifestarlo es usar un usuario LDAP con los permisos adecuados para ese job. Y ver que pasa..

Saludos.

--C.

Voy a intentar en nuestro entorno de desarrollo ver si cambiando el orden en el chain nos da el mismo error, a ver si así podemos regatear el error.

El intervalo en el que lanzamos ese jobs es entre las 9 y las 20 de cada día. Y en el día en cuestión del que os hablo falló 10 veces así.

Buenos días, he estado investigando un poco más sobre el error clave:

Caused by: javax.naming.PartialResultException [Root exception is javax.naming.ServiceUnavailableException: chap.junta-andalucia.es:389; socket closed [Root exception is com.sun.jndi.ldap.LdapReferralException: Continuation Reference; remaining name 'DC=chap,DC=junta-andalucia,DC=es']; remaining name '']

Y he encontrado estos dos enlaces, que al parecer ofrecen una solución pero la verdad es que no lo veo claro.

https://confluence.atlassian.com/jirakb/user-lookups-fail-with-partialresultexceptions-due-to-active...

https://community.jivesoftware.com/docs/DOC-26500

¿parece ser que es problema de cómo la aplicación pentaho recorre el árbol del AD no?

según el segundo enlace parece que tiene que ver con el timeout...

Os suena algo de esto y cómo solucionarlo?

Gracias de antemano, de verdad.

Saludos. Angel.

Si tienes problemas con el follow referrals del LDAP, con el DNS o con los timeouts de LDAP, deberías observar otros problemas frecuentemente como errores al autenticarse los usuarios de LDAP, con la tarea de sincronización de usuarios de LDAP diaria....

No me queda claro por tu mensaje si los fallos ocurren todos los días o si falló solo un día. Funcionó el cambio en la cadena ? 

Saludos.

--C.