LDAP + SYNC + SSO

cancel
Showing results for 
Search instead for 
Did you mean: 
joãocarlospalan
Member II

LDAP + SYNC + SSO

Pessoal, alguém poderia ajudar um iniciante a configurar uma syncronização com Active Directory + SSO ?
Ja li de tudo, fiz de tudo, mas não funciona….
Me ajudem por favor.
Alfresco 4.2d

Grato.
10 Replies
rafaelscg
Active Member

Re: LDAP + SYNC + SSO

João,

Veja se esse link te ajuda:

http://blog.infoaxon.com/alfresco-integration-active-directory/1313

O artigo é para a versão 3.3.4, porem os passos que devem ser seguidos são exatamente esses.

Depois diga se conseguiu resolver seu problema.
joãocarlospalan
Member II

Re: LDAP + SYNC + SSO

Rafael, muito obrigado por responder.
vc poderia me dar um exemplo de:

dap.synchronization.groupQuery=(objectclass\=group
ldap.synchronization.personQuery=(&(objectclass\=user))

este "objectclass", tem que ser group e user respectivamente, como esta acima?
porque meus grupos e usuarios estão em uma OU chamada CORP.
joãocarlospalan
Member II

Re: LDAP + SYNC + SSO

Rafael, segui o tutorial que vc indicou, mas não rolou não cara..rs
deu um monte de erro no log.
na verdade, eu ja tinha configurado seguindo este tuto aqui: http://www.anotherstrangerme.com/alfresco-integration-with-active-directory/
e eu só tinha um problema. Não estava importanto os usuários e grupos. Eu conseguia me logar no Alfresco com usuário/senha do AD, mas não estava sincronizando. Ou seja, os usuários do AD não vinham para o Alfresco. Acho que era algo relacionado à query (ldap.synchronization.personQuery e ldap.synchronization.groupQuery).
Tem alguma idéia ?
Da uma olhada nesta parte do log. (alfresco.log)
21:18:19,137 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Starting 'Synchronization' subsystem, ID: [Synchronization, default]                                                                                         
21:18:19,156 INFO  [org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer] Synchronizing users and groups with user registry 'ldap-ad1'                                                                                                       
21:18:19,211 INFO  [org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer] Retrieving all groups from user registry 'ldap-ad1'                                                                                                                
21:18:19,240 INFO  [org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer] ldap-ad1 Group Analysis: Commencing batch of 0 entries                                                                                                             
21:18:19,241 INFO  [org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer] ldap-ad1 Group Analysis: Completed batch of 0 entries                                                                                                              
21:18:19,243 INFO  [org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer] Retrieving all users from user registry 'ldap-ad1'                                                                                                                 
21:18:19,247 INFO  [org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer] ldap-ad1 User Creation and Association: Commencing batch of 0 entries                                                                                              
21:18:19,247 INFO  [org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer] ldap-ad1 User Creation and Association: Completed batch of 0 entries                                                                                               
21:18:19,247 INFO  [org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer] Finished synchronizing users and groups with user registry 'ldap-ad1'                                                                                              
21:18:19,247 INFO  [org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer] 0 user(s) and 0 group(s) processed
21:18:19,251 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Startup of 'Synchronization' subsystem, ID: [Synchronization, default] complete
rafaelscg
Active Member

Re: LDAP + SYNC + SSO

João,

Desculpa, não sabia que você já tinha conseguido configurar o LDAP, por isso te passei esse tutorial. Mas já que conseguiu e o que falta é apenas importar os grupos e usuários para o Alfresco, acredito que o que falta seja passar esses parametros dentro de seu ldap-synchronisation.properties:

# The cron expression defining when people imports should take place
ldap.synchronisation.import.person.cron= 0 * 16 * * ?

# The cron expression defining when group imports should take place
ldap.synchronisation.import.group.cron= 0 * 16 * * ?

São CRON EXPRESSIONS onde você deve dizer em qual momento os usuários devem ser importados para o Alfresco (dia, hora, minuto, etc). No exemplo acima a importação está configurada para aparecer todo dia às 16h. Segue o link abaixo para, caso não saiba, entender o que cada casa dessas acima representa:

http://wiki.alfresco.com/wiki/Scheduled_Actions#Cron_Explained

Caso ainda sim não consiga fazer a importação, diga para tentarmos ajuda-lo.
joãocarlospalan
Member II

Re: LDAP + SYNC + SSO

Rafael, mas não deveria fazer pelo menos uma importação mesmo sem este cron ?
Quer que eu passe o ldap.configuration.properties pra vc dar uma analisada ?
Qutra coisa que acho que não mensionei. Meu Alfresco 4.2d esta instalado em um CentOs 6.3.
e os arquivos de configuração, no caso não são estes nomes que vc citou (ldap.configuration.properties) e sim changes.properties como esta no tuto que segui. Você vê algum problema nisso ?
Bom, de qualquer forma, coloquei a linha dor cron para rodar hoje (04/04) as 13 hrs.
Não teria um email, claro se puder, pra cominicação da gente ficar mais rápida ? é que este servidor ja esta ha 2 semanas comigo e eu preciso termina-lo para enviar para nossa empresa no rio de janeiro.
Valeu Rafa, obrigado cara.
rafaelscg
Active Member

Re: LDAP + SYNC + SSO

João,

Envie esse arquivo para meu email então por favor, que depois postamos a solução no forum para conhecimento de todos.

rafaelscg@gmail.com
joãocarlospalan
Member II

Re: LDAP + SYNC + SSO

Alfresco 4.2.d, CentOs 6.3 e Active Directry Windos Server 2008 R2 SP1

Se alguém ja conseguiu, por favor me ajuda. Acho que ja fiz quase tudo que encontro em tutoriais e no forum para fazer isso funcionar.
no Alfresco.log, erros não acontecem, mas a tal da sincronização também não. Sempre o tal do "0 User(s) and 0 Group(s)"

Agora, após habilitar no custon-log4j.propertis as linhas de debug de LDAP, estão aparecendo alguns erros de autenticação quando me logo no alfresco com meu usuário se senha do AD, mas para me confundir mais ainda, da o erro de autenticação, mas deixa me autenticar.
Peço encarecidamente que, se alguém souber como posso resolver isso, me ajude !!!!

Segue a parte do log onde aparece o erro de autenticação, porém consigo me autenticar. E ja deixo aqui o meu muito obrigado.


org.alfresco.repo.security.authentication.AuthenticationException: 03090475 Failed to authenticate, username or password is wrong. User name:jcpalanca Reason [LDAP: error code 49 - 80090308: LdapErr: DSID-0C0903A9, comment: AcceptSecurityContext error, data 52e, v1db1]                     
        at org.alfresco.repo.security.authentication.ldap.LDAPInitialDirContextFactoryImpl.buildInitialDirContext(LDAPInitialDirContextFactoryImpl.java:150)                                     
        at org.alfresco.repo.security.authentication.ldap.LDAPInitialDirContextFactoryImpl.getInitialDirContext(LDAPInitialDirContextFactoryImpl.java:294)                                       
        at org.alfresco.repo.security.authentication.ldap.LDAPAuthenticationComponentImpl.authenticateImpl(LDAPAuthenticationComponentImpl.java:141)                                             
        at org.alfresco.repo.security.authentication.AbstractAuthenticationComponent.authenticate(AbstractAuthenticationComponent.java:162)                                                      
        at org.alfresco.repo.security.authentication.AuthenticationServiceImpl.authenticate(AuthenticationServiceImpl.java:67)                                                                   
        at org.alfresco.repo.sjcpalancaecurity.authentication.AbstractChainingAuthenticationService.authenticate(AbstractChainingAuthenticationService.java:195)                                          
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)                          
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)        
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)                                     
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)                                                                                            
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)                                                                     
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)                                                                             
        at net.sf.acegisecurity.intercept.method.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:80)                                                                 
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)                                                                             
        at org.alfresco.repo.security.permissions.impl.ExceptionTranslatorMethodInterceptor.invoke(ExceptionTranslatorMethodInterceptor.java:46)                                                 
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)                                                                             
        at org.alfresco.repo.audit.AuditMethodInterceptor.invoke(AuditMethodInterceptor.java:159)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)                                                                             
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)                                                                            
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)                                                                             
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)                                                                                              
        at $Proxy66.authenticate(Unknown Source)                                                
        at org.alfresco.repo.web.scripts.bean.AbstractLoginBean.login(AbstractLoginBean.java:66)
        at org.alfresco.repo.web.scripts.bean.LoginPost.executeImpl(LoginPost.java:72)          
        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$3.execute(RepositoryContainer.java:390)                                                                                             
        at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:446)                                                                           
        at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecute(RepositoryContainer.java:459)                                                                                  
        at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecuteAs(RepositoryContainer.java:497)                                                                                
        at org.alfresco.repo.web.scripts.RepositoryContainer.executeScript(RepositoryContainer.java:240)                                                                                         
        at org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:377)                                                                                     
        at org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:209)                                                                                     
        at org.springframework.extensions.webscripts.servlet.WebScriptServlet.service(WebScriptServlet.java:132)                                                                                 
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)                         
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)                                                                                     
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)                                                                                             
        at org.alfresco.web.app.servlet.GlobalLocalizationFilter.doFilter(GlobalLocalizationFilter.java:61)                                                                                      
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)                                                                                     
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)                                                                                             
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)  
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)  
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)        
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)         
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)            
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)    
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)          
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)                                                                                           
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)                                                                                       
        at org.apache.tomcat.util.net.AprEndpoint$SocketWithOptionsProcessor.run(AprEndpoint.java:1771)                                                                                          
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)      
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)      
        at java.lang.Thread.run(Thread.java:722)                                                
