1.6 Ecriture d'un backend pour openldap
1.6.1 Objectif
La gestion des comptes des utilisateurs de l'EUDIL repose sur une structure
maison appelée le registre. Il s'agit tout simplement d'une hierarchie
de répertoires et de fichiers stockant toutes les informations sur les
utilisateurs de l'EUDIL (et bien d'autres choses). Désormais ces informations
peuvent être utilisées par de nombreux logiciels d'administration pour peu
qu'elles puissent être accédées via le protocole LDAP. L'an passé un binôme
a tenté d'écrire une interface entre un serveur LDAP de type openldap et le
registre de l'EUDIL (voir les anciens sujets). Le résultat a frolé l'échec
total. Cependant, cette interface étant indispensable, le département
développement du service informatique (périphrase pour dire "moi") à
écrit cette interface. L'interface est fonctionnelle mais présente le
défaut d'être écrite en tant que "backend shell" (programme externe au
serveur openldap) , elle est donc peu
intégrée au serveur LDAP et a necessité de dupliquer du code déjà présent
dans les sources du projet openldap. De plus, pour des raisons obscures,
le serveur openldap ne fait des vérifications des droits d'accès,
pour les "backend shell", que sur les demandes en lecture et pas en écriture.
Le but de cet avant-projet est de transformer le "backend shell" en
un "backend" openldap sous la forme d'une bibliothèque chargeable par
le serveur openldap.
1.6.2 Pré-requis
Une certaine affinité avec le langage C, en particulier pour la compréhension
des sources d'openldap.
1.6.3 Matériel
Un PC de base pour installer un Linux, un serveur LDAP et une copie du
registre de l'EUDIL.
1.6.4 Travail à réaliser
La première étape de cet avant-projet est de constituer l'environnement de
développement du "backend". Pour cela, après l'installation de Linux, vous
installerez le serveur du projet openldap, le "backend shell" EUDIL
(avec son patch de contrôle d'accès pour le serveur openldap) et une
copie du registre EUDIL. Après quelques manipulations du registre au
travers de LDAP, vous pourrez commencer à écrire le "backend" intégré.
Veillez à rendre votre "backend" indépendant au maximum de la version
d'openldap (cela passe par l'écriture du "backend" sous forme
de bibliothèque chargeable à chaud). Attention, une étude préalable de
la bibliothèque "backend" d'openldap est nécessaire pour connaitre
exactement les procédures disponibles et éviter la duplication de code.
Vous aurez aussi à vérifier que les applications utilisant le registre
via LDAP fonctionnent encore avec votre module.