Modèle d’organisation des informations
1. La structure arborescente (DIT)
Le modèle d’organisation des informations définit comment les entrées de l’annuaire LDAP sont identifiées et organisées. Celles-ci sont organisées dans une structure arborescente appelée Directory Information Tree (DIT) comparable à la structure d’un système de fichiers Unix où les fichiers et les répertoires ont comme base la racine (/) et se déploient par de multiples ramifications. Dans le modèle LDAP, la racine est nommée « suffixe » et chaque nœud de l’arbre (ou DIT) représente une « entrée » appelée (DSE) pour Directory Entry Service. Voici un exemple (figure 2-6) permettant d’illustrer de façon conceptuelle les informations précédentes où chaque rectangle représente une entrée de l’annuaire.
¬
Figure 2-6 : DIT
Chaque entrée de l’annuaire (DSE) sera désignée selon le contexte soit par son Relative Distinguished Name (RDN), soit par son Distinguished Name (DN). Ces termes sont en quelque sorte comparables au modèle Unix ou l’on peut désigner un fichier par son nom complet depuis la racine (/) ou bien seulement par son nom si l’on se trouve dans le répertoire du fichier désigné.
¬
Figure 2-7 : DN et RDN
Le schéma de la figure 2-7 montre bien la distinction entre un DN et un RDN d’une entrée de l’annuaire. Un DN est un nom unique qui identifie sans ambiguïté une entrée de l’annuaire et est donc par ce fait composé d’une séquence de RDN séparés par des virgules. Chaque RDN correspond à une branche dans le DIT, menant de la racine du DIT à l’entrée de l’annuaire désigné par le DN et possède la syntaxe suivante :
<nom de l’attribut> = <valeur>
Par exemple, l’entrée suivante :
uid=utilisateurA, ou=utilisateur,c=fr,o=support,dc=exemple,dc=com
... est composée des RDN suivants :
uid=utilisateurA  
ou=utilisateur  
c=fr 
o=support 
dc=exemple, dc=com 
2. Le format LDIF
Lorsqu’un annuaire LDAP est chargé pour la première fois ou lorsque de nombreuses entrées doivent être modifiées à la fois, il n’est pas très commode de traiter chaque entrée l’une après l’autre. Pour cela, LDAP prend en charge le format LDIF (pour Data Interchange Format) qui peut être considéré comme un mécanisme de gestion de données pratique et devenu indispensable pour les tâches d’administration. Il permet une manipulation facile des quantités massives de données. L’exemple ci-dessous montre la syntaxe de base d’une entrée LDIF :
dn: <distinguished name> 
<attrtype> : <attrvalue> 
<attrtype> : <attrvalue> 
...
Les valeurs pour les attributs à valeurs multiples sont spécifiées sur des lignes distinctes, par exemple :
cn: John E Smith 
cn: John Smith
Si un attrvalue contient un caractère non ASCII ou commence par un espace ou les deux points (:), le attrtype est suivi de deux fois deux points ( :: ) et la valeur est codée en la notation base-64. Par exemple, la valeur « commence par un espace » serait encodée comme ceci :
cn:: IGJlZ2lucyB3aXRoIGEgc3BhY2U=
Une ligne vide dans le fichier LDIF permet de distinguer les entrées de l’annuaire DN pour lesquelles des attributs doivent être ajoutés, supprimés ou modifiés. En revanche, plusieurs lignes vierges seront considérées comme marquant la fin du fichier.
L’exemple suivant montre ainsi un fichier .ldif créant le suffixe d’une arborescence puis une unité d’organisation nommée utilisateur et enfin d’un utilisateur :
dn: dc=exemple,dc=com 
objectclass: top 
objectclass: domain 
dc: exemple 
 
dn: ou=utilisateur, dc=exemple,dc=com 
objectclass: organizationalUnit 
ou: utilisateur 
 
dn: uid=jsmith, ou=utilisateur, dc=exemple,dc=com 
objectclass: top 
objectclass: organizationalPerson 
cn: John Smith 
sn: Smith 
givenname: John 
uid: jsmith