Caused by: javax.naming.AuthenticationException: [LDAP: error code 49 - 80090308: LdapErr: DSID-0C0903A9, comment: AcceptSecurityContext error, data 52e, v1db1]                                 
        at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3087)                            
        at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:3033)                       
        at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2835)                       
        at com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2749)                                 
        at com.sun.jndi.ldap.LdapCtx.<init>(LdapCtx.java:316)                                   
        at com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:193)
        at com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(LdapCtxFactory.java:211)
        at com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(LdapCtxFactory.java:154)
        at com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(LdapCtxFactory.java:84)
        at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:684)
        at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:307)
        at javax.naming.InitialContext.init(InitialContext.java:242)
        at javax.naming.InitialContext.<init>(InitialContext.java:216)
        at javax.naming.directory.InitialDirContext.<init>(InitialDirContext.java:101)
        at org.alfresco.repo.security.authentication.ldap.LDAPInitialDirContextFactoryImpl.buildInitialDirContext(LDAPInitialDirContextFactoryImpl.java:135)
        … 54 more
14:47:16,519 DEBUG [org.alfresco.repo.security.authentication.ldap.LDAPAuthenticationComponentImpl] Setting the current user to "jcpalanca"
14:47:16,632 DEBUG [org.alfresco.repo.security.authentication.ldap.LDAPAuthenticationComponentImpl] Setting the current user to "jcpalanca"
14:47:17,192 DEBUG [org.alfresco.repo.security.authentication.ldap.LDAPAuthenticationComponentImpl] Setting the current user to "jcpalanca"
14:47:17,229 DEBUG [org.alfresco.repo.security.authentication.ldap.LDAPAuthenticationComponentImpl] Setting the current user to "jcpalanca"
14:47:17,277 DEBUG [org.alfresco.repo.security.authentication.ldap.LDAPAuthenticationComponentImpl] Setting the current user to "jcpalanca"
14:47:17,885 DEBUG [org.alfresco.repo.security.authentication.ldap.LDAPAuthenticationComponentImpl] Setting the current user to "jcpalanca"
14:47:17,905 DEBUG [org.alfresco.repo.security.authentication.ldap.LDAPAuthenticationComponentImpl] Setting the current user to "jcpalanca"
rafaelscg
Active Member

