Vous êtes sur la page 1sur 28

Chapitre III

Les services annuaires

3.1. Définition

Un service d'annuaire peut être associé à un système de stockage de données permettant de


rendre accessible un ensemble d'informations à tous les utilisateurs de ce système. Il devient
une des pièces centrales d'un système d'information, il convient donc de veiller à ce que celui
soit réglementé au niveau de sa structure, de son fonctionnement et de sa sécurité. Ces règles
doivent être convenablement définies et respectées.

Alors,  Qu'est-ce qu'un annuaire ?

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.

Ainsi, A quoi sert un annuaire ?

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.

3.2. Le Système de noms de domaine  DNS

 Le serveur DNS (Domain Name System, ou Système de noms de domaine en français) est un


service dont la principale fonction est de traduire un nom de domaine en adresse IP. Ce
serveur DNS agit comme un annuaire que consulte un ordinateur au moment d'accéder à un
autre ordinateur via un réseau. Autrement dit, le serveur DNS offre le service qui permet
d'associer à un site web (ou un ordinateur connecté ou un serveur) une adresse IP, comme un
annuaire téléphonique qui permet d'associer un numéro de téléphone à un nom d'abonné.

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.

Les caractéristiques du service DNS :

 Une organisation hiérarchisée du système de nommage.


 Une répartition par zone des informations associée a un mécanisme d’interrogation
récursive.
 Une résolution des noms en adresse IP via UDP.

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.

Figure 3.1. Pile OSI vs TCP/IP

Ainsi, La couche Application du modèle TCP/IP offre les services d’administration de


réseaux comme le service SNMP et aussi offre les services annuaires comme le service DNS.

Figure 3.2. Les services applicatifs

Chaque unité protocolaire de TCP-IP identifie le protocole ou l’application supérieure. En


examinant les différents protocoles et services de couche application TCP/IP, nous nous
référerons aux numéros de port TCP et UDP normalement associés à ces services.
3
Figure 3.3. Les protocoles TCP/IP

3.2.2. La cinématique DNS

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.

Figure 3.4. La cinématique DNS

3.2.3. Le protocole DNS

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

 Le « Host aliasing » : donner un pseudonyme à une machine qui a un nom peu


parlant.
 Le « Mail server aliasing » : un serveur Web et un serveur Mail peuvent avoir le
même pseudonyme même s’ils n’ont pas la même adresse IP (2 machines).
 La répartition de la charge : un nom de serveur Web ou Mail peut correspondre à
plusieurs adresses IP (serveurs Web ou Mail répliqués) avec un système de rotation
dans les réponses du serveur DNS

Les trois composantes du DNS sont :

 Les solveurs de noms


 Les serveurs de noms
 L'espace des noms et la liste des ressources (domaines)
3.2.4. Les solveurs de noms

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.

3.2.5. Le serveur DNS


3.2.5.1. Le rôle du serveur DNS

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.

Les serveurs de noms locaux

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.

Les serveurs de noms racine [RFC 2870]

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.

Les serveurs de noms de sources autorisées

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.

3.2.6. Les domaines ou Zones

7
Les domaines définissent les différents niveaux d'autorité à l'intérieur d'une structure
hiérarchisée.

 Le plus haut domaine est appelé le domaine racine.


 Les domaines de niveau supérieur peuvent contenir des hôtes et des domaines de
second niveau.
 Les domaines de second niveau peuvent contenir à la fois des hôtes et d'autres
domaines

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

.arpa machines issues du arpa

.com entreprises à vocation commerciale

.edu organismes éducatifs

.gov organismes gouvernementaux

.int organisations internationales

.mil organismes militaires

.net aux organismes ayant trait aux réseaux. Ce


TLD est devenu depuis quelques années un
TLD courant.

.org entreprises à but non lucratif

.aero industrie aéronautique

.biz (business) entreprises commerciales

8
.museum aux musées

.name noms de personnes ou aux noms de


personnages imaginaires

.info correspond aux organisations ayant trait à


l'information

.coop aux coopératives

.pro professions libérales

 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 :

1. Noms < 63 caractères

2. Majuscules et minuscules non significatives

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.

Noms de domaine/adresses Domaine/zone Machine/hôte

www.google.fr google.fr www

www.support.msdn.microsoft.com support.msdn.microsoft.com www

perso.wanadoo.fr wanadoo.fr perso

L’hôte est un enregistrement qui ne peut pas contenir d’autre d'enregistrement et il correspond
à une machine physique comme:

 www pour un serveur web (www.google.fr)


 pop pour un serveur pop3 (pop.ucam.ac.ma)
 smtp pour un serveur SMTP (smtp.wanadoo.fr)

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).

