Vous êtes sur la page 1sur 173

Service dannuaire LDAP

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

LDAP
Concepts
Dployer un service LDAP
Les logiciels serveurs
Les clients LDAP
Les outils de dveloppement
Les applications de LDAP aujourdhui et demain
Bibliographie

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

LDAP : concepts
Concepts
Quest-ce quun annuaire ?
Historique
LDAP
Dployer un service LDAP
Les logiciels serveurs
Les clients LDAP
Les outils de dveloppement
Les applications de LDAP aujourdhui et demain
Bibliographie

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

LDAP : concepts : quest-ce quun annuaire ?


Un annuaire est comme une base de donnes...

on peut y mettre des informations et les consulter.


mais il est spcialis. Ses principales caractristiques sont...

ddi la lecture, plus qu l'criture


accs aux donnes se fait par recherche multi-critres
Exemples dannuaires
carnet dadresses
annuaire tlphonique
rpertoire des rues
post-it

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

LDAP : concepts : quest-ce quun annuaire ?


Un service d'annuaire lectronique, c'est en plus...

un protocole qui permet l'accs au contenu


une syntaxe qui permet dinterroger la base
et aussi

un modle de duplication
un modle de distribution des donnes

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

LDAP : concepts : quest-ce quun annuaire ?


Un service d'annuaire lectronique, c'est en plus...

une mise jour dynamique...


les donnes consultes sont rgulirement mises jour
un contenu volutif...
des informations complmentaires peuvent tre ajoutes
une organisation des donnes plus flexible
possibilit de crer des index et de faire des recherches avances.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

LDAP : concepts : quest-ce quun annuaire ?


Caractristiques compares des annuaires et base de donnes...

26-11-99

rapport lecture/criture plus lev


bases plus facilement extensibles
diffusion plus large chelle
rpartition des donnes plus clate entre serveurs
duplication de linformation
importance des standards
fortes quantits denregistrements...mais faibles capacits de stockage

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

LDAP : concepts : quest-ce quun annuaire ?


exemple de services d'annuaires que nous utilisons dj
www.playboy.com (DNS)
deux types de contexte

local : contexte restreint une machine


global : contexte largi un intranet ou l'internet

DNS est un exemple d'un service d'annuaire global

il est distribu entre des serveurs cooprants


il a un espace de nommage uniforme

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

LDAP : concepts : quest-ce quun annuaire ?


Un annuaire lectronique est une sorte dentrept de donnes.
Il les rend disponibles des applications ou des utilisateurs.

26-11-99

des mots de passe ou des certificats dauthentification


des adresses email
les informations de contact : tlphone, adresse, bureau...
des profils de configuration de logiciels
...

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

LDAP : concepts : historique


Historiquement sont apparus :

Bases utilisateurs pour systmes multi-utilisateurs (70-80)


Unix /etc/passwd,
IBM MVS Profs...

Internet Domain Name System (84) et WHOIS


service de nommage et bases de contacts

Les annuaires ddis aux applications


Lotus cc:Mail
Unix sendmail /etc/aliases
Microsoft Exchange

Les annuaires Internet


Bigfoot, Yahoos Four11, Schwitboard

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

10

LDAP : concepts : historique


Les annuaires systme
Novell NetWare Directory Service (93)
Microsoft Active Directory
Sun NIS, NIS+

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

11

LDAP : concepts : historique


Les annuaires multi-usage
X.500 (88-93-97)
WHOIS++ (93)
CSO (PH)
LDAP (93)

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

12

LDAP : concepts : historique


X.500
Standard conu par les oprateurs tlcom pour interconnecter leurs annuaires
tlphoniques.
Destin devenir LE service dannuaire GLOBAL distribu, normalis et fdrateur.
Mais conu aussi pour rpondre tout type de besoin dannuaire grce un
modle de donnes de type objet et extensible.
Echec (?) du fait de la ncessit dutiliser les protocoles ISO et des logiciels trs
lourds, et du fait de lessor de TCP/IP...

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

13

LDAP : concepts : historique


X.500 (suite)
X.500 dfinit :
les rgles pour nommer les objets et les entits
les protocoles pour fournir le service dannuaire
un mcanisme dauthentification.
Master DSA1
(Directory System
Agent)

Master DSA2
DSP
(Directory System
Protocol)

DAP
(Directory Access
Protocol)

DISP
(Directory Information
Shadowing Protocol)

DAP

DUA1
(Directory User Agent)
DAP
DUA2

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

Shadow DSA1

14

LDAP : concepts : historique


X.500 (suite)
Exemple dannuaire X.500 :
NameFlow Paradise (Piloting An inteRnationAl DIrectory SErvice),
SURFNET (nl)...
Logiciels DSA X.500
ISODE Consortium/Quipu,
NeXor/XT-Quipu,
Control Data/Rialto Global Directory Server

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

15

LDAP : concepts : historique


WHOIS++ (93)
Whois utilisait une seule base, Whois++ introduit la notion de bases rparties
relies par le Whois++ index service.

CSO
Annuaire dadresses lectroniques cr par luniversit de lIllinois, plus connu
sous le nom de PH.
Popularis par Eudora.

NETFIND, SOLO (Simple Object LOok)...


Des clients capables dinterroger diffrents types de Directory Servers (notion de
Meta-Directory Service).

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

16

LDAP : concepts : historique


LDAP (93)
Lightweight Directory Access Protocol (LDAP) est n de ladaptation de X.500
DAP au protocole TCP/IP.
Deux groupes de travail aboutissent 2 produits fonctionnant comme frontal
X.500 :
Directory Assistance Service (DAS) : RFC 1202
Directory Interface to X.500 Implemented Efficiently (DIXIE) : RFC 1249
qui convergent finalement vers le standard IETF LDAP.
LDAPv1 : RFC 1487
LDAPv2 : RFC 1777
LDAPv3 : RFC 2251
LDAP garde beaucoup daspects de X.500 dans les grandes lignes, mais va dans le
sens de la simplification.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

17

LDAP : concepts : historique


LDAP (suite)
LDAP est initialement un frontal daccs des bases dannuaires X.500 (translateur LDAP/DAP).
Devient un annuaire natif (standalone LDAP) utilisant sa propre base de donnes,
sous limpulsion dune quipe de lUniversit du Michigan (U-M LDAP 3.2 en 95).
(Wengyik Yeong, Steve Kille, Colin Robbins, Tim Howes, Marc Wahl).
En 96, apparaissent les premier serveurs commerciaux.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

18

LDAP : concepts : LDAP


Concepts
Quest-ce quun annuaire ?
Historique
LDAP
Protocole
Modle dinformation
Modle de nommage
Modle fonctionnel
Modle de scurit
Modle de duplication
APIs
LDIF

Dployer un service LDAP


Les logiciels serveurs
Les clients LDAP
Les outils de dveloppement
Les applications de LDAP aujourdhui et demain
Bibliographie

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

19

LDAP : concepts : LDAP


LDAP dfinit :
le protocole -- comment accder linformation contenue dans lannuaire,
un modle dinformation -- le type dinformation contenu dans lannuaire,
un modle de nommage -- comment linformation est organise et rfrence,
un modle fonctionnel -- comment on accde linformation,
un modle de scurit -- comment donnes et accs sont protgs,
un modle de duplication -- comment la base est rpartie entre serveurs,
des API -- pour dvelopper des applications clientes,
LDIF -- un format dchange de donnes.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

20

LDAP : concepts : LDAP : protocole


Le protocole dfinit :
Comment stablit la communication client-serveur :

commandes pour se connecter ou se dconnecter, pour rechercher, comparer,


crer, modifier ou effacer des entres.
Comment stablit la communication serveur-serveur :

changer leur contenu et le synchroniser (replication service)


crer des liens permettant de relier des annuaires les uns aux autres (referral
service).
Le format de transport de donnes :

pas lASCII (comme pour http, smtp...) mais le Basic Encoding Rules (BER),
sous une forme allge (appele LBER : Lightweight BER)

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

21

LDAP : concepts : LDAP : protocole


Le protocole dfinit (suite) :
Les mcanismes de scurit :

mthodes de chiffrement et dauthentification


mcanismes de rgles daccs aux donnes.
Les oprations de base:
interrogation : search, compare
mise jour : add, delete, modify, rename
connexion au service : bind, unbind, abandon

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

22

LDAP : concepts : LDAP : protocole


Communication client-serveur :

normalise par lIETF : la version actuelle est LDAPv3 (RFC2251).


Communication serveur-serveur :

le referral service est dfinit par LDAPv3,


le replication service est encore en cours de normalisation sous la dnomination LDAP Duplication Protocol (LDUP) - fin 99 -

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

23

LDAP : concepts : LDAP : protocole


possibilit davoir une seule connexion pour passer plusieurs requtes ( http)

1. connexion et authentification
2. rsultat authentification
3. recherche
4. rponse entre #1
5. rponse entre #2
Client LDAP

6. message de rsultat
7. abandon session

Serveur LDAP

8. dconnexion

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

24

LDAP : concepts : LDAP : protocole


LDAPv3 est conu pour tre extensible sans avoir modifier la norme grce 3
concepts :

LDAP extented operations : rajouter une opration, en plus des neuf oprations de base.

LDAP controls : paramtres supplmentaires associs une opration qui en


modifient le comportement.

Simple Authentification and Security Layer : couche supplmentaire permettant LDAP dutiliser des mthodes dauthentification externes.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

25

LDAP : concepts : LDAP : modle dinformation


Le modle dinformation dfinit le type de donnes pouvant tre stockes dans
lannuaire.
Lentre (Entry) = lement de base de lannuaire. Elle contient les informations sur
un objet de lannuaire.
Ces informations sont reprsentes sous la forme dattributs dcrivant les caractristiques de lobjet.
Toute sorte de classe dobjet (rel ou abstrait) peut tre reprsente.
Le schma de lannuaire dfinit la liste des classes dobjets quil connat.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

26

LDAP : concepts : LDAP : modle dinformation


Schma
Le Directory schema est la charte qui dfinit, pour le serveur, lensemble des
dfinitions relatives aux objets quil sait grer.
Le schma dcrit les classes dobjets, leurs types dattributs et leur syntaxe.
Chaque entre de lannuaire fait obligatoirement rfrence une classe dobjet du
schma et ne doit contenir que des attributs qui sont rattachs au type dobjet en
question.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

27

LDAP : concepts : LDAP : modle dinformation


Attributs
Un type dattribut (ou attribut) est caractris par :
Un nom, qui lidentifie
Un Object Identifier (OID), qui lidentifie galement
Sil est mono ou multi-valu
Une syntaxe et des rgles de comparaison
Un indicateur dusage
Un format ou une limite de taille de valeur qui lui est associe
Tableau 1 : Exemple dattributs dune entre

type dattribut

valeur dattribut
cn: Ltitia Casta

uid: lcasta
telephonenumber: +33 (0)1 4852 7738
mail: Laetitia.Casta@inria.fr
roomnumber: C105

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

28

LDAP : concepts : LDAP : modle dinformation


Les types dattributs ont une syntaxe qui sert dcrire le format de donnes et
comment lannuaire compare ces valeurs lors dune recherche sur critre.
Tableau 2 : Exemple de syntaxes dattributs

syntaxe LDAP

syntaxe X.500

description

cis

