IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Annuaires LDAP avec OpenLDAP

Annuaires LDAP avec OpenLDAP


précédentsommairesuivant

I. Présentation des annuaires

Ce chapitre donnera une définition des annuaires électronique et leurs domaines d'utilisation avec un historique. La norme X500 sera également présentée.

I-A. Définition

Selon la définition du Petit Robert, un annuaire est un [Recueil publié annuellement et qui contient des renseignements variables d'une année à l'autre]. Nous pouvons définir un annuaire électronique comme une base de données optimisée pour les opérations de lecture, et supportant des opérations de recherche et de navigation avancées.
Néanmoins l'essentiel de la documentation technique sur les annuaires électroniques s'appuie implicitement d'avantage sur la définition d'un annuaire donnée par la norme X500, ou par la norme LDAP, que sur la définition que nous venons de donner.
L'utilisation des annuaires présente un certains nombres d'avantages que nous allons citer dans les sections suivantes. Ces avantages proviendront pour la plupart de la définition X500 des annuaires.

I-A-1. Gestion dynamique de l'annuaire

Mise à jour en temps réel. L'annuaire électronique est sans cesse mis à jour en fonction des entrées et des sorties des personnels d'une entreprise. Il est par exemple possible de lier l'annuaire électronique au logiciel de gestion des ressources humaines.
Coûts de mise à jour. Les coûts de mise à jour sont très faibles car cela se fait soit de façon automatique soit par l'utilisateur lui-même ! Ceci est à comparer avec la réimpression d'un annuaire papier.

I-A-2. Flexibilité

Un annuaire électronique peut contenir des informations sur différentes familles d'objets, pas seulement sur des personnes. Par exemple on peut trouver dans un annuaire : des entités constituant l'entreprise (département, filiale, etc.) ; n'importe quelle ressource de l'entreprise (bâtiment, matériel informatique, etc.) ; tout type d'information qui doit être partagée, et peu modifiée.
Un annuaire électronique n'est jamais figé. La structure de l'information contenue dans l'annuaire peut ainsi être modifiée facilement, à la volée, sans nécessiter de reconstruire l'annuaire : il est possible d'ajouter des nouveaux champs (de nouveaux attributs en terminologie annuaire) en fonction des besoins ; il est également possible d'ajouter des nouvelles familles d'objets.

I-A-3. La recherche

Plusieurs types de recherches sont possibles. Il y a la recherche exacte sur le nom d'une personne par exemple. Il est également possible de faire une recherche phonétique sur une syllabe, ou bien encore, une recherche sur une chaîne de caractère : par exemple la recherche sur la chaîne du renverra Dupont, Durand, mais aussi Perdu...

I-A-4. Gestion de la sécurité

La diffusion de l'information contenue dans un annuaire est facilement contrôlable. Tout d'abord les utilisateurs doivent s'authentifier avant d'accéder à l'information. Ceci est un avantage certain qui différencie les annuaires électroniques sur leurs équivalents papier.
Mais un annuaire électronique permet un contrôle bien plus fin que la seule authentification. Ils permettent une centralisation et un contrôle total de l'accès à l'information.
L'annuaire électronique pourra, par exemple, contrôler finement l'information délivrée en fonction du profil de l'utilisateur authentifié. Il sera ainsi possible de n'afficher que certains attributs, ou biens de rendre accessible uniquement certaines branches/certains objets de l'annuaire. Cela permet une granularité forte dans la gestion de l'accès à l'information, à comparer avec le principe traditionnel de liste rouge, qui ne peut gérer que deux groupes, les autorisés et les interdits.
En plus du profil utilisateur, et de l'information cible, il sera aussi possible de considérer les types de connexion (crypté ou pas) et d'authentification utilisés, ou bien d'où a lieu la consultation (réseau interne ou externe).

I-B. Comparaison avec d'autres systèmes

I-B-1. Les caractéristiques propres d'un annuaire électronique

