Configurer l’authentification Windows avec Apache et Drupal Commons


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 :

Cliquer sur « Add Server »
Entrer :
  • 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.
On sauve la configuration.
Si l’on revient dans: HomeAdministerSite configurationLDAP on clique sur Data
dans « Synchronize LDAP data with Drupal profiles: » on coche « Every time user object loaded in Drupal. (May cause high LDAP traffic.) ».
Pour le dernier onglet : Groups, nous avons ien configuré de spécial.
Et c’est fini. Lorsque l’on navigue dans un compte utilisateur on verra ainsi les différents groupes de l’AD.
Le site est maintenant pris en compte par NTLM et LDAP. Attention toutefois ceci n’est qu’un premier retour d’expérience sur cette implémentation. Nous avons maintenant à tester notre configuration et probablement à l’affiner. En effet nous n’avons pas tout configuré et il est probable que nous rencontrerons encore quelques soucis que nous devrons résoudre.

Les commentaires sont fermés.