mar
22
2010

.htaccess et Active Directory

Aujourd’hui je vais vous parler de quelque chose d’assez spécial : L’authentification par apache de personnes à partir d’un annuaire Active Directory.

Pourquoi une telle chose ? Et bien il s’avère que ce n’est pas aussi simple que sa à mettre en œuvre mais quand on l’a fait une fois, on peut le refaire plusieurs fois facilement en copiant les règles dans un fichier « .htaccess ».

Vu que j’ai eu un peu de mal, je vais vous fournir les différentes étapes et le .htaccess final. Tout d’abord vous devez avoir un serveur Windows (2000, 2003 ou 2008) avec le rôle Active Directory. Moi j’ai effectué tout ceci sur un Windows Server 2000.

Ensuite, vous devez connaître votre nom de domine et la structure de l’arbre de votre annuaire. Pour vous aider, voici une application java que j’ai trouvée sur le net, permettant de réaliser ceci. Juste un conseil, laissez juste apparaître dans la base DN les DC=,DC=com.

Sachez que pour pouvoir parcourir votre annuaire, un compte Windows doit être utilisé, pour des raisons de sécurité, je vous conseil de créer un compte lambda avec un mot de passe bidon, non modifiable et verrouillé. Essayez de minimiser les droits de ce compte si un hacker vous le vole.

Pour cet exemple, sachez que je suis dans le domaine virtual.fr donc pour me connecté à mon serveur DNS ayant pour IP 192.168.0.12 je dois renseigner le DN suivant :

 Apache configuration |  copy code |? 
1
DC=virtual,DC=fr

Après avoir testé avec l’application, nous pouvons enfin nous attarder au fichier .htaccess. Vous devez tout d’abord activer les extensions apache2 authzn_ldap et ldap. Si votre .htaccess ne marche pas, activez le module rewrite.

Ensuite voici le fichier .htaccess

 Apache configuration |  copy code |? 
1
AuthName "Warning : Restricted Area !!"
2
AuthType Basic
3
AuthBasicProvider ldap
4
AuthzLDAPAuthoritative off
5
AuthLDAPURL "ldap://serveur.virtual.fr:389/DC=virtual,DC=fr?sAMAccountName?sub?(objectClass=*)" NONE
6
AuthLDAPBindDN "ldap@virtual.fr"
7
AuthLDAPBindPassword motpasse
8
require valid-user 

Donc je vais expliquer chaque ligne :

 Apache configuration |  copy code |? 
1
AuthName "Warning : Restricted Area !!" 
2
#définit le message qui s’affichera sur notre fenêtre de connexion

 Apache configuration |  copy code |? 
1
AuthType Basic 
2
#nous définissons une authentification dite basique

 Apache configuration |  copy code |? 
1
AuthBasicProvider ldap
2
#nous demandons de passer par les annuaires LDAP

 Apache configuration |  copy code |? 
1
AuthzLDAPAuthoritative off
2
#permet de dire que nous n’utilisons pas de certificat
3
#particulier lors de la requête dans Active Directory

 Apache configuration |  copy code |? 
1
AuthLDAPURL "ldap://serveur.virtual.fr:389/DC=virtual,DC=fr?sAMAccountName?sub?(objectClass=*)" NONE
2
#url utilisée pour aller effectuée notre requête. Nous demandons d’aller vérifier le nom de compte 
3
#à partir de n’importe quelle classe d’objet de notre annuaire mais ayant pour contrainte d’appartenir
4
#au domaine virtual.fr
5
#Le NONE veut dire qu'on utilise aucun protocole de sécurité

 Apache configuration |  copy code |? 
1
AuthLDAPBindDN ldap@virtual.fr
2
#définit le login du compte de test

 Apache configuration |  copy code |? 
1
AuthLDAPBindPassword motpasse
2
#et là son mot de passe

 Apache configuration |  copy code |? 
1
require valid-user
2
#pour finir nous acceptons d’afficher le site si seulement l’utilisateur entré est valide.

Voilà. Si vous ne voulez pas vous embêter avec les sessions utilisateurs ou si l’espace est réservé aux personnes enregistrées dans votre annuaire, cette méthode s’avère assez simple à mettre en place. Vous pouvez aussi ajouter différentes contraintes comme le groupe, le poste de travail à utiliser, …

Articles Connexes

A propos de l'Auteur: Benjamin Besse

Je suis Analyste Développeur chez Goomeo et je suis passioné par tout ce qui touche aux technologies du Web. J'ai commencé par apprendre l'utilisation du Framework Zend et j'ai continué naturellement via Android. Le tout seulement avec les bases acquises en DUT et Licence professionnelle Informatique.

Laisser un commentaire

Mots-Clefs