Re: LDAP + SYNC + SSO

O problema do João está resolvido com as seguintes linhas:

ldap.synchronization.personQuery=(&(objectclass\=User)(!(whenChanged<\={0})))
ldap.synchronization.personDifferentialQuery=(&(objectclass\=User)(!(whenChanged<\={0})))

ldap.synchronization.groupQuery=(&(objectclass\=group)(!(whenChanged<\={0})))
ldap.synchronization.groupDifferentialQuery=(&(objectclass\=group)(!(whenChanged<\={0})))

Segundo o tópico <a href="https://forums.alfresco.com/forum/installation-upgrades-configuration-integration/authentication-lda..." target="_blank">https://forums.alfresco.com/forum/installation-upgrades-configuration-integration/authentication-lda...</a> o problema se trata de um BUG do AD 2008. Assim que o João tiver tempo irá postar os passos que seguimos para resolver o problema, assim ajudaremos quem tiver com as mesmas dúvidas.

joãocarlospalan
Member II

Re: LDAP + SYNC + SSO

É isso aí. Neste meio tempo, até eu postar os passos se tiver alguém com dúvida pode ir postando que vou ajudando.
Importante ressaltar que, ainda não consegui fazer SSO funcionar e só vou postar todos os passos aqui, após tudo estiver funcionando corretamente. Ou seja, autenticação, sincronização (estes dois ja etão ok) e SSO.
Aproveito para agradecer ao Rafael pela atenção que tem me dado nestes assuntos. Sem ele, acho que ainda não teria saído do zero.
Valeu Rafael, muitíssimo obrigado. Bom se nosso fórum tivesse mais pessoas como você.