Le single sign on web permet aux utilisateurs d’un parc informatique d’ouvrir leurs sessions Windows sur un contrôleur de domaine de l’infrastructure en utilisant la fonction d’authentification intégrée de Windows pour leur éviter d’avoir à ressaisir leur login et mot de passe lorsqu’ils souhaitent se connecter à l’intranet.
La solution SSO -Single Sign On authentification (https://www.tools4ever.fr) proposée se fonde sur un environnement où des utilisateurs sous Windows XP ouvrent leur session sur un contrôleur de domaine Active Directory / Windows Server 2003, et se connectent à un serveur Web Apache 2 / PHP 5.2. Lorsque l’utilisateur est authentifié sur le domaine dans Windows, le navigateur - Firefox, Internet Explorer ou Safari - va tenter de transmettre et de négocier cette identité avec un serveur Web sur lequel l’utilisateur va se connecter. Ce site doit toutefois être dans la zone de confiance ou dans la liste des sites pour lesquels ce type d’authentification est permis : single sign on solution. Ce processus est complètement transparent pour l’utilisateur, et totalement sécurisé vue qu’aucune donnée sensible comme par exemple le mot de passe, n’est échangée entre le navigateur client et le serveur.
Une fois que la partie client est paramétrée, le serveur doit être en mesure de traiter les données transmises par le navigateur et vérifier l’identité de l’utilisateur. Ouvrons par exemple une session sur le Domaine Windows en installant le module d’authentification NTLM d’apache 2. Lorsque cela est fait, il est possible de configurer l’authentification NTML dans le VirtualHost du site de l’utilisateur, ou dans un fichier .htaccess si la directive AllowOverride le permet : PerlAuthenHandler Apache2: AuthenNTLM AuthType ntlm,basicAuthName “Merci de vous authentifier” require valid-user PerlAddVarntdomain"NETBIOS_DOMAIN_NAMEDOMAIN_CONTROLER_HOSTNAME"PerlSetVar defaultdomain NETBIOS_DOMAIN_NAMEPerlSetVar splitdomainprefix 1. Pour tester l’authentification, créez un fichier info.php à la racine de votre site (supprimez-le 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.
Puis 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'); Au cas où l’authentification SSO ne fonctionne pas : vérifiez que l’adresse du site est dans la liste des sites de confiance pour Internet Explorer ,vérifiez que l’adresse de votre site soit bien listée dans le paramètre de configuration de Firefox .