Nous avons défini un annuaire comme étant « «une base de données optimisée pour les opérations de lecture, et supportant des opérations de recherche et de navigation avancées» ». Un annuaire électronique possède cependant d'autres caractéristiques essentielles que nous allons citer.
Un annuaire électronique peut ainsi être caractérisé par le fait que l'information y est stockée de manière structurée et hiérarchisée. Il existe une hiérarchie aussi bien dans l'information stockée, que dans la modélisation des données. On trouve dans cette modélisation beaucoup des concepts de la programmation orientée objet, comme des notions de classes, d'objets, d'attributs, et d'héritage.
L'autre caractéristique des annuaires électroniques est l'existence d'un protocole de communication réseau. Les annuaires électroniques sont conçus pour pouvoir communiquer entre eux, et communiquer avec des clients.
Les annuaires électroniques sont aussi prévus pour être distribués et répliqués à grande échelle. Ceci explique la nécessité de ces protocoles de communication.
En revanche la spécification d'une manière de stockage n'intervient pas dans la définition d'un annuaire. Seul compte la modélisation des données et leur transport sur le réseau.

I-B-2. Comparaison avec les bases de données

Il est important de souligner les différences entre base de données relationnelles et annuaires. Un annuaire électronique n'a pas pour vocation de stocker uniquement des informations sur des personnes. Il peut être utilisé comme base dans de nombreux types d'applications. C'est donc en connaissant ces différences, qu'il sera possible de choisir le bon type de stockage pour chaque type d'application.
La première différence est qu'un annuaire électronique est conçu pour être consulté, bien plus que mis à jour. Le rapport lecture sur écriture est donc plus élevé dans les annuaires électroniques que dans les bases de données relationnelles.
L'autre différence est la grande facilité d'extension des annuaires. L'ajout d'attributs, l'équivalent des champs dans les bases de données relationnelles, est très aisé à réaliser. Il ne nécessite pas, par exemple, de reconstruction de la base. Un autre élément de flexibilité des annuaires par rapport aux bases de données, est l'héritage multiple. Une entrée d'un annuaire peut être deux objets différents, alors qu'un objet dans une base de données n'appartient qu'à une seule table.
La contrepartie de cette facilité est l'absence de transactions et de procédures stockées. Il faudra donc faire attention lors de l'exécution d'opérations complexes, et gérer du côté applicatif les erreurs. Comme autre type de restriction, il n'existe pas dans les annuaires de notions de cohérence. Ainsi la notion de clé étrangère n'existe pas. S'il est possible de modéliser un attribut en lui imposant d'être un lien vers une entrée de l'annuaire, il est impossible de contrôler si le noeud pointé appartient à une branche précise ou s'il appartient à une certaine classe d'objet (1).
Une différence plus mineure concerne le type de recherches que l'on peut effectuer sur des bases de données et des annuaires. Si les annuaires permettent dans un certain sens d'effectuer des recherches assez évoluées (recherches approximatives ou phonétiques), ils ne possèdent pas l'équivalent de l'instruction SQL joint pour fusionner des informations de plusieurs sources.
Mais les bases de données n'offrent pas les facilités de déploiement et de réplication que l'on a avec les annuaires. Il n'existe pas non plus de protocole universel permettant à un client quelconque de contacter un serveur quelconque, comme c'est le cas pour la norme LDAP ou la norme X500 avant elle. Chaque base de données relationnelle a son propre protocole réseau, qu'elle ne partage pas avec les autres bases.

I-B-3. Comparaison avec d'autres systèmes de stockage

I-B-3-a. Système de fichiers

Un système de fichiers est aussi un système d'informations hiérarchisées, les répertoires formant une hiérarchie, espace de nommage homogène. Néanmoins les systèmes de fichiers ne permettent pas une gestion fine des droits. De plus ils peuvent contenir des informations très volumineuses, alors qu'un annuaire ne contient majoritairement que des informations peu importantes en taille, de l'ordre du mot, cette information n'est pas du tout structurée. Ainsi l'analogie entre un système de fichiers et un annuaire bute sur l'absence de modélisation de l'information en classe et en attribut.

