cancel
Showing results for 
Search instead for 
Did you mean: 

Sincronizacion Alfresco y Open LDAP

aique
Champ in-the-making
Champ in-the-making
Hola.

Estoy intentando completar la sincronización con Alfresco 3.3 y Open LDAP, a continuación adjunto el post donde lo explico todo.

Cualquier ayuda la agradecería muchísimo.

Thanks NGUser1, I have read your reply right now and I can't test the conf in that blog, but I'll try it.

Now a days the authentication process is working, but the synchronization process is not working. Here is the log about it:

Synchronizing users and groups with user registry 'ldap1'
Retrieving all groups from user registry 'ldap1'
ldap1 Group Analysis: Commencing batch of 0 entries
ldap1 Group Analysis: Completed batch of 0 entries
Retrieving all users from user registry 'ldap1'
ldap1 User Creation and Association: Commencing batch of 0 entries
ldap1 User Creation and Association: Completed batch of 0 entries
Finished synchronizing users and groups with user registry 'ldap1'
0 user(s) and 0 group(s) processed

My ldap properties file is:

ldap.authentication.active=true

ldap.authentication.allowGuestLogin=false

ldap.authentication.userNameFormat=uid=%s,ou=People,ou=Departamento de Informatica,o=Universidad de Oviedo,c=es

ldap.authentication.java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory

ldap.authentication.java.naming.provider.url=<url>

ldap.authentication.java.naming.security.authentication=SIMPLE

ldap.authentication.escapeCommasInBind=false

ldap.authentication.escapeCommasInUid=false

ldap.authentication.defaultAdministratorUserNames=

ldap.synchronization.active=true

ldap.synchronization.java.naming.security.principal=<ldap admin user>

ldap.synchronization.java.naming.security.credentials=<pass>

ldap.synchronization.queryBatchSize=1000

ldap.synchronization.attributeBatchSize=1000

ldap.synchronization.groupQuery=ou=Group,ou=Departamento de Informatica,o=Universidad de Oviedo,c=es

ldap.synchronization.groupDifferentialQuery=(objectclass=posixGroup)

ldap.synchronization.personQuery=ou=People,ou=Departamento de Informatica,o=Universidad de Oviedo,c=es

ldap.synchronization.personDifferentialQuery=(objectclass=inetOrgPerson)

ldap.synchronization.groupSearchBase=ou=Group,ou=Departamento de Informatica,o=Universidad de Oviedo,c=es

ldap.synchronization.userSearchBase=ou=People,ou=Departamento de Informatica,o=Universidad de Oviedo,c=es

ldap.synchronization.modifyTimestampAttributeName=

ldap.synchronization.timestampFormat=yyyyMMddHHmmss'Z'

ldap.synchronization.userIdAttributeName=uid

ldap.synchronization.userFirstNameAttributeName=givenName

ldap.synchronization.userLastNameAttributeName=sn

ldap.synchronization.userEmailAttributeName=mail

ldap.synchronization.userOrganizationalIdAttributeName=o

ldap.synchronization.defaultHomeFolderProvider=homeDirectory

ldap.synchronization.groupIdAttributeName=cn

ldap.synchronization.groupDisplayNameAttributeName=description

ldap.synchronization.groupType=posixGroup

ldap.synchronization.personType=inetOrgPerson

ldap.synchronization.groupMemberAttributeName=memberUid

ldap.synchronization.enableProgressEstimation=true

Here are some images from my LDAP, to check my parameters in the config file:

[img]http://ubuntuone.com/p/9Hz/[/img]

[img]http://ubuntuone.com/p/9Hx/[/img]

[img]http://ubuntuone.com/p/9Hy/[/img]

If some one find errors in my conf to help me in the synchronization process, I'll appreciate it very much Smiley Happy.
5 REPLIES 5

baskeyfield
Champ in-the-making
Champ in-the-making
Hola,

Unas preguntas,

¿se han creado los usuarios cuando se realizó la sincronización por primera vez?

¿se han creado los grupos cuando se realizó la sincronización por primera vez?

