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

Sunyday.net