caseIgnoreMatch

texte, la casse nest pas prise en compte

ces

caseExactMach

texte, la casse intervient

tel

telephoneNumberMatch

texte reprsentant un numro de tel

int

integerMatch

nombre entier, comparaison numrique

dn

distinguishedNameMatch

nom dentre, rgles spcifiques

bin

octetStringMatch

donnes binaires, comparaison byte/byte

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

29

LDAP : concepts : LDAP : modle dinformation


2 catgories dattributs :
User attributes : attributs normaux manipuls par les utilisateurs
(givenname, telephoneNumber),
Operational attributes : atttributs systmes utilis par le serveur (modifiersname)
Certains serveurs LDAP respectent les standards X.500 de hirarchisation des
attributs :
permettent de dcrire un attribut comme tant un sous-type dun attribut
super-type et dhriter ainsi de ses caractristiques.
Exemple : cn, sn, givenname sont des sous-types de lattribut super-type name

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

30

LDAP : concepts : LDAP : modle dinformation


Classes dobjets
Les classes dobjets modlisent des objets rels ou abstraits en les caractrisant
par une liste dattributs optionnels ou obligatoires. Une classe dobjet est dfinie
par :
Un nom, qui lidentifie
Un OID, qui lidentifie galement
Des attributs obligatoires
Des attributs optionnels
Un type (structurel, auxiliaire ou abstrait)
Exemples de classes dobjet :
une organisation (o),
ses dpartements (ou),
son personnel (organizationalPerson),
ses imprimantes (device),
ses groupes de travail (groupofnames).

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

31

LDAP : concepts : LDAP : modle dinformation


Le type dune classe est li la nature des attributs quelle utilise :

Une classe structurelle correspond la description dobjets basiques de


lannuaire : les personnes, les groupes, les units organisationnelles... Une
entre appartient toujours au moins une classe dobjet structurelle.

Une classe auxiliaire dsigne des objets qui permettent de rajouter des informations complmentaires des objets structurels.

Une classe abstraite dsigne des objets basiques de LDAP.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

32

LDAP : concepts : LDAP : modle dinformation


Les classes dobjets forment une hirarchie, au sommet de laquelle se trouve
lobjet top.
top

organizationalUnit

person

organizationalPerson

inetOrgPerson

Chaque objet hrite des proprits (attributs) de lobjet dont il est le fils.
On prcise la classe dobjet dune entre laide de lattribut objectClass.
Il faut obligatoirement indiquer la parent de la classe dobjet en partant de
lobjet top et en passant par chaque anctre de lobjet.
26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

33

LDAP : concepts : LDAP : modle dinformation


Par exemple, lobjet inetOrgPerson la filiation suivante :
objectClass:
objectClass:
objectClass:
objectClass:

top
person
organizationalPerson
inetOrgPerson

Lobjet person a comme attributs : commonName, surname, description, seeAlso, telephoneNumber, userPassword
Lobjet fils organizationalPerson ajoute des attributs comme : organizationUnitName,
title, postalAddress...
Lobjet petit-fils inetOrgPerson lui rajoute des attributs comme : mail, labeledURI,
uid (userID), photo...

Une entre peut appartenir un nombre non limit de classes dobjets.


Les attributs obligatoires sont la runion des attributs obligatoires de chaque
classe.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

34

LDAP : concepts : LDAP : modle dinformation


Exemples de classes dobjets

26-11-99

Entry Type

Required Attributes

Optional Attributes

inetOrgPerson
(defines entries for a person)

commonName (cn)
surname (sn)
objectClass

businessCategory
carLicense
departmentNumber
description
employeeNumber
facsimileTelephone
Number
givenName
mail
manager
mobile
organizationalUnit (ou)
pager
postalAddress
roomNumber
secretary
seeAlso
telephoneNumber
title
labeledURI
uid

organizationalUnit
(defines entries for organizational units)

ou
objectClass

businessCategory
description
facsimileTelephoneNumber
location (l)
postalAddress
seeAlso
telephoneNumber

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

35

LDAP : concepts : LDAP : modle dinformation


OIDs
Les classes dobjets et les attributs sont normaliss par le RFC2256
garantir linteroprabilit entre logiciels.
Sont rfrences par un object identifier (OID) unique dont la liste est tenue jour
par lInternet Assigned Numbers Authority (IANA).
Un OID est une squence de nombres entiers spars par des points. Les OIDs sont
allous de manire hirarchique :
seule, lautorit qui a dlgation sur la hirarchie 1.2.3 peut dfinir la
signification de lobjet 1.2.3.4 . Par exemple :
2.5
2.5.4
2.5.6
1.3.6.1
1.3.6.1.4.1
1.3.6.1.4.1.4203

26-11-99

fait rfrence au service X.500


est la dfinition des types dattributs
est la dfinition des classes dobjets
the Internet OID
IANA-assigned company OIDs, used for private MIBs
OpenLDAP

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

36

LDAP : concepts : LDAP : modle dinformation


Dfinition des schmas
Les schmas existants sont issus de X.500, plus des ajouts de LDAP ou dautres
consortium industriels.
Il existe plusieurs formats pour dcrire un schma LDAP :

slapd.conf : fichier de configuration utilis par U-M slapd, OpenLDAP et

Netscape Directory.

ASN.1 : grammaire utilise dans les documents dcrivant les standards LDAP

et X.500.

26-11-99

LDAPv3 : LDAPv3 introduit lobligation pour un serveur de publier son


schma via LDAP en le stockant dans lentre subschema.

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

37

LDAP : concepts : LDAP : modle dinformation


Exemple de syntaxe slapd.conf :
attribute NAME [ALIASES] [OID] SYNTAXID [OPTIONS]
attribute cn commonName 2.5.4.3 cis
objectclass NAME [oid OID] [superior SUP] [requires REQATTRS] [allows ALLOWATTTRS]
objectclass person
oid 2.5.6.6
superior top
requires
sn,
cn
allows
description,
seeAlso,
telephoneNumber,
userPassword

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

38

LDAP : concepts : LDAP : modle dinformation


Exemple de syntaxe ASN.1 :
ub-common-name INTEGER ::= 64
commonName ATTRIBUTE
WITH ATTRIBUTE-SYNTAX caseIgnoreStringSyntax
(SIZE (1..ub-common-name))
::= {attributeType 3}
person OBJECT-CLASS ::= {
SUBCLASS OF top
MUST CONTAIN {
commonName,
surname}
MAY CONTAIN {
description,
seeAlso,
telephoneNumber,
userPassword}
::= {objectClass 6}

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

39

LDAP : concepts : LDAP : modle dinformation


Exemple de syntaxe LDAPv3 (attribut cn et objet person)
attributetypes: (2.5.4.3 NAME cn DESC commonName Standard
Attribute SYNTAX 1.3.5.1.4.1.1466.115.121.1.15)
objectclass: (2.5.6.6 NAME person DESC standard person
Object Class SUP top
MUST (objectclass $ sn $ cn )
MAY ( description $ seealso $ telephonenumber $ userpassword )
)

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

40

LDAP : concepts : LDAP : modle dinformation


Schema checking
Quand une entre est cre, le serveur vrifie si sa syntaxe est conforme sa classe
ou ses classes dappartenance : cest le processus de Schema Checking.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

41

LDAP : concepts : LDAP : modle de nommage


Le modle de nommage dfinit comment sont organises les entres de
lannuaire et comment elles sont rfrences.
Les entres reprsentent des objets.
Lorganisation de ces objets se fait suivant une structure logique hirarchique : le
Directory Information Tree (DIT).
Au sein de ce DIT, lidentification dune entre se fait laide dun nom, le Distinguish Name (DN).

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

42

LDAP : concepts : LDAP : modle de nommage


Le Directory Information Tree (DIT)
Classification des entres dans une arborescence hirarchique (comparable au systme de fichier Unix).
Exemple de modlisation dune organisation
organisation

personnes

organisation
organisation
organisation
user1

services

organisation
organisation
organisation
service1

salles runions

organisation
organisation
organisation
salle1

Chaque nud de larbre correspond une entre de lannuaire ou directory service


entry (DSE).
Au sommet de larbre se trouve lentre Suffix ou Root Entry ou BaseDN, qui
caractrise une base LDAP.
26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

43

LDAP : concepts : LDAP : modle de nommage


Le suffix dfinit lespace de nommage dont le serveur a la gestion.
Un serveur peut grer plusieurs arbres (donc plusieurs suffixes).
Il possde une entre spciale, appele root directory specific entry (rootDSE) qui
contient la description du DIT.

Avec LDAP, vous tes libres dorganiser vos donnes comme bon vous semble
(design du DIT).

Des contraintes (performance, gestion...) impliqueront de choisir tel ou tel


type de modle (cf dploiement).

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

44

LDAP : concepts : LDAP : modle de nommage


Le Distinguish name (DN)
Rfrence de manire unique une entre du DIT ( path dun fichier UNIX).
Form de la suite des noms des entres, en partant de lentre et en remontant vers
le suffix, spar par des ",".

Ex : le DN de lentre lcasta vaut :


uid=lcasta, ou=people, dc=inria, dc=fr

Chaque composant du DN est appel Relative Distinguish Name (RDN).


Le RDN est constitu dun des attributs de lentre (et de sa valeur). Le choix de
cet attribut doit assurer que 2 entres du DIT naient pas le mme DN.
26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

45

LDAP : concepts : LDAP : modle de nommage


Alias et referral
Deux objets abstraits particuliers : les aliases et les referrals
permettent une entre de lannuaire de pointer vers une autre entre du
mme ou dun autre annuaire.
o=loria.fr

o=inria.fr

Serveur LDAP 1

Serveur LDAP 2

Lattribut aliasObjectName de lobjet alias a pour valeur le DN de


lentre pointe.

Lattribut ref de lobjet referral a pour valeur lURL LDAP de lentre


dsigne.
26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

46

LDAP : concepts : LDAP : modle fonctionnel


Le modle fonctionnel dcrit le moyen daccder aux donnes et les oprations
quon peut leur appliquer.
Le modle dfinit :
Les oprations dinterrogation.
Les oprations de comparaison.
Les oprations de mise jour.
Les oprations dauthentification et de contrle.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

47

LDAP : concepts : LDAP : modle fonctionnel : Interrogation


Interrogation
LDAP ne fournit pas dopration de lecture dentre.
Pour connatre le contenu dune entre, il faut crire une requte qui pointe sur
cette entre.
Une requte est compose de 8 paramtres :

26-11-99

base object

lendroit de larbre o doit commencer la recherche

scope

la profondeur de la recherche

derefAliases

si on suit les liens ou pas

size limit

nombre de rponses limite

time limit

temps maxi allou pour la recherche

attrOnly

renvoie ou pas la valeur des attributs en plus de leur type

search filter

le filtre de recherche

list of attributes

la liste des attributs que lon souhaite connatre

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

48

LDAP : concepts : LDAP : modle fonctionnel : Interrogation


Le scope

search base = "l=sophia, dc=inria, dc=fr"


search scope = base

26-11-99

search scope = onelevel

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

search scope = subtree

49

LDAP : concepts : LDAP : modle fonctionnel : Interrogation


Les filtres de recherche (RFC 1558)
(<operator>(<search operation>)(<search operation>)...))
Tableau 3 : Exemples de filtres de recherche

