MAY
07
PHP LDAP Active Directory User browser
07.05.2007 | | Auteur : Ayashi | Catégorie : Programmation


Dans les sociétés utilisant l'Active Directory de Microsoft il peut être intéressant de lier les applications web php avec les comptes utilisateurs. Nous avons déja vu comment utiliser les comptes du domaine pour authentifier les personnes ( voir l'article Authentification en PHP via Active Directory ) Maintenant nous allons utiliser les fonctions LDAP de php pout mettre en place un browser permettant de sélectionner des comptes du domaine et de les retourner à un formulaire HTML ( afin d'en simplifier la saisie ).

Avant de commencer il est nécessaire d'étudier la façon dont est implémenté l'Active Directory. La meilleure représentation étant de découper les classes d'objets ( utilisateurs, groupes, machines ) dans des unitées d'organisation ( OU ) et d'ensuite redécouper par emplacements, ce qui donne par exemple :

Dans cet exemple, les objets du domaine sunyday.net :
  • DC=sunyday, DC=net
..sont rangés dans l'OU objects :
  • ou=objects, DC=sunyday, DC=net
Cette OU contient 3 sous OU permettant de séparer les objets Ordinateurs, Groupes et Utilisateurs. Chaque type d'objet et ensuite placé dans une OU dépendant de sa localisation géographique, par exemple un utilisateur Français sera dans le répertoire :
  • ou=France, ou=Users, ou=objects, DC=sunyday, DC=net
Cette représentation est très pratique dans des gros réseaux comportant plusieurs sites eux même contenant beaucoup d'utilisateurs.


L'Active Directory peut être interrogé en utilisant le protocole standardisé LDAP. Afin d'établire une connexion il est nécessaire de posséder un compte actif dans le domaine. Le script que je vous propose ici se configure via le fichier /ldap/LDAP-Config.php.

 $ldap_window_title    Le titre de la fenêtre du browser.
 $ldap_def_string    Message par défaut quand aucun utilisateur sélectionné.
 $ldap_server    Nom DNS ou adresse IP du serveur LDAP.
 $auth_user    Nom d'utilisateur AD pour le Bind.
 $auth_pass    Mot de passe associé au compte.
 $ldap_dn    OU contenant les utilisateurs. Dans l'exemple ci-dessus cela done :  
  ou=Users, ou=objects, DC=sunyday, DC=net
 $ldap_default_ou    OU ouverte par défaut. Dans l'exemple ci-dessus cela done : France  
 $ad_domain_name    Nom du domaine Active Directory.

Si Active Directory est implémenté de façon différente à l'exemple ci-dessus ( Sans OU géographique par exemple ), le browser que je vous propose devra être modifié et retournera probablement une erreur de recherche.

Pour appeler le script depuis une page HTML, utilisez le code ci-dessous : Une zone de texte doit apparaitre avec un lien à sa droite. Si vous cliquez sur le lien, une fenêtre pop-up s'ouvrira listant les comptes présents dans l'Active Directory ( l'OU $ldap_default_ou sera ouverte par défaut ). Le paramètre passé à la fonction OpenLDAP correspond à l'attribut ID du champ texte dans lequel nous souhaitons mettre la valeur retournée par le browser LDAP. Il est utile de le modifier quand votre page possède plusieur champs textes, dans ce cas, chaque champ devra posséder un ID unique.

Cliquez ici pour télécharger le code source du browser.

Liens Complémentaires

Tags : php, ldap, user, browser | Digg!
Commentaires  | Ajouter un commentaire
wimaxx
10.04.09 / 11:40
Bonjour, faut il PHP5 ou cela fonctionne-t-il avec PHP4?
Rechercher sur internet  ?  | Rechercher!
Trackback
Utilisez le lien http://www.sunyday.net/trackback-PHP-LDAP-Active-Directory-user-browser 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