¿Puedes autenticarte/iniciar sesión con cualquiera de los usuarios que tienes en el ldap?

Saludos.

aique
Champ in-the-making
Champ in-the-making
Hola. Muchas gracias por tu rápida respuesta.

¿se han creado los usuarios cuando se realizó la sincronización por primera vez?

Cuando se realiza la sincronización no hay ningún usuario creado (aparte del administrador, por defecto ya creado en Alfresco). He dado por supuesto que durante el proceso de sincronización los usuarios se crean automáticamente a partir del LDAP, ¿no es así?.

¿se han creado los grupos cuando se realizó la sincronización por primera vez?

Lo mismo pasa con los grupos. Antes de la sincronización sólo tengo los grupos por defecto en Alfresco, he pensado que en el proceso de sincronización se crean automáticamente.

¿Puedes autenticarte/iniciar sesión con cualquiera de los usuarios que tienes en el ldap?

Puedo autenticarme con los usuarios del LDAP. De hecho, una vez que me autentico este usuario sí se crea como usuario de Alfresco. Sin embargo no se crea el grupo al que pertenece.

¿Es así como funciona el proceso de sincronización?, ¿los usuarios han de autenticarse para que se sincronicen?.

Saludos y muchas gracias de veras, estoy muy apurado con este proyecto.

baskeyfield
Champ in-the-making
Champ in-the-making
Hola,

Creo que el problema puede estar en la forma de la que mapeas grupos a usuarios en el Ldap. Alfresco no detecta bien ese mapeo, y como no sabe a que grupo corresponde cada usuario directamente no crea nada.

Como dices, tanto usuarios y grupos deben crearse en la sincronización, no obligadamente cuando inicien sesión.

Entonces, creo que debes reflejar en el ldap que usuarios pertenecen a cada grupo, y por otro lado, en los usuarios debes especificarle cual es su grupo. Para ello:

En los grupos crea un objeto memberUid ya que dices que "ldap.synchronization.groupMemberAttributeName=memberUid" por cada usuario donde su tipo es memberUid y su value el uid del usuario. Ejemplo para uno de tus grupos:

memberUid ——- uid=pepito, ou=People,ou=Departamento de Informatica,o=Universidad de Oviedo,c=es
memberUid ——- uid=juanito, ou=People,ou=Departamento de Informatica,o=Universidad de Oviedo,c=es
memberUid ——- uid=luis, ou=People,ou=Departamento de Informatica,o=Universidad de Oviedo,c=es

Luego, a cada usuario tienes que decirle cual es su grupo. Utilizarías el objeto o ya que dices "ldap.synchronization.userOrganizationalIdAttributeName=o" donde a cada usuario le especificas su nombre. Ejemplo para pepito:

o ———— cn=PAS, ou=Group .. etc.

Esto es probar y probar hasta que des con la configuración correcta. También te recomiendo que empieces con un ldap más sencillo, create una estructura más simple y prueba.

Saludos.

aique
Champ in-the-making
Champ in-the-making
Gracias por la respuesta.

En principio probaré un poco más a ver si no es necesario modificar el LDAP. Es un LDAP que se utiliza en otras cosas y no soy el administrador, en otras palabras, no creo que le haga gracia a nadie que lo toque.

El atributo memberUid está presente en otros grupos, puede que en el que he adjuntado en la imagen no, pero existe, aunque creo que tiene la forma:

memberUid
                 ———–pepito
                 ———–juanito
                 ———–fulanito



¿Es igualmente válido?.

El atributo que me comentas que asocia a cada usuario con su grupo… ¿no puede utilizarse de alguna manera la estructura organizacional ou=PAS que cuelga de ou=People para mapear esto?.

Saludos!.

aique
Champ in-the-making
Champ in-the-making
Finalmente no hizo falta cambiar nada en el LDAP.

En el siguiente post se describe la solución: http://forums.alfresco.com/en/viewtopic.php?f=10&t=27732

Gracias por la ayuda de todas formas y por responder tan rápido Smiley Happy.