(cn=Laurent Mirtain)

galit

Nom vaut "Laurent Mirtain"

(cn=*Mart*)

sous-chane

Nom contient "Mart"

(cn~=martin)

approximation

Nom sonne comme "martin"

(employeenumber>=100)

comparaison

Numro suprieur 100

(sn=*)

existance

Tous les noms propres

(&(sn=Mirtain)(l=sophia))

ET

Nom vaut "Mirtain" ET localisation vaut Sophia

(|(ou=sophia)(ou=rocquencourt))

OU

ou vaut sophia ou rocquencourt

(!(tel=*))

NON

Toutes les entres sans attribut tlphone

Ex :
(&(objectclass=inetOrgPerson)(!(mail=*)))Toutes les entres de type utilisateur
sans adresse mail

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

50

LDAP : concepts : LDAP : modle fonctionnel : Comparaison


Comparaison
Hritage de X.500 : vrifier si lattribut dune entre contient bien une valeur spcifie. Le serveur rpond vrai ou faux.
Equivalent une recherche, sauf que le serveur renvoie lentre si vrai et ne renvoie rien dans deux cas :
si lattribut ne contient pas cette valeur,
si lattribut nexiste pas
alors que la comparaison renvoie dans ce 2me cas, un code derreur.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

51

LDAP : concepts : LDAP : modle fonctionnel : Mise jour


Mise jour
4 oprations : add,

delete, rename, modify

Ces quatre oprations ncessitent les droits de contrle appropris et des


prrequis :
add, rename : entre ne doit pas dj exister, entre doit avoir un parent
existant
add, modify : les attributs doivent tre conformes au schma
delete : entre ne doit pas avoir denfant

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

52

LDAP : concepts : LDAP : modle fonctionnel : Mise jour

rename = modifyRDN plus modifyDN(v3)

changer le RDN sans bouger de place


changer le RDN sans bouger de place, en gardant lancien RDN en attribut
dplacer lentre dans larbre en gardant le mme RDN
dplacer lentre dans larbre en changeant le RDN
o=inria.fr
ou=semir

ou=cdd

uid=lcasta

o=inria.fr
ou=semir

ou=cdd

uid=laetitia

o=inria.fr
ou=semir
uid=lcasta

dn: uid=lcasta,ou=semir,o=inria.fr

ou=cdd

uid=laetitia

uid=lcasta

dn: uid=laetitia,ou=semir,o=inria.fr

dn: uid=laetitia,ou=semir,o=inria.fr

uid=laetitia

uid=lcasta
o=inria.fr
ou=cdd

o=inria.fr
ou=semir

ou=cdd

o=inria.fr
ou=semir

ou=cdd

o=inria.fr
ou=semir

uid=lcasta uid=lcasta

uid=lcasta

26-11-99

ou=semir

dn: uid=lcasta,ou=semir,o=inria.fr

uid=lcasta

ou=semir

ou=cdd

o=inria.fr

dn: uid=lcasta,ou=semir,o=inria.fr

dn: uid=lcasta,ou=semir,o=inria.fr

dn: uid=lcasta,ou=cdd,o=inria.fr

dn: uid=laetitia,ou=cdd,o=inria.fr

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

ou=cdd
uid=laetitia

53

LDAP : concepts : LDAP : modle fonctionnel : Authentification


Authentification et contrle
3 oprations : bind, unbind,
bind

= connexion.

unbind

= dconnexion

abandon

abandon = le client indique au serveur quil laisse tomber la requte

quil avait envoy. Celui-ci abandonne alors le process.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

54

LDAP : concepts : LDAP : modle de scurit


Le modle de scurit dcrit le moyen de protger les donnes de lannuaire des
accs non autoriss.
La scurit se fait plusieurs niveaux :

par lauthentification pour se connecter au service,


par un modle de contrle daccs aux donnes,
par le chiffrement des transactions entre clients et serveurs ou entre serveurs.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

55

LDAP : concepts : LDAP : modle de scurit


Lauthentification
LDAP est un protocole avec connexion : il faut sauthentifier pour ouvrir la connexion (bind) en fournissant une identit.
LDAPv3 propose plusieurs choix dauthentification :

Anonymous authentification - accs sans authentification permettant de consulter les donnes accessibles en lecture pour tous.

Root DN authentification - accs administrateur (tous les droits).


Mot de passe en clair - un DN plus un password qui transite en clair sur le
rseau.

Mot de passe + SSL ou TLS - la session est chiffre et le mot de passe ne transite plus en clair.

Certificats sur SSL - change de certificats SSL (clefs publiques/prives).


Simple Authentification and Security Layer (SASL) - mcanisme externe
dauthentification.
26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

56

LDAP : concepts : LDAP : modle de scurit


SASL
Simple Authentification and Security Layer (SASL) est dfini par le RFC 2222 et
permet dajouter des mcanismes dauthentification des protocoles orients connexion (~ plug-in). SASL est implant dans LDAPv3.
Les mcanismes supports par SASL sont Kerberos, S/Key, GSSAPI ou dautres
types.

Client LDAP

LDAP
Serveur LDAP

SASL
plug-in

26-11-99

SASL
plug-in

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

57

LDAP : concepts : LDAP : modle de scurit


Le contrle daccs
Le serveur attribue lutilisateur identifi, des droits daccs aux donnes (lecture,
criture, recherche et comparaison), qui lui ont t dfinis par ladministrateur
sous la forme dACLs.
Pas encore normalis par lIETF donc non compatibles entre serveurs.

Netscape Directory
sous la forme dun attribut Access Control Items (aci)
OpenLDAP :
sous la forme de directives de contrle daccs dans slapd.conf

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

58

LDAP : concepts : LDAP : modle de scurit


Le contrle daccs (suite)
Les ACLs peuvent tre places au niveau des entres, au sommet de larbre ou sur
un sous-arbre.
Elles agissent sur les entres ou certains de leurs attributs.
Elles sappliquent des individus ou des groupes, mais aussi suivant les adresses
IP ou les noms de domaine des clients ou les jours et heures.
Le placement et la porte des ACLs dpendent des capacits du logiciel.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

59

LDAP : concepts : LDAP : modle de scurit


Ces ACLs sexpriment sous la forme canonique :
<target> <permission> <bind rule>
<target> : point dentre de lannuaire auquel sapplique la rgle
<permission> : permet ou refuse un type daccs (lecture, criture...)
<bind rule> : identifie le bindDN utilis en connexion

<permissions>
Read
Write
Search
Compare
Selfwrite
Add
Delete

26-11-99

<bind rules>
Un utilisateur
Un groupe dutilisateur

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

60

LDAP : concepts : LDAP : modle de scurit


Le chiffrement
LDAPv3 supporte le chiffrement des transactions (entre clients et serveurs ou
entre serveurs) via lutilisation de SSL (ldaps) ou de son successeur, TLS
(startTLS extended operation).
SSL ou TLS servent galement pour lauthentification par certificats :
permet au client de prouver son identit au serveur et, en retour, celui-ci
den faire de mme vis vis du client.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

61

LDAP : concepts : LDAP : modle de duplication


Le modle de duplication (replication service) dfinit comment dupliquer
lannuaire sur plusieurs serveurs.
Dupliquer lannuaire peut pallier :
une panne de lun des serveurs,
une coupure du rseau,
surcharge du service.
et garantir la qualit de service : temps de rponse et sret de fonctionnement.
Permet galement :
damliorer les performances en plaant les serveurs prs des clients
de rpartir le travail entre plusieurs serveurs (load balancing)
de grer les entres localement et de les diffuser sur plusieurs sites.
Pas encore standard, mais est propos par la plupart des serveurs.
LIETF prpare le protocole LDUP.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

62

LDAP : concepts : LDAP : modle de duplication


La duplication met en jeu plusieurs serveurs : les supplier servers fournissent les
donnes, les consumer servers les reoivent.
Les informations de configuration dcrivant les suppliers, les consumers et quelles
donnes ils changent, forment le replication agreement.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

63

LDAP : concepts : LDAP : modle de duplication


On peut dupliquer

larbre entier ou seulement un sous arbre,


une partie des entres et de leurs attributs quon aura spcifis via un filtre du
genre :
on ne duplique que les objets de type personne
on ne duplique que les attributs non confidentiels (annuaire interne vs.
annuaire externe)
Plusieurs manires de synchroniser les serveurs :
mise jour totale ou incrmentale...
Plusieurs stratgies de duplications :
single-master replication, multiple-master replication, cascading replication.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

64

LDAP : concepts : LDAP : modle de duplication


La duplication se fait en temps-rel ou heure fixe (scheduling replication).
Deux prcautions :
les serveurs doivent tous utiliser le mme schma de donnes,
les rgles daccs aux donnes dupliques doivent tre dupliques.
La mise en uvre du replication service ncessite de le prvoir au moment du
design du DIT.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

65

LDAP : concepts : LDAP : APIs


Ces Bibliothques de programmation permettent de crer des applications
annuaire-compatibles.
Les APIs disponibles actuellement :

26-11-99

U-M LDAP SDK -- C (UMICH, OpenLDAP)


Innosoft LDAP Client SDK (ILC-SDK) -- C (InnoSoft)
Netscape Directory SDK -- Java, C (Netscape)
PerLDAP Modules -- Perl (Netscape)
Net- LDAPapi -- PERL (GNU)
Java Naming and Directory Interface (JUNI) -- Java (SUN)
Active Directory Service Interface (ADSI) -- COM (Microsoft)

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

66

LDAP : concepts : LDAP : LDIF


LDAP Data Interchange Format (LDIF) est le standard de reprsentation des
entres sous forme texte.
Utilis pour afficher ou modifier les donnes de la base suivant deux modes :
faire des imports/exports de base,
faire des modifications sur des entres.
Le format utilis est lASCII. Toute valeur dattribut ou tout DN qui nest pas
ASCII, est cod en base 64.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

67

LDAP : concepts : LDAP : LDIF


Mode import
La forme gnrale est :
dn: <distinguished name
objectClass: <object class>
objectClass: <object class>
[...]
attribute type:<attribute value>
attribute type:<attribute value>
[...]

Un entre de type personne se prsente de la manire suivante :


dn: cn=June Rossi, ou=accounting, o=Ace Industry, c=US
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
cn: June Rossi
sn: Rossi
givenName: June
mail: rossi@aceindustry.com
userPassword: {sha}KDIE3AL9DK
dn: cn=Walter Scott, ou=accounting, o=Ace Industry, c=US
objectClass: top
objectClass: person
objectClass: organizationalPerson

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

68

LDAP : concepts : LDAP : LDIF


Mode commande
La forme gnrale est :
dn: distinguished name
changetype identifier
change operation identifier
list of attributes...
change operation identifier
list of attributes ...
Le caractre - spcifie le sparateur entre 2 instructions
Pour
Pour
Pour
Pour

crer un
dtruire
renommer
modifier

nouvel enregistrement
un enregistrement
une entre
un enregistrement

changetype:
changetype:
changetype:
changetype:

add
delete
modrdn
modify

-> Un oprateur de modification doit alors tre spcifi.


add
replace
delete

26-11-99

: ajouter des attributs et leurs valeurs.


: remplacer des valeurs dattributs par dautres.
: dtruire lattribut spcifi.

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

