Le SSO comme son nom l'indique permet l'autentification à un site Web avec un seul identifiants. Dans les entreprises, vous avez votre mot de passe pour le domaine puis un autre pour une application métier etc... Pas très partique pour les utilisateurs.
Le SSO permet de ce baser sur un annuaire pour vérifier votre identitié. Dans mon exemple, il va se baser sur l'Active Directory de Microsoft.

Une fois que vous allez vouloir consulter votre site Web, il vous demandera une authentification et il vous suffira de saisir vos identifiants du domaine. Avoir qu'un seul identifiant a retenir, parfait non?

De plus, vous pourrez récuperer l'username en variable PHP qui est pratique couplé avec du php-ldap pour faire du filtrage d'affichage en fonction des droits de chacun. (Peux-etre si j'ai le temps je ferais une vidéo).

Bref, vous aurez besoin d'une Debian avec un certain nombre de paquet que je vais vous décrire.

1. Mettre à jour la Debian

apt-get update
apt-get upgrade

2. Installer les paquets

apt-get install libapache2-authenntlm-perl libapache2-mod-perl2 perl build-essential libapache2-mod-php5 php5 apache2

3. Ajouter un fichier de configuration à Apache

Ce fichier va spécifier le type d'authentification de vos sites web
/etc/apache2/conf.d/sso
<location />
PerlAuthenHandler Apache2::AuthenNTLM
AuthType ntlm,basic
AuthName Basic
PerlSetVar ntlmauth on
PerlSetVar ntlmauthoritative on
PerlSetVar ntlmdebug 0
PerlSetVar ntlmserver tieadm01
Require    valid-user
PerlSetVar defaultdomain tiennot
PerlAddVar ntdomain "tiennot tieadm01"
PerlSetVar splitdomainprefix 1
</location>
Attention, "tiennot" est mon nom de domaine et "tieadm01" est mon serveur acceuillant l'Active Directory. Il est possible d'ajouter un serveur secondaire  en modifiant la ligne comme ceci :
PerlAddVar ntdomain "tiennot tieadm01 tieadm02"

4. Redemarrage d'Apache

invoke-rc.d apache2 restart

5. Ping du domaine et du serveur Active Directory

Assurez-vous de bien communiquer avec votre serveur AD et votre domaine
ping tiennot.lan
ping tieadm01
Si vous rencontrez un probleme, vérifier votre fichier resolv.conf
vi /etc/resolv.conf

6. Création d'un fichier PHP

Supprimer le fichier index.html et créé le fichier index.php en ajouter la ligne suivante :
rm /var/www/index.html
vi /var/www/index.php

?> echo $_SERVER["REMOTE_USER"]; <?php

7. Test

Il vous reste plus qu'a ouvrir votre navigateur favoris puis browser votre site web. Une page d'autentification s'affichera en vous demandant vos identifiants du domaine.
Attention, pour les systèmes d'exploitation Windows supérieur à Windows XP, il faut modifier une statégie local de l'ordinateur :
gpedit.msc
Configuration ordinateur > Paramètres Windows > Paramètres de sécurité > Stratégies locales > Options de sécurité
Modifier la stratégie "Sécurité réseau : niveau d'authentification LAN Manager en "Envoyer LM et NTLM - utiliser la sécurité de session NTLM2 si négociée
La vidéo :
A bientôt,
Romain