Passer au contenu

LDAP : un protocole d’annuaires léger

Introduit par l’IETF en 1997, LDAP v3 ne cesse de s’enrichir et gère aujourd’hui tous les mécanismes de sécurité et de contrôle d’accès nécessaires au déploiement de services d’annuaires répartis contenant des données publiques ou privées.

LDAP est un protocole réseau permettant d’accéder à des données situées dans des annuaires. Indépendant et extensible, LDAP est spécifié par plusieurs groupes de travail de l’IETF. Conçu initialement pour le développement d’applications légères capables d’accéder à des annuaires X.500, LDAP est rapidement devenu la solution de choix pour tous les types d’applications ayant recours à des annuaires sur des réseaux IP. La norme de base définit à la fois le protocole pour accéder à l’information contenue dans l’annuaire, un modèle de représentation et de sécurité des données d’annuaires, des règles de nommage et d’organisation de ces mêmes données et le format des échanges entre applications clientes et serveurs LDAP.

Un modèle de données compatible avec X.500

Le modèle de données géré par LDAP est identique à celui de son aîné, X.500. Les données sont représentées par un arbre (DIT) au modèle proche des systèmes de fichiers Unix. Chaque élément de cet arbre, une imprimante, une personne, des paramètres de configuration, sont autant d’entrées qui contiennent des attributs, ou des champs, auxquels sont associées une ou plusieurs valeurs. Les noms et les types des attributs que peut contenir un arbre DIT sont décrits au sein d’un dictionnaire (un schéma LDAP). Ce schéma spécifie notamment si une entrée peut admettre plusieurs attributs d’un même type, par exemple plusieurs adresses e-mail pour une même personne. Il détermine également la syntaxe à laquelle la valeur d’un attribut doit se conformer et la nature des opérations de recherche (filtres) qui peuvent être appliquées aux valeurs d’un type donné : par exemple, rechercher tous les utilisateurs qui ont accès à telle application. Chaque entrée de l’arbre DIT est identifiée par un nom unique qui correspond à la valeur d’un de ses attributs (DN). La localisation complète d’un élément de l’arbre est réalisée par concaténation des différents DN des entrées comprises entre la racine de l’arbre et cet élément. Par ailleurs, chaque entrée du DIT est fortement typée et peut être considérée comme une instance d’une classe spécifique, classe décrite au sein d’un schéma LDAP, qui permet au serveur d’annuaires de déterminer les attributs que peut contenir cette entrée.

Une mise en place d’annuaires distribués

Un annuaire LDAP peut être distribué sur plusieurs serveurs, chacun de ces serveurs pouvant maintenir une version complète de l’annuaire, régulièrement répliquée. Cette répartition des données permet à la fois de construire des annuaires d’une complexité arbitraire et de procéder à une répartition de charge entre les serveurs. Correctement exploitée, la réplication des données d’annuaires permet d’accroître sensiblement les performances globales du système et se révèle notamment utile pour les accès à des bases d’authentification dans le cadre d’applications web critiques. Outre ce modèle de données, LDAP spécifie un format d’échange entre applications clientes et serveurs d’annuaires mais n’impose aucun mode particulier pour la mise en ?”uvre de tels échanges. Des produits LDAP commerciaux peuvent ainsi proposer des échanges en modes synchrones, asynchrones, groupés… Pour traiter une demande en provenance d’une application cliente, un serveur LDAP est libre d’émettre des requêtes vers d’autres services d’annuaires (LDAP ou non). Depuis la version 3, publiée en 1997, le protocole permet même à un serveur de renvoyer à un client la référence d’un autre serveur LDAP capable de traiter sa requête. Cette fonction permet de répartir et d’équilibrer la charge de traitement et de pallier l’indisponibilité ou le dysfonctionnement d’un élément de l’architecture de service distribuée. Les opérations gérées par le protocole sont classiques : recherche multicritère, ajout, suppression et modification d’entrées. LDAP v3 gère aussi des recherches complexes d’éléments. Celles-ci sont mises en ?”uvre selon un dispositif à trois niveaux, à commencer par la localisation de l’entité (RDN), suivie du filtre (couples attributs/valeurs) et enfin la portée de la recherche i.e. (au choix : le RDN spécifié, les éléments situés un niveau sous celui-ci, ou le sous-arbre complet issu de cet élément).L’accès aux services LDAP peut également être mis en ?”uvre depuis une application C/C++, Java, JavaScript ou Perl grâce à des API d’accès aux fonctions LDAP. Par ailleurs, plusieurs passerelles entre langages ont été spécifiées, notamment celles de HTML vers LDAP et de LDAP vers X.500 (et réciproquement). La spécification d’une passerelle de ODBC vers LDAP est en cours. Enfin, LDIF (LDAP Data Interchange Format) propose un mode standard d’import-export au format texte permettant, par exemple, de synchroniser des annuaires LDAP et X.500.

Sécurité et contrôle d’accès

Si, pour un annuaire contenant des données publiques, accessible en lecture seule, une authentification anonyme suffit, il est parfois indispensable de garantir la sécurité des données gérées par un serveur LDAP. On définit alors une stratégie de contrôle d’accès par la création d’un ensemble de règles spécifiant des droits de manipulation des entrées de l’arbre DIT par des personnes ou des entités logiques. Une telle stratégie passe nécessairement par l’authentification des clients désireux d’accéder aux ressources sécurisées. Cette authentification peut prendre plusieurs formes : certificats X.509, tickets Kerberos, couples login-password… Naturellement, l’IETF recommande d’éviter toute émission de mot de passe en clair vers un serveur d’authentification. Remarquons que les données d’authentification peuvent parfaitement être stockées au sein d’un annuaire dont l’accès doit être, dès lors, fortement sécurisé. Les serveurs LDAP doivent offrir la gestion du protocole SSL pour la mise en ?”uvre d’authentifications à base de mots de passe chiffrés. La norme spécifie également l’emploi des mécanismes d’authentification exploitant des couples de clés publiques et privées.

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.


Laurent Maury