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 :
..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