I-B-3-b. Serveur Web

Les serveurs web sont optimisés eux aussi pour un rapport lecture sur écriture élevé, à l'instar des annuaires électroniques. De plus un serveur web est accédé depuis le réseau, via un protocole universel, partagé entre client et serveur. Néanmoins l'information d'un serveur web n'est elle non plus pas assez structurée pour pouvoir comparer ces serveurs à des serveurs annuaires.

I-B-3-c. Serveur DNS

Les serveurs DNS sont très similaires aux annuaires électroniques. Il s'agit en effet d'un système d'information hiérarchisé et répliquée, possédant des fonctionnalités de recherche avancée. La différence fondamentale avec les annuaires concerne l'information stockée qui est très figée, puisque normalisée dans des RFCs. Contrairement aux annuaires il n'est pas possible de faire évoluer l'information contenue dans un serveur DNS.

I-C. Domaines d'utilisation

I-C-1. Recherche

Les annuaires peuvent être utilisés dans toute application informatique nécessitant une information hiérarchisée et répliquée, et des fonctionnalités de recherche. Néanmoins le type d'information stockée doit être limité. Pour l'essentiel il doit s'agir de chaînes de caractères. Et si l'on doit stocker des attributs binaires, il est préférable que leur taille soit du même ordre de grandeur, pour éviter des problèmes de performance.

I-C-2. Gestion

Un annuaire peut contenir tout type d'objets qu'une organisation est amener à gérer: les personnes internes (ses salariés ou ses membres, etc.), les personnes externes (les contacts, les fournisseurs, etc.), son parc informatique (les postes clients, les serveurs, les imprimantes, etc.), ses entités géographiques ou administratives, etc. Un annuaire électronique permet de centraliser toutes ces informations dans une même base, et d'unifier leur gestion. Il permet aussi de créer des liens entre ces informations (tel membre appartient à telle structure administrative et travaille dans tel bâtiment).

I-C-3. Autres domaines d'utilisation

I-C-3-a. Applications légères de base de données

En fait, un annuaire peut aussi servir comme une base de données allégée pour de petites applications. En effet les annuaires électroniques offrent beaucoup plus de souplesse que les traditionnelles bases de données relationnelles. Certaines applications ne nécessitent pas toutes la rigidité de ces bases de données.

I-C-3-b. Application de clé publique

Les applications PKI nécessitent de distribuer des clés, de les garder à jour, de les révoquer. Avec un annuaire, à la structure hiérarchisée, ces tâches sont grandement facilitées.

I-D. Historique et Norme X500

I-D-1. Historique, avant la norme

Les premiers annuaires électroniques sont apparus avec les premiers ordinateurs. Ils avaient des tâches ciblées : authentification, contrôle des accès, information de type contacts.
Néanmoins il n'existait aucune unification, ni standard. Chaque système possédait sa propre méthode pour gérer ses utilisateurs. Unix possédait déjà son fameux /etc/passwd. Les mainframes avaient Michigan Terminal System (MTS) (2).
À partir du milieu des années 70, l'utilisation des réseaux commence à se généraliser. Les systèmes deviennent distribués et les besoins sont ceux d'une authentification sur une base distante et commune. De plus, la multiplication des LAN fait apparaître de nouveaux types de services, que l'on apparente à des annuaires: Les serveurs DNS et le protocole Whois.
On assiste à partir de la fin des années 80 et dans les années 90 à une multiplication des annuaires spécifiques. Il y a tout d'abord les annuaires inclus dans des logiciels ou des suites logiciels (mail et groupware): Lotus Notes, Novell Groupwise Directory, Microsoft Exchange Directory, Sendmail UNIX et son /etc/aliases. Il y a aussi les Annuaires Internets comme Yahoo, ou Bigfoot.
C'est aussi à la fin des années 90 qu'apparaissent des Network operating system. Il s'agit d'applications fournissant des services à des clients et des serveurs à travers un réseau. Ces services permettent le partage de ressources comme des fichiers ou des imprimantes. Ils incluent évidemment des annuaires électroniques (Novell NDS, MS Active Directory).

