JAN
31
Authentification en PHP via Active Directory
31.01.2007 | | Auteur : Ayashi | Catégorie : Programmation
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

Tags : php, ldap, active directory, authentification | Digg!
Commentaires  | Ajouter un commentaire
Aurélien
14.06.10 / 16:04
comme pierre, j'aimerais bien savoir à quoi correspondent les variables
Pierre
08.03.10 / 18:51
Bonjour,Quelqu'un peut til me renseigner ?$Conf_REALM = "Active Directory login"; = Il faut mettre quoi ?$Conf_Description = "Pierre"; $Conf_LDAP_Server = "PC.microsoft.com"; $Conf_Def_Dom = "Microsoft.com";
daxter
17.02.10 / 11:42
Marche tres bien ! Merci beaucoup ;)
mime
21.04.09 / 19:44
Bonjour,ce script est-il encore valide à ce jour ?
Ayashi
22.02.08 / 9:14
Tu as raison erictomcat, en voulant enlever les références à mes serveurs j'ai fait une erreur dans le nom de la variable. Script corrigé!
Max
04.02.08 / 21:12
En effet, il y a comme un stud. Que je tente une bonne ou mauvaise authentification je tombe toujours une page blanche. Tu devrais p-e y jetter un coup d'oeil pour rectifier ça. En tout cas c'est très intéressant.
erictomcat
29.01.08 / 23:02
il n'y aurait pas une erreur a la ligne 8 par rapport à la ligne 3 ?.Deplus apres correction j'ai bien la boite d'identification mais 3 fois de suite mais rien ne passe ensuite, aucun message d'erreur et pas d'authentification.
Rechercher sur internet  ?  | Rechercher!
Trackback
Utilisez le lien http://www.sunyday.net/trackback-authentification-PHP-active-directory pour faire un trackback vers cette article depuis votre site web. Les trackbacks sont soumis à une approbation mutuelle et susceptibles d'être supprimés si jugés indésirables.
Retrieve RSS feed. Get notified by eMail. Meteo Parser.
Computing widgets...
Jean-Damien POGOLOTTI© 2k6-2k7 | Design // Code

Qui suis-je?

Touche à tout restant bouche bée devant la complexité et la cohérence de ce monde je m'évertue à essayer d'en comprendre les rouages. En passant par la météorologie, la physique ou bien l'informatique, tout est une raison d'apprendre!
Comment les gens arrivent-il ici?
 directory  line  javascript  mercator  conversion  active  des  convertir  longitude  le  ldap  gps  CODE  terrestre  SUR  url  ajax  metar  image  sunyday  une  cli  menu  trou  PAGE  regexp  anim%C3%A9  snmp  www.sunyday.net  et  convertisseur  regex  avec  d%27ozone  authentification  protocole  map  pour  lldp  sunyday.net  anomalie  fade  de  explication  coordonn%C3%A9es  web  fading  find  +  adresse  ntfs  latitude  script  nuls  couche  un  dans  en  synop  la  champ  photovoltaique  html  module  php  browser  google  les  ad  magn%C3%A9tique  

Sunyday.net