Fonctionnement de l’authentification intégrée
Dans la mesure où l’utilisateur est authentifié sur le domaine dans Windows, le navigateur (Firefox, Internet Explorer ou Safari) va essayer de transmettre et de négocier cette identité avec un serveur Web sur lequel l’utilisateur se connecte.Ce site doit être dans la zone de confiance (IE) ou dans la liste des sites pour lesquels ce type d’authentification est permise (
network.automatic-ntlm-auth.trusted-uris sur Firefox)Ce processus est totalement transparent pour l’utilisateur, et totalement sécurisé puisqu’aucune donnée sensible, notamment le mot de passe, n’est échangée entre le navigateur client et le serveur.
Configuration du serveur web
Une fois la partie client paramétrée, passons côté serveur.Ce dernier doit pouvoir traiter les données transmises par le navigateur et vérifier l’identité de l’utilisateur. Ici, nous allons ouvrir une session sur le Domaine Windows en installant le module d’authentification NTLM d’apache 2 :
apt-get install libapache2-authenntlm-perlCeci fait, vous pouvez configurer l’authentification NTML dans le
VirtualHost de votre site, ou dans un fichier .htaccess si la directive AllowOverride vous le permet :
PerlAuthenHandler Apache2::AuthenNTLM
AuthType ntlm,basic
AuthName “Merci de vous authentifier”
require valid-user
PerlAddVar ntdomain "NETBIOS_DOMAIN_NAME DOMAIN_CONTROLER_HOSTNAME"
PerlSetVar defaultdomain NETBIOS_DOMAIN_NAME
PerlSetVar splitdomainprefix 1Tester l’authentification
Créez un fichierinfo.php à la racine de votre site (pensez à le supprimer une fois votre test terminé) en y écrivant :<php
phpinfo();
?>Ouvrez une session Windows sur une machine du domaine. Lancez votre navigateur Web et accédez au fichier
info.php. Si tout se passe bien, vous devriez retrouver votre identifiant de session Windows dans le paramètre d’environnement REMOTE_USER :<?php
getenv('REMOTE_USER');
?>Troubleshooting
Si l’authentification SSO ne fonctionne pas :- Vérifiez que l’adresse de votre site est dans la liste des sites de confiance pour Internet Explorer
- Vérifiez que l’adresse de votre site est bien listée dans le paramètre de configuration de Firefox (
network.negotiate-auth.trusted-uris, voir : http://en.wikipedia.org/wiki/Integrated_Windows_Authentication#Supported_browsers - Vérifiez les paramètres
NETBIOS_DOMAIN_NAMEetDOMAIN_CONTROLER_HOSTNAMEde votre fichier de configuration sur le serveur
Commentaires