Ubuntu Apache 2.4 enable Windows SSO

Pour un site, j’avais dû réaliser une authentification par LDAP, en utilisant PHP. Il s’avère que cette authentification robuste nécessite que l’utilisateur s’identifie trop fréquemment.

L’idée est de faire une authentification automatique grace à ses informations de session Windows, transmises directement au serveur Apache qui fera un contrôle avec le serveur LDAP.

Je pars du principe que vous avez déjà un site opérationnel (donc Apache et autre sont déjà installés et correctement configurés)

Il faut installer quelques paquets supplémentaires:

Sur un serveur de domaine du domaine, il faut exécuter la commande

« serveur-a-tester.mon-domaine.local » est le serveur Apache sur lequel fonctionne votre application

« MON-DOMAINE.LOCAL » (a adapter mais en gardant les majuscules) est le domaine actuel de l’ActiveDirectory

« Utilisateur » et « MotDePasse » sont les identifiant d’un utilisateur de l’AD pour se connecter au serveur Apache, il peut s’agir d’un utilisateur spécifie (Compte de services par exemple)

Le plus important est le fichier final « keytab.txt » : il faut le transférer sur le serveur dans /etc/mon-domaine.local.keytab par exemple

Changer les droits

 

On modifie ensuite le fichier /etc/krb5.conf

On rajoute ce qu’il faut dans le fichier de configuration de notre vhost Apache, dans la directive « Directory »

On restart Apache et on teste

Par défaut Firefox et InternetExplorer ne sont pas prévu pour échanger ces infromations, une fenêtre de connexion apparaît donc. Il suffit de mettre votre login et votre mot de passe pour être identifié correctement.

Pour valider automatiquement le SSO, il faut aller dans about:config de Firefox et chercher les instances

Mettre « mon-domaine.local » dans les 2 champs et l’authentification sera envoyée automatiquement de Windows vers Apache