69

LDAP : concepts : LDAP : LDIF


Mode commande (suite)
Exemple :

Ajouter le numro de tlphone et le nom du manager pour la personne Lisa


Jangles.
dn: cn=Lisa Jangles, ou=Sales, o=Ace Industry, c=US
changetype: modify
add: telephonenumber
telephonenumber: (408) 555-2468
add: manager
manager: cn=Harry Cruise, ou=Manufacturing, o=Ace Industry, c=US

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

70

LDAP : concepts : LDAP : LDIF


Le format utilis dans LDIF est lASCII.
Toute donne non ASCII doit tre encod en base 64. Dans ce cas le sparateur
entre le type et la valeur de lattribut est :: .
jpegPhoto:: /9j/4AAQSkZJRgABAQAAAQABAAD//gBHQ1JFQVRPUjogWFYgVmVyc2lvbiAzLjEwI
CBSZXY6IDEyLzE2Lzk0ICBRdWFsaXR5ID0gNzUsIFNtb290aGluZyA9IDAK/9sAQwAIBgYHBgUIB
wcHCQkICgwUDQwLCwwZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/

LDAP utilise le jeu de caractres Unicode Transformation Format-8 (UTF-8) pour


les attributs de type texte et les DNs.
UTF- 8 englobe tous les jeux de caractres (isoLatin, Shift- JLS...),
annuaires multilingues : avec loption language code de lattribut (extension
propose par lIETF) ().
description,lang-fr : texte en franais
description,lang-ja : le mme en japonais
(le code suit de standard ISO 639)

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

71

LDAP : concepts : les URLs LDAP


Les URLs LDAP (RFC-1959) permettent aux clients Internet davoir un accs
direct au protocole LDAP.
syntaxe :
ldap[s]://<hostname>:<port>/<base_dn>?<attributes>?<scope>?<filter>
<base_dn>
: DN de lentre qui est le point de dpart de la recherche
<attributes> : les attributs que lon veut consulter
<scope>
: la profondeur de recherche dans le DIT partir du <base_dn>
- base : sarrte au niveau courant (par dfaut)
- one : descend dun niveau
- sub : parcourt tous les sous-niveaux
<filter>
: filtre de recherche, par dfaut (objectClass=*)
exemples :
ldap://ldap.netscape.com/ou=Sales,o=Netscape,c=US
ldap://ldap.loria.fr/cn=Laurent%20Mirtain,ou=Moyens%20Informatiques,o=loria.fr
ldap://ldap.loria.fr/o=loria.fr?mail,uid?sub?(sn=Mirtain)

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

72

LDAP : dploiement
Concepts
Dployer un service LDAP
Dterminer les besoins en service dannuaire et ses applications
Dterminer quelles donnes sont ncessaires
Choisir son schma
Concevoir son espace (modle) de nommage
Dfinir la topologie de son service
Mettre en service la duplication
Mettre en uvre le partitionnement
Scuriser le service
Gestion des donnes
Les logiciels serveurs
Les clients LDAP
Les outils de dveloppement
Les applications de LDAP aujourdhui et demain
Bibliographie

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

73

LDAP : dploiement
Dployer un service dannuaire LDAP, cest rflchir :

la nature des donnes que lon y met,


la manire dont on les rcupre,
lutilisation que lon compte en faire,
la faon de grer le tout.

La mise en place dun annuaire LDAP met donc en jeu plusieurs phases de conception que lon va passer en revue.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

74

LDAP : dploiement : besoins en service dannuaire


Un annuaire LDAP = entrept dinformations facilement accessibles aux utilisateurs ou aux applications.
Dployer un systme dannuaire se fait gnralement sous la contrainte de la mise
en place ou du remplacement dune application.
Se poser la question dlargir le service dautres types dapplications
Envisager toutes les applications possibles, actuelles ou futures, dun
annuaire LDAP.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

75

LDAP : dploiement : donnes ncessaires


Il sagit :

dinventorier, suivant les applications, la liste des donnes inclure dans le


systme dinformation et leurs caractristiques :
format
taille
nombre doccurrence
droits daccs
dynamiques ou statiques
partages ou spcifiques une application

de dterminer par quelle source les obtenir et les maintenir jour.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

76

LDAP : dploiement : donnes ncessaires


Les sources de donnes courantes :
autre service dannuaire ou bases systmes (Unix NIS, DNS, NT domain
controler...)
bases de donnes de lorganisation (base du personnel, base du PABX...)
fichiers textes ou feuilles de calcul dutilisateurs
des bases propres des applications (fichier htpasswd dApache, carnet
dadresses...)
Les mcanismes de mise jour envisageables :
synchronisation avec un SGBD
batches
saisie manuelle

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

77

LDAP : dploiement : choisir son schma


Choisir, en fonction des donnes retenues, quels classes dobjets et types dattributs utiliser.
Les schmas standards ou fournis avec les serveurs conviennent en gnral aux
besoins.
En rgle gnrale, viter de modifier le schma existant car risque de rendre son
annuaire inutilisable par les applications clientes ou les autres serveurs.
Prfrable de rajouter une classe dobjet et exploiter le mcanisme dhritage
dattributs des classes objets.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

78

LDAP : dploiement : choisir son schma


Par exemple cration de la classe dobjet inriaPerson fille de inetOrgPerson
dans laquelle on dfinira les attributs ncessaires ses besoins :
objectclass inriaPerson
superior inetOrgPerson
requires
sn,
cn
allows
uidNumber,
gidNumber,
homeDirectory,
loginShell,
dateArrive,
dateDepart

Dans tous les cas :

documenter son schma pour en faciliter la maintenance et lvolution.


viter de dsactiver loption de schema checking.
26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

79

LDAP : dploiement : concevoir son modle de nommage


Consiste dfinir comment les entres de lannuaire vont tre organises, nommes et accdes.
Dans cette phase, les paramtres quil faut prendre en compte sont :
Le nombre dentres prvu et son volution ?
La nature (type dobjet) des entres actuelles et futures ?
Vaudra-t-il mieux centraliser les donnes ou les distribuer ?
Seront-elles administres de manire centrale ou faudra-t-il dlguer une
partie de la gestion ?
La duplication est-elle prvue ?
Quelles applications utiliseront lannuaire et imposent-elles des contraintes particulires ?
Quel attribut utiliser pour nommer les entres et comment garantir son
unicit ?
En fonction de ses priorits, on privilgiera tel ou tel espace de nommage.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

80

LDAP : dploiement : concevoir son modle de nommage


Design du Directory Information Tree
Le DIT X.500 est conu dans loptique dun service global : il part du pays (top
level) puis lorganisation, puis ventuellement la localisation...et il utilise lattribut
cn pour nommer les entres.
fig3. Exemple de DIT la X.500

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

81

LDAP : dploiement : concevoir son modle de nommage


Design du DIT (suite)
Le modle LDAP, nimpose pas une racine universelle du DIT car il renonce tre
un service dannuaire mondial.
Dans ce cadre, le DIT peut tre organis de diffrentes faons :

26-11-99

plat,
dcoup pour reflter lorganisation interne,
branch par type dobjet,
branch en vue de faciliter la duplication entre serveurs, la dlgation de gestion, ou la dfinition de rgles daccs spcifiques une branche.

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

82

LDAP : dploiement : concevoir son modle de nommage


Design du DIT (suite)
Exemple : arbre plat (source Perotsystems)

DIT Design: Flat Tree


c=US

o=Acme

ou=People

cn=Mike Smith #1
cn=Mike Smith #2

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

83

LDAP : dploiement : concevoir son modle de nommage


Design du DIT (suite)
Exemple : branchage par service (source Perotsystems)

DIT Design: People By Department


c=US

o=Acme

ou=Sales

ou=R&D

ou=Engineering

ou=Accounting

ou=Mfg.

cn=Mike Smith

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

84

LDAP : dploiement : concevoir son modle de nommage


Design du DIT (suite)
Exemple : branchage par localisation (source Perotsystems)

DIT Design: By Location


c=US

o=Acme

l=Headquarters

l=New York

l=Chicago

l=Dallas

l=Los Angeles

cn=Mike Smith

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

85

LDAP : dploiement : concevoir son modle de nommage


Design du DIT (suite)
Exemple : branchage par type dobjet (source Perotsystems)

DIT Design: Perot Systems DIT


c=US

o=Acme

ou=People

ou=Groups

ou=Locations

ou=Apps

ou=Systems

ou=Schema

cn =SmithET
cn=Directory User site=TX-SD
cn =AikmanTA cn=Mail Admin
site=TX-RI
cn =SandersDJ cn=Medical Admin site=SW-BK
cn = GonzalesJ cn=Medical User
site=NY-AA
cn =ModanoMW

ou=Web Sites

26-11-99

ou=Medical

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

ou=Resumes

86

LDAP : dploiement : concevoir son modle de nommage


Design du DIT (suite)
Exemple : branchage fort (source Perotsystems)

DIT Design: Deep Tree


c=US
o=Acme
ou=People

l=North America

ou=Sales

l=DFW

ou=Engineering cn=Clara Jordan

l=LA

l=NYC

l=Asia

cn=Joe Boss

cn=Mike Smith

ou=Engineering

ou=MFG

ou=R&D

cn=Mike Smith

cn=Soopy Sales

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

87

LDAP : dploiement : concevoir son modle de nommage


Design du DIT : branchage fort ou faible ?
Fort : les plus

Faible : les plus

Relte lorganisation interne.


Minimise le problme de DNs identiques.
Facilite le partitionnement des donnes entre
plusieurs serveurs.

Pas de soucis de classification des entres


DN courts
stabilit du DIT
Meilleurs rapidit de recherche.

Fort : les moins

Faible : les moins

Longueur du DN.
Problme si lorganisation change.
Dure de recherche augmente.

Risque de DNs identiques.


Mal adapt au listage des entres

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

88

LDAP : dploiement : concevoir son modle de nommage


Nommage des entres : choix du RDN
Exemple : utilisation du canonicalname (source Perotsystems)

DIT Design: Selecting a Distinguished Name


c=US

o=Perot Systems

- DN Changes if a female marries


- DN Changes if I change my nickname
- Name may not be unique.

ou=People

cn = Mike Smith

cn=Mike Smith,ou=People, o=Perot Systems, c=US

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

89

LDAP : dploiement : concevoir son modle de nommage


Nommage des entres : choix du RDN (suite)
Exemple : utilisation dun pseudo cn (source Perotsystems)

DIT Design: Selecting a Distinguished Name


c=US

o=Perot Systems

ou=People

+ DN Guaranteed to be unique
+ DN Never Changes
+ More robust searching using name components
- Browser shows useless information
- Microsoft and Netscape mail clients expected
a real name in the commonName(cn) field.

cn = 0175387
givenName = Michael
nickname = Mike
surname = Smith

cn=0175387, ou=People, o=Perot Systems, c=US

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

90

LDAP : dploiement : concevoir son modle de nommage


Nommage des entres : choix du RDN (suite)
Exemple : utilisation de luid (source Perotsystems)

DIT Design: Selecting a Distinguished Name


c=US

o=Perot Systems

ou=People

+ DN Guaranteed to be unique
+ DN Never Changes
+ More robust searching using name components
+ commonName(cn) field contains a real name to
work well with other LDAP applications.
- Browser shows useless information

