LDAP - Lightweight Directory Access Protocol

Concepts

Modèle d'information

Le modèle d'information défini le type de données pouvant être stocké dans l'annuaire LDAP. Une entrée dans l'annuaire (ou entry) correspond à une instance d'une classe d'objet. Une classe regroupe donc un ensemble d'attributs permettant de décrire l'objet. Chaque attribut est défini par un nom, un type, une méthode de comparaions (lexicale pour les chaines de caractères, numérique, ...) ainsi que par un identifiant unique (OID).

Un attribut peut être possédé par plusieurs classes. C'est pourquoi les attributs sont déclaré en dehors d'une classe.

Exemple de déclaration d'un attribut entreprise pour un étudiant (la dernière ligne indique que cet attribut est une chaine de 256 caractères maximum

#umlvPerson
attributetype ( 2.5.4.42.1.5
	NAME 'umlvStudentEnterprise'
	DESC 'Enterprise of a student'
	EQUALITY caseIgnoreMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15(256)
)

LDAP fournit plusieurs classes répondant aux utilisations les plus courantes. Toutefois, il est possible de créer ses propres classes en héritant des classes existantes afin d'ajouter de nouveaux attributs. Voici un exemple de déclaration d'une classe étudiant qui hérite de la classe inetOrgPerson (fournissant déjà des attributs comme le nom, prénom, adresse, ..) en lui ajoutant un attribut facultatif entreprise :

#umlvStudent
objectclass ( 2.5.6.42.2.2
	NAME 'umlvStudent'
	DESC 'Student at the UMLV'
	SUP InetOrgPerson
	MAY (
		enterprise
	)
)

Ces classes peuvent être :

Modèle de nommage

Le modèle de nommage définit l'organisation des donnés dans l'arbre. Il est représenté par le DIT(Directory Information Tree) qui constitue l'arbre de l'annuaire. Chaque noeud de cet arbre est une instance du schéma définie par le modèle d'information. Ces noeuds peuvent être nommé grâce à leur position dans l'arbre.

DIT

Sur le DIT précédent, l'élément DURIS ETIENNE est désigné par sa position dans la branche personnes / i2000 / univ-umlv / fr.

Ce chemin est nommé Distinguished Name (DN) et est représenté comme suit :

cn=DURIS ETIENNE, ou=personnes, o=iƩ000, dc=univ-umlv, dc=fr

Modèle fonctionnel

Le modèle fonctionnel décrit les fonctions offertes par l'annuaire :

Ce modèle permet notamment d'interroger l'annuaire, pour cela il existe un puissant mécanisme de recherche dont voici un schéma non exhaustif de requête :Voici un exemple de filtre de recherche :

&(objectclass=person)(cn=1*)(!(location=Paris))


Ce filtre permet de limiter la recherche aux noeuds de type person dont le nom commence par la lettre A et dont l'attribut location n'est pas Paris.

Manipulation des données

LDAP fournit différentes méthodes pour communiquer avec un annuaire.

Le premier moyen consiste en une connexion type client/serveur permettant à une application de se connecter / authentifier auprès d'un serveur LDAP et d'effectuer des opérations de recherche, d'ajout ou de modification de données. Le schéma ci-dessous décris les étapes d'une session LDAP.

Session LDAP

Si ce type de communication est adapté à la majorité des applications possibles, un autre mode de communication est prévu, notamment pour les opérations d'import ou d'export, ou dans le cas de communication entre annuaires. Deux protocoles complètent ce premier:

Modèle de sécurité

Un point intéresssant de ce protocole LDAP est sa couverture des différentes notions de sécurités. S'il est utilisé aujourd'hui comme point central dans la sécurisation des accès dans de nombreuses architectures, c'est pour la richesse de sa sécurité. LDAP répond aux besoins suivants :