====== Authentification OpenLDAP sur Alfresco 3.2 Community ====== {{tag> ldap alfresco}} Admettons que vous ayez un annuaire LDAP sous OpenLDAP. Admettons que vous ayez une installationd d'alfresco community version 3.2. Vous souhaitez connecter les deux ensemble ? Ca tombe bien, moi aussi. La doc est vaste et pas toujours claire, alors voici comment ça a fonctionné pour moi, sans avoir à toucher à OpenLDAP. ===== LDAP subsystem ===== Il faut configurer un subsystem d'authentification de type LDAP. Pour cela, on va d'abord modifier le fichier qui surcharge les paramètres d'alfresco dans **/var/lib/tomcat5.5/shared/classes/alfresco-global.properties** Ne pas modifier les fichiers dans **/var/lib/tomcat5.5/webapps** sinon il faudra tout refaire en cas de mise à jour... # vim /var/lib/tomcat5.5/shared/classes/alfresco-global.properties [... snip ...] authentication.chain=ldap1:ldap,alfrescoNtlm1:alfrescoNtlm - La première partie est ajoutée afin de prendre en compte le backend LDAP. - La deuxième partie du paramètre "alfrescoNtlm1:alfrescoNtlm" correspond à la chaine d'authentification par défaut, que l'on conserve pour le compte admin. ==== Properties LDAP ==== Nul besoin de modifier le fichier XML du backend LDAP. Il suffit de copier le fichier de properties présent dans : **/var/lib/tomcat5.5/webapps/alfresco/WEB-INF/classes/alfresco/subsystems/Authentication/ldap/ldap-authentication.properties** et le mettre dans **/var/lib/tomcat5.5/shared/classes/alfresco/extension/subsystems/Authentication/ldap/ldap1** Attention à ce dernier chemin. Il est précis et doit refléter la chaine mise dans //authentication.chain//. On retrouve : - le chemin général du répertoire d'extension - puis le subsystems - puis le mode //Authentication// - puis le subsystem **ldap** qui correspond au deuxième paramètre de //ldap1:ldap// - puis l'identifiant **ldap1** du subsystem ldap, premier paramètre de //ldap1:ldap// Dans ce répertoire, on retrouve donc le fichier **ldap-authentication.properties** ci-dessous. (j'ai volontairement supprimé la synchro LDAP entre Alfresco et OpenLDAP, je ne conserve que l'authentification). ldap.authentication.active=true ldap.authentication.allowGuestLogin=false ldap.authentication.userNameFormat=%s ldap.authentication.java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory ldap.authentication.java.naming.provider.url=ldap://localhost:389 ldap.authentication.java.naming.security.authentication=DIGEST-MD5 ldap.authentication.escapeCommasInBind=false ldap.authentication.escapeCommasInUid=false ldap.authentication.defaultAdministratorUserNames= # ON DESACTIVE LA SYNCHRO, DONC TOUT CE QUI SUIS APRES CETTE LIGNE EST INUTILE !! ldap.synchronization.active=false ldap.synchronization.java.naming.security.principal=cn\=alfresco,dc\=domain,dc\=com ldap.synchronization.java.naming.security.credentials=secret ldap.synchronization.queryBatchSize=1000 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\=company,dc\=com ldap.synchronization.userSearchBase=ou\=People,dc\=company,dc\=com 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.groupType=groupOfNames ldap.synchronization.personType=inetOrgPerson ldap.synchronization.groupMemberAttributeName=member ldap.synchronization.enableProgressEstimation=true Voilà, avec ça, ca devrait fonctionner. En relancant tomcat, vérifiez dans les logs que ce fichier est bien pris en compte: root@zerhuel:/# grep ldap-authentication.properties /var/log/tomcat5.5/alfresco.log 11:35:48,335 INFO [org.alfresco.config.JndiPropertiesFactoryBean] Loading properties file from file [/var/lib/tomcat5.5/shared/classes/alfresco/extension/subsystems/Authentication/ldap/ldap1/ldap-authentication.properties]