I-D-2. La norme

I-D-2-a. Apparition de la norme

Suite à l'apparition dans les années 80 d'annuaires généraux et multi-usage, non limités à une application, ni à un système spécifique, la nécessité de standardiser les annuaires électroniques s'est faite sentir. Deux organismes se sont mis à travailler en parallèle sur ce projet de standardisation : Le CCITT (International Telegraph and Telephone Consultative Committee) devenu ITU (International Telecommunications Unions) depuis; et l'ISO (International Organization for Standardization). Les deux projets ont finalement fusionné pour donner naissance à la norme annuaire X500. La première version de la norme en 1988. La deuxième version de 1993.

I-D-2-b. Description

L'objectif de la norme était de pouvoir être utilisée par tout type d'applications. Elle devait être un standard ouvert indépendant de tout système et de tout fabriquant.
Techniquement, elle devait fournir de nombreuses possibilités de recherches. Les annuaires devaient pouvoir être distribués à très grande échelle. L'un des buts du CCITT consistait en la création d'un service de pages blanches à l'échelle mondiale. La norme X500 devait donc être capable de faire dialoguer et cohabiter tous les annuaires pour constituer des services pages blanches et pages jaunes mondiaux.

La norme X500 est constituée de plusieurs standards:

X500 Vue d'ensemble des concepts, des modèles et des services
X501 Modèles associés aux annuaires X500
X509 Procédures d'identification et d'authentification
X511 Définition des services (recherche, création, suppression)
X518 Description du fonctionnement distribué
X519 Protocoles de communication entre serveurs, et entre serveurs et clients clients/serveurs
X520 Attributs des annuaires X500 prédéfinis
X521 Classes d'objets des annuaires X500 prédéfinies
X525 Description de la réplication sur les serveurs

Les standards X520 et X519 définissent un langage commun minimum pour l'échange d'informations. Ils seront repris pour partie dans la norme LDAP.

La norme X500 a introduit un certain nombre de termes techniques:

Directory User Agent (DUA) Poste ou logiciel client accédant à un annuaire
Directory Access Protocol (DAP) Protocole de communication entre un client et un serveur annuaire
Directory System Agent (DSA) Un serveur annuaire. Ce terme est encore utilisé dans la norme LDAP
Directory System Protocol (DSP) Protocole de communication entre deux serveurs. Proche du DAP.
Directory Information Shadowing Protocol Protocole pour la réplication entre DSA maître et DSA miroir

I-D-2-c. La réalité de la norme X500

La mise en place de la norme X500 apparaît comme un modèle de réussite dans la création d'un standard réalisé par des acteurs divers. En effet le critère d'indépendance vis à vis des éditeurs et le critère d'interopérabilité ont été respectés.
Mais rapidement, cette norme a été jugée trop riche et trop complexe à mettre en oeuvre. Des problèmes de performance sont constatés à cause de la modélisation OSI des protocoles réseau. Il apparaît que la norme a été décidée et imposée sans tenir compte de la réalité et des besoins du terrain : le déploiement des annuaires X500 a été réalisé selon une démarche inverse au déploiement réussi d'internet. Aussi, seuls les grands organismes publics ont déployé de tels annuaires.
La norme LDAP s'est nourrie de tous ces constats afin de ne pas connaître le sort de la norme X500.


précédentsommairesuivant
Openldap peut dans certains cas simuler ce type de contrôle grâce à des permissions

Copyright (c) 2005, Michaël Parienti Maire. This work is licensed under the Creative Commons Attribution-Share Alike License. Modifications, reproductions, diffusions autorisées à condition de mentionner le nom de l'auteur original et de conserver les termes de cette licence Creative Commons.