Configuration du SSO NTLM pour Apache 2
NTLM est une méthode d'identification des utilisateurs peu sécurisée disponible dans les réseaux Windows. Malgré le fait qu'elle met en place des failles de sécurité, elle est très utilisée dans les entreprises, car elle permet aux utilisateurs de ne saisir qu'une seule fois leur mot de passe : à leur arrivée sur l'ordinateur. Cet article vous explique comment mettre en place un Single Sign On NTML pour Apache 2 sur Ubuntu Dapper Drake.
Installation
Nous commençons par installer le module Perl pour Apache 2 :
sudo apt-get install libapache2-mod-perl2 perl build-essential
Nous téléchargeons ensuite les sources de Apache2::AuthenNTLM
wget --output-document=/tmp/Apache2-AuthenNTLM-0.02.tar.gz http://search.cpan.org/CPAN/authors/id/S/SP/SPEEVES/Apache2-AuthenNTLM-0.02.tar.gz
Et nous installons ce module :
tar --directory /tmp -xzf /tmp/Apache2-AuthenNTLM-0.02.tar.gz
cd /tmp/Apache2-AuthenNTLM-0.02
perl Makefile.PL
make
make test
sudo make install
Configuration
Nous pouvons maintenant configurer notre serveur afin qu'il utilise l'identification NTML. Ajoutez les lignes suivantes dans la configuration de votre VirtualHost, dans une section Directory :
# Enable the Authentication module
PerlAuthenHandler Apache2::AuthenNTLM
# Do NTLM and basic authentication
AuthType ntlm,basic
# The name that should be displayed in the Auth box, if NTLM fails
AuthName OurCompany
# Ask for a valid user.
require valid-user
# domain pdc bdc
# Domain : Your windows domain
# pdc : Primary Domain Controller
# bdc : Backup Domain controller.
#
# Note : Multiple domains can be specified.
PerlAddVar ntdomain "OURDOMAIN domainpdc domainsdc"
# What should be the default domain
PerlSetVar defaultdomain OURDOMAIN
# The user names are in the form "OURDOMAIN\user_name". Let us split it.
PerlSetVar splitdomainprefix 1
# Set the debug variables
PerlSetVar ntlmdebug 0
PerlSetVar ntlmauthoritative off
Vous devez simplement modifier le texte en gras dans ces lignes pour qu'il corresponde à votre configuration. Il ne vous reste plus qu'a recharger la configuration d'Apache 2 :
sudo /etc/init.d/apache2 reload
Maintenant essayez de vous connecter à votre site en utilisant Internet Explorer pour vérifier que tout marche correctement.
Remerciements
- Merci aux développeurs de Dupral pour leur page de documentation NTLM Authentication.
- Merci à Shannon Eric Peevey pour Apache2::AuthenNTLM.
alors...
PDC : C'est le serveur de domaine windows (Primary Domain Controleur): ton serveur active directory.
Je n'ai jamais réussi a faire marcher ce howto, mais je pense qu'il est presque fonctionnel. Si ton active directory est propre, je te conseille de regarder du coté de kerberos. Lit aussi la documentation de AuthenNTLM
Active Directory [propre ?]
le problème pour réussir cette connexion c'est que mon OURDOMAIN domainpdc domainsdc
Donne : interne.masociété.com dsiad1 dsiad2
J'ai mis l'adressage ip de dsiad1 dsiad2 dans /etc/hosts
et dans mon /etc/resolv.conf j'ai interne.masociete.fr
J'ai l'intuition que c'est mon domaine qui pose problème (intuition basée sur les log apache)
comment faire pour pointer comme dans le fichier /etc/hosts le domaine interne.masociete.fr en INTERNE.
Ce qui me permettrai de ne plus avoir de dot (.) dans mon fichier de config....
Merci
ouille
search masociete.fr
nameserver adresse.ip.du.dns
sauf évidement si tu as des adresses internes du style : dsiad1.interne.masociete.fr
ensuite, je crois que l'information domainsdc est optionelle. De plus, ce n'est pas le domaine AD que tu doit utiliser dans le fichier de config, mais le domaine SAMBA, c'est à dire, non pas masociete.fr mais MASOCIETE
En espèrant que ca t'aide.
éclaircissements ?
Je l'ai appliqué, et cela ne fonctionne pas encore, il faut dire que Active Directory est capricieux,
alors je voudrais juste deux éclaircissements :
Domain : c'est le domaine Windows ? de la forme INTERNEMASOCIETE
pdc : Le nom de la machine que l'on peut avoir par ping ?