Vous êtes sur la page 1sur 45

LDAP

Lightweight Directory Access Protocol


Sommaire

Définitions et Concepts
Historique
Modèles
Mise en service d’un annuaire LDAP
LDIF
Sommaire

Définitions et Concepts
Historique
Modèles
Mise en service d’un annuaire LDAP
LDIF
Définitions et concepts

Un annuaire est un conteneur d’informations


organisées.
Exemples d’annuaires courants
annuaire téléphonique : Les Pages Jaunes
carnet d’adresses
catalogue de vente
ouverture de session

Un annuaire global célèbre très utilisé : DNS


il a un espace de nommage uniforme
il est distribué entre des serveurs coopérants
Définitions et concepts

Un annuaire est une base de données, mais une base de


données n’est pas un annuaire
Performances optimisées pour la lecture
Extensibilité
Communication entre serveurs
Un annuaire n’est pas :
approprié à des écritures fréquentes
destiné à manipuler des données volumineuses
un substitut à un serveur FTP, un système de fichiers,...
Sommaire

Définitions et Concepts
Historique
Modèles
Mise en service d’un annuaire LDAP
LDIF
Historique – X.500 (1)

Standard conçu par les opérateurs télécom pour


interconnecter leurs annuaires téléphoniques
Destiné à devenir LE service d’annuaire GLOBAL
distribué, normalisé et fédérateur
Mais conçu aussi pour répondre à tout type de besoin
d’annuaire grâce à un modèle de données de type objet
et extensible
Première version en 1988, grosse révision en 1993
Mais pas d'essor car trop lourd et complexe...
Historique – X.500 (2)

X.500 définit :
les règles pour nommer les objets et les entités
les protocoles pour fournir le service d’annuaire
un mécanisme d’authentification.
Historique – X.500 (3)
Historique – X.500 (4)

Atouts d’X.500 :
scalability
fonctions de recherche évoluées
distribué (données et administration)
ouvert
Défauts d’X.500 :
implémentations très lourdes, buggées et difficilement
interopérables, basé sur les protocoles ISO, contraire à la
culture internet
Echec : les ambitions d’X.500 n’ont pas été
atteintes
Historique – LDAP (1)

LDAP né en 1993 de l’adaptation du protocole


DAP au protocole TCP/IP ; RFC en pagaille
LDAPv1 : RFC 1487
LDAPv2 : RFC 1777
LDAPv3 : de RFC 2251 à 2256 (1997)
héritage de X.500 :
beaucoup d’aspects de X.500
va dans le sens de la simplification et de la
performance
Historique – LDAP (2)
Sommaire

Définitions et Concepts
Historique
Modèles
Mise en service d’un annuaire LDAP
LDIF
Concepts de LDAP

Le standard LDAP définit :


un protocole : comment accéder à
l’information stockée.
des modèles :
un modèle de données
un modèle de nommage (désignation)
un modèle fonctionnel (de services)
un modèle de sécurité
un modèle de réplication
Le protocole

Données transportées en utilisant BER


(Basic Encoding Rules)
Protocole de communication client-serveur
une connexion permet de faire passer plusieurs
requêtes
commandes pour se connecter ou se déconnecter,
pour rechercher, comparer, créer, modifier ou
effacer des entrées.
Protocole de communication serveur-serveur
LDUP : définirait les mécanismes de
synchronisation des données entre serveurs ainsi
Le modèle de données (1)

L'annuaire est peuplé d’entrées


Les entrées :
sont des objets
appartiennent à des classes
sont nommées Directory Service Entry (DSE)
Le modèle de données définit la nature des
entrées que l'on va trouver dans l'annuaire
Le modèle de données (2)

Une classe
est constituées d'attributs (obligatoires ou
optionnels)
est typée (structurelle, auxiliaire ou abstraite)
s'inscrit dans un arbre d'héritage de classes
LDAP définit des classes d'après X.500
On peut en fabriquer de nouvelles !
Le modèle de données (4)
Le modèle de données (4)

