|
Table des matières
LXXIII. LDAPIntroductionLDAP siginifie : Lightweight Directory Access Protocol (Protocole léger d’accès aux annuaires). C’est un protocole utilisé pour accéder aux “serveurs de dossiers”. Ces serveurs sont des bases de données particulières, qui stockent les informations sous forme d’arborescence. Le concept d’arborescence est similaire à celui de la structure de votre système de fichier, hormis le fait que dans ce contexte, la racine s’appelle “le monde”, et que le premier niveau de sous-dossier s’appelle “pays”. Les niveaux encore en dessous sont des “compagnies” “organisation” ou “places”, et encore plus bas, vous trouverez des “personnes” et même des “équipements” et “documents”. Pour identifier un fichier dans votre disque, vous utilisez un chemin tel que
/usr/local/mon_application/documents Le slash indique une division dans la référence, et la séquence est lue de gauche à droite. l’équivalent d’une référence globale en LDAP s’appelle un “nom distingué” (”distinguished name”), aussi appelé “dn”. Un exemple de dn serait :
cn=Jean Dupond,ou=Comptabilité,o=Ma Compagnie,c=FR La virgule marque la séparation de chaque division comme référence, et la séquence est lue de droite à gauche. Il faut donc lire :
country = FR organization = Ma Compagnie organizationalUnit = Comptabilité commonName = Jean Dupond De la même façon qu’il n’y a pas de règle obligatoire sur comment organiser les fichiers sur un disque dur, un responsable de serveur de dossiers peut organiser le serveur comme cela lui semble le plus pratique. Cependant, il y a des conventions à utiliser. Le principe est que vous ne pouvez pas accéder à un serveur de dossier à moins que vous ne connaissiez sa structure, de même que vous ne pouvez écrire une base de données sans en connaître les tables et les bases. Bien plus d’informations sont disponibles aux URL suivantes (en anglais) : Le SDK Netscape contient un guide du programmeur (Programmer's Guide) très utile, au format HTML (et en anglais). Pré-requisVous devez télécharger et compiler les bibliothèques clientes LDAP depuis soit OpenLDAP ou Bind9.net pour assurer le support LDAP. InstallationLe support LDAP de PHP n’est pas activé par défaut. Vous devez utiliser l’option de configuration “–with-ldap[=DIR]” lorsque vous compilez PHP, où DIR est le répertoire d’installation du serveur LDAP. Pour activer le support SASL, assurez-vous que l’option de configuration “–with-ldap-sasl[=DIR]” est utilisée et que le fichier “sasl.h” existe sur votre système.
Configuration à l'exécutionLe comportement de ces fonctions est affecté par la configuration dans le fichier “php.ini”. Tableau 1. Options de configuration
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe G. Types de ressourcesCette extension ne définit aucune ressource. Constantes pré-définiesCes constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l’exécution. “LDAP_DEREF_NEVER” (entier) “LDAP_DEREF_SEARCHING” (entier) “LDAP_DEREF_FINDING” (entier) “LDAP_DEREF_ALWAYS” (entier) “LDAP_OPT_DEREF” (entier) “LDAP_OPT_SIZELIMIT” (entier) “LDAP_OPT_TIMELIMIT” (entier) “LDAP_OPT_PROTOCOL_VERSION” (entier) “LDAP_OPT_ERROR_NUMBER” (entier) “LDAP_OPT_REFERRALS” (entier) “LDAP_OPT_RESTART” (entier) “LDAP_OPT_HOST_NAME” (entier) “LDAP_OPT_ERROR_STRING” (entier) “LDAP_OPT_MATCHED_DN” (entier) “LDAP_OPT_SERVER_CONTROLS” (entier) “LDAP_OPT_CLIENT_CONTROLS” (entier) “LDAP_OPT_DEBUG_LEVEL” (entier) “GSLC_SSL_NO_AUTH” (entier) “GSLC_SSL_ONEWAY_AUTH” (entier) “GSLC_SSL_TWOWAY_AUTH” (entier) ExemplesLit les informations sur toutes les entrées dont le nom commence par “S” sur le serveur de dossier, puis affiche le nom et l’adresse email.
<?php // La séquence de base avec LDAP est // connexion, liaison, recherche, interprétation du résultat // déconnexion echo '<h3>requête de test de LDAP</h3>'; echo 'Connexion ...'; $ds=ldap_connect("localhost"); // doit être un serveur LDAP valide ! echo 'Le résultat de connexion est ' . $ds . '<br />'; if ($ds) { echo 'Liaison ...'; $r=ldap_bind($ds); // connexion anonyme, typique // pour un accès en lecture seule. echo 'Le résultat de connexion est ' . $r . '<br />'; echo 'Recherchons (sn=S*) ...'; // Recherche par nom $sr=ldap_search($ds,"o=My Company, c=US", "sn=S*"); echo 'Le résultat de la recherche est ' . $sr . '<br />'; echo 'Le nombre d\'entrées retournées est ' . ldap_count_entries($ds,$sr) . '<br />'; echo 'Lecture des entrées ...<br />'; $info = ldap_get_entries($ds, $sr); echo 'Données pour ' . $info["count"] . ' entrées:<br />'; for ($i=0; $i<$info["count"]; $i++) { echo 'dn est : ' . $info[$i]["dn"] . '<br />'; echo 'premiere entree cn : ' . $info[$i]["cn"][0] . '<br />'; echo 'premier email : ' . $info[$i]["mail"][0] . '<br />'; } echo 'Fermeture de la connexion'; ldap_close($ds); } else { echo '<h4>Impossible de se connecter au serveur LDAP.</h4>'; } ?> Utiliser les fonctions LDAP de PHPAvant d’utiliser les fonctions LDAP, vous devez connaître
La séquence LDAP typique que vous exécuterez sera la suivante :
ldap_connect() établit une connexion au serveur
|
ldap_bind() connexion anonyme ou identifiée | réalisation de commandes comme des recherches ou des modifications, puis affichage du résultat. | ldap_close() // déconnexion Table des matières
ldap_8859_to_t61 – Convertit les caractères 8859 en caractères t61 ldap_add – Ajoute une entrée dans un dossier LDAPldap_bind – Authentification au serveur LDAPldap_close – Alias de ldap_unbind() Travail collaboratifContribuez, en ajjoutant des elements a cette page de manuel : Merci de votre aide |