uid = 0175387
cn = Mike Smith
givenName = Michael
nickname = Mike
surname = Smith
uid=0175387, ou=People, o=Perot Systems, c=US

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

91

LDAP : dploiement : concevoir son modle de nommage


Nommage des entres : choix du RDN (suite)
Exemple : utilisation du login (source Perotsystems)

DIT Design: Selecting a Distinguished Name


c=US

o=Perot Systems

ou=People

uid = smithMJ
cn = Mike Smith
givenName = Michael
nickname = Mike
surname = Smith

+ DN Guaranteed to be unique
+ More robust searching using name components
+ commonName(cn) field contains a real name
+ Browser shows more useful information
(although not as ideal as a full name)
+ Directly maps to a users logon ID (can be used
for single signon)
- DN has the potential to change if the name or
UID changes
- Entrust product requires thecommonName(cn)
to be part of the DN.

uid=smithMJ, ou=People, o=Perot Systems, c=US

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

92

LDAP : dploiement : concevoir son modle de nommage


Nommage des entres : choix du RDN (suite)
Exemple : utilisation du cn et de uid (source Perotsystems)

DIT Design: Selecting a Distinguished Name


c=US

o=Perot Systems

ou=People

+ DN Guaranteed to be unique
+ More robust searching using name components
+ Directly maps to a users logon ID (can be used
for single signon)
+ commonName(cn) field contains a real name
+ commonName(cn) is part of the DN
- DN has the potential to change
- Very hokey way of achieving uniqueness

cn = Mike Smith + uid = smithMJ


givenName = Michael - Complicated DN syntax
nickname = Mike
- More complicated Directory
surname = Smith

Logon procedures
- This syntax may not be accepted as standard in
the future.

cn=Mike Smith +uid=smithMJ, ou=People, o=Perot Systems, c=US

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

93

LDAP : dploiement : concevoir son modle de nommage


Nommage des entres : choix du RDN (suite)
Exemple : utilisation du login dans le cn (source Perotsystems)

DIT Design: Selecting a Distinguished Name


c=US

o=Perot Systems

ou=People

cn = smithMJ
cn = Mike Smith
givenName = Michael
nickname = Mike
surname = Smith
uid = smithMJ

+ DN Guaranteed to be unique
+ More robust searching using name components
+ Directly maps to a users logon ID (can be used
for single signon)
+ commonName(cn) field contains a real name
+ commonName(cn) is part of the DN
- DN has the potential to change
- Data is duplicated in several areas (uid and cn)
- Value displayed for commonNamemay vary.

cn=smithMJ, ou=People, o=Perot Systems, c=US

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

94

LDAP : dploiement : concevoir son modle de nommage


Nommage des entres : choix du RDN (suite)
Exemple : utilisation dun alias (source Perotsystems)

DIT Design: Selecting a Distinguished Name


+ DN Guaranteed to be unique
+ More robust searching using
name components
+ Directly maps to a users logon
o=Perot Systems
ID (can be used for single
signon)
ou=People
ou=Certificates
+ commonName(cn) field
contains a real name
+ commonName(cn) is part of the
DN
cn = smithMJ
uid = smithMJ
- DN has the potential to change
ALIAS POINTER
cn = Mike Smith
- Problems with X.500 aliases:
givenName = Michael
- no built-in referential integrity
nickname = Mike
- will LDAPv3 support them?
surname = Smith
c=US

cn=smithMJ, ou=People, o=Perot Systems, c=US


uid=smithMJ, ou=Certificates, o=Perot Systems, c=US

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

95

LDAP : dploiement : concevoir son modle de nommage


Nommage des entres : choix du RDN (conclusion)
Exemple : recommendations de lIETF (source Perotsystems)

DIT Design: An IETF DIT Naming Proposal


http://www.imc.org/draft-ietf-ids-dirnaming

dc=com

dc=acme

dc=Corporate

dc=DalSite

uid = mike.smith@acme.com
cn = Mike Smith
givenName = Michael
surname = Smith

26-11-99

The dc named attribute stands


for domain component
The idea is to map the upper
levels of the tree with registered
DNS Names (in this case
acme.com)
Lower levels of the tree will also
use the dc named attribute
Each user is identified with the
uid named attribute containing
the email address.

uid = jane.doe@acme.com
cn = Jane Doe
givenName = Jane
surname = Doe

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

96

LDAP : dploiement : concevoir son modle de nommage


Choix du suffixe
Le suffixe = identifiant de lannuaire.
Mme si la base na quune vocation interne , elle peut terme sexternaliser.
Choisir, si possible, un suffixe unique au monde.
Dans X.500 le top level est le pays, vient ensuite le nom de lorganisation, et ventuellement la localisation. Ce qui donne par exemple comme suffixe : o=INRIA, c=FR
Aucun organisme de contrle dattribution des suffixes :
Pas de garantie de lunicit de celui-ci.
Entre temps, lInternet sest dvelopp :
NIC gre lattribution des noms de domaines DNS.
Le choix du nom de domaine DNS comme suffixe de son annuaire est recommand
par lIETF IDS group.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

97

LDAP : dploiement : concevoir son modle de nommage


Choix du suffixe (suite)
Il pourra sexprimer sous deux formes :
utilisation de lattribut organization (o) :
o=inria.fr

utilisation de lattribut Domain Component (dc) dfini par le RFC 2377 :


dc=inria, dc=fr

Cette dernire forme est prconise par lIETF.


Couple avec le Service Record du DNS (SRV), permet de dterminer automatiquement le serveur LDAP contacter, partir du DN utilis dans une requte.
le DN uid=mirtain,ou=people,dc=inria,dc=fr renvoie sur le domaine DNS inria.fr.
Requte sur lentre SRV du DNS de
_ldap._tcp.inria.fr. IN
SRV
Dduction : serveur :

26-11-99

inria.fr
0 0 389 ldap.inria.fr

ldap.inria.fr

- port :

389

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

98

LDAP : dploiement : concevoir son modle de nommage


Choix du suffixe (conclusion)
Pas de standard de design et pas de solution universelle :
faire des compromis visant prendre la moins mauvaise solution, en
essayant de dfinir les facteurs les plus contraignants.
Prendre en compte son organisation : sa structure, sa taille, son volution
Prendre en compte lusage de lannuaire :
type de donnes
leur mode de gestion
type dapplications accdant aux donnes

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

99

LDAP : dploiement : dfinir la topologie du service


Analyser la manire dont le service dannuaire LDAP va tre rendu en termes
de performance, de fiabilit et de facilit de gestion.
Prendre en compte :
Les applications qui vont utiliser lannuaire et leur nombre dutilisateurs.
Les capacits du logiciel serveur qui va tre choisi.
La topologie de son rseau.
Le design de son espace de nommage.
Dterminer :
si la base sera centralise ou rpartie sur plusieurs serveurs.
le nombre de serveurs redondants dployer et leur emplacement sur le
rseau physique.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

100

LDAP : dploiement : dfinir la topologie du service


Le partitionnement
Consiste clater les donnes de lannuaire sur plusieurs serveurs.
serveur A

serveur A

serveur B

serveur C

serveur B serveur C

Il peut tre impos par :


le volume dentres grer,
leur gestion rpartie sur plusieurs sites,
les types daccs au rseau physique,
le mode dorganisation de la socit.
Sparer les donnes ne veut pas dire forcment les dissocier : les standards LDAP
et X.500 dfinissent des moyens de les relier (re-coller).
Ces moyens sont les services referral service et replication service.
26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

101

LDAP : dploiement : dfinir la topologie du service


Le referral service
La rsolution de nom est le mcanisme par lequel un serveur dtermine quel objet
de sa base dsigne le DN quun client lui fournit.

Si le DN est bien dans son contexte de nommage, il excute la requte du


client (search, modify, bind...),

sinon il renvoie un signal object not found.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

102

LDAP : dploiement : dfinir la topologie du service


Le referral service (suite)
Les mthodes permettant de crer des liens virtuels entre des partitions dannuaires sont appeles les knowledge references.
dc=inria,dc=fr

ou=nancy ou=rennes ou=sophia


subordinate reference

immediate superior knowledge reference


ou=sophia

contexte de nommage

ou=people ou=groups ou=printers

Les knowledge references permettent un serveur de faire suivre les requtes des
utilisateurs lorsque lobjet recherch nappartient pas larbre quil gre.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

103

LDAP : dploiement : dfinir la topologie du service


Le referral service (suite)
Les serveurs LDAP utilisent deux mthodes pour faire suivre les requtes le long
de ces liens :

Le Referral est une information que retourne au client le serveur LDAP, lorsque lentre recherche nappartient pas son arborescence, lui indiquant
vers quel serveur il doit re-formuler sa requte (via un URL LDAP). Le mcanisme de referral est standardis dans le protocole LDAPv3.

Le chanage (chaining) est un mcanisme o cest le serveur qui se charge de


contacter un autre serveur pour le compte du client et lui retourne la rponse.
Le chanage nest pas un standard du protocole LDAP, il est plutt utilis
dans les logiciels X.500.
Le choix entre lune ou lautre mthode dpend essentiellement des fonctionnalits
du serveur choisi.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

104

LDAP : dploiement : dfinir la topologie du service


Le referral service (suite)
les serveurs ne les positionnent pas tous les referral au mme endroit.
Netscape Directory utilise deux types de referral :
le default referral
le smart referral.
Le default referral est indiqu au niveau de la racine du serveur et agit comme une
redirection par dfaut pour toute requte hors espace de nommage.
Le smart referral est plac dans une entre quelconque et agit comme un lien symbolique vers une autre entre dun autre serveur.
Les deux utilisent les URLs LDAP pour re-diriger la requte.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

105

LDAP : dploiement : dfinir la topologie du service


Le referral service (suite)
Le default referral est positionn dans le fichier slapd.conf de Netscape Directory
ou OpenLDAP sous la forme dune ligne :
referral ldap://ldap.airius.com:389/o=airius.com

Les smart referrals sont stocks dans lattribut ref de lobjet auquel on a rajout
la classe dobjet referral.
Exemple en LDIF :
dn: ou=sophia, dc=inria, dc=fr
objectclass: top
objectclass: organization
objectclass: referral
ou: Sophia
description: UR Sophia
l: Sophia Antipolis
ref: ldap://sophia-ldap.inria.fr:389/ou=sophia

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

106

LDAP : dploiement : dfinir la topologie du service


Le replication service
La duplication consiste recopier le contenu de tout ou partie de son arbre sur un
autre serveur (voir LDAP-Concepts)
Son but :
rapprocher le service du rseau physique des clients (performances),
rpartir la charge sur plusieurs serveurs (load balancing),
assurer une redondance en cas de panne (disponibilit),
grer localement des entres et les diffuser dans lorganisation (partitionnement).
Le replication service est LE moyen dassurer un service dannuaire fiable, hautement disponible, et performant.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

107

LDAP : dploiement : mettre en service la duplication


Les diffrents modes de duplication.
Duplication de larbre entier sur 1 ou plusieurs consumers (source Netscape)

Le supplier (read-write) duplique sur un ou plusieurs consumers (read-only).


26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

108

LDAP : dploiement : mettre en service la duplication


Duplication de larbre entier en cascade (source Netscape)

Le supplier duplique sur un consumer qui lui-mme duplique sur un autre.