3.2.7. La mise en mémoire cache DNS

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.

3.2.8. Les requêtes DNS

Requêtes Récursives Requêtes Itératives Requêtes Inverses

 Le serveur de noms  Le serveur de noms  Le solveur envoie une


interrogé doit renvoyer interrogé doit renvoyer requête à un serveur de
soit l'information la meilleure solution noms afin que celui-ci
demandée, soit un qu'il peut apporter renvoie le nom d'hôte
11
message d'erreur. actuellement au client. associé à une adresse IP
 Le serveur ne peut pas  Nom résolu, ou renvoi connue.
soumettre la requête à vers un autre serveur.  Pour répondre aux
un autre serveur. requêtes inverses un
domaine spéciale a été
crée, il s'agit de in-
addr.arpa.

Par exemple, pour trouver le


nom d'hôte associé à l'adresse
IP 194.2.254.82, le solveur
demande au serveur DNS un
enregistrement pointeur pour
82.254.2.194.in-addr.arpa

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.

Figure 3.6 Cinématique d’une résolution DNS

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.

3.3. Le Dynamic Host Configuration Protocol DHCP

Le protocole DHCP (Dynamic Host Configuration Protocol, en français : protocole de


configuration dynamique des hôtes) permet au matériel de communication (comme les
routeurs, les commutateurs et les hubs) d’attribuer automatiquement une adresse individuelle
aux dispositifs de recherche de connexion et de les intégrer dans un réseau.

3.3.1. Qu’est-ce que le DHCP ?

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.

L’attribution d’adresses avec le DHCP fonctionne selon le principe du client-serveur : les


appareils qui recherchent une connexion demandent la configuration de l’adresse IP à un
serveur DHCP, qui accède à son tour à une base de données dans laquelle sont saisies
les paramètres réseau à définir. De plus, ce serveur, qui fait partie intégrante de tout routeur
DSL moderne, peut assigner les paramètres suivants au client en utilisant ses informations de
base données :

 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

L’attribution automatiques des adresses via le protocole de configuration dynamique de l‘hôte


(DHCP) se déroule en quatre étapes consécutives :

1. Pour commencer, le client envoie un paquet DHCPDISCOVER avec l’adresse cible


255.255.255.255 et l’adresse source 0.0.0.0. Avec cette diffusion, il contacte tous les
participants du réseau pour localiser les serveurs DHCP disponibles et les informer de
la demande d’adresse. Dans le meilleur des cas, seul un serveur existe, ainsi il n’y a
pas de complications avec l’attribution.

 
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.

3. Le client DHCP en sélectionne un à partir des données d’adresse reçues et informe le


serveur concerné via DHCPREQUEST. Tous les autres serveurs reçoivent aussi ce
message et savent ainsi que le choix a été fait en faveur d’un autre serveur. De plus, le
client demande au serveur d’activer les données proposées. Le DHCPREQUEST est
aussi utilisé pour confirmer les paramètres reçus précédemment.

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.

3.3.3. Les adresses manuelle et dynamique

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.

3.3.4. Le serveur DHCP et le serveur DNS

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.

3.3.5. Les messages DHCP

3.4. Le protocole Lightweight Directory Access Protocol LDAP

LDAP est le protocole d'annuaire sur TCP/IP.

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 ?

Les bases de données Les annuaires

stockage sous forme de tables stockage hiérarchique

données stockées à un endroit unique données globales et distribuées

nommage spécifique à chaque application nommage global et standardisé

critère de performance : transactions critère de performance : accès en lecture

Le paradigme LDAP est né de la nécessaire d’adaptation du protocole DAP (protocole


d’accès au service d'annuaire X500 de l’OSI) à l'environnement TCP/IP. Initialement frontal
d'accès à des annuaires X500, LDAP est devenu en 1995, un annuaire natif (stand-alone
LDAP) sous l'impulsion d'une équipe de l'Université du Michigan (logiciel U-M LDAP).

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.

LDAP est un protocole d'annuaire standard et extensible. Il fournit :

 Le protocole permettant d'accéder à l'information contenue dans l'annuaire.


 Un modèle d'information définissant le type de données contenues dans l'annuaire.
 Un modèle de nommage définissant comment l'information est organisée et
référencée.
 Un modèle fonctionnel qui définit comment on accède à l'information.
 Un modèle de sécurité qui définit comment les données et les accès sont protégés.
 Un modèle de duplication qui définit comment la base est répartie entre serveurs.
 Des APIs (Application Programming Interface : est un ensemble de définitions et de
protocoles qui facilite la création et l’intégration de logiciels d’applications) pour
développer des applications clientes.
 LDIF (LDAP Data Interchange Format), un format d'échange de données.

