La conception du schéma s'est faite à partir d'une analyse de l'organisation du groupe SAMSE et par l'organisation de groupe de travail.
Nous avons utilisé au maximum les objets et attributs fournis par OpenLDAP, mais nous avons du ajouté notre propre schéma lorsqu'ils n'existaient pas.
Les attributs et classes d'objet ajoutés concerne principalement notre annuaire des 'Pages jaunes', 'Pages blanches' et la gestion des utilisateurs temporaires. Ces objets et attributs auraient certainement pu être pris dans des schémas existant mais nous avons voulu simplifier la création des objets et optimiser leur chargement.
Voici les attributs ajoutés et leur définition :
# Date d'arrivee dans le groupe de la personne attributetype ( 1.3.6.1.4.1.3814.4.1 NAME ( 'arrivalDate' ) SUP name) # Date de depart de la personne attributetype ( 1.3.6.1.4.1.3814.4.2 NAME ( 'leavingDate' ) SUP name) # Groupe cotisant de la personne attributetype ( 1.3.6.1.4.1.3814.4.3 NAME ( 'contributionGroup' ) SUP name) # Sexe de la personne attributetype ( 1.3.6.1.4.1.3814.4.4 NAME ( 'sexe' ) SUP name) # Date de naissance de la personne attributetype ( 1.3.6.1.4.1.3814.4.5 NAME ( 'birthDate' ) SUP name) # Raccourci telephone fixe attributetype ( 1.3.6.1.4.1.3814.4.6 NAME ( 'fixRPVNumber' ) SUP name) # Raccourci portable attributetype ( 1.3.6.1.4.1.3814.4.7 NAME ( 'mobileRPVNumber' ) SUP name) # Forme jurique attributetype ( 1.3.6.1.4.1.3814.4.8 NAME ( 'legalForm' ) SUP name) # Capital attributetype ( 1.3.6.1.4.1.3814.4.9 NAME ( 'capital' ) SUP name) # Convention Collective attributetype ( 1.3.6.1.4.1.3814.4.10 NAME ( 'collectiveConvention' ) SUP name) # Responsable attributetype ( 1.3.6.1.4.1.3814.4.11 NAME ( 'responsable' ) SUP name) # Qualite du Responsable attributetype ( 1.3.6.1.4.1.3814.4.12 NAME ( 'quality' ) SUP name) # Assistant(e) attributetype ( 1.3.6.1.4.1.3814.4.13 NAME ( 'assistant' ) SUP name) # Region d'une agence attributetype ( 1.3.6.1.4.1.3814.4.14 NAME ( 'region' ) SUP name) # Nom de la mailbox d'un user attributetype ( 1.3.6.1.4.1.3814.4.15 NAME ( 'mailboxName' ) SUP name) |
Voici la définition des objectClass qui sont utilisées dans les entrées LDAP :
objectClass ( 1.3.6.1.4.1.3814.3.4 NAME 'samseOu' DESC 'SAMSE Organizational Unit Object' SUP organizationalUnit MUST ( uid ) MAY ( legalForm $ capital $ collectiveConvention $ quality $ responsable $ region) ) objectClass ( 1.3.6.1.4.1.3814.3.5 NAME 'samsePerson' DESC 'SAMSE Person' SUP ( inetOrgPerson ) MUST ( uid $ cn ) MAY ( arrivalDate $ leavingDate $ contributionGroup $ sexe $ birthDate $ fixRPVNumber $ mobileRPVNumber $ assistant $ mailboxName) ) |
L'ensemble de ces définitions sont stockées dans un seul fichier samse.schema qui doit être inclus dans le fichier de configuration slapd.conf. Les autres schémas chargés sont les suivants :
- core.schema - cosine.schema - inetorgperson.schema - nis.schema |
Dans cette partie, nous tenons compte ici des paramètres suivants :
- Du nombre d'entrées prévues et de son évolution. - De la nature des données. - Des contraintes d'administration. - D'une réplication possible. - Des contraintes liées aux applications utilisant l'annuaire. |
L'administration est centralisée, la notion de référence à un autre annuaire n'a pas lieu d'être. La réplication est nécessaire.
Nous avons arrêté le choix de notre suffixe (racine du répertoire) : dc=samse, dc=fr.
Nous avons ici suivi les recommandations de IETF car nous pourrons utiliser le Service Record (SRV) dur DNS (Domain Name Service) pour déterminer automatiquement le serveur LDAP à contacter, à partir du Distinguish Name (DN) utilisé par une requête.
Nous avons essayé de prendre une arborescence la plus plate et la plus possible, pour des question de performance. Le personnel étant mobile (par rapport à ses fonctions), le modèle hiérarchique n'a pas été retenu.
Figure 1. Annuaire LDAP SAMSE