Comment Ca Marche - Communauté informatique  
   
Accueil - Encyclopédie informatiqueTélécharger l'encyclopédieContribuer à cet article

Internet - Le protocole LDAP

Le protocole LDAP Encyclopédie


Introduction à LDAP

LDAP (Lightweight Directory Access Protocol, traduisez Protocole d'accès aux annuaires léger et prononcez "èl-dap") est un protocole standard permettant de gérer des annuaires, c'est-à-dire d'accèder à des bases d'informations sur les utilisateurs d'un réseau par l'intermédiaire de protocoles TCP/IP.

Les bases d'informations sont généralement relatives à des utilisateurs, mais elles sont parfois utilisées à d'autres fins comme pour gérer du matériel dans une entreprise.

Le protocole LDAP, développé en 1993 par l'université du Michigan, avait pour but de supplanter le protocole DAP (servant à accéder au service d'annuaire X.500 de l'OSI), en l'intégrant à la suite TCP/IP. A partir de 1995, LDAP est devenu un annuaire natif (standalone LDAP), afin de ne plus servir uniquement à accéder à des annuaires de type X500. LDAP est ainsi une version allégée du protocole DAP, d'où son nom de Lightweight Directory Access Protocol.

Présentation de LDAP

Le protocole LDAP définit la méthode d'accès aux données sur le serveur au niveau du client, et non la manière de laquelle les informations sont stockées.

Le protocole LDAP en est actuellement à la version 3 et a été normalisé par l'IETF (Internet Engineering Task Force). Ainsi, il existe une RFC pour chaque version de LDAP, constituant un document de référence :

Ainsi LDAP fournit à l'utilisateur des méthodes lui permettant de :
  • se connecter
  • se déconnecter
  • rechercher des informations
  • comparer des informations
  • insérer des entrées
  • modifier des entrées
  • supprimer des entrées
D'autre part le protocole LDAP (dans sa version 3) propose des mécanismes de chiffrement (SSL, ...) et d'authentification (SASL) permettant de sécuriser l'accès aux informations stockées dans la base.

L'arborescence d'informations (DIT)

LDAP présente les informations sous forme d'une arborescence d'informations hiérarchique appelée DIT (Directory Information Tree), dans laquelle les informations, appelées entrées (ou encore DSE, Directory Service Entry), sont représentées sous forme de branches.
Une branche située à la racine d'une ramification est appelée racine ou suffixe (en anglais root entry).

Chaque entrée de l'annuaire LDAP correspond à un objet abstrait ou réel (par exemple une personne, un objet matériel, des paramètres, ...).

Chaque entrée est constituée d'un ensemble de paires clés/valeurs appelées attributs.

Directory Information Tree de LDAP

Les attributs des entrées

Chaque entrée est constituée d'un ensemble d'attributs (paires clé/valeur) permettant de caractériser l'objet que l'entrée définit. Il existe deux types d'attributs :

  • Les attributs normaux: ceux-ci sont les attributs habituels (nom, prénom, ...) caractérisant l'objet
  • Les attributs opérationnels: ceux-ci sont des attributs auxquels seul le serveur peut accèder afin de manipuler les données de l'annuaire (dates de modification, ...)

Une entrée est indexée par un nom distinct (DN, distinguished name) permettant d'identifier de manière unique un élément de l'arborescence.

Un DN se construit en prenant le nom de l'élément, appelé Relative Distinguished Name (RDN, c'est-à-dire le chemin de l'entrée par rapport à un de ses parents), et en lui ajoutant l'ensemble des nom des entrées parentes.
Il s'agit d'utiliser une série de paires clé/valeur permettant de repérer une entrée de manière unique. Voici une série de clés généralement utilisées :

  • uid (userid), il s'agit d'un identifiant unique obligatoire
  • cn (common name), il s'agit du nom de la personne
  • givenname, il s'agit du prénom de la personne
  • sn (surname), il s'agit du surnom de la personne
  • o (organization), il s'agit de l'entreprise de la personne
  • u (organizational unit), il s'agit du service de l'entreprise dans laquelle la personne travaille
  • mail, il s'agit de l'adresse de courrier électronique de la personne (bien évidemment)
  • ...
Ainsi un Distinguished Name sera de la forme :
uid=jeapil,cn=pillou,givenname=jean-francois
Le Relative Distinguished Name étant ici "uid=jeapil".

Ainsi, on appelle schéma l'ensemble des définitions d'objets et d'attributs qu'un serveur LDAP peut gérer. Cela permet par exemple de définir si un attribut peut possèder une ou plusieurs valeurs. D'autre part, un attribut nommé objectclass permet de définir les attributs étant obligatoires ou facultatifs...

Consulter les données

LDAP fournit un ensemble de fonctions (procédures) pour effectuer des requêtes sur les données afin de rechercher, modifier, effacer des entrées dans les répertoires.

Voici la liste des principales opérations que LDAP peut effectuer :

Opération Description
Abandon Abandonne l'opération précédemment envoyées au serveur
Add Ajoute une entrée au répertoire
Bind Initie une nouvelle session sur le serveur LDAP
Compare Compare les entrées d'un répertoire selon des critères
Delete Supprime une entrée d'un répertoire
Extended Effectue des opérations étendues
Rename Modifie le nom d'une entrée
Search Recherche des entrées d'un répertoire
Unbind Termine une session sur le serveur LDAP

Le format d'échange de données LDIF

LDAP fournit un format d'échange (LDIF, Lightweight Data Interchange Format) permettant d'importer et d'exporter les données d'un annuaire avec un simple fichier texte. La majorité des serveurs LDAP supportent ce format, ce qui permet une grande interopérabilité entre eux.

La syntaxe de ce format est la suivante :

[<id>]
dn: <distinguished name>
<attribut> : <valeur>
<attribut> : <valeur>
...
Dans ce fichier, id est facultatif, il s'agit d'un entier positif permettant d'identifier l'entrée dans la base de données.

  • chaque nouvelle entrée doit être séparée de la définition de l'entrée précédente à l'aide d'un saut de ligne (ligne vide)
  • Il est possible de définir un attribut sur plusieurs lignes en commençant les lignes suivantes par un espace ou un tabulation
  • Il est possible de définir plusieurs valeurs pour un attribut en répétant la chaîne nom:valeur sur des lignes séparées
  • lorsque la valeur contient un caractère spécial (non imprimable, un espace ou :), l'attribut doit être suivi de :: puis de la valeur encodée en base64

Discussions pertinentes trouvées dans le forum

09/10 10h43 ldap connexion [LDAP] Probleme de connexion Linux/Unix 04/01 22h05->cd24
07/06 12h10 ldap ldap Linux/Unix 07/06 18h44->saga95
23/08 12h14 php ldap ldap 3.3 package [PHP/LDAP]LDAP-3.3 package Webmastering 23/08 16h27->StreM4
02/06 11h26 annuaire ldap configuration [annuaire LDAP, configuration] Linux/Unix 02/06 11h50->saga93
26/07 15h06 serveur web ldap v [Serveur web et LDAP] question urgente s'il v Webmastering 26/07 17h10->kaouthar20053
02/12 15h43 information ldap relation samba Information sur ldap en relation avec samba Linux/Unix 02/12 17h15->thrprg1
09/06 08h55 mot passe ldap mot de passe et Ldap Développement 21/06 14h37->socquetsarah1
05/10 12h39 ldap log var log [LDAP] plus de log dans /var/log Linux/Unix 05/10 12h43->darkukai1
27/11 16h54 openldap ldapadd ldapsearch [LDAP] prob ldapadd ldapsearch Logiciels/Pilotes 29/11 17h15->tip top1
07/06 17h27 header.php footer.php ldap admin header.php footer.php ??? ldap admin Webmastering 09/06 22h11->Dreamer18
Discussion fermée Problème résolu LDAP Plus de discussions sur « LDAP »

Ce document intitulé « Internet - Le protocole LDAP » issu de l'encyclopédie informatique Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.