Authentification OpenLDAP sur Alfresco 3.2 Community

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
  1. La première partie est ajoutée afin de prendre en compte le backend LDAP.
  2. 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 :

  1. le chemin général du répertoire d'extension
  2. puis le subsystems
  3. puis le mode Authentication
  4. puis le subsystem ldap qui correspond au deuxième paramètre de ldap1:ldap
  5. 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]
fr/ressources/dossiers/alfresco/openldap_alfresco3.2.txt · Last modified: 2011/03/16 01:41 (external edit)
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0