cancel
Showing results for 
Search instead for 
Did you mean: 

Sincronizar solo un grupo específico de LDAP-AD a Alfresco

oskar201
Champ in-the-making
Champ in-the-making
Buenas tardes a todos.

Se tiene la necesidad de sincronizar solamente los usuarios de un grupo específico dentro de mi ldap-ad instalado en un WindowsServer200R2 con un Alfresco 4.0.2.9. Para sincronizar usuarios LDAP-AD y trabajar con un grupo de usuarios específico, la configuración en el alfresco-global.properties que uso es:

### LDAP-AD ###
authentication.chain=alfinst:alfrescoNtlm,ldap1:ldap-ad
ntlm.authentication.sso.enabled=false
ldap.authentication.allowGuestLogin=false
ldap.authentication.userNameFormat=%s@dominioprueba.com
ldap.authentication.java.naming.provider.url=ldap://192.168.1.106:389
ldap.authentication.defaultAdministratorUserNames=Administrator,alfresco
ldap.synchronization.java.naming.security.principal=Administrator@dominioprueba.com
ldap.synchronization.java.naming.security.credentials=Admin123
ldap.synchronization.groupSearchBase=CN\=GrupoDemo,cn\=Users,dc=dominioPrueba,dc=com
ldap.synchronization.groupSearchBase=CN=\GrupoDemo,cn\=Users,dc=dominioPrueba,dc=com
ldap.synchronization.synchronizeChangesOnly=false
ldap.synchronization.allowDeletions=true

Luego de reiniciado el alfresco, los usuarios del LDAP-AD no se sincronizan en alfresco (no se listan), sin embargo me permite loguearme con usuarios del LDAP-AD tanto de fuera como dentro del grupo especificado. Mientras voy logueandome con estos usuarios LDAP-AD van mostrandose en la lista de usuarios. Lo que se desea es que alfresco solo me permita trabajar con un grupo de usuarios ESPECIFICADO y no con los demás.

Tratando de buscar una solución alternativa, ahora se intentó trabajar con una OU (unidad organizativa) y no una CN mostrando los siguientes resultados.
1. Se instala un alfresco limpio 4.0.2.9
2. Se configura el alfresco-global.propeties para trabajar con ldap-ad

### LDAP-AD ###
authentication.chain=alfinst:alfrescoNtlm,ldap1:ldap-ad
ntlm.authentication.sso.enabled=false
ldap.authentication.allowGuestLogin=false
ldap.authentication.userNameFormat=%s@dominioprueba.com
ldap.authentication.java.naming.provider.url=ldap://192.168.1.106:389
ldap.authentication.defaultAdministratorUserNames=Administrator,alfresco
ldap.synchronization.java.naming.security.principal=Administrator@dominioprueba.com
ldap.synchronization.java.naming.security.credentials=Admin123
ldap.synchronization.groupSearchBase=OU=AlfrescoGrupo,dc=dominioPrueba,dc=com
ldap.synchronization.userSearchBase=OU=AlfrescoGrupo,dc=dominioPrueba,dc=com
ldap.synchronization.synchronizeChangesOnly=false
ldap.synchronization.allowDeletions=true


3. Se enciende el alfresco con la nueva configuración
4. Se listan los usuarios de alfresco: se migraron solo los usuarios de mi OU
5. Me permite loguearme con los usuarios de mi OU
6. Me permite loguearme con usuarios FUERA de mi OU (NO DESEADO)
7. Los usuarios nuevos fuera de mi OU van apareciendo a mi lista de usuarios
8. Se desea que solo se logueen los usuarios dentro de mi OU

Como ven en el caso de usar OU se logran sincronizar solo los usuarios de mi OU pero alfresco también me permite loguearme con usuarios fuera de esta OU definida en la configuración.

Saben si algo falta en mi configuracion para que solo se restrinja trabajar con el grupo CN o unidad OU especificado y no con todos los usuarios contenidos en mi LDAP-AD??

Cualquier aporte ayudaría bastante, gracias de antemano.


