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
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?
 CODE  directory  resize  convertisseur  cli  google  champ  adresse  et  javascript  convertir  gps  d%27ozone  web  url  command  couche  gd  regex  script  terrestre  map  lldp  une  protocole  module  ntfs  latitude  en  anomalie  fading  snmp  browser  longitude  +  pour  le  SUR  coordonn%C3%A9es  Cannot  photovoltaique  ad  synop  image  conversion  regexp  trou  mercator  line  PAGE  fade  magn%C3%A9tique  html  dans  du  sunyday  ajax  explication  authentification  les  metar  php  de  ldap  active  des  la  un  nuls  find  

Sunyday.net