L'ensemble de ces objets que connaît le serveur


constituent le schéma :
Classes
Types d'attribut
Syntaxes
Règles de comparaison
Schéma définis
core.schema
cosine.schema
inetorgperson.schema
…
Le modèle de désignation (1)

Arborescence hiérarchique : Directory


Information Tree (DIT)
définit comment sont organisées les entrées de
l’annuaire et comment elles sont référencées.
L’identification d’une entrée se fait à l’aide d’un
nom absolu, le Distinguished Name (DN)
unique.
DN divisé en Noms relatifs (Relative
Distinguished Name)
Le modèle de désignation (2)

Exemple de DIT
Le modèle de désignation (3)

Existence d’un suffixe (Base DN)


Le RDN peut être choisi « librement » mais :
la valeur de l'attribut utilisé pour le RDN et le RDN
lui-même ne sont pas synchronisés !
choisir l’attribut du RDN pour que tout DN soit
unique
Modèle fonctionnel : les services
(1)
Définit les fonctions offertes :
la connexion/déconnexion (bind/unbind)
la recherche d’entrées
la mise à jour d’entrées
les services annexes (abandon d'une opération en
cours, opérations étendues et de contrôle)
Offre des fonctions de recherche avancée
Modèle fonctionnel : les services
(2)
Paramètres de recherche d’entrées
base DN : où la recherche commence
attributs : ce qu’on veut récupérer
portée (scope) : base/one/sub (cf. diapo suivante)
filtre : critère, notation préfixée
utilise =, ~=, <=, &, |, !
par exemple (&(ou=people)(cn=maquignon*))
limites : temps/taille
« Scope » de recherche
Dc=agalan,dc=org
base

Ou= Ou= Ou= Ou=


upmf ujf inpg ...

Ou= Ou= Ou= Ou=


people machines groups connecteurs

Uid= Uid= cn= cn=


tautoua kassovim hmg-1A esisar-3A-
TP-GÉlec-02
« Scope » de recherche
Dc=agalan,dc=org
onelevel

Ou= Ou= Ou= Ou=


upmf ujf inpg ...

Ou= Ou= Ou= Ou=


people machines groups connecteurs

Uid= Uid= cn= cn=


tautoua kassovim hmg-1A esisar-3A-
TP-GÉlec-02
« Scope » de recherche
Dc=agalan,dc=org
sub

Ou= Ou= Ou= Ou=


upmf ujf inpg ...

Ou= Ou= Ou= Ou=


people machines groups connecteurs

Uid= Uid= cn= cn=


tautoua kassovim hmg-1A esisar-3A-
TP-GÉlec-02
Modèle de sécurité (1)

Le modèle de sécurité définit les méthodes :


d'authentification
d'habilitations (accès lecture/écriture).
d'intégrité des informations échangées
de confidentialité (cryptage)
Modèle de sécurité (2)

Authentification lors de la connexion au


serveur ; types de connexion
Anonyme
rootDN (mode administrateur)
DN + mot de passe en clair
Mot de passe ou certificats (clefs asymétriques) sur
SSL/TLS (via opération étendues)
Mécanisme externe via SASL
Modèle de sécurité (3)

ACL pas définies par le protocole : peut différer


d'un serveur à l'autre
Forme générale (finesse attribut) :
 <access directive> ::= access to <what>
 [by <who> <access> <control>]+

RFC 2820 « Access Control Requirements for


LDAP. », mai 2000 (statut INFORMATIONAL
seulement)
Modèle de sécurité (4)

Exemples simples :

access to * by * read

access to *
by self write // autorise les utilisateurs à modifier leur entrée

by anonymous auth // autorise l’authentification sur ces entrées

by * read // autorise tous les autres à lire ces entrées


Modèle de sécurité (5)

to : par DN ou par filtre :


to *
to dn.<scope-style>=<DN>
to filter=<filtre ldap>
par ex :
to dn.base="ou=people,o=sufix"
to filter=(objectClass=person)
Modèle de sécurité (6)

