Problématique
Petit retour d’expérience « à chaud » sur la mise en place d’une authentification LDAP associé au protocole NTLM avec Drupal Commons.
ATTENTION, je ne certifie pas que cela fonctionne à tous les coups. Cette page est juste faite pour partager ce que j’ai fait et donner quelques pistes aux personnes qui seraient confronté à une problématique identique.
Ma société souhaite déployer un outil de communication interne bénéficiant des fonctionnalités sociales. Pour cela je me suis tourné vers Drupal Commons qui me semble être un des choix les plus intéressants du moments.
La difficulté que nous avons ici est de faire en sorte que le personnel soit directement connecté lorsqu’ils accèdent à la page d’accueil de cet outil. Etant dans un environnement Windows cela est possible en passant par Internet Explorer en utilisant le protocole NTLM.
Solution
La premère étape est donc de raccorder l’authentification au serveur LDAP de l’entreprise.
Un premier module nous permet de faire cela simplement: Webserver Authentication.
Après l’avoir installé :
- il faut se rendre sur la page de configuration : drupal_commons/admin/settings/webserver_auth
- entrer le domaine
- cliquez sur « advanced settings »
- Cocher les cases « Strip prefix » et « Strip domain »
- configurer LDAP
Une spécificité de notre installation au niveau serveur est que nous ne sommes pas sous IIS mais sous Apache (sous Windows) pour le serveur sur lequel nous avons installé Drupal Commnons. Il faut ajouter un module Apache permettant l’authentification NTLM. Après pas mal de recherche j’ai réussi à configurer comme suis :
Tout d’abord télécharger le module Apache « mod-auth-sspi » correspondant à votre version d’Apache.
Le zip contient un dossier /doc/ ou vous trouverez le fichier install.txt qui vous présente la configuration que vous aurez à faire.
Vous devez copier le fichier /bin/sspipkgs.exe dans votre dossier /bin de votre install Apache et le fichier /bin/mod_auth_sspi.so dans le dossier modules de votre installation Apache.
Dans le fichier httpd.conf, vous devez :
Ajouter la ligne :
LoadModule sspi_auth_module modules/mod_auth_sspi.so
à la fin de la liste des modules sinon il ne sera pas pris en compte.
En dessous entrez la configuration de votre module. Pour ma part j’ai pris la config trouvée dans le .zip un fichier nommé « my_cfg.txt »:
#
# Configuration for mod_auth_sspi
AuthName "A Protected Place"
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
SSPIOfferBasic On
# SSPIBasicPreferred
# SSPIUsernameCase lower
require valid-user
# End of mod_auth_sspi.
Redémarrez votre serveur et normalement vous avez maintenant configuré votre authentification LDAP et NTLM enfin de manière sommaire.
Si vous souhaitez faire un mapping plus complet avec vos comptes LDAP et les groupes de Drupal Commons (servis par Organic Group), vous devrez installer deux autres modules :
- LDAP Integration :
- Organic Group LDAP : Pour ce module je n’ai a priori rien configuré de spécial. Je pense que pour cette partie cela dépend des spécificités de chaque projet.
Configuration de LDAP integration :
Une fois installé, il faut tout d’abord aller dans :
- le nom du serveur
- le nom de domaine ou l’adresse IP du serveur LDAP
- le port est réglé à 389
- Les cases « Use Start-TLS » et « Store passwords in encrypted form » sont laissé décochées.
- Base DNS : DC=xx,DC=xx
- UserName attribute : sAMAccountName
- Email attibute : mail
- DN for non-anonymous search: on a entré ici un utilisateur spécialement créé pour cette occasion. on entre son identifiant et dans la case du dessous son mot de passe.