2 REPLIES 2

luisalberto
Champ in-the-making
Champ in-the-making
Ami me funcionó modificando las siguientes lineas, y colocar el CN del grupo de tu AD que quieres sincronizar.

# The query to select objects that represent the groups to import that have changed since a certain time.
ldap.synchronization.groupDifferentialQuery=(&(objectclass\=group)(!(modifyTimestamp<\={0})))

# The query to select all objects that represent the users to import.
ldap.synchronization.personQuery=(&(|(memberof=cn\=gpoalfresco,ou\=grupos,ou\=dg informatica,OU\=CAJ Users and Groups,DC\=caj,DC\=com,DC\=mx)(memberof=CN=GRUDS,OU=Grupos,DC=intranet,DC=domain,DC=com))(objectclass\=user)(userAccountControl\:1.2.840.113556.1.4.803\:\=512))

# The query to select objects that represent the users to import that have changed since a certain time.
ldap.synchronization.personDifferentialQuery=(&(|(memberof=cn\=gpoalfresco,ou\=grupos,ou\=dg Informatica,OU\=CAJ Users and Groups,DC\=caj,DC\=com,DC\=mx)(memberof=CN=GRUDS,OU=Grupos,DC=intranet,DC=domain,DC=com))(objectclass\=user)(userAccountControl\:1.2.840.113556.1.4.803\:\=512)(!(modifyTimestamp<\={0})))
,
# The group search base restricts the LDAP group query to a sub section of tree on the LDAP server.
ldap.synchronization.groupSearchBase=cn\=gpoalfresco,ou\=grupos,ou\=dg Informatica,OU\=CAJ Users and Groups,DC\=caj,DC\=com,DC\=mx

oskar201
Champ in-the-making
Champ in-the-making
Gracias por responder Luis Alberto

En efecto probando lo que me detallaste tengo:

### LDAP-AD ###
authentication.chain=alfinst:alfrescoNtlm,ldap1:ldap-ad
ntlm.authentication.sso.enabled=false
ldap.authentication.active=true
ldap.authentication.allowGuestLogin=false
ldap.authentication.userNameFormat=%s@dominioprueba.com
ldap.authentication.java.naming.provider.url=ldap://192.168.1.106:389
ldap.authentication.defaultAdministratorUserNames=Administrator,alfresco
ldap.synchronization.java.naming.security.principal=Administrator@dominioprueba.com
ldap.synchronization.java.naming.security.credentials=Admin123
ldap.synchronization.groupSearchBase=OU=OrgaDemo,dc=dominioPrueba,dc=com
ldap.synchronization.userSearchBase=OU=OrgaDemo,dc=dominioPrueba,dc=com

ldap.synchronization.groupQuery=(objectclass\=group)
ldap.synchronization.groupDifferentialQuery=(&(objectclass\=group)(!(modifyTimestamp<\={0})))
ldap.synchronization.personQuery=(&(memberof=OU=OrgaDemo,dc=dominioPrueba,dc=com)(objectclass\=user)(userAccountControl\:1.2.840.113556.1.4.803\:\=512))
ldap.synchronization.personDifferentialQuery=(&(memberof=OU=OrgaDemo,dc=dominioPrueba,dc=com)(objectclass\=user)(userAccountControl\:1.2.840.113556.1.4.803\:\=512)(!(modifyTimestamp<\={0})))

ldap.synchronization.synchronizeChangesOnly=true
ldap.synchronization.active=true

Mi OU se llama OrgaDemo y está en la raiz del dominio del LDAP, su string es "OU=OrgaDemo,dc=dominioPrueba,dc=com" sin embargo al encender el Alfresco los usuarios fuera de esta OU aún se pueden loguear y esto no se desea, solo se necesita que se logueen los usuarios dentro de la OU especificada.
Cual es la estructura de tus usuarios en LDAP? veo que tienes una consulta doble en tu query, podrías detallar un poco más por favor?

Alguna otra opción que pueda agregar? Gracias de antemano!