18
3.4.1. Le protocole LDAP

Le protocole définit comment s'établit la communication client-serveur. Il fournit à


l'utilisateur des commandes pour se connecter ou se déconnecter, pour rechercher,
comparer, créer, modifier ou effacer des entrées. Des mécanismes de chiffrement (SSL ou
TLS) et d'authentification (SASL), couplés à des mécanismes de règles d'accès (ACL)
permettent de protéger les transactions et l'accès aux données.

La plupart des logiciels serveurs LDAP proposent également un protocole de communication


serveur-serveur permettant à plusieurs serveurs d'échanger leur contenu et de le
synchroniser (réplication service) ou de créer entre eux des liens permettant ainsi de relier
des annuaires les uns aux autres (referral service). La communication client-serveur est
normalisée par l'IETF dans la version actuelle, la 3, du protocole LDAP (RFC2251).
Concernant la communication serveur-serveur, le referral service est définit par LDAPv3, par
contre la réplication service est encore en cours de normalisation sous la dénomination LDAP
Duplication Protocol (LDUP) dont la parution est prévu pour décembre 99.

Contrairement à d'autres protocoles d'Internet, comme http et SMTP, le dialogue LDAP ne se


fait pas en ASCII mais utilise le format de codage Basic Encoding Rule (BER).

Le protocole LDAP possède quatre modèles prédéfinis:

 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).

 Le modèle des services

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é

Il définit la procédure d’authentification auprès de l’annuaire et les droits d’accès aux


différentes entrées contenues dans l’annuaire. La gestion de la sécurité est très pointue car elle
permet de définir des droits d’accès non seulement sur les objets mais également sur les
attributs qui les définissent. Par exemple, seul le service des ressources humaines sera autorisé
à consulter l’attribut « numéro de sécurité sociale » d’un employé.

3.4.2. Les composants de LDAP

L’annuaire LDAP est composé de La base de données, du schéma et des droits d’accès.

3.4.2.1. La base de données

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.

LDAP utilise un modèle hiérarchique :

o racine
o pays
o organisation
o unité d’organisation (ou)
o « nom commun » (cn)

Figure 3. Exemple de DIT LDAP

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

dc: lab dcObject

dc: stri dcObject

ou: lab1 organisationalUnit

cn: etu1 inetOrgPerson

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 :

 Un nom qui l’identifie


 Un Object Identifier (OID) qui l’identifie également
Les OID sont issus du standard X500. On les retrouve également dans le
protocole SNMP. Cette hiérarchie permet de définir un nombre infini
d’OID tout en conservant leur unicité dans l’arbre ‘Un site recense les OID
normalisés : http://www.alvestrand.no/objectid ). Les numéros sont affectés
par une instance de normalisation : IANA ou ANSI. Certaines
organisations se voient déléguer l’attribution des numéros pour une sous-
branche :
 Standard LDAP (1.3.6.1.4.1.1466.101.120).
 Université du Michigan (1.3.6.1.4.1.250.1, 2 ou 3).
 Microsoft pour AD (1.2.840.1135561).
 …etc.

22
Tous les attributs du standard commencent par 2.5.4 et toutes les
classes d’objet commencent par 2.5.6.

 S’il est mono ou multi-valué


 Une syntaxe et des règles de comparaison
 Un indicateur d’usage
 Un format ou une limite de taille de valeur qui lui est associée

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.

Figure 3. Exemple d’un schéma

3.4.2.3. Les attributs

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 :

 Un nom qui l’identifie


 Un OID qui l’identifie également
 Des attributs obligatoires
 Des attributs optionnels
 Un type (structurel, auxiliaire ou abstrait)

24
Le type d’une classe est lié à la nature des attributs qu’elle utilise.

 Une classe structurelle correspond à la description d’objets basiques de l’annuaire :


les personnes, les groupes, les unités organisationnelles… Une entrée appartient
toujours au moins à une classe d’objet structurelle.
 Une classe auxiliaire désigne des objets qui permettent de rajouter des informations
complémentaires à des objets structurels. Par exemple l’objet mailRecipient rajoute
les attributs concernant la messagerie électronique d’une personne. L’objet
labeledURIObject fait de même concernant les infos Web.
 Une classe abstraite désigne des objets basiques de LDAP comme les objets top ou
alias.
3.4.2.4. Les classes d’objets

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.

Une classe d’objets est définie par :

• 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).

Figure 3..Exemple classe d’objet

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.

3.4.2.5. Les droits d’accès

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.

Les listes de contrôle d’accès répondent aux questions suivantes :

 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.

Figure 3. Exemple de LDIF

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

Vous aimerez peut-être aussi