Académique Documents
Professionnel Documents
Culture Documents
3.1. Définition
Un annuaire se présente comme une base de données, c’est à dire qu’on peut y mettre des
informations et les consulter. Ses principales caractéristiques sont d’accéder à des données par
des recherches multi-critères. Des données de natures très diverses peuvent figurer dans un
annuaire électronique :
Répertoire téléphonique
Liste des ressources matérielles de l'entreprise (inventaire)
Base clients
Base fournisseurs,…
Tout l'intérêt des annuaires apparaît lorsqu'on lui est reliées d'autres applications telles que des
applications de messagerie, de travail de groupe et des services applicatifs Web.
Quel que soit le type de données, l'annuaire a pour objectif d'une part de les rendre accessible
aux personnes concernées (ayant le droit de les consulter), d'autre part de permettre à ces
mêmes personnes de mettre à jour certaines de ces données. Un annuaire imparfaitement à
jour, contenant des informations non fiables ou même redondantes, ne remplira pas
correctement sa mission.
1
Quelle est alors l’utilité d’utiliser les annuaires au domaine des réseaux ?
L’Internet est constitué de réseaux (dizaines de milliers). Ces réseaux sont constitués de sous-
réseaux. Ainsi, les sous-réseaux sont constitués de machines. Ces dernières sont atteintes par
leurs adresses IP. Alors, lorsque deux machines communiquent sur Internet, elles utilisent
leurs adresses IP uniquement. L’adressage IP est utilisé par tous les protocoles sur l’Internet
(web, messagerie, transfert de fichiers, . . .). Or, une adresse IP est difficile à mémoriser par
un utilisateur humain. Il est pratiquement devenu impossible aux utilisateurs de connaître les
adresses (IP) des machines auxquelles ils veulent accéder.
Dans ce cas, on a besoin d’un second mode d’adressage plus pratique pour les utilisateurs qui
utilise des noms symbolique (ou noms de domaine) et d’un mécanisme (ou annuaire) de
correspondance automatique entre adresse IP et nom symbolique.
En effet, pour accéder à un site internet nous devons taper son adresse IP, Par exemple
172.217.16.78 pour accéder à Google, par contre pour les utilisateurs, il est difficile de retenir
les adresses numériques du genre 172.217.16.78, mais avec un nom alphabétique il est plus
facile et simple de retenir les adresse des sites Internet, par exemple "www.google.com".
Le système est alors mis en œuvre par une base de données distribuée au niveau mondial.
Les noms sont gérés par l’organisme mondial « l’interNIC » et les organismes délégués
comme ATI (Agence Tunisienne d’Internet en particulier par le NIC Network Information
Center of the Tunisian Internet Agency) Tunisie, NIC France, NIC Algérie, etc.
2
Un enregistrement de ressources des domaines
3.2.1. L’Identification des applications
Pour commencer, il faut toujours se référer aux architectures TCP/IP et OSI suivantes.
L’environnement DNS est gouverné par le mode de transaction client-serveur qui signifie
qu’un équipement est qualifié comme client qui envoie des requêtes et l’autre qui est qualifié
serveur, ce dernier attend les requêtes des clients et y répond.
C’est un protocole applicatif . Le protocole DNS définit un service automatisé qui associe les
noms de ressource à l'adresse réseau numérique requise. Il comprend le format des demandes
4
et des réponses ainsi que des formats de données. Les communications via le protocole DNS
utilisent un format unique nommé message. Ce format de message est utilisé pour tous les
types de demandes client et de réponses serveur, pour les messages d’erreur et pour le
transfert des informations d'enregistrement de ressource entre les serveurs. Le système DNS
permet donc de faciliter la mémorisation d’adresses et de garantir une transparence de
l’adresse vis-à-vis du changement. Mais, il offre d’autres services comme
Les solveurs de noms «resolvers en anglais » sont les processus clients qui contactent les
serveurs de nom. Leur rôle consiste à :
Contacter un serveur (dont l’ (les) adresse(s) est (sont) configurées sur la machine
exécutant ce solveur)
Interpréter les réponses des serveurs
Retourner l’information au logiciel appelant
La requête d'un solveur peut par exemple être une demande d'adresse IP d'un site WWW. Où,
le serveur tente de répondre à la demande du solveur. S'il n'est pas en mesure d'y répondre, il
peut renvoyer la requête à un autre serveur.
5
Un serveur DNS effectue la résolution des noms à l’aide du démon de nom, souvent appelé
named (name daemon). Lorsqu’un client effectue une demande, le processus de démon de
nom du serveur examine d’abord ses propres enregistrements pour voir s’il peut résoudre le
nom. S’il ne peut pas résoudre le nom à l’aide de ses enregistrements stockés, il contacte
d’autres serveurs pour résoudre le nom.
Afin de résoudre les demandes, le serveur DNS stocke différents types d’enregistrements de
ressource utilisés pour résoudre des noms. Ces enregistrements contiennent le nom, l’adresse
et le type d’enregistrement. Un DNS est alors une base de données répartie contenant des
enregistrements, appelés RR (Resource Records), concernant les noms de domaines. Un
enregistrement DNS comporte :
Nom de domaine
Type
A : une adresse de périphérique final.
NS : un serveur de noms autorisé.
CNAME : le nom canonique (ou nom de domaine complet) d’un alias ; utilisé
lorsque plusieurs services comportent une adresse réseau unique mais que
chaque service comporte sa propre entrée dans le DNS.
MX : enregistrement d’échange de courriel qui associe un nom de domaine à
une liste de serveurs d’échange de courriel pour ce domaine
PTR: Pointeur vers un autre espace du domaine
SOA: Début d'une zone d'autorité (informations générales sur la zone)
Classe
IN: Internet
TTL
Durée de vie des RRs (32 bits, en secondes), utilisée par les solveurs de noms
lorsqu'ils ont un cache des RRs pour connaître la durée de validité des
informations du cache.
RDATA
Données identifiant la ressource, ce que l'on met dans ce champ dépend
évidemment du type de ressources que l'on décrit (A, CNAME, MX, NS, PTR,
SOA).
3.2.5.2. Les différents types du serveur DNS
6
Il existe deux grands types des serveurs de nom : primaire et secondaire. Le serveur de nom
primaire maintient la base de données de la zone dont il a l’autorité administrative. Ainsi, le
serveur de nom secondaire obtient les données de la zone via un serveur de nom primaire. Il
interroge alors périodiquement le serveur de nom primaire et met à jour les données. Il y a un
serveur primaire et généralement plusieurs secondaires. Plus précisément, les serveurs de
noms peuvent être subdivisés selon le rôle qu’ils accomplissent, alors on trouve : Les serveurs
de noms locaux, Les serveurs de noms racine [RFC 2870] et Les serveurs de noms de sources
autorisées.
Ceux qui répondent aux clients où chaque organisation a un serveur de noms local qui
présente le serveur DNS par défaut de la zone et qui contient parfois les correspondances
relatives à la zone de l’organisation. Toutes les requêtes DNS en provenance de cette
organisation vont vers ce serveur de nom local.
Ceux qui d´définissent les rôles. Il existe 13 serveurs racine dans l’Internet (en fait beaucoup
plus). Chaque serveur DNS local connait un serveur de noms racine qu’il peut interroger s’il
ne connait pas une correspondance de premier niveau (.tn,.fr., ...). Un serveur de noms racine
connait au moins les serveurs de source autorisée du premier niveau.
Ceux qui stockent les informations. Chaque hôte est enregistré auprès d’au moins deux
« authoritative servers » (le primaire et le secondaire), qui stockent son adresse IP et son nom.
Un serveur de noms est dit de source autorisée pour un hôte s’il est responsable de la
correspondance nom/@ pour cet hôte (serveur primaire de la zone). Un serveur de noms local
n’est pas forcément de source autorisée.
Un serveur de noms qui ne connait pas une correspondance interroge un autre serveur de
noms le rapprochant de la réponse, généralement le serveur de noms de source autorisée qui
connait la correspondance. Par conséquence, les serveurs de noms sont regroupés dans
différents niveaux appelés domaines et utilisent le protocole DNS pour communiquer et
remplir leurs taches.
7
Les domaines définissent les différents niveaux d'autorité à l'intérieur d'une structure
hiérarchisée.
Les serveurs racines conservent des enregistrements sur la manière d’atteindre les serveurs
des domaines de premier niveau. Ainsi, les serveurs des domaines de premier niveau, à leur
tour, comportent des enregistrements pointant sur les serveurs des domaines de second
niveau, et ainsi de suite. Les différents domaines de premier niveau représentent le type
d’organisation ou le pays d’origine.
Il existe deux catégories des domaines de plus haut niveau TLD (Top Level domain).
La première catégorie est « les domaines génériques », appelés gTLD (generic TLD). Ces
gTLD sont des noms de niveau supérieur proposant une classification selon le secteur
d'activité.
Domaine Correspondance
8
.museum aux musées
La deuxième catégorie est les domaines nationaux, appelés ccTLD (country code TLD).
Les ccTLD correspondent aux différents pays et leurs noms correspondent aux
abréviations des noms.
Domaine Correspondance
.aq Antarctique
.ar Argentine
.at Autriche
.au Australie
.tn Tunisie
.fr France
9
Figure 3.5. Arborescence des noms de domaine
Alors, la définition des noms de domaines suit une arborescence complexe. En effet, un nom
de domaine est la séquence de labels depuis le nœud de l’arbre correspondant jusqu’à la
racine. Exemple le domaine de nom « rezo.ma ».
Les serveurs racine connaissent les serveurs de nom ayant autorité sur tous les domaines
racine. Les serveurs racine connaissent au moins les serveurs de noms pouvant résoudre le
premier niveau (.com, .org, .ma, etc.). Le système DNS impose deux règles de nommage :
On appelle donc « nom de domaine » chaque nœud d l'arbre. Chaque nœud possède une
étiquette (en anglais « label ») d'une longueur maximale de 63 caractères. L'ensemble des
noms de domaine constitue ainsi un arbre inversé où chaque nœud est séparé du suivant par
un point (« . »). L'extrémité d'une branche est appelée hôte, et correspond à une machine ou
une entité du réseau. Le nom d'hôte qui lui est attribué doit être unique dans le domaine
considéré, ou le cas échéant dans le sous-domaine. A titre d'exemple le serveur web d'un
domaine porte ainsi généralement le nom www.
Un domaine défini ainsi la représentation d’un réseau sur lequel se touv(ent) une (des)
machine(s) alors c’est un ensemble logique de correspondances entre: Entités du domaine et
10
Adresses IP. Le domaine ne peut pas être traduit en adresse IP car il ne correspond pas à une
seule machine. De même, une même machine peut être sur plusieurs réseaux, elle peut être
dans plusieurs domaines.
L’hôte est un enregistrement qui ne peut pas contenir d’autre d'enregistrement et il correspond
à une machine physique comme:
La zone est un conteneur pouvant contenir des enregistrements ou d'autres zones. Elle peut
définir un hôte par défaut et peut être géré par un autre serveur DNS que celui qui gère la zone
parent (délégation).
En générale la mise en mémoire des caches permet de réduire le temps de réponse tout en
diminuant le nombre de messages nécessaires à la résolution. Elle permet aussi de réduire la
charge des serveurs par la diminution du nombre de serveurs à contacter. Chaque serveur de
noms stocke dans son cache les informations récentes en particulier les enregistrements de
type NS. Alors, à la prochaine demande, il peut répondre directement. Les données expirent
du cache après un certain temps TTL (environ 2 jours) et le serveur qui mémorise dans son
cache un enregistrement DNS n’a pas l’autorité dessus dans la réponse.
Dans le cheminement d’une résolution de nom, certaines requêtes peuvent être itératives,
d’autres récursives. Généralement les requêtes sont toutes récursives sauf celles entre le
serveur de noms local et le serveur de noms racine.
12
Sur les réseaux locaux de grande taille ou sur les réseaux dont les utilisateurs changent
fréquemment, le service de résolution de la correspondance IP/ nom de domaine est précédé
par le service de configuration automatique TCP/IP. De ce fait, la connexion d’appareils à un
réseau TCP/IP existant est désormais très facile. Auparavant il fallait attribuer
manuellement des adresses IP et les saisir dans les différents systèmes, mais de nos jours la
gestion des adresses est automatique.
Le protocole DHCP est une extension du protocole BOOTP (Bootstrap Protocol) développé
en 1985 pour connecter des périphériques simples comme les terminaux et les postes de
travail sans disque dur à un serveur de démarrage. Ces périphériques accèdent ensuite à votre
système d’exploitation via le serveur. Conçu comme une solution pour les grands réseaux et
pour les ordinateurs portables, le DHCP complète BOOTP avec des fonctionnalités telles que
la possibilité d’assigner automatiquement des adresses réseau réutilisables et des options de
configuration supplémentaires.
Après les premières définitions du protocole dans les RFC 1531 et 1541 (tous les deux de
1993), la spécification standard a été officialisée en 1997 et a été enregistrée dans le RFC
2131. L’IANA (Internet Assigned Numbers Authority) a attribué les ports UDP 67 et 68 (pour
IPv6 : ports 546 et 547) au protocole de communication, qui sont également affectés pour le
protocole Bootstrap.
Adresse IP unique
13
Masque de sous-réseau
Passerelle standard
Serveur DNS
Configuration de proxy via WPAD (Web Proxy Auto-Discovery Protocol)
3.3.2. La communication entre serveur et client DHCP
2. Tous les serveurs DHCP qui écoutent les requêtes du port 67 répondent à la demande
du client avec un paquet DHCPOFFER. Cette réponse, en plus d’une éventuelle
adresse IP libre et l’adresse MAC du client, contient aussi le masque de sous-réseau
ainsi que l’adresse IP et ID du serveur.
14
4. Enfin, le serveur confirme les paramètres TCP/IP et va les transmettre à nouveau au
client à l’aide d’un paquet DHCPACK (DHCP acknowledged, pour « reconnu »). Il
contient des informations supplémentaires, par exemple sur les serveurs
DNS, SMTP ou POP3. Le DHCP client enregistre maintenant toutes les données
reçues localement et se connecte au réseau. Si le serveur n’est plus disponible ou si
l’adresse IP a été attribuée à un autre client au cours du processus de configuration, il
répond alors avec DHCPNAK (DHCPnot acknowledged « non reconnu »).
L’adresse automatiquement assignée est enregistrée en combinaison avec l’adresse MAC dans
la base de données du serveur, ce qui signifie que la configuration devient permanente.
L’appareil se connecte toujours au réseau avec l’adresse IP affectée, qui est bloquée pour les
autres clients. Toutefois, cela présente aussi l’inconvénient que les nouveaux clients DHCP ne
15
reçoivent pas d’adresse si toute la plage d’adresses a déjà été assignée, même si certaines
adresses IP ne sont plus utilisées activement. C’est essentiellement pour cette raison que les
adresses IP dynamiques et dans certains cas particuliers l’affectation manuelle via le serveur
DHCP, comme il en sera question dans la section suivante, sont bien plus couramment
utilisés.
Le risque de rencontrer une plage d’adresses entièrement occupée est peu probable lors
de l’attribution d’adresses dynamique. En principe, cette méthode est largement similaire à
l’assignation automatique, mais il existe néanmoins une petite et subtile différence :
les configurations IP transmises par le serveur DHCP ne sont pas valables pour une durée
indéterminée mais avec un bail défini par l’administrateur. Il indique la durée pendant
laquelle l’appareil peut accéder au réseau avec l’adresse IP correspondante. Avant l’expiration
de ce délai, les clients conformes aux normes doivent demander une prolongation en envoyant
un autre paquet DHCPREQUEST. Si cela ne se produit pas, il y a alors un DHCP refresh et le
serveur libère l’adresse.
Bien que les administrateurs n’aient pas grand-chose à voir avec les options d’affectation
automatique ou dynamique, la situation avec l’affectation manuelle des adresses est
complètement différente. Dans cette procédure, appelée aussi DHCP statique, les adresses IP
disponibles sont assignées manuellement à des adresses MAC spécifiques à l’aide du serveur
DHCP. Il n’y a aucune restriction concernant la période de validité.
En raison de l’effort administratif important, qui va à l’encontre du but réel du Dynamic Host
Configuration Protocol, ce type d’affectation n’est utile que pour très peu de scénarios
d’application. Les adresses IP statiques sont nécessaires, par exemple, si des services de
serveur sont hébergés sur l’ordinateur en question et devraient être accessibles à tout moment
pour d’autres utilisateurs du réseau. Il est également important pour la redirection de port que
l’adresse IP reste inchangée.
Pour que les adresses IP attribuées par les clients puissent recevoir leurs noms de domaine
entièrement qualifiés, un serveur DNS doit fournir une résolution de nom. Si une adresse ou
un nom d’hôte déjà saisi est modifié, le serveur de noms a besoin d’une mise à jour. Dans le
cas d’une modification et d’une évolution constante des adresses IP résultant de l’allocation
dynamique via un serveur DHCP, l’exécution manuelle exigerait beaucoup d’efforts de la part
16
de l’administrateur du réseau, ainsi que pour l’utilisateur qui souhaite se connecter à Internet
avec ses appareils à domicile. Le fait qu’ils n’aient pas à le faire est possible grâce au serveur
DHCP, ce dernier se charge en effet d’envoyer les nouvelles informations au DNS dès qu’une
nouvelle adresse IP est assignée.
Rappel : Les annuaires permettent de partager des bases d'informations sur le réseau interne
ou externe. Ces bases peuvent contenir toute sorte d'information que ce soit des coordonnées
de personnes ou des données systèmes. Un annuaire électronique est alors une base de
donnée spécialisée, dont la fonction première est de retourner un ou plusieurs attributs d'un
objet grâce à des fonctions de recherche multi-critères. Contrairement à un SGBD, un
annuaire est très performant en lecture mais l’est beaucoup moins en écriture.
17
Quelles sont les différences entre LDAP et une base de données ?
X500
X.500 désigne l'ensemble des normes informatiques sur les services d'annuaire définies par
l'UIT-T (anciennement appelé CCITT). En pratique, seule la partie X.509 concernant
l'authentification est utilisée actuellement ; pour le reste, la plupart des services d'annuaire
actuels utilisent une norme beaucoup moins lourde : LDAP.
18
3.4.1. Le protocole LDAP
Le modèle d’information
Il définit la nature des données stockées dans l’annuaire. Chaque donnée est l’instance d’une
classe d’objet, elle-même définie par des attributs. Chaque attribut est défini par un type. Il
contient une ou plusieurs valeurs qui peuvent être obligatoires ou optionnelles (ex : la classe «
personne » définie, entre autres attributs, par son nom, prénom, adresse de messagerie, etc.).
Le modèle de désignation
Il définit la façon d’organiser et de désigner les entrées de l’annuaire. Les données sont
représentées sous une forme hiérarchique dans un arbre, reflétant en général l’organisation de
l’entreprise (ex : organisation hiérarchique ou géographique).
Il décrit les fonctions offertes par l’annuaire LDAP. Ces fonctions comprennent la
consultation et la recherche des données présentes dans l’annuaire, les procédures de mise à
jour de celles-ci, et l’authentification des utilisateurs auprès de ces services.
19
Le modèle de sécurité
L’annuaire LDAP est composé de La base de données, du schéma et des droits d’accès.
Les données LDAP sot structurées dans une arborescence hiérarchique qu'on peut comparer
au système de fichier Unix. Chaque nœud de l'arbre correspond à une entrée de l'annuaire ou
Directory Service Entry (DSE) et au sommet de cette arbre, appelé Directory Information
Tree (DIT), se trouve la racine ou suffixe. Ce modèle est en fait repris de X500, mais
contrairement à ce dernier, conçu pour rendre un service d'annuaire mondial (ce que le DNS
fait par exemple pour les noms de machines de l'Internet), l'espace de nommage d'un annuaire
LDAP n'est pas inscrit dans un contexte global.
Les données d’un annuaire LDAP sont ainsi classées dans un arbre inversé. Chaque nœud de
l’arbre est un objet, qui peut appartenir à n’importe quelle classe. Il n’y a pas de différence
20
entre un nœud et les données proprement dites. Ainsi, tout objet de l’annuaire peut être le
point de départ d’une sous-branche s’il existe d’autres objets sous celui-ci. La norme LDAP
n’impose aucune contrainte quant au type des classes d’objets dans la hiérarchie de l’arbre.
o racine
o pays
o organisation
o unité d’organisation (ou)
o « nom commun » (cn)
L'adresse d'une entrée de l'annuaire LDAP est appelée : distinguished name ou dn. En
reprenant l'exemple d'arborescence ci-dessus, les adresses des différentes entrées sont notées
comme suit.
dn: dc=lab,dc=stri
dn: ou=lab1,dc=lab,dc=stri
dn: ou=lab2,dc=lab,dc=stri
dn: cn=etu1,ou=lab1,dc=lab,dc=stri
dn: cn=etu2,ou=lab1,dc=lab,dc=stri
dn: cn=etu3,ou=lab2,dc=lab,dc=stri
dn: cn=etu4,ou=lab2,dc=lab,dc=stri
L'adresse de chaque entrée appartient à une classe d'objet (ObjectClass) spécifiée dans un
schéma (schema). En reprenant les mêmes exemples d'entrées, on peut associer les classes
d'objets correspondantes.
21
L’entrée/ entry Classe objet/ objectclass
o: lab.stri organisation
sn: etu1
Les entrées correspondent à des objets abstraits ou issus du monde réel, comme une personne,
une imprimante, ou des paramètres de configuration. Elles contiennent un certain nombre de
champs appelés attributs dans lesquelles sont stockées des valeurs. Chaque serveur possède
une entrée spéciale, appelée root Directory Specific Entry (rootDSE) qui contient la
description de l'arbre et de son contenu.
3.4.2.2. Le schéma
L'ensemble des définitions relatives aux objets que sait gérer un serveur LDAP s'appelle le
schéma. Le schéma décrit les classes d'objets, leurs types d’attributs et leur syntaxe. Une
entrée de l’annuaire contient une suite de couples types d’attributs - valeurs d’attributs. Les
attributs sont caractérisés par :
22
Tous les attributs du standard commencent par 2.5.4 et toutes les
classes d’objet commencent par 2.5.6.
La version 3 du standard LDAP impose que le schéma soit défini dans l’annuaire afin de
permettre aux applications informatiques d’utiliser l’interface LDAP pour le consulter et le
modifier le cas échéant. Elles peuvent ainsi connaître les caractéristiques d’un annuaire et
adapter leur comportement en conséquence. La description du schéma est stockée dans un
emplacement dédié de la structure hiérarchique, sous forme d’une instance de la classe
subschema.
Le respect du schéma est essentiel pour garantir la validité et l’intégrité des données stockées
dans l’annuaire. Par exemple, une classe d’objet qui contient des attributs obligatoires doit
permettre de s’assurer qu’aucune instance ne pourra intégrer l’annuaire sans comporter une
définition pour ces attributs. De même, le schéma garantira le respect du type défini pour
l’attribut. Ainsi, un attribut de type entier ne pourra accepter qu’une valeur numérique.
Grâce à la norme LDAP V3, l’annuaire connaît son schéma. Il est donc en mesure d’effectuer
lui-même les contrôles lors de la création, de la modification ou de la suppression d’attributs
et d’entrées présentes dans l’annuaire.
Figure 3. Le schéma
23
Le modèle LDAP impose un référentiel commun d’attributs. Le schéma ci-dessus illustre,
entre autres, le fait que la définition des attributs est indépendante des classes d’objets. Un
même attribut peut être utilisé par des classes d’objets différentes. Cette approche favorise la
réutilisation de ces définitions.
Les attributs décrivent généralement des caractéristiques de l’objet, ce sont des attributs dits
normaux qui sont accessibles aux utilisateurs. Certains attributs sont dits opérationnels car ils
ne servent qu’au serveur pour administrer les données. La syntaxe indique le type de données
associées à l’attribut et la manière dont l’annuaire doit comparer les valeurs lors d’une
recherche.
Certains serveurs LDAP respectent les standards X500 de hiérarchisation des attributs, qui
permettent de décrire un attribut comme étant un sous-type d’un attribut super-type et
d’hériter ainsi de ses caractéristiques. Ces attributs super-types peuvent être utilisés comme
critère de recherche générique qui porte sur tous ses sous attributs.
Les classes d'objets modélisent des objets réels ou abstraits en les caractérisant par une liste
d’attributs optionnels ou obligatoires. Une classe d’objet est définie par :
24
Le type d’une classe est lié à la nature des attributs qu’elle utilise.
Les classes d’objets décrivent les entrées d’un annuaire. Elles sont composées d’attributs.
Elles définissent un type de « ressource » et peuvent être agrégées. Les classes d’objets
forment une hiérarchie, au sommet de laquelle se trouve l'objet top. Chaque objet hérite des
propriétés (attributs) de l'objet dont il est le fils. On peut donc enrichir un objet en créant un
objet fils qui lui rajoute des attributs supplémentaires.
• Son OID.
• Son nom.
• Une courte description de la classe.
• La classe dont elle dérive.
• Son type (ABSTRACT, STRUCTURAL, AUXILIARY).
• La liste des attributs obligatoires (MUST).
• La liste des attributs facultatifs (MAY).
25
On distingue trois types de classes d’objets :
Les classes abstraites : elles ne peuvent pas avoir d’instance. Seules les classes
dérivées peuvent être instanciées. Exemple : la classe top dont dérivent toutes les
classes d’un annuaire.
Les classes structurelles : elles peuvent être instanciées. Exemple : la classe person
dont on trouve des instances dans un annuaire.
Les classes auxiliaires : elles étendent les classes de type structurel. Elles dérivent
directement de la classe top.
Les classes auxiliaires sont utilisées pour compléter les classes de type structurel. Une entrée
dans l’annuaire peut ainsi être complétée par un ensemble d’attributs à l’aide d’une instance
d’une classe auxiliaire. Généralement, tous les attributs d’une classe auxiliaire sont facultatifs.
Les droits d’accès permettent de gérer les autorisations sur la totalité des entrées de
l’annuaire. Ils s’appliquent sur les objets et sur leurs attributs et consistent à décrire les droits
de certains objets de l’annuaire sur d’autres entrées. Cette description s’effectue à l’aide de
règles (ACL Access Control Lists). Chaque ACL comprend plusieurs règles (ACI Access
Control Item/Information).
La syntaxe d’une ACI n’étant pas normalisée, elle diffère d’un serveur d’annuaire à l’autre.
Certains produits comme Sun Directory Server utilisent une syntaxe sous forme de chaîne de
caractères. D’autres, tels qu’Active Directory, recourent à une codification binaire
propriétaire qui impose l’utilisation de l’outil d’administration du serveur. Un tel
comportement fait que, par exemple, il sera impossible d’exporter le contenu de l’annuaire
d’un premier éditeur pour l’importer ensuite dans celui d’un second tout en conservant une
image parfaite de la base initiale. En effet, les droits d’accès du premier annuaire ne pourront
être répliqués sur le second.
Qui ?
anonyme (anonymous), utilisateur (self), groupe d’utilisateurs (users), tout le monde
(*).
A partir d’où ?
nom de machine ou adresse IP source.
Quels droits ?
26
authentification (auth), lecture (read), écriture (write), suppression (write), ajout
(write), recherche (search), comparaison (compare).
Sur quoi ?
attribut, objet, totalité de l’annuaire (*).
3.4.2.6. Le format LDIF
LDIF signifie LDAP Data Interchange Format. Il s’agit du format d’échange pour les
annuaires LDAP. Il est basé sur un format texte ASCII. Il permet d’importer ou d’exporter des
données : création, mise à jour et réplication. Le standard LDIF permet de simplifier la
réplication des données entre annuaires. En effet, il suffit de faire une exportation de l’un et
une importation dans l’autre pour répliquer une partie ou la totalité des entrées.
Les entrées de l’annuaire sont décrites sous forme de blocs indépendants. Chaque entrée/bloc
est séparé par une ligne vide. Chaque bloc commence par le RDN de l’objet. Le RDN (Le
RDN n’est autre que le nom relatif d’une entrée (Relative Distinguished Name)) doit
également se trouver dans la liste des attributs.
Chaque entrée est séparée de la précédente par une ligne. Chaque bloc commence par le RDN
de l’entrée. On trouve ensuite une suite d’attributs et de valeurs séparées par le caractère « : ».
On définit un seul attribut par ligne. Les noms des attributs sont ceux déclarés dans le schéma
de l’annuaire. Bien entendu, comme nous l’avons vu précédemment, un attribut peut avoir
plusieurs occurrences. Si la valeur d’un attribut n’est pas en ASCII, elle doit être codée au
format base 64. Ce format permet de convertir chaque caractère binaire en un ou plusieurs
27
caractères ASCII. C’est le cas de l’attribut userPassword dans l’exemple ci-dessus. NB : Ce
champ a été obtenu après migration d’une base /etc/passwd dans un annuaire LDAP.
28