Cas o les liaisons rseau entre sites sont de qualit variable.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

109

LDAP : dploiement : mettre en service la duplication


Duplication dune partie de larbre (source Netscape)

Le supplier coup de lextrieur ne duplique quune branche publique de larbre


sur un consumer accessible depuis linternet.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

110

LDAP : dploiement : mettre en service la duplication


Duplications croises 1 (source Netscape)

La socit Airius a deux agences NY et LA qui grent chacune leur branche du


serveur dannuaire.
Duplication est mise en uvre pour ramener les branches distantes localement
(performance) et assurer une redondance de tout larbre en local (disponibilit).

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

111

LDAP : dploiement : mettre en service la duplication


Duplications croises 2 (source Netscape)

Les branches sont dupliques rciproquement sur chaque site.


De plus, larbre entier est dupliqu en local.
26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

112

LDAP : dploiement : mettre en service la duplication


Rpartir la charge en utilisant le DNS round robin
Ce mcanisme du DNS permet de configurer plusieurs adresses IP pour un mme
hostname. Le service DNS fait une rotation de lordre des numros IP, lorsquil
retourne le rsultat dune requte sur le nom du serveur LDAP.

Choisir la stratgie de duplication


Consiste dfinir le flux de mise jour des donnes entre les serveurs de duplication.
Plusieurs mthodes existent :
Single-master replication
Floating-master replication
Multi-master replication

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

113

LDAP : dploiement : mettre en service la duplication


Single-master replication
un serveur en lecture-criture (master) et tous les serveurs replicas sont read-only.
Les modifications des clients sont re-dirigs par des knowledge references sur le
master.
Cette solution prsente une faiblesse si le master est en panne.
master server
(read-write)

replica server
(read-only)
replica server
(read-only)

updates

search

modifications

Client LDAP

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

114

LDAP : dploiement : mettre en service la duplication


Floating-master replication
Nouveau master en secours en cas de panne du master. Mcanisme de synchronisation lorsque le serveur repart.
Utilis par Windows NT 4.0 pour ses contrleurs de domaines (PDC, SDC).
Il nest pas encore adopt par les logiciels serveurs LDAP.
master server
(read-write)

replica server
(read-only)
New master server
(read-write)

updates

search
modifications
Client LDAP

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

115

LDAP : dploiement : mettre en service la duplication


Multi-master replication
Plusieurs serveurs read-write sur lesquels les clients peuvent faire les modifications. Des mcanismes de synchronisation se chargent de grer les conflits (rgle
du dernier arriv lemporte en utilisant lattribut timestamp des entres).
Ces 2 derniers modes de replication sont en cours dtude lIETF pour intgrer
au standard LDAP.
master server
(read-write)

master server
(read-write)

synchro.

modifications

modifications

Client LDAP

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

116

LDAP : dploiement : mettre en service la duplication


Duplication totale/incrmentale
La synchronisation peut tre totale ou incrmentale. Dans ce cas, le processus de
synchronisation utilise un historique des mises jours.

Duplication heures fixes


Certains logiciels permettent de diffrer les mises jours certains horaires.
Utile dans le cas de liaisons rseau non permanentes ou charges par priodes.

Duplication base sur les attributs


X.500 prvoit la possibilit de filtrer les donnes dupliques par une slection
dattributs.
slection dobjets via filtre sur lattribut objectclass,
slection de certains attributs (uid, password...) pour filtrer les donnes
confidentielles, par ex.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

117

LDAP : dploiement : mettre en service la duplication


Schma et duplication
A partir du moment o ils partagent les mmes donnes, il est impratif que supplier servers et consumer servers utilisent le mme schma.

Contrle daccs et duplication


Le contrle daccs se fait via des ACLs. Il est ncessaire de dupliquer ces ACLs
pour que les mmes protections sappliquent sur les donnes dupliques et originales...
...Consumers et suppliers doivent interprter de la mme manire ces ACLs
(pas normalises...) : donc utiliser le mme logiciel...
Pratiquement tous les logiciels stockent les ACLs en tant quattribut dentres de
lannuaire.
Parfois ces ACLs sappliquent aux entres infrieures (scope)...
...Vrifier que ces ACLs sont bien dans la partie dupliques du DIT ou comment cest pris en compte par le logiciel.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

118

LDAP : dploiement : mettre en service la duplication


Mthodologie de mise en uvre
Connatre la topologie du rseau physique.
Connatre lemplacement des applications clientes et la charge gnre.
Choisir la mthode de duplication en fonction des capacits du logiciel
synchronisation totale ou incrmentale
single/multi-master replication
scheduling replication ou pas
outils daudit de la duplication
Positionner au mieux sur le rseau les serveurs LDAP replicas en fonction des
caractristiques du logiciel, du rseau et de lemplacement des clients.
Attention : le suffix doit toujours tre le mme entre les serveurs replicas.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

119

LDAP : dploiement : mettre en uvre le partitionnement


Rappel : le partitionnement est une solution pour les trop gros volumes dentres
(> 10000), ou des organisations clates en units autonomes.
Les mcanismes de referral peuvent tre une alternative la duplication.
Quelques prcautions :
limiter les referrals des suffixes ou des branches principales de larbre (ne
pas sen servir comme alias pour des entres),
maintenir la cohrence des liens... et vrifier la disponibilit du serveur distant,
attention au contrle daccs et lauthentification : les authentifications et
les rgles daccs du serveur initial ne sappliquent plus aux donnes du serveur point,
attention au temps de rponse : traverse de rseaux WAN,
problme de scurit : les donnes transitent sur les rseaux WAN...

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

120

LDAP : dploiement : mettre en uvre le partitionnement


Cas dune organisation large : multi-site, multi-suffixe, multi-serveur (source Netscape)

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

121

LDAP : dploiement : mettre en uvre le partitionnement


Cas dun changement de suffix : un serveur, plusieurs suffixes (source Netscape)

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

122

LDAP : dploiement : scuriser le service


Les aspects scurit et confidentialit doivent tre pris en compte ds la phase de
conception. Quels sont les aspects tudier ?
Les accs non autoriss.
Les attaques de type denial-of-service.
Les droits daccs aux donnes.
Le gros du travail est de dterminer les rgles daccs aux donnes.
Le serveur peut tre de type read-only ou read-write. Dans les deux cas il faut
dterminer pour chaque attribut :

Quel est son niveau de confidentialit (un numro de scurit sociale est une
donne plus sensible quune adresse mail) ?

Quel utilisateur ou quelle application pourra y accder en lecture (tout le


monde, certains utilisateurs, uniquement les administrateurs...) ou en criture (utilisateur, manager, administrateur) ?

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

123

LDAP : dploiement : scuriser le service


Les mcanismes qui peuvent tre mis en uvre sont ceux que lon retrouve dans
nombre de services/serveur de lInternet :
Lauthentification
Les signatures lectroniques
Le chiffrement
Le filtrage rseau
Les rgles daccs (ACLs LDAP) aux donnes
Laudit des journaux

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

124

LDAP : dploiement : scuriser le service


Mettre en place des rgles de contrle daccs
Etape 1 : analyser pour chaque attribut son mode daccs :
Attribut

Personne

tous

lecture
lecture/modification

uid

utilisateurs authentifis
administrateur

lecture
lecture/modification

telephoneNumber

tous
propritaire
administrateur

lecture
lecture/modification
lecture/modification

employeeNumber

tous
manager
administrateur

lecture
lecture/modification
lecture/modification

cn,sn,givenname administrateur

26-11-99

Droit daccs

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

125

LDAP : dploiement : scuriser le service


