Chapitre 2. Présentation de la norme LDAP

Table des matières

Historique
Simplification du protocole d'accès
Simplification du serveur
Première évolution: vers la version 3
Description de la norme
Description générale
Modèle de données
Modèle de nommage
Modèle fonctionnel
Modèle de sécurité
Étendre LDAP
Meta recherche

Résumé

Ce chapitre présentera la norme LDAP, en abordant tout d'abord son historique, puis en décrivant la norme elle même et les usage qui en sont faits.

Historique

Simplification du protocole d'accès

La difficulté rencontrée lors de l'implémentation du protocole DAP provient de sa modélisation basé sur la pile OSI. Pour éviter d'avoir à écrire toutes les couches OSI, d'autres protocoles ont été définis pour accéder aux annuaires X500 en s'appuyant sur TCP/IP. Il y a eu ainsi deux nouveaux protocoles de définis au début des années 90 : Directory Assistance Service (DAS) et Directory Interface to X.500 Implemented Efficiently (DIXIE). Ces deux protocoles ont malheureusement été conçus pour s'interfacer à une implémentation donnée d'un serveur X500.

C'est pour cela qu'un groupe de lIETF, le groupe Open Systems Interconnection-Directory Services (OSI-DS) s'est réuni pour concevoir une simplification du protocole DAP. Après deux premières RFC de 1993, le résultat final de ces travaux a été les RFC [rfc1777], [rfc1778] et [rfc1779] publiées en mars 1995 et définissant la version 2 du protocole DAP Allégé (Lightweight), LDAP.

À cette étape, le protocole LDAP est une simplification avancée de DAP, fournissant quasiment les même fonctionnalités, mais représentant d'avantages d'informations sous la forme de chaînes de caractères et utilisant un sous ensemble de l'encodage de DAP. Et bien sûr LDAP utilise TCP comme couche réseau..

Simplification du serveur

Le protocole LDAP n'étant qu'une simplification du protocole DAP, c'est à dire de la couche réseau, les requêtes LDAP devaient être converties en DAP par des serveurs intermédiaires avant d'être transmises à des serveur X500. Début 1995, 99% des serveurs X500 sont accédés par LDAP. Mais les implémentations des serveurs continuent à être complexes.

Après avoir écrit la première implémentation du protocole LDAP l'Université du Michigan écrit un serveur natif LDAP, pour pouvoir se débarrasser des serveurs intermédiaires passerelles entre les requêtes DAP LDAP. Dès le départ ce serveur est fourni avec ses sources et un kit de développement, ce qui a favorisé la propagation de la norme.

Début 1996 Netscape prend la tête d'une coalition pour promouvoir l'usage de LDAP.

Première évolution: vers la version 3

Après la version 2 de la norme, il était nécessaire d'y apporter quelques modifications pour répondre à quelques difficultés rencontrées. L'évolution de la norme vers la version 3 a intégré:

  • L'utilisation de l'encodage UTF-8 pour pouvoir manipuler des chaînes de n'importe quelle langue.
  • Les referrals ont été normalisés. Ils n'étaient pas présents dans la version 2 de LDAP.
  • L'opération de connexion à un annuaire a été modifiée pour accepter le protocole Simple Authentication and Security Layer (SASL), et Transport Layer Security (TLS).
  • La norme inclut maintenant des mécanismes d'extension. Il est possible de réaliser des opérations supplémentaires à celles décrites dans la norme, tout en s'appuyant sur le protocole existant. Il est aussi possible, par le biais de contrôle, de modifier le comportement des opérations de base.
  • Un annuaire peut être interrogé pour accéder à son schéma, et pour connaître les extensions et les contrôles qu'il implémente.
  • Intégration dans la norme LDAP du schéma X500. Certains classes d'objets et attributs définis dans la norme X500 doivent être reconnus par les serveur LDAP.

La norme LDAP version 3 est défini dans la [rfc3377] qui est en réalité une meta RFC. En effet cette RFC définit la norme LDAP version 3 comme une liste de RFC. Cette liste de RFCs est la suivante:

[rfc2251]
Définition du protocole réseau LDAP, du modèle LDAP et des différentes opérations.
[rfc2252]
Définition de la syntaxe des attributs.
[rfc2253]
Syntaxe des DN et leur représentation en UTF-8.
[rfc2254]
Définition des filtres de recherche.
[rfc2255]
Définition des urls.
[rfc2256]
Éléments des schémas de base LDAP.
[rfc2829]
Méthodes d'authentification.
[rfc2830]
Description d'une opération Start TLS, qui permet à un client et à un serveur d'établir une connexion sécurisée.

La version 3 de la norme est entièrement compatible avec la version 2. Les clients se basant encore sur la version 2 peuvent se connecter sur des serveurs implémentant la version 3. Dans le cas du serveur d'Openldap à partir de la version 2.1 cela nécessite un paramétrage particulier.