Chapitre 4. Introduction à la suite OpenLDAP

Table des matières

Présentation de la suite OpenLDAP
Historique
Contenu de la suite
RFC supportées
Les RFCs non supportées
La licence
Points forts/Points faibles
Points forts
Points faibles

Résumé

Ce chapitre présente la suite logicielle OpenLDAP. Nous verrons l'historique du projet, le détail des outils fournis par cette suite et enfin nous aborderons les points forts et les points faibles du projet.

Présentation de la suite OpenLDAP

Historique

La suite Openldap est dérivée du logiciel University of Michigan LDAP version 3.3, c'est à dire du premier serveur LDAP indépendant. La dernière version du serveur de l'Université du Michigan date d'avril 96[5]. Le premier serveur Openldap est sorti en août 1998[6]. La suite Openldap a totalement remplacé le logiciel de l'Université du Michigan qui n'est plus supporté et qui continue d'être distribué pour des raisons historiques seulement.

Les améliorations apportées par la suite sont nombreuses: support de la version 3 de la norme LDAP, ajout de nombreux backend, plus de plates-formes supportées, options de sécurité plus avancées, et d'inévitables corrections de bugs. Actuellement Openldap fonctionne sur de nombreuses plates-formes, dont de nombreux Unix libres (Darwin, FreeBSD, GNU/Linux, NetBSD, OpenBSD) et commerciaux (HP-UX, IBM AIX, SGI IRIX, Solaris), ainsi que sur d'autres plates-formes, comme BeOS, Apple MacOS X, IBM zOS, et Microsoft Windows 2000.

La version 2.0 de la suite, sortie en août 2000, est la première à supporter la version 3 de la norme LDAP. Chaque version suivante, les 2.1 et la 2.2, ajoutent des extensions LDAP supplémentaires à la suite. À ce jour (début 2004) la version stable d'Openldap est la version 2.1. La version 2.2 est encore en phase de stabilisation.

Le copyright du logiciel est détenu par la fondation OpenLDAP. Son développement est sponsorisé par l'Internet Software Consortium, qui sponsorise aussi des outils comme dhcp, bind et inn, qui sont respectivement un serveur dhcp, un serveur DNS, un serveur de news. L'autre sponsor est net boolean, une société de service spécialisée dans les annuaires électroniques, et dans le logiciel libre.

Contenu de la suite

La suite Openldap est composée des éléments suivants:

Slapd
Le serveur d'annuaire LDAP. Slapd signifie Stand-alone LDAP Daemon
Slurpd
Serveur de réplication. Slurpd signifie Standalone LDAP Update Replication Daemon.
Un kit de développement.
Ce kit contient des librairies LDAP réutilisées dans de nombreux projets, et permet de développer des applications LDAP, en C, C++ ou en Tk.
Des utilitaires clients
Il s'agit d'applications utilisables en ligne de commande permettant d'interroger un annuaire LDAP.
Des contributions
Ces contributions sont actuellement des classes java, développées par Novell, et un pont JDBC-LDAP, développé par Octet String.

RFC supportées

Les RFCs obligatoires

La suite Openldap respecte la [rfc3377] qui est en fait la meta RFC définissant la norme LDAP version 3. En se conformant à cette norme, Openldap respecte intégralement la norme LDAP version 3. Nous rappelons ici juste la liste de ces RFC, en renvoyant le lecteur à une description plus complète:

Les RFCs non obligatoires

Il existe un certain nombre de RFCs qui ajoutent des fonctionnalités au protocole LDAP sans pour autant faire partie de la norme. Openldap implémente plusieurs de ces extensions. Voici une liste de ces extensions supportées, avec une description pour certaines d'entre elles:

[rfc2596]
Cette RFC propose de rajouter une option language aux attributs. Ainsi la valeur d'un attribut pourra être associée à une langue.
[rfc2596bis]
Il s'agit d'une extension à la RFC précédente, qui n'est pas devenue une RFC. Cette extension traite des intervalles de langue.
[rfc2247] & [rfc3088]
[rfc2247] définit un mécanisme qui permet de déduire le suffixe d'un annuaire LDAP à partir de son nom de domaine. [rfc3088] décrit l'utilisation du service DNS pour localiser le serveur annuaire d'un domaine.
[rfc3062]
Cette RFC décrit un mécanisme pour modifier le mot de passe d'un utilisateur, même lorsque celui-ci n'est pas authentifié auprès de l'annuaire mais avec un autre procédé SASL.
[rfc3296]
Cette RFC propose un moyen de gérer les referrals. Nous explicitons son contenu dans une autre partie.
Matched Values Control
Cette extension permet de limiter les attributs récupérés, lors d'une recherche, aux valeurs qui correspondent à un filtre supplémentaire à celui de la recherche.
[rfc2696]
Cette RFC décrit un contrôle qui permet à un client de recevoir les réponses à une recherche par paquets au lieu de les recevoir en un seul bloc. Ce contrôle est implémenté depuis la version 2.2 d'Openldap.
Content Synchronization operation
WhoAmI? operation
Proxy Authorization control
Assertion control
Pre/Post Read controls
No-Op control
Modify/Increment extension
Absolute True (&) and False (|) Filter extension
All Operational Attributes + attribute list extension
supportedFeatures discover mechanism

Les RFCs non supportées

Openldap n'implémente pas toutes les extensions optionnelles LDAP. En particulier les extensions suivantes ne sont pas respectées[7]:

DIT Structure Rules
Openldap ne permet pas de spécifier des règles dans l'arbre informationnel, pour imposer par exemple qu'une branche ne contiendra que des objets d'une classe donnée. Cette possibilité était présente dans la norme X500.
Name Forms
Il s'agit de la possibilité d'imposer à des objets d'une classe donnée, ou dans une branche, quel attribut doit être unique et doit être utilisé comme RDN. Cette possibilité est aussi issue du monde X500.
Modification de schéma via LDAP
Il n'est pas possible, avec le serveur slapd d'Openldap de modifier le schéma, directement via le protocole LDAP.
[rfc2589]
Cette RFC propose un ensemble d'extension et d'objet spécifique pour permettre à un annuaire de gérer des objets à courte durée de vie. L'objectif est de pouvoir gérer avec un annuaire des informations du type: «est-ce que l'utilisateur est en ligne?».
[rfc2649]
Cette RFC propose un contrôle pour signer des opérations effectuées sur un annuaire, et de créer ensuite un journal pour chaque entrée contenant les modifications effectuées et une signature digitale de l'opération.
[rfc2891]
Cette RFC décrit un contrôle permettant à un client de demander au serveur de trier les résultats d'une recherche, suivant un attribut donné et éventuellement une règle de comparaison donnée.

La licence

Openldap est un logiciel libre, au send de la Free Software Foundation. Cela signifie qu'il respecte les quatre libertés fondamentales d'un logiciel libre: liberté d'exécution, liberté d'étude, liberté de modification et liberté de redistribution.

En revanche ce n'est pas un logiciel copyleft. C'est à dire qu'il n'impose pas sa licence d'utilisation aux logiciels qui dérivent de lui. Il peut donc être privatisé. Ce qui ne l'empêche pas d'être compatible avec la licence GPL. Le code d'Openldap peut donc être intégré dans un logiciel sous GPL.



[5] Selon le manuel du logiciel.

[7] Cette liste est issue de la FAQ d'Openldap.