Il peut être utile d'inclure une authentification Active Directory dans vos applications PHP. En utilisant
le module LDAP fournis de base dans les distributions de PHP, il est possible de tester l'existance d'un
utilisateur et son mot de passe. Les étapes d'authenfication via LDAP sont les suivantes :
- On force une erreur 401 pour faire apparaitre la fenêtre de login.
- On se connecte au serveur LDAP. ( Controleur de domaine )
- On tente un Bind avec le login / mdp de l'utilisateur.
- On vérifie le code de retour LDAP.
Si l'utilisateur est authentifié, la variable
$auth_user contiendra son UserID dans le format
Domain\UserID. Si l'authentification échoue, on redirige l'utilisateur vers la page
NotAllowed.php.
Par défaut Internet Explorer proposera 3 tentatives de login, cette valeur ne peut être changée coté
script.
Le module LDAP se base sur certaines DLL de OpenSSL qui sont incluses dans les version de PHP inférieur à 4.2.0, pour les version
supérieurs, Vous devrez probablement télécharger OpenSSL et copier
libeay32.dll et
ssleay32.dll dans le path de windows. Pour activer l'extension LDAP dans PHP, il est nécessaire
de décommenter la ligne suivante de votre fichier PHP.ini :
extension=php_ldap.dll
Ce petit exemple force l'apparition d'une boite d'authentification sur le navigateur en lui envoyant
une erreur
HTTP 401. Il tente ensuite une connection au serveur LDAP ( généralement un controleur de
domaine Active Directory ), si le BIND avec les variables PHP_AUTH_USER / PHP_AUTH_PW ( variables remplies
par la boite de login ) est réussit, l'utilisateur est authentifié, sinon il est redirigé vers une autre
page.
Liens Complémentaires