Mettre en place des rgles de contrle daccs
Etape 2 : traduire ces rgles en aci (LDIF)
Exemple pour attribut telephoneNumber
rgle pour tous
aci: (target="ldap:///ou=people,dc=inria,dc=fr)
(targetattr="telephonenumber")
(version 3.0;acl "anonymous read-search access";
allow (read,search,compare) (userdnattr="manager");)
rgle pour administrateur
aci: (target="ldap:///dc=inria,dc=fr)
(targetattr="*")
(version 3.0;acl "Admin write access";
allow (write) (userdn="ldap:///cn=Directory Manager");)
rgle pour propritaire
aci: (target="ldap:///ou=people,dc=inria,dc=fr)
(targetattr="telephonenumber||roomnumber||userpassword")
(version 3.0;acl "self write access";
allow (write) (userdn="ldap:///self");)

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

126

LDAP : dploiement : scuriser le service


Mettre en place des rgles de contrle daccs
Etape 2 : traduire ces rgles en aci (suite)
Exemple pour attribut employeeNumber
rgle pour manager
aci: (target="ldap:///ou=people,dc=inria,dc=fr)
(targetattr="employeenumber")
(version 3.0;acl "manager write access";
allow (read,write) (userdnattr="manager");)
avec lattribut

manager

indiquant le DN du manager de lentre

dn: cn=Laetitia Casta,ou=people,dc=inria,dc=fr


objectclass: top
objectclass: person
cn: cn=Laetitia Casta
manager: cn=Laurent Mirtain, ou=people,dc=inria,dc=fr
...

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

127

LDAP : dploiement : scuriser le service


Mettre en place des rgles de contrle daccs
Etape 2 : traduire ces rgles en aci (suite)
Exemple dutilisation dun filtre (targetfilter) permettant aux membres du groupe
Servadm Manager de modifier une partie des attributs des personnes membres du
service administratif.
rgle pour membre du groupe Servadm Manager
aci: (target="ldap:///dc=inria,dc=fr)
(targetattr != "uid||mail")
(targetfilter="(&(ou=servadm)(objectclass=person))")
(version 3.0;acl "Servadm group permissions";
allow (write)
(groupdn="ldap:///cn=servadm manager,ou=groups,dc=inria,dc=fr");)

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

128

LDAP : dploiement : scuriser le service


Mettre en place des rgles de contrle daccs
Le placement des ACLs influe sur leur porte.
ACLs sappliquant
tout larbre

ou=people

dc=inria,dc=fr

ou=groups
ACLs sappliquant au
sous-arbre groups

uid=mirtain

cn=semir

ACLs sappliquant
lentre mirtain

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

129

LDAP : dploiement : gestion des donnes


Etablir une mthode de gestion des donnes, selon la nature des attributs, pour
dterminer qui administre quels attributs et dans quelle partie du DIT.
On distingues plusieurs catgories de gestion :

attributs maintenus par ladministrateur de lannuaire (contrle daccs...)


attributs maintenus par les fournisseurs de donnes (service du personnel...)
attributs maintenus par lutilisateur final (photo, tlphone...)
attributs maintenus par les applications (prfrences...)
attributs maintenus par le service dannuaire lui-mme

Pour chacune, il faut dfinir la mthode et la frquence de mise jour, valuer la


qualit des donnes et valuer lincidence sur les performances du serveur.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

130

LDAP : dploiement : gestion des donnes


A terme, les attributs maintenus par les applications deviendront majoritaires.
Ces applications doivent respecter certaines rgles pour optimiser les performances du serveur :

minimiser les connexions en groupant les oprations


optimiser le nombre dopration : rechercher plusieurs attributs dun coup,
ne rcuprer que les attributs ncessaires, faire des recherches efficaces

minimiser les mises jours

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

131

LDAP : dploiement : gestion des donnes


Les attributs maintenus de manire centralises font lobjet des choix suivants :

26-11-99

mise jour par commande ou par import de fichier


protger les transactions de mises jours de donnes sensibles
qui fait les mises jour (personnes, scripts...)
quelle frquence
vrifier les donnes en amont

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

132

LDAP : dploiement : gestion des donnes


Les attributs maintenus par lutilisateur prsentent les caractristiques suivantes :

26-11-99

source dinformation, do des donnes plus jour (bureau, tlphone...)


implication des utilisateurs
risque de saisies errones ou invalides
disposer dune interface spcifique de mise jour
attention la frquence globale de mise jour et son impact sur les performances

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

133

LDAP : logiciels serveurs


Concepts
Dployer un service LDAP
Les logiciels serveurs
Les clients LDAP
Les outils de dveloppement
Les applications de LDAP aujourdhui et demain
Bibliographie

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

134

LDAP : logiciels serveurs


A cette date, les logiciels les plus connus sont :
OpenLDAP server,
Innosofts Distributed Directory Server,
Netscape Directory Server,
Sun Microsystemss Directory Services,
IBMs DSSeries LDAP Directory,
University of Michigans SLAPD.
Dautres annuaires supportent les requtes au format LDAP :
Novells NetWare Directory Services (NDS) 3.0,
Microsofts Active Directory (AD),
Lotus Domino.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

135

LDAP : logiciels serveurs


Choisir un logiciel serveur : quelques critres de choix
le prix dachat
les cot de maintenance et de support
ladquation du logiciel avec le type dapplications envisages : dtermine
limportance accorder aux critres dvaluations (performances, nombre
dentres supports, niveau de scurisation...)

la facilit de prise en main


ladquation entre son choix de design et les fonctionnalits du logiciel
(schma, replication, referral...)

la compatibilit avec le logiciel antrieur (rutilisabilit)

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

136

LDAP : logiciels serveurs


Choisir un logiciel serveur : quelques critres dvaluation
les fonctionnalits de base
les plates-formes hardware/software supportes
le schma et ses extensions
les oprations LDAP standards et tendues
les possibilits de duplication
le support de la distribution (referral, chaining)
outils dimport-export, de backup

les outils de gestion


procdure dinstallation
outils de configuration et dadministration (interface web, commandes en
ligne pour automatisation...)
interfaces de gestion de la base (clients natifs, web, commandes en ligne...)
possibilit dadministrer distance

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

137

LDAP : logiciels serveurs


Choisir un logiciel serveur : quelques critres dvaluation (suite)
Les outils de dveloppement
API
SDK
logiciels clients

la fiabilit
sauvegardes et modifications de configuration chaud
mcanismes de replication multi-master
outils de monitoring
qualit de la base de donnes utilise en cas de darrt intempestif

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

138

LDAP : logiciels serveurs


Choisir un logiciel serveur : quelques critres dvaluation (suite)
performance et volutivit
temps de latence
nombre doprations par seconde
nombre de connexions simultanes
nombre dentres, dattributs et taille supports
nombre de replicas et de partitions supports
benchmark DirectoryMark (http://www.mindcraft.com/benchmarks/dirmark)

scurit
mthodes de contrle daccs
gestion des droits daccs
mthodes dauthentification
chiffrement des transactions, de la duplication

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

139

LDAP : logiciels serveurs


Choisir un logiciel serveur : quelques critres dvaluation (suite)
conformit aux standards
LDAPv2 core : RFC1777-1779
LDAPv3 core : RFC2251-2256
LDAPv3 extension
LDIF
API
SSL/TLS, certificats X509
schmas standards
standards X.500

interoprabilit
Le respect des standards est une premire garantie dinteroprabilit

Y2K compliant...

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

140

LDAP : logiciels serveurs


Choisir un logiciel serveur : valuation
comparer les fonctionnalits
tester les softs sur une base pilote
faire quelques benchmarks

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

141

LDAP : logiciels clients


Concepts
Dployer un service LDAP
Les logiciels serveurs
Les clients LDAP
Les outils de dveloppement
Les applications de LDAP aujourdhui et demain
Bibliographie

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

142

LDAP : clients LDAP


Accs natif :
Netscape Communicator
Microsoft Outlook, NetMeeting
Netscape SuiteSpot (les serveurs mail, news, web...)
Oblix (gestionnaire dannuaire)
Navigateur Web : URLs LDAP
U-Mich xaX.500
GQ (GTK-based LDAP client)
LDAP Browser/Editor (Java-based LDAP client)
Applications dveloppes avec un SDK LDAP

Accs via passerelle :


LDAP vers X.500 et X.500 vers LDAP
HTTP vers LDAP (web500gw)
WHOIS++ vers LDAP
FINGER vers LDAP
PH/CSO vers LDAP

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

143

LDAP : clients LDAP


Appels systmes LDAP
Microsoft Windows NT
NT 5 utilise une base LDAP la place des bases SAM
PADL software :
ypldapd : a gateway between NIS/YP and LDAP
NSS LDAP : Nameservice switch library module
PAM LDAP : Pluggable authentication module
Sun Solaris
NSS : Nameservice switch library module
Linux
Linux Directory Services : projet de remplacement de NIS par LDAP

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

144

LDAP : les outils de dveloppement


Concepts
Dployer un service LDAP
Les logiciels serveurs
Les clients LDAP
Les outils de dveloppement
Netscape C SDK
Netscape PerLDAP SDK
Netscape JAVA SDK
SUN JNDI
ADSI SDK
Netscape Directory Server Plug-Ins
Les autres...
Les applications de LDAP aujourdhui et demain
Bibliographie

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

145

LDAP : les outils de dveloppement : Netscape C SDK


Connexion/Dconnexion
#include <stdio.h>
#include "ldap.h"
#define HOST "ldap.inria.fr"
#define PORT "389"
LDAP *ld;
int rc;

/* LDAP Data Structure */

if ( (ld = ldap_init("ldap.inria.fr",389)) == NULL) {


rc = ldap_get_lderrno(ld,NULL,NULL);
fprintf(stderr, "erreur %s\n",ldap_err2string(rc);
return(rc);
}
[...]
if ( ldap_unbind(ld) != LDAP_SUCCESS) {
rc = ldap_get_lderrno(ld,NULL,NULL);
fprintf(stderr, "erreur %s\n",ldap_err2string(rc);
return(rc);
}

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

146

LDAP : les outils de dveloppement : Netscape C SDK


Bind/Unbind
[...]
#define DN NULL/* anonymous dn */
#define PW NULL/* anonymous dn */
[...connexion...]
if ( (rc = ldap_simple_bind_s(ld,DN,PW)) != LDAP_SUCCESS ) {
fprintf(stderr, "erreur %s\n",ldap_err2string(rc);
}
else {
printf("authentification russie\n");
}
[...]
ldap_unbind(ld) ;

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

147

LDAP : les outils de dveloppement : Netscape C SDK


Search
[...]
#define SEARCHBASE "ou=people,dc=inria,dc=fr"
#define SCOPE LDAP_SCOPE_SUBTREE
#define FILTER "(uid=mirtain)"
LDAPMessage *result, *e;
BerElement *ber;
char *attribute, **vals;
[...connexion...]
/* recherche */
rc = ldap_search_ext_s(ld, SEARCHBASE, SCOPE, FILTER, NULL, 0, NULL,
NULL, LDAP_NO_LIMIT, 0, &result);
/* affichage */
for (e = ldap_first_entry(ld, result); e != NULL; e = ldap_next_entry(ld,e)) {
printf("dn: %s\n", ldap_get_dn(ld, e));
for (attribute = ldap_first_attribute(ld, e, &ber);
attribute != NULL ; attribute = ldap_next_attribute(ld, e, ber)) {
if ( (vals = ldap_get_values(ld, e, attribute) != NULL ) {
for (i = 0; vals[i] != NULL; i++) {
printf("%s: %s\n",attribute, vals[i]);
}
}
}
}
26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

148

LDAP : les outils de dveloppement : Netscape C SDK


Add entry
[...]
#define DN "cn=laetitia casta,ou=people,dc=inria,dc=fr"
LDAPMod attribut1, attribut2, attribut3, mods[];
char objectclass_values[] = {"top", "person", "organizationalperson", NULL};
char cn_values[] = {"Laetitia Casta", NULL};
char ou_values[] = {"people", "semir", NULL};
[...connexion...]
/* cration de lentre */
attribut1.mod_op = LDAP_MOD_ADD;
attribut1.mode_type = "cn";
attribut1.mode_value = cn_values;
attribut2.mod_op = LDAP_MOD_ADD;
attribut2.mode_type = "ou";
attribut2.mode_value = ou_values;
...
mods[0] = &attribute1 ;
mods[1] = &attribute2 ;
/* ajout de lentre */
rc = ldap_add_ext_s(ld, DN, mods, NULL, NULL);
[...deconnexion...]

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

149

LDAP : les outils de dveloppement : Netscape C SDK


Delete entry
[...]
#define DN "cn=laetitia casta,ou=people,dc=inria,dc=fr"
[...connexion...]
[...authentification...]
/* destruction de lentre */
rc = ldap_delete_ext_s(ld, DN, NULL, NULL);
[...deconnexion...]

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

150

LDAP : les outils de dveloppement : Netscape PerLDAP SDK


Connexion/Dconnexion/Bind
use Mozilla::LDAP::Conn;
use Mozilla::LDAP::Utils;
my $ldap = "ldap.inria.fr";
my $port = "389";
my $base = "dc=inria,dc=fr";
# cas 1 : authentification anonyme
my $bind = "NULL";
my $passwd = "NULL";
# cas 2 : authentification utilisateur
my $bind = "uid=mirtain,ou=people,dc=inria,dc=fr";
my $passwd = "toto";
# cas 3 : authentification administrateur
my $bind = "cn=Directroy Manager";
my $passwd = "le_chef";
# connexion et authentification
my $conn = new Mozilla::LDAP::Conn("$ldap","$port","$bind","$passwd","$cert");
die "Couldt connect to LDAP server $ld{host}" unless $conn;
[...]
# dconnexion
$conn->close if $conn;

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

151

LDAP : les outils de dveloppement : Netscape PerLDAP SDK


Search
use Mozilla::LDAP::Conn;
use Mozilla::LDAP::Entry;
my $base = "ou=people,dc=inria,dc=fr";
my $scope = "subtree";
my $filter = "(&(objectclass=person)(ou=semir))" ;
[...connexion...]
# search
my $entry = $conn->search($base, $scope, $filter);
$conn->printError() if $conn->getErrorCode();
# affichage du rsultat
if (! $entry ) {
print "Recherche infructueuse.\n";
}
else {
while ($entry) {
$entry->printLDIF();
$entry = $conn->nextEntry;
}
}

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

152

LDAP : les outils de dveloppement : Netscape PerLDAP SDK


Add entry
[...]
# DN de lentre
my $dn = "cn=laetitia casta,ou=people,dc=inria,dc=fr";
[...connexion...]
# construction de lentre
my $newentry = new Mozilla::LDAP::Entry();
$newentry->setDN($dn);
$newentry->{objectclass} = [ "top", "person", "organizationalPerson" ];
$newentry->{manager} = [ "uid=mirtain,ou=people,dc=inria,dc=fr" ];
$newentry->{cn} = [ "Laetitia Casta" ];
$newentry->{description} = [ "indescriptible !" ];
$newentry->{ou} = [ "people", "semir"];
$newentry->addValue("o", "INRIA Sophia Antipolis");
$newentry->addValue("seeAlso", "http://www.inria.fr/~laetitia");
# ajout de lentre
$conn->add($newentry);
if ($conn->getErrorCode()) {
print $conn->printError();
}

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

153

LDAP : les outils de dveloppement : Netscape PerLDAP SDK


Delete entry
use Mozilla::LDAP::Conn;
use Mozilla::LDAP::Utils;
use Mozilla::LDAP::Entry;
# DN de lentre
my $dn = "cn=laetitia casta,ou=people,dc=inria,dc=fr";
[...connexion...]
# destruction de lentre
$conn->delete($dn);
if ($conn->getErrorCode()) {
print $conn->printError();
}
else {
print "Utilisateur supprim.\n";
}

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

154

LDAP : les outils de dveloppement : Netscape Java SDK


Connexion/Dconnexion/Bind
import netscape.ldap.*;
import java.io.*;
import java.util.*;
[...]
LDAPConnection ldap = new LDAPConnection();
/* connexion */
ldap.connect("ldap.inria.fr",389);
/* authentification anonyme */
ldap.authenticate("","");
/* authentification utilisateur */
ldap.authenticate("uid=mirtain,ou=people,dc=inria,dc=fr","toto");
/* connexion et authentification en un coup */
ldap.connect("ldap.inria.fr",389,"uid=mirtain,ou=people,dc=inria,dc=fr","toto");
/* dconnexion */
ldap.disconnect();

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

155

LDAP : les outils de dveloppement : Netscape Java SDK


Search
[...connexion...]
String base = "dc=inria,dc=fr";
int scope = LDAPConnection.SCOPE_SUB;
String filter = "(objectclass=person)";
[...]
/* search */
LDAPSearchResults res = ldap.seach(base,scope,filter,null,false);
/* affichage */
while (res.hasMoreElements()) {
LDAPEntry findEntry = (LDAPEntry) res.next();
System.out.println("dn: " + findEntry.getDN());
LDAPAttributeSet attributeSet = findEntry.getAttributeSet();
for (int i=0;i<attributeSet.size();i++) {
LDAPAttribute attribute = (LDAPAttribute)attributSet.elementAt(i);
String attrName = attribute.getName();
System.out,println(attrName + " :");
Enumeration enumVals = attribute.getStringValues();
while (enumVals.hasMoreElements()) {
String nextValue = (String)enumVals.nextElement();
System.out,println(nextValue);
}
}
}

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

156

LDAP : les outils de dveloppement : Netscape Java SDK


Add entry
[...connexion...]
String dn = "cn=laetitia casta,ou=people,dc=inria,dc=fr";
String objectclass_values[] = {"top", "person", "organizationalperson"};
String cn_values[] = {"Laetitia Casta"};
String ou_values[] = {"people", "semir"};
[...]
LDAPAttributeSet attrib_set = new LDAPAttributeSet();
LDAPAttribute attribute = null;
attribute = new LDAPAttribute("objectclass", objectclass_values);
attrib_set.add(attribute);attribute = new LDAPAttribute("cn", cn_values);
attrib_set.add(attribute);attribute = new LDAPAttribute("ou", ou_values);
attrib_set.add(attribute);
/* cration de lobjet */
LDAPEntry entry = new LDAPEntry(dn,attrib_set);
/* ajout de lentre */
ld.add(entry);
[...]

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

157

LDAP : les outils de dveloppement : Netscape Java SDK


Delete entry
[...connexion...]
String dn = "cn=laetitia casta,ou=people,dc=inria,dc=fr";
[...]
/* destruction de lentre */
ldap.delete(dn);
[...]

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

158

LDAP : les outils de dveloppement : les autres


U-M LDAP SDK -- C (UMICH, OpenLDAP)
le premier SDK
Innosoft LDAP Client SDK (ILC-SDK) -- C (InnoSoft)
proche du prcdent
LDAP Command Line Tools -- packages LDAP (U-M, OpenLDAP, Netscape)
ldapsearch
ldapsearch -h ldap.inria.fr -b "dc=inria,dc=fr" -s sub "&((objectclass=person)(ou=semir))" cn,uid,mail,telephonenumber

ldapmodify
ldapmodify -h ldap.inria.fr -b "dc=inria,dc=fr" -D "cn=Directory Manager" -w "toto"
dn: uid=mirtain, ou=people, dc=inria, dc=fr
changetype: modify
replace: roomnumber
roomnumber: C105
add: description
description: newsmaster
delete: title
\n\n

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

159

LDAP : les outils de dveloppement : les autres


Java naming and Directory Interface (JNDI) -- Java (SUN)
conu comme interface diffrents protocoles de type annuaire (LDAP,
Sun NIS/NIS+, Novell NDS...).
Active Directory Service Interfaces - COM (Microsoft)
concept similaire JNDI.
Net- LDAPapi -- PERL (GNU)
comme PerLDAP mais entirement en Perl.
LDAP API to Python -- Python (University of Queensland)
langage orient dveloppement dinterface graphique.
LDAP API to PHP (http://www.php.net)
langage de script orient Web - server-side dynamic HTML.
DSML -- Directory Service Markup Language (http://www.dsml.org/)
standard pour reprsenter des informations issues de service dannuaire en
XML.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

160

LDAP : les outils de dveloppement : les autres


PS Enlist - ODBC interface to LDAP (http://www.pspl.co.in/PSEnList)
accs LDAP via ODBC (i.e. accder LDAP depuis MS Office !).
Server-Side Javascript LDAP SDK -- JavaScript (Netscape)
module orient Web - dynamic HTML pour les serveurs Web Netscape SuiteSpot.
ColdFusion (Allaire)
Langage/outil de dveloppement orient Web - database, sinterfaant avec
LDAP.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

161

LDAP : les applications de LDAP


Concepts
Dployer un service LDAP
Les logiciels serveurs
Les clients LDAP
Les outils de dveloppement
Les applications de LDAP aujourdhui et demain
Bibliographie

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

162

LDAP : les applications de LDAP


Les diffrents domaines dapplication possibles des annuaires LDAP :
Les applications systme
Les applications Intranet/Extranet
Les applications Internet
Les bases de donnes

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

163

LDAP : les applications de LDAP : applications systmes


Les applications systmes
Lannuaire utilis pour servir aux besoins des services rseaux tels que lauthentification, le contrle daccs, la localisation des imprimantes ou des serveurs de
fichier.
Dans ce cas, il est troitement li au systme dexploitation.
De plus en plus de fabricants se tournent vers le standard LDAP pour limplanter
dans leur systme.
Exemple : Windows 2000, Novell, Solaris, Linux...

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

164

LDAP : les applications de LDAP : applications intranet


Les applications Intranet
Le service dannuaire sert typiquement aux applications utiles lutilisateur final :
accs des pages Web,
annuaire tlphonique ou pour la messagerie lectronique,
profils de configuration... (Netscape suitespot, Lotus Domino...)

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

165

LDAP : les applications de LDAP : applications extranet


Les applications Extranet
Lannuaire peut servir de base dinformation entre un fournisseur et ses sous-traitant, une banque et ses clients...
Ce sont celles mises en uvre par les ISPs ou les grandes entits industrielles ou
universitaires.
Lannuaire sert grer les abonnes, les hbergements de services comme le Web
et la messagerie.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

166

LDAP : les applications de LDAP : bases de donnes


Les bases de donnes
Lannuaire peut remplacer un SGBD traditionnel dans le cas de donnes simples,
intensivement interroges, distribues large chelle et utilises par des multiples
applications (fichier clientle, catalogues de fournitures...).
Il peut pauler un SGBD, en tant synchronis avec lui, pour faciliter la consultation des donnes ou la mise jour de certains champs.
Parfois, lorganisation possde plusieurs bases de donnes dconnectes et grant
des informations redondantes :
la paye
le bureau du personnel
les comptes informatiques
les badges daccs
les cartes de restaurants...
Un annuaire LDAP peut fdrer les donnes communes (informations sur les
employs), les donnes sensibles tant gres dans les SGBD => Meta-Directory.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

167

LDAP : les applications de LDAP : exemples


Gestion centralise de lauthentification et des droits daccs
Remplacer les multiples mots de passe applicatifs/systmes par une authentification LDAP centralise.
Netscape Directory Server - synchronisation des bases utilisateurs Windows NT4
avec base LDAP
Netscape SuiteSpot - serveur de Mail, de News, Web utilisant LDAP pour lauthentification
Cyrus IMAP/POP3 pwcheck_ldap.c - programme externe dauthentification LDAP
pour les serveurs IMAP/POP3 de Cyrus.
Apache::AuthLDAP - module dauthentification et de gestion des autorisations
daccs au serveur Web Apache via LDAP.
PADL Softwares PAM (Pluggable Authentification Module) & NSS (Name Service
Switch) Modules - authentification/lookup redirigs sur LDAP sous Solaris et
Linux

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

168

LDAP : les applications de LDAP : exemples


Gestion des mailing-lists et des aliases mail par LDAP
Netscape Messenger Server - Serveur de Mail full LDAP .
Sendmail 8.9.x : peut utiliser LDAP pour les rsolutions dadresses.
Sympa : gestionnaire de listes de diffusions LDAP capable

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

169

LDAP : les applications de LDAP


Mobilit utilisateur : accs distant des applications aux options, configurations
et prfrences
permettre lutilisateur de retrouver son environnement applicatif indpendamment de sa localisation
Netscape Communicator Roaming Access.
Netscape Calendar nscalUser object class.

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

170

LDAP : les applications de LDAP


Annuaires...
Annuaire du personnel
Inventaire du matriel
Stockage des certificats (X509) et des listes de rvocation (CLRs) - pour des infrastructures base de clefs publiques -

Directory Enabled Networks Initiative (DEN)


Consortium pour dfinir un modle dinformation standard facilitant le

26-11-99

dveloppement dapplications reseaux Directory-Enabled interoprables.


Faciliter laccs des utilisateurs aux services rseaux : authentification,
droits daccs...

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

171

LDAP : bibliographie
Concepts
Dployer un service LDAP
Les logiciels serveurs
Les clients LDAP
Les outils de dveloppement
Les applications de LDAP aujourdhui et demain
Bibliographie

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

172

LDAP : bibliographie
Linuxworld LDAP in action:
http://linuxworld.com/linuxworld/lw-1999-07/lw-07-ldap_1.html

Linux LDAP services:


http://www.rage.net/ldap/

OPenLDAP.org:
http://www.openldap.org

Netscape Deployment Guide:


http://developer.netscape.com/docs/manuals/directory/deploy30/index.htm

LDAP FAQ:
http://www.critical-angle.com/ldapworld/ldapfaq.html

LDAP roadmap and FAQ:


http://www.kingsmountain.com/ldapRoadmap.shtml

LDAP Central
http://www.ldapcentral.com/

Vous retrouverez ce document sur le web ladresse :


http://www-sop.inria.fr/semir/personnel/Laurent.Mirtain/LDAP.html

26-11-99

JRES 99 - LDAP - L. Mirtain - LORIA-INRIA

173