Sincronizan usuarios LDAP

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
nalvarez_colesc
Active Member II

Sincronizan usuarios LDAP

Muy buenos dias a todos !!!! Disculpen la molestia, pero necesito de vuestra ayuda. 

Cuento con una instalacion de alfresco estoy usando la version "Alfresco Community v5.2.0", la autenticacion de usuarios la configure mediante LDAP. La misma funciona correctamente, ahora, no tengo claro como seria la configuracion para que me sincronice automaticamente, es decir, si yo realizo un cambio sobre grupo o usuarios del LDAP alfresco tome dichos cambios. 

Algo que no les mencione es que tambien los usuarios se autentican por medio de CAS (sso), esto funciona correctamente tambien.

Dejo mi archivo global properties:

authentication.chain=external1:external,alfrescoNtlm1:alfrescoNtlm
external.authentication.proxyUserName=
external.authentication.enabled=true
external.authentication.proxyHeader=X-Alfresco-Remote-User

4 Replies
venzia
Senior Member

Re: Sincronizan usuarios LDAP

Hola Nelson,

puedes ver un ejemplo de autenticación y sincronización en Example: authentication and synchronization with one ldap-ad subsystem | Alfresco Documentation 

Así mismo, te indico la lista de referencia de "propiedades configurables" : LDAP configuration properties | Alfresco Documentation 

Saludos!

--

http://venzia.es
The beauty of make IT simple
@venziait

nalvarez_colesc
Active Member II

Re: Sincronizan usuarios LDAP

Venzia:

               Muchas gracias por tu respuesta, te cuento que la autenticacion la logre de manera exitosa, tambein logre de manera exitosa hacerlo mediante sso. EL unico inconveniente que tengo es:

Al realizar cambios entre los usuarios (por ejemplo a un usuario asignarle un nuevo grupo) no veo que alfresco tome los cambios, ni siquiera a las 00 hs o reiniciando manualmente alfresco.

Les dejo mis archivos de configuracion:

  1.  /opt/alfresco-community/tomcat/shared/classes/alfresco/extension/subsystems/Synchronization/default/default-synchronization.properties

#
# This properties file is used to configure user registry syncronisation (e.g. LDAP)
#

# Should the scheduled sync job use differential or full queries on the user
# registries to determine the set of local users to be updated? When true,
# each user registry is only queried for those users and groups modified since
# the most recent modification date of all the objects last queried from that
# same source. When <code>false</code> then <i>all</i> users and groups are
# queried from the user registry and updated locally. Nevertheless, a separate
# query will be run by the scheduled sync job to determine deletions.
synchronization.synchronizeChangesOnly=true

# The cron expression defining when imports should take place
synchronization.import.cron=00,02 * * * * ?

# Should we trigger a differential sync when missing people log in?
synchronization.syncWhenMissingPeopleLogIn=true

# Should we trigger a differential sync on startup?
synchronization.syncOnStartup=true

# Should we auto create a missing person on log in?
synchronization.autoCreatePeopleOnLogin=true

# The number of entries to process before logging progress
synchronization.loggingInterval=100

# The number of threads to use when doing a batch (scheduled or startup) sync
synchronization.workerThreads=1

# Synchronization with deletions
synchronization.allowDeletions=true

# For large LDAP directories the delete query is expensive and time consuming, needing to read the entire LDAP directory.
synchronization.syncDelete=true

# external setting (LDAP systems) - whether users can be enabled; if false then users have to be explicitly disabled in Alfresco
synchronization.externalUserControl=false

# Subsystem that will handle the external user control
synchronization.externalUserControlSubsystemName=

2.  /opt/alfresco-community/tomcat/shared/classes/alfresco/extension/subsystems/Synchronization/default/default-synchronization-context.xml

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>

<beans>
<!--
Job definition to import people and groups from one or more external user registries in the authentication chain
(e.g. LDAP directory)
-->

