Identification sur LDAP avec Plone et Active Directory
Prérequis
Afin de lier Plone à LDAP, il vous faut le produit LDAPUserFolder. Ce produit est disponible ici :
http://www.dataflake.org/software/ldapuserfolder/
Commencez par installer la dernière version de ce produit.
Configuration
Configuration de LDAPUserFolder
Pour installer ce produit dans votre site Plone, allez dans l'onglet Sources du dossier acl_users de votre site.
Dans la liste déroulante d'ajout, sélectionnez LDAPUserFolder et cliquez sur le bouton Add. Lors de l'ajout, il vous demande de configurer votre accès LDAP (ie : votre accès à l'Active Directory).
La configuration recommandée pour un serveur Active Directory est :
LDAP Server[:port] : votreServeurLdap
Use SSL : non coché
Read-only : coché
Login Name Attribute : Canonical Name (cn)
User ID Attribute : Canonical Name (cn)
RDN Attribute : Canonical Name (cn)
Users Base DN : cn=Users,dc=votreDomaine,dc=com
Scope : SUBTREE
Group storage : Groups not stored on LDAP server
Group mapping : Manually map LDAP groups to Zope roles
Groups Base DN : cn=Users,dc=votreDomaine,dc=com
Scope : SUBTREE
Manager DN : cn=Administrateur,cn=Users,dc=votreDomaine,dc=com
Password : votreMotDePasseAdministrateur
User password encryption : SHA
Default User Roles : Anonymous
Après avoir saisi les valeurs correspondant à votre environnement, vous pouvez cliquer sur Add.
Remarque : Si vous rencontrez des problèmes de requêtes sur le serveur Active Directory, essayer d'utiliser le port 3268 à la place du port 389 (il s'agit du port du service appelé global catalog).
Nous allons maintenant éffectuer les configurations plus complexes. Allez de nouveau dans l'onglet Sources du dossier acl_users de votre site. Cliquez sur votre nouvel élément LDAPUserFolder. Enfin, cliquez sur l'onglet LDAP Schema.
Dans le formulaire qui s'affiche, ajoutez les items :
LDAP Attribute Name : sAMAccountName
Friendly Name : Username
Multi-valued : non
Cet item contient le login Windows de l'utilisateur.
LDAP Attribute Name : mail
Friendly Name : Email address
Multi-valued : non
Map to name (optional) : email
Cet item contient l'email de l'utilisateur.
LDAP Attribute Name : givenName
Friendly Name : First Name
Multi-valued : non
Cet item contient le prénom de l'utilisateur.
Enfin, supprimez l'item cn et remplacez le par :
LDAP Attribute Name : cn
Friendly Name : Canonical Name
Multi-valued : non
Map to name (optional) : fullname
Allez maintenant dans l'onglet Configure. Et modifier les valeurs suivantes comme indiqué :
Login Name Attribute : Username (sAMAccountName)
User ID Attribute : Username (sAMAccountName)
RDN Attribute : Username (sAMAccountName)
Manager DN Usage : Always
User object classes : top,person
Cliquez sur Apply Changes pour sauvegarder vos modifications.
Configuration de LDAPGroupFolder
Afin de compléter votre intégration de LDAP avec Plone, vous pouvez souhaiter utiliser les groupes LDAP dans votre site Plone. Cette manipulation apporte quelques inconvénients: quand vous créez un nouveau groupe dans Plone, il sera stocké sur votre serveur LDAP. De plus les groupes sont utilisés commes rôles Zope. Si vous souhaitez quand même appliquer cette modification, vous pouvez suivre les instructions ci-dessous:
- Allez dans l'onglet Contents du dossier acl_users de votre site.
- Cliquez sur le dossier Groups.
- Supprimer le dossier acl_users existant.
- Ajoutez un nouvel objet LDAPGroupFolder.
- Revenez dans l'onglet Sources du dossier acl_users de votre site.
- Allez dans la source LDAPUserFolder.
- Vérifiez que Group storage est à Groups stored on LDAP server.
Une fois ceci fait, vos groupes de Plone sont lus sur votre serveur LDAP. Il ne vous reste plus qu'a lier ces groupes aux rôles Zope. Pour ce faire, vous avez deux solutions.
- Vous pouvez lier automatiquement les groupes aux rôles en cliquant sur le bouton Update LDAP mapping de l'onglet Sources du dossier acl_users de votre site.
- La seconde solution consiste à, depuis l'onglet Sources du dossier acl_users de votre site, aller dans le LDAPGroupFolder, et à y gérer manuellement les liens entre les groupes.