IV. Introduction à la suite OpenLDAP▲
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.
IV-A. Présentation de la suite OpenLDAP▲
IV-A-1. 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.
IV-A-2. 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 |
IV-A-3. RFC supportées▲
IV-A-3-a. Les RFC 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.
- [rfc2251]
- [rfc2252]
- [rfc2253]
- [rfc2254]
- [rfc2255]
- [rfc2256]
- [rfc2829]
- [rfc2830]
IV-A-3-b. Les RFC non obligatoires▲
Il existe un certain nombre de RFC 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 langage 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] |
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 |
IV-A-4. Les RFC non supportées▲
Openldap n'implémente pas toutes les extensions optionnelles LDAP. En particulier les extensions suivantes ne sont pas respectées :
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 contienne 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 |
IV-A-5. 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.
IV-B. Points forts/Points faibles▲
IV-B-1. Points forts▲
Parmi les atouts d'Openldap on distingue facilement ses atouts techniques :
- De nombreux backends. Ils permettent au serveur slapd d'être utilisé à de nombreux usages, (comme un proxy ou un meta annuaire par exemple).
- Des options de sécurité avancées. Le serveur slapd est compatible avec les protocoles SSL et SASL.
- De nombreuses extensions implémentées. Chaque nouvelle version amène son lot de nouveautés et d'extensions supplémentaires implémentées.
L'autre grand atout d'Openldap qu'il ne faut pas négliger c'est sa qualité de logiciel libre. Évidemment son coût s'en trouve réduit, puisqu'il n'y a aucun coût de licence, ni à l'achat, ni à l'exploitation, et quelle que soit la quantité de données gérées. Le seul coût est donc celui de son déploiement et de sa maintenance. En tant que logiciel libre, ses bugs sont corrigés très rapidement, en particulier les bugs de sécurité.
Mais le principal avantage de ce genre de logiciel reste l'indépendance qu'il assure vis-à-vis d'un fournisseur ou d'un prestataire, la liberté de le modifier (ou de le faire modifier) pour l'adapter à ses propres besoins, sans avoir à en référer à personne.
IV-B-2. Points faibles▲
Les principaux reproches que l'on faire à Openldap sont d'ordre technique. L'obligation de redémarrer le serveur à chaque changement de configuration est assez pénible. En effet le fichier de configuration n'est lu qu'au démarrage, et il contient les règles d'accès et le schéma. Ce qui nécessite l'arrêt puis le redémarrage après chaque modification d'une règle ou du schéma. Ceci n'est au fond pas très gênant dans la mesure où schéma et règle ne devraient pas être modifiés très souvent, et qu'un annuaire qui doit être toujours accessible devrait être répliqué.
L'autre faiblesse, qui peut se révéler plus gênante, concerne les RFC optionnelles non implémentées, et dont certaines organisations ne peuvent pas se passer.
Enfin, le dernier petit reproche concerne la documentation. La documentation en ligne n'est pas la plus complète. Pour avoir accès à toutes les directives de configuration, il faut télécharger le logiciel pour consulter les pages de manuels. Éventuellement, certaines pages de la FAQ peuvent se révéler d'un grand secours.