who :
*
anonymous
users
self
dn=<regex>
Modèle de sécurité (5)

accès à accorder (les + fréquents) :


auth pour s’authentifier
search pour appliquer des filtres de recherche
read pour lire les résultats de recherche
write pour modifier
Sommaire

Définitions et Concepts
Historique
Modèles
Mise en service d’un annuaire LDAP
LDIF
Mettre en service un annuaire
LDAP
Exprimer les besoins en service d'annuaire =
quelles applications ?
en déduire les données nécessaires
choisir le ou les schémas qui répondent aux besoins

Concevoir son espace de nommage


Directory Tree, nommage des entrées, choix du
suffixe

Implanter l’infrastructure
quel serveur, quel stockage, redondance ?
Mettre en service un annuaire
LDAP
Implanter l’arborescence et peupler avec des
informations
utiliser LDIF
paramétrer les comptes d’accès

Sécuriser le service
protocole de transmission (SSL/TLS)
protections réseau
mode d’authentification des utilisateurs
Sommaire

Définitions et Concepts
Historique
Modèles
Mise en service d’un annuaire LDAP
LDIF
LDIF (1)

LDIF = LDAP Data Interchange Format


Permet l'ajout, la suppression et la
modification des données de l'annuaire
Utilisé pour :
construire initialement la structure DIT
importer des entrées
modifier des entrées
exporter des entrées
LDIF (2)

LDIF peut être assez pénible avec ses lignes


blanches, ses espaces en début de ligne, etc.
Un fichier LDIF est constitué de :
directives (lignes « normales »)
lignes « à suivre » (débutent par un esp.)
commentaires (débutent par un #)
lignes blanches (vides)
lignes séparatrices (constituées d’un -)
Exemple : mode import
LDIF (3)
## définit le DIT ROOT/BASE/SUFFIX ####
## utilise le format RFC 2377
## remplacez maxcrc et com si nécessaire ci-dessous
## ou, pour essayer, laissez comme ça

## dcObject est un objectclass AUXILLIARY et DOIT avoir


## un objectclass STRUCTURAL (organization dans ce cas)
# ceci est une ENTRY et doit être précédé d’une ligne BLANCHE

dn: dc=maxcrc,dc=com
dc: maxcrc
description: My wonderful company as much text as you want to place
in this line up to 32K continuation data for the line above must
have <CR> or <CR><LF> i.e. ENTER works
on both Windows and *nix system - new line MUST begin with ONE SPACE
objectClass: dcObject
objectClass: organization
o: Example, Inc.
LDIF (4)
## PREMIER niveau de la hiérarchie - people
# ceci est une ENTRY et doit être précédé d’une ligne BLANCHE

dn: ou=people, dc=maxcrc,dc=com


ou: people
description: All people in organisation
objectclass: organizationalunit
LDIF (5)
## SECOND niveau de la hiérarchie
## AJOUTE une seule entrée sous le PREMIER (people) niveau
# ceci est une ENTRY et doit être précédé d’une ligne BLANCHE

dn: cn=Robert Smith,ou=people,dc=maxcrc,dc=com


objectclass: inetOrgPerson
cn: Robert Smith
cn: Robert J Smith
cn: bob smith
sn: smith
uid: rjsmith
userpassword: rJsmitH
carlicense: HISCAR 123
homephone: 555-111-2222
mail: r.smith@example.com
mail: rsmith@example.com
mail: bob.smith@example.com
description: swell guy
ou: Human Resources
LDIF (6)
shell> ldapmodify -D cn=Manager,dc=maxcrc,dc=com -w secret -a -f test.ldif
Quelques liens

Tout sur LDAP sans langue de bois!


http://www.zytrax.com/books/ldap/
Comment concevoir son schéma LDAP ?
http://www.skills-1st.co.uk/papers/ldap-schema-design-feb-2005/ldap-schema-design-feb-2005.pdf

Vous aimerez peut-être aussi