Vous êtes sur la page 1sur 4

L3 RT/ESTM

SERVICE D’ANNUAIRE ET D’AUTHENTIFICATION 2023-2024

Chapitre Annuaire LDAP


Annuaires électroniques : LDAP
L’utilisation principale des architectures à clef publique, et plus précisément des certificats électroniques, est de
relier une clef publique à son propriétaire. Ces certificats sont publics et accessibles par tout un chacun. La
première question qui se pose alors est la définition d’un propriétaire et de ce qui fait son identité, puis d’un
format permettant de décrire cette identité. Naturellement, la deuxième question concerne la gestion de ces
données, de type annuaire. Ces questions sont en pratique relativement indépendantes de la notion générale
d’architecture à clef publique. Dans un premier temps, le lecteur peut donc passer cette partie même si par
exemple la notion d’identité est indissociable des informations contenues dans un certificat électronique et
nécessaires à l’identification. Un format général de gestion de données de type annuaire, « Lightweight
Directory Access Protocol » (LDAP), ainsi qu’un format de représentation des données associées,« LDAP
Data Interchange Format »(LDIF), sont décrits dans ce paragraphe.
1. Protocole de services d’annuaire
LDAP [RFC2255] est à l’origine un protocole permettant l’interrogation et la modification des services
d’annuaire. Ce protocole repose sur TCP/IP. Il a cependant évolué pour représenter une norme pour les systèmes
d’annuaires, incluant :
- un protocole, permettant d’accéder à l’information contenue dans l’annuaire ;
- un modèle d’information, définissant le type de données de l’annuaire;
- un modèle de nommage, définissant comment l’information est organisée et référencée ;
- un modèle fonctionnel, utilisant le protocole LDAP, qui définit comment l’information est accédée ;
- un modèle de sécurité, qui définit comment données et accès sont protégés ;
- un modèle de duplication, qui définit la répartition de la base entre les serveurs ;
- des APIs pour développer des applications clientes ;
- LDIF, un format d’échange de données
Un annuaire LDAP respecte généralement le modèle X.500 édicté par l’ITU-T:
C’est une structure arborescente dont chacun des nœuds est constitué d’attributs associés à leurs valeurs. La
dernière version en date du protocole est LDAP v3. Cette version est définie parle Groupe d’élaboration de
standards Internet (« Internet Engineering Task Force »,IETF), dans plusieurs RFC en commençant par la
[RFC1510].
2. Caractéristiques principales
LDAP est un protocole d’accès à un annuaire :
- il n’y a pas de contrainte d’implémentation ;
- un annuaire propriétaire peut (et doit) fournir une interface LDAP ;
- il existe des annuaires LDAP natifs (OpenLDAP) ;
- l’échange de données se fait par le format d’échange de données LDAP (LDIF),
Une requête à un annuaire LDAP produit un fichier LDIF. Un fichier LDIF permet d’ajouter une entrée à un
annuaire LDAP;

Dr GUEYE
L3 RT/ESTM
SERVICE D’ANNUAIRE ET D’AUTHENTIFICATION 2023-2024

- il existe des opérations de duplication et de synchronisation ;


- il est facile de maintenir des copies.
LDAP peut fournir différents services. Il peut être utilisé comme :
- un protocole de diffusion de données : annuaire LDAP de type pages blanches pour contacter les
personnes ;
- un protocole de service pour des applications : un annuaire LDAP des adresses mail permet aux outils
ou serveurs de mail de composer ou vérifier les adresses. Il est aussi utilisé par des gestionnaires de listes
(Sympa), et constitue une base permettant de stocker les préférences de configuration d’une application
(« profiles communicator ») ;
- une passerelle entre applications : permettant l’échange de données entre applications incompatibles,
par exemple les carnets d’adresses Netscape Communicator et Microsoft Outlook ;
- un protocole de service pour les systèmes d’exploitation ou les services Internet : base LDAP des
utilisateurs utilisée par les systèmes pour assurer l’authentification (certificats d’authentification) et
gérer les droits d’accès aux ressources réseau.

