Synchronisation ldap-ad

cancel
Showing results for 
Search instead for 
Did you mean: 
ruffieuxlu
Member II

Synchronisation ldap-ad

Bonjour,

Un peu de background avant de commencer, je suis actuellement en stage et ai pour projet de mettre en production une plateforme Alfresco dans le but de stocker les informations de l'entreprise ainsi que celles de nos clients. Pour l'authentification sur le Share il faut que les employés soient synchronisés avec Ldap-ad et pour les clients externes ils sont gérés avec le alfrescoNtlm. Mon prédécesseur avait mis en place une plateforme de test Community 3.3 sur laquelle la synchro ldap était fonctionnelle.
La version de production actuelle est la Community 3.4 et malheureusement en utilisant la même configuration cela ne fonctionne pas.
Petit aperçu du réseau :

    FW2 ———– FW1 —- Internet —- Client
     |               |
     |               |
     AD           Alfresco
172.20.1.11     172.21.59.114
J'ai fait un telnet du serveur Alfresco vers l'AD sur le port 389 et ça passe, donc pas de soucis au niveau des ACL.
J'ai ensuite sniffé les deux firewall et filtré tout ce qui avait pour source mon serveur Alfresco, il n'y a rien ! Pas une trace de transaction sur le port 389 sauf quand je balance des telnets -_-

Voici le fichier …/ldap-ad/ldap-ad1/ldap-ad-authentication.properties :

#Ldap authentication configuration
ldap.authentication.active=false
ldap.authentication.java.naming.security.authentication=SIMPLE
ldap.authentication.userNameFormat=%s
ldap.authentication.allowGuestLogin=false
ldap.authentication.java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory
ldap.authentication.java.naming.provider.url=ldap://172.20.1.11:389
dap.authentication.escapeCommasInBind=false
ldap.authentication.escapeCommasInUid=false

#Ldap Synchronization
ldap.synchronization.active=true
ldap.synchronization.java.naming.security.principal=svc-alfresco-01
ldap.synchronization.java.naming.security.credentials=Lundi2010
ldap.synchronization.queryBatchSize=1000
ldap.synchronization.groupDifferentialQuery=(&(objectclass=group)(!(modifyTimestamp<\={0})))
#ldap.synchronization.personQuery=(&(objectclass=person)(objectcategory=person)(userAccountControl\:1.2.840.113556.1.4.803\:\=512))
ldap.synchronization.personDifferentialQuery=(&(objectCategory=person)(objectclass=person)(userAccountControl\:1.2.840.113556.1.4.803\:\=512)(!(modifyTimestamp<\={0})))
#ldap.synchronization.groupQuery=(objectclass=group)

#User and groups synchro
ldap.synchronization.groupSearchBase=******
ldap.synchronization.userSearchBase=******

#Ldap default synchro config
ldap.synchronization.modifyTimestampAttributeName=modifyTimestamp
ldap.synchronization.timestampFormat=yyyyMMddHHmmss'.0Z'
ldap.synchronization.userIdAttributeName=sAMAccountName
ldap.synchronization.userFirstNameAttributeName=givenName
ldap.synchronization.userLastNameAttributeName=sn
ldap.synchronization.userEmailAttributeName=mail
ldap.synchronization.userOrganizationalIdAttributeName=msExchALObjectVersion
ldap.synchronization.defaultHomeFolderProvider=userHomesHomeFolderProvider
ldap.synchronization.groupIdAttributeName=cn
ldap.synchronization.groupType=group
ldap.synchronization.personType=person
ldap.synchronization.groupMemberAttributeName=member

#changes from our AD
synchronization.synchronizeChangesOnly=true

#synchronization.import.cron=0 0/5 * * * ?
#ldap.synchronisation.import.group.clearAllChildren=true

ldap.synchronization.enableProgressEstimation=true

Et le 'chaînage' dans alfresco-global.properties :

authentication.chain=ldap-ad1:ldap-ad

J'ai analysé le fichier ldap-ad-authentication.properties original de la version 3.4, et j'ai n'ai pas vu de changements majeurs, je ne vois pas d'où vient l'erreur.

Auriez-vous une idée ?

Merci et bonne journée !
2 Replies
jayjayecl
Active Member II

Re: Synchronisation ldap-ad

Bonjour,

quelques pointeurs pour vous aider :

http://wiki.alfresco.com/wiki/Alfresco_Authentication_Subsystems
http://wiki.alfresco.com/wiki/The_Synchronization_Subsystem

Si ces informations ne vous suffisent pas pour corriger votre problème, montrez nous ici des traces de logs (alfresco.log).

Merci Smiley Happy
ruffieuxlu
Member II

Re: Synchronisation ldap-ad

J'avais déjà lu ces pages du wiki et elles m'ont aidées lors de la rédaction de ma configuration.
Sinon après plusieurs tests et analyses réseau, il semblerait que ce soit le service de synchronisation qui ne démarre pas, vu qu'il n'y a toujours pas de trafic sur le port 389.
J'ai testé mes requêtes ldap, il n'y pas de problème de côté là.
J'ai essayé l'authentification via passthru et directement via ldap-ad avec "ldap.authentication.active=true" mais sans succès.

La seule erreur qu'il y a dans le log est l'erreur java si j’essaie de me connecter, ce qui est normal vu que la synchronisation n'a pas eu lieu. Sinon aucune erreur, juste quelques warnings sans rapports avec ce soucis (CIFS, OpenOffice, …)

12:59:12,695 ERROR [org.springframework.extensions.webscripts.AbstractRuntime] Exception from executeScript - redirecting to status template error: 01140003 Login failed
org.springframework.extensions.webscripts.WebScriptException: 01140003 Login failed
        at org.alfresco.repo.web.scripts.bean.AbstractLoginBean.login(AbstractLoginBean.java:75)
        at org.alfresco.repo.web.scripts.bean.LoginPost.executeImpl(LoginPost.java:73)
        at org.springframework.extensions.webscripts.DeclarativeWebScript.executeImpl(DeclarativeWebScript.java:235)
        at org.springframework.extensions.webscripts.DeclarativeWebScript.execute(DeclarativeWebScript.java:64)
        at org.alfresco.repo.web.scripts.RepositoryContainer$2.execute(RepositoryContainer.java:377)
        at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:381)
        at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecute(RepositoryContainer.java:436)
        at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecuteAs(RepositoryContainer.java:466)
        at org.alfresco.repo.web.scripts.RepositoryContainer.executeScript(RepositoryContainer.java:263)
        at org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:333)
        at org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:189)
        at org.springframework.extensions.webscripts.servlet.WebScriptServlet.service(WebScriptServlet.java:118)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.alfresco.web.app.servlet.GlobalLocalizationFilter.doFilter(GlobalLocalizationFilter.java:58)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:619)

Je désespère -_-