<bean id="syncTrigger" class="org.alfresco.util.CronTriggerBean">
<property name="jobDetail">
<bean id="ldapPeopleJobDetail" class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass">
<value>org.alfresco.repo.security.sync.UserRegistrySynchronizerJob</value>
</property>
<property name="jobDataAsMap">
<map>
<entry key="userRegistrySynchronizer">
<ref bean="userRegistrySynchronizer" />
</entry>
<entry key="synchronizeChangesOnly">
<value>${synchronization.synchronizeChangesOnly}</value>
</entry>
</map>
</property>
</bean>
</property>
<property name="cronExpression">
<value>${synchronization.import.cron}</value>
</property>
<property name="scheduler">
<ref bean="schedulerFactory" />
</property>
<property name="startDelayMinutes">
<value>${system.cronJob.startDelayMinutes}</value>
</property>
</bean>

<bean id="userRegistrySynchronizer" class="org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer" init-method="init" >
<property name="syncWhenMissingPeopleLogIn">
<value>${synchronization.syncWhenMissingPeopleLogIn}</value>
</property>
<property name="syncOnStartup">
<value>${synchronization.syncOnStartup}</value>
</property>
<property name="autoCreatePeopleOnLogin">
<value>${synchronization.autoCreatePeopleOnLogin}</value>
</property>
<property name="authorityService">
<ref bean="authorityService" />
</property>
<property name="personService">
<ref bean="personService" />
</property>
<property name="attributeService">
<ref bean="attributeService" />
</property>
<property name="applicationContextManager">
<ref bean="Authentication" />
</property>
<property name="transactionService">
<ref bean="transactionService" />
</property>
<property name="jobLockService">
<ref bean="jobLockService" />
</property>
<property name="sysAdminParams">
<ref bean="sysAdminParams" />
</property>
<property name="sourceBeanName">
<value>userRegistry</value>
</property>
<property name="loggingInterval">
<value>${synchronization.loggingInterval}</value>
</property>
<property name="workerThreads">
<value>${synchronization.workerThreads}</value>
</property>
<property name="allowDeletions">
<value>${synchronization.allowDeletions}</value>
</property>
<property name="syncDelete">
<value>${synchronization.syncDelete}</value>
</property>
<property name="nameChecker" ref="nameChecker" />
<property name="externalUserControl">
<value>${synchronization.externalUserControl}</value>
</property>

<property name="externalUserControlSubsystemName">
<value>${synchronization.externalUserControlSubsystemName}</value>
</property>
</bean>

</beans>

3. /opt/alfresco-community/tomcat/shared/classes/alfresco-global.properties

### configured to use the external authentication SSO
authentication.chain=external1:external,alfrescoNtlm1:alfrescoNtlm
external.authentication.proxyUserName=
external.authentication.enabled=true
external.authentication.defaultAdministratorUserNames=nalvarez
external.authentication.proxyHeader=X-Alfresco-Remote-User


### Cache de transacciones ###

cache.myCache.maxItems=20000
cache.myCache.timeToLiveSeconds=0

venzia
Senior Member

Re: Sincronizan usuarios LDAP

Hola de nuevo Nelson,

por lo que indica la propiedad chain de tu alfresco-global.properties dudo que tengas configurado si quiera la autenticación por LDAP. Debería ser algo así :

authentication.chain=alfinst:alfrescoNtlm,ldap1:ldap-ad

Es posible que este aceptando cualquier login?

Saludos!

--

 

http://venzia.es
The beauty of make IT simple
@venziait

nalvarez_colesc
Active Member II

Re: Sincronizan usuarios LDAP

Venzia:

                  Una vez mas muchas gracias por tu pronta respuesta, te cuento que el login por ldap funciona,: 

authentication.chain=external1:external,alfrescoNtlm1:alfrescoNtlm

En esta linea el external hace referencia al external que es nuestro CAS, y la linea: 

external.authentication.proxyHeader=X-Alfresco-Remote-User

Es para que tome el usuario desde la cookie del CAS, que es de ldap, es mas, si yo realizo una busqueda en alfresco veo todos los usuarios del ldap, y si creo un usuario en ldap, que no figura en alfresco, en el primer login me lo actualiza ok. El problema lo tengo con las modificaciones especificas de usuario, como te decia por ej: a un usuario lo agrego en un grupo, o lo quito de un grupo, esto nunca impacta.

Por otro lado, ahora noto que no me importo todo el ldap, solo 500 registros. Tambien me surge la duda, si es posible importar desde ldap solo un grupo en especifico o dos ? Digamos por ej:

Solo quiero importar el grupo "empleados" y el grupo "informatica"