3. Vue d’ensemble d’une session


Un client débute une session LDAP en se connectant sur le port TCP 389 du serveur(ou sa version sécurisé sur
le port TCP 636). Le client envoie ensuite des requêtes d’opération au serveur. Le serveur envoie des réponses
en retour. À part quelques exceptions, le client n’a pas besoin d’attendre de réponse du serveur pour envoyer de
nouvelles requêtes, et le serveur peut envoyer ses réponses dans n’importe quel ordre. Une fois la connexion au
serveur établie, les opérations classiques sont :
- bind : indique la version du protocole, et authentifie l’utilisateur. Cette opération peut être anonyme, ne
fournissant ni nom d’utilisateur ni mot de passe ;
- start TLS : utilisation de la couche « Transport Layer Security »(TLS) pour sécuriser la connexion ;
- search : recherche dans l’annuaire et rapatriement des données ;
- compare : détermine si une entrée contient un attribut avec une valeur donnée ;
- add : ajout d’une nouvelle entrée ;
- delete : suppression d’une entrée ;
- modify : modification d’une entrée ;
- modify DN : déplacement ou renommage d’une entrée ;
- abandon : annulation d’une requête précédente ;
- extended Operation : opération qui permet de définir d’autres opérations ;
- unbind : clôture la connexion.
De plus, le serveur peut envoyer des notifications non sollicitées, « Unsolicited Notifications », qui ne sont pas
des réponses à des requêtes, par exemple avant de clôturer une connexion inactive. Les messages sont encodés
avec le format binaire « Basic Encoding Rules » (BER), règles d’encodage basiques, et le protocole LDAP est
défini avec « Abstract Syntax Notation » (ASN.1). Cependant il utilise une représentation textuelle pour un
certain nombre d’attributs et de types d’ASN.1
4. Structure de l’annuaire LDAP
Les annuaires LDAP suivent le modèle X.500 :
- un annuaire est un arbre d’entrées, « Directory Information Tree »(DIT);
- une entrée est constituée d’un ensemble d’attributs ;
- un attribut possède un nom, un type et une ou plusieurs valeurs ;
- les attributs sont des chaînes de caractères ou des données binaires.

Dr GUEYE
L3 RT/ESTM
SERVICE D’ANNUAIRE ET D’AUTHENTIFICATION 2023-2024

Le fait que les attributs puissent être multivalués est une différence majeure entre les annuaires LDAP et les
systèmes de gestion de bases de données relationnelles. De plus, si un attribut n’a pas de valeur, il est purement
et simplement absent de l’entrée.
Le nommage des éléments constituant l’arbre d’entrées (racine, branches, feuilles) reflète souvent le modèle
politique, géographique ou organisationnel de la structure représentée. La tendance actuelle est d’utiliser le
nommage « Domain Name System » (DNS) pour les éléments de base de l’annuaire (racine et premières
branches, dc pour« domain component »). Les branches plus profondes de l’annuaire peuvent représenter des
personnes (« people »), des unités organisationnelles (ou pour « organizationalunits »), des groupes (« groups
»), etc.
Chaque entrée a un identifiant unique, le « Distinguished Name » (DN). Il est constitué à partir de son «
Relative Distinguished Name » (RDN) suivi du DN de son parent.
C’est une définition récursive, comme les systèmes de fichiers ; le DN étant le chemin absolu et le RDN le
chemin relatif à un répertoire. En règle générale, le RDN d’une entrée représentant une personne est l’attribut
uid. Sur l’exemple ci-dessous le RDN de toto est
rdn:uid=toto, son DN est dn:uid=toto,ou=people,dc=example,dc=org.

5. Un format d’échange de données : LDIF


