Chapitre 13. Protocole LDAP (Lightweight Directory Access Protocol)

Le protocole Lightweight Directory Access Protocol (ou LDAP) est en fait un ensemble de protocoles ouverts utilisés pour accéder à des informations stockées localement sur un réseau. Il est basé sur le standard X.500 pour le partage de répertoires, mais est moins complexe et moins gourmand en ressources, d'où la référence à LDAP sous le terme "X.500 Lite." Le standard X.500 est un répertoire qui contient des informations hiérarchisées et organisées pouvant inclure des renseignements tels que des noms, des adresses et des numéros de téléphone.

Comme X.500, LDAP organise des informations d'une manière hiérarchique en utilisant des répertoires. Ces répertoires peuvent stocker diverses informations et peuvent même être utilisés d'une manière semblable au service d'informations réseau (ou NIS de l'anglais Network Information Service), permettant à tout un chacun d'accéder à son compte depuis une machine quelconque présente sur un réseau sous LDAP.

Dans la plupart des cas, LDAP sert d'annuaire téléphonique virtuel, permettant aux utilisateurs d'accéder facilement aux coordonnées d'autres utilisateurs. Mais le protocole LDAP est beaucoup plus flexible qu'un annuaire téléphonique traditionnel car il peut renvoyer un demandeur vers d'autres serveurs LDAP de par le monde, fournissant ainsi un référentiel d'informations global et improvisé. À l'heure actuelle cependant, le protocole LDAP est plus généralement utilisé au sein de grandes organisations comme des universités, des services gouvernementaux et des entreprises du secteur privé.

Le protocole LDAP est un système client/serveur. Le serveur peut utiliser diverses bases de données pour stocker un répertoire, chacune d'elles étant optimisée de façon à permettre des opérations de consultation rapides et en grande quantité. Lorsqu'un client LDAP se connecte à un serveur LDAP, il peut soit consulter un répertoire, soit y apporter des modifications. Lors de l'arrivée d'une requête, le serveur y répond localement ou la renvoie à un serveur LDAP de niveau supérieur qui aura lui la réponse. Si l'application cliente tente de changer des informations dans un répertoire LDAP, le serveur vérifie d'abord que l'utilisateur est bien autorisé à effectuer des changements et ensuite ajoute ou met à jour les informations.

Ce chapitre décrit la configuration et l'utilisation de OpenLDAP 2.0, une implémentation Open Source des protocoles LDAPv2 et LDAPv3.

13.1. Pourquoi utiliser LDAP ?

Le principal avantage du protocole LDAP réside dans la possibilité de réunir les informations concernant toute une organisation dans un lieu central. Par exemple, plutôt que de gérer des listes d'utilisateurs pour chaque groupe au sein d'une organisation, LDAP peut être utilisé comme un répertoire central accessible sur tout le réseau. De plus, puisque LDAP prend en charge les fonctions Secure Sockets Layer (SSL) et Transport Layer Security (TLS), des données confidentielles peuvent être protégées contre toute intrusion.

LDAP prend aussi en charge diverses bases de données parallèles pour y enregistrer des répertoires. Ainsi, les administrateurs dispose de la flexibilité nécessaire pour déployer la base de données la plus adaptée au type d'informations que le serveur doit disséminer. De plus, comme LDAP comporte une interface de programmation d'application (ou API de l'anglais Application Programming Interfaces) bien définie, le nombre d'applications compatibles avec LDAP est vaste et croissant aussi bien en quantité qu'en qualité.

13.1.1. Caractéristiques d'OpenLDAP

OpenLDAP comprend un certain nombre de caractéristiques importantes parmi lesquelles figurent :

  • Prise en charge de LDAPv3 — OpenLDAP prend en charge SASL (de l'anglais Simple Authentication and Security Layer), TLS (Transport Layer Security) et SSL (Secure Sockets Layer) entre autres améliorations. De nombreux changements apportés au protocole depuis LDAPv2 visent à augmenter la sécurité de LDAP.

  • Prise en charge de IPv6 — OpenLDAP prend en charge le protocole de la prochaine génération, Internet Protocol version 6.

  • LDAP sur IPC — OpenLDAP peut communiquer au sein d'un système en utilisant IPC (de l'anglais interprocess communication). Il en résulte une sécurité améliorée car il n'est plus nécessaire de communiquer à travers un réseau.

  • Mise à jour de C API — Améliore la manière dont les programmeurs se connectent aux serveurs de répertoires LDAP et les utilisent.

  • Prise en charge de LDIFv1 — Grâce à cette prise en charge, OpenLDAP 2.0 est pleinement compatible avec la version 1 du format LDIF (ou LDAP Data Interchange Format).

  • Amélioration du serveur autonome LDAP — À présent le serveur inclut entre autres un système de contrôle d'accès mis à jour, un pool de conversation et des outils plus performants.