Utilizando o LDAP para Autenticar Usuários no Alfresco
Existem várias formas para autenticar usuários no GED Alfresco. Podemos utilizar a base de usuários do próprio sistema, um servidor LDAP, um servidor AD, um SAMBA. A idéia final é que tenhamos uma base unica de gestão para nossos usuários.
A primeira tarefa a ser feita é editar o arquivo alfresco-global.properties.
# cd /opt/Alfresco
# vim tomcat/shared/classes/alfresco-global.properties
Vejam que no nosso arquivo de configuração colocamos tres métodos de autenticação. O alfrescoNtlm, o LDAP e o passthru. Isto é feito porque o LDAP não suporta todos os tipos de autenticação disponíveis. Para autenticar usuários via CIFS (compartilhamento Windows) por exemplo, teríamos que utilizar passthru.
Agora temos que copiar alguns arquivos padrão existentes no diretório de autenticação do Alfresco. Sigam os passos:
# mkdir -p tomcat/shared/classes/alfresco/extension/subsystems/Authentication/
# mkdir -p tomcat/shared/classes/alfresco/extension/subsystems/Authentication/alfrescoNtlm
# mkdir -p tomcat/shared/classes/alfresco/extension/subsystems/Authentication/ldap
# mkdir -p tomcat/shared/classes/alfresco/extension/subsystems/Authentication/passthru
# cp -r tomcat/webapps/alfresco/WEB-INF/classes/alfresco/subsystems/Authentication/alfrescoNtlm/ tomcat/shared/classes/alfresco/extension/subsystems/Authentication/alfrescoNtlm/alfinst
# cp -r tomcat/webapps/alfresco/WEB-INF/classes/alfresco/subsystems/Authentication/passthru/ tomcat/shared/classes/alfresco/extension/subsystems/Authentication/passthru/passthru1
# cp -r tomcat/webapps/alfresco/WEB-INF/classes/alfresco/subsystems/Authentication/ldap/ tomcat/shared/classes/alfresco/extension/subsystems/Authentication/ldap/ldap1
# cp -r tomcat/webapps/alfresco/WEB-INF/classes/alfresco/subsystems/Authentication/common-ldap-context.xml tomcat/shared/classes/alfresco/extension/subsystems/Authentication/ldap/ldap1
Cada um desses diretórios é responsável por um subsistema de autenticação, e será utilizado para autenticar os usuários nos serviços Web, CIFS, FTP, etc…
Vamos começar pelo alfinst.
# vim tomcat/shared/classes/alfresco/extension/subsystems/Authentication/alfrescoNtlm/alfinst/alfresco-authentication.properties
alfresco.authentication.allowGuestLogin=false
alfresco.authentication.authenticateCIFS=false
# vim tomcat/shared/classes/alfresco/extension/subsystems/Authentication/alfrescoNtlm/alfinst/ntlm-filter.properties
ntlm.authentication.sso.enabled=false
ntlm.authentication.mapUnknownUserToGuest=false
Agora vamos ao passthru. O passthru vai enviar o pedido de login para o meu servidor SAMBA, que está autenticando usuários via LDAP. No final das contas, tudo que o Alfresco não puder autenticar com LDAP, vai ser autenticado com o SAMBA.
# vim tomcat/shared/classes/alfresco/extension/subsystems/Authentication/passthru/passthru1/passthru-authentication-context.properties
passthru.authentication.useLocalServer=false
passthru.authentication.domain=ALLIANCE3
passthru.authentication.servers=172.16.254.252
passthru.authentication.guestAccess=false
passthru.authentication.defaultAdministratorUserNames=root
passthru.authentication.connectTimeout=5000
passthru.authentication.offlineCheckInterval=300
passthru.authentication.protocolOrder=NetBIOS,TCPIP
passthru.authentication.authenticateCIFS=true
passthru.authentication.authenticateFTP=true
# vim tomcat/shared/classes/alfresco/extension/subsystems/Authentication/passthru/passthru1/ntlm-filter.properties
ntlm.authentication.sso.enabled=true
ntlm.authentication.mapUnknownUserToGuest=false
Finalmente vamos ao que viemos, a autenticação LDAP. Até o momento preparamos as autenticações que o Alfresco não tem suporte utilizando LDAP.
# vim tomcat/shared/classes/alfresco/extension/subsystems/Authentication/ldap/ldap1/ldap-authentication.properties
ldap.authentication.active=true
ldap.authentication.allowGuestLogin=true
ldap.authentication.userNameFormat=
ldap.authentication.java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory
ldap.authentication.java.naming.provider.url=ldap://127.0.0.1:389
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=cn\=root,dc\=alliance3,dc\=net
ldap.synchronization.java.naming.security.credentials=alliance
ldap.synchronization.queryBatchSize=0
ldap.synchronization.attributeBatchSize=0
ldap.synchronization.groupQuery=(objectclass\=groupOfNames)
ldap.synchronization.groupDifferentialQuery=(&(objectclass\=groupOfNames)(!(modifyTimestamp<\={0})))
ldap.synchronization.personQuery=(objectclass\=inetOrgPerson)
ldap.synchronization.personDifferentialQuery=(&(objectclass\=inetOrgPerson)(!(modifyTimestamp<\={0})))
ldap.synchronization.groupSearchBase=ou\=Groups,dc\=alliance3,dc\=net
ldap.synchronization.userSearchBase=ou\=Users,dc\=alliance3,dc\=net
ldap.synchronization.modifyTimestampAttributeName=modifyTimestamp
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=userHomesHomeFolderProvider
ldap.synchronization.groupIdAttributeName=cn
ldap.synchronization.groupDisplayNameAttributeName=description
ldap.synchronization.groupType=groupOfNames
ldap.synchronization.personType=inetOrgPerson
ldap.synchronization.groupMemberAttributeName=member
ldap.synchronization.enableProgressEstimation=true
Com isso, só precisamos reiniciar o serviço Alfresco para que possamos utilizar nossos usuários LDAP no acesso do sistema de gestão de documentos.
Bom proveito, até mais.

novembro 2nd, 2011 at 14:56
Olá, olhando sua configuração vejo que é bem simples só que necessito a unica que você não fez ai no exemplo que seria a autenticação via externa. Uma aplicação minha que é responsável por autenticação dela a pessoa já tem acesso ao Alfresco. Teria ai um exemplo?
Obrigado desde já.