LDIF (« LDAP Data Interchange Format »), est un format standardisé d’échange de données, qui permet
donc la représentation des données contenues dans un annuaire LDAP. LDIF est défini dans la [RFC2849] et
permet également la représentation d’opérations sur les données de l’annuaire (ajout, suppression,
modification). Le contenu d’un annuaire est représenté comme un ensemble d’enregistrements, avec un
enregistrement par objet de l’annuaire. Les opérations de mise à jour sont représentées comme un ensemble de
requêtes. Dans tous les cas, les données sont sous forme d’un fichier texte [RFC4525]. Une entrée peut
ressembler à la représentation suivante lorsqu’elle est formatée en LDIF
dn: cn=Keba Gueye,dc=smarttic,dc=sn
cn: Keba Gueye
givenName: Keba
sn: Gueye
telephoneNumber: +221 777777777
telephoneNumber: +221 777777777
mail: keba@smarttic.sn
manager: cn=Mamour Bousso,dc=smarttic,dc=sn
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: personobjectClass: top
dn est le nom de l’entrée, ce n’est pas un attribut de l’entrée. cn=Keba Gueye est le RDN de l’entrée et
dc=smarttic,dc=sn est le DN de son parent. Les autres lignes montrent les attributs de l’entrée. Les noms des
Dr GUEYE
L3 RT/ESTM
SERVICE D’ANNUAIRE ET D’AUTHENTIFICATION 2023-2024

attributs sont parfois des mnémoniques pour les plus courants : cn pour « common name », dc pour « domain
component », sn pour « surname ». Un serveur contient un sous-arbre dont la racine est une entrée spécifique
et tous ses enfants, par exemple : dc=lita,dc=sn. Les serveurs peuvent également contenir des références vers
d’autres serveurs, ainsi l’accès à une entrée(ou=service,dc=smarttic,dc=sn) peut retourner une référence
(referral) à un autre serveur qui contient le sous-arbre voulu. Le client peut alors contacter, automatiquement
ou pas, l’autre serveur. Certains serveurs prennent en charge le chaînage (chaining) qui permet au serveur
d’interroger d’autres serveurs pour renvoyer l’information voulue au client. Les résultats renvoyés par le serveur
ne sont pas triés, que ce soit pour les entrées, pour les attributs des entrées ou pour les valeurs des attributs.
6. LDAP comme norme d’authentification
L’intérêt principal de LDAP est la normalisation de l’authentification. Il est très facile de programmer un module
d’authentification utilisant LDAP à partir d’un langage possédant une API LDAP. C’est l’opération Bind qui
permet d’authentifier un utilisateur. De plus en plus d’applications Web possèdent un module d’authentification
prenant en charge LDAP. LDAP propose plusieurs choix d’authentification :
- anonymous authentification est un accès au serveur sans authentification qui permet uniquement de
consulter les données accessibles en lecture pour tous ;
- Root DN Authentication, dans ce cas l’utilisateur est privilégié. Il a accès en modification à toutes les
données ;
- mot de passe en clair correspond à la méthode classique où le mot de passe transite en clair sur le
réseau. Ceci convient au cas d’un réseau commuté ou derrière un pare-feu et au cas de données non
sensibles ;
- mot de passe + « Secure Socket Layer »(SSL) ou TLS, la session entre le serveur et le client est
chiffrée et le mot de passe ne transite plus en clair ;
- « Simple Authentification and Security Layer »(SASL) permet de faire appel à des mécanismes
d’authentification à base de clefs comme « One-Time-Password »(OTP) SASL [RFC2444] ou encore
Kerberos
Sur les systèmes « GNU is Not Unix »(GNU)/Linux récents, il y a de plus en plus l’adoption d’une base de
données utilisant LDAP à la place des fichiers à plat comme passwd et shadow. Les données peuvent être
accédées par les modules d’authentification interchangeable « Pluggable Authentication Module » (PAM) et
«Name Service Switch » (NSS).

Dr GUEYE

Vous aimerez peut-être aussi