LDAP — Systèmes d`annuaire - membres

Transcription

LDAP — Systèmes d`annuaire - membres
LDAP — Systèmes d'annuaire
Martin Heusse
11 juin 2007
FoilTEX
1
Annuaires
• Base de données particulière — optimisée pour la lecture
• LDAP : Lightweight Directory Access Protocol
–
–
–
–
OpenLDAP
IBM secureway
Sun Java System Directory Server
www.opends.org
• Autres systèmes d'annuaires : Active directory, NIS (SUN Yellow Pages) ;
NIS+
login names/passwords/home directories (/etc/passwd)
group information (/etc/group)
host names and IP numbers (/etc/hosts)
• Un seul annuaire pour tous les besoins : annuaire téléphonique, « comptes »
info.. . .
FoilTEX
2
LDAP : exemple d'enregistrement
cn=Martin Heusse (Common Name)
sn=Heusse (Surname)
telephoneNumber=+ 33 4 76 82 00 00
o=UJF
ou=people
mail=. . .
• Les attributs sont typées : chaînes de caractères, données binaires, numéro
de téléphone. (Mise en forme par le client. . .)
• Chaque entrée est identi ée par un DN : distinguished name (identi ant
unique). Il est formé d'une suite de RDN : relative distinguished name
Ex. : gn=Martin+sn=Heusse,ou=people,dc=ujf-grenoble,dc=fr
– Utilisation des attributs dc=domaine ; dc=tld pour la racine
– Attributs combinés par un "+"
– À un niveau de l'arbre, les attributs formant le rdn peuvent être différents (6= clé primaire).
FoilTEX
exist. Attributes are listed inside each entry. The list of attributes shown is not
complete. For example, the entry for the country DE ( c=DE) could have an
attribute called description with the value Germany.
DIT : Directory Information Tree
Directory Root
c=US
o=IBM
ou=LDAP Team
o=MyOrg
o=transarc
mail: [email protected]
fax: 512-838-5187
c=DE
o=IBM
cn: John Smith
mail: [email protected]
cn: Mike Young
mail: [email protected]
cn=John
(alias)
Figure 7. Example Directory Information Tree (DIT)
The organization of the entries in the DIT are restricted by their
(source : IBM LDAP redbook)
corresponding object class definitions. It is usual to follow either a
or an organizational scheme. For example, entries that
• DN de John geographical
Smith : cn=John
Smith,o=IBM,c=DE
• Le DIT n'est pas un arbre : un alias peut pointer un autre n ud
FoilTEX
LDAP Concepts and Architecture
29
3
4
Hiérarchie de serveurs
the referral arrow shows the logical connection of a referral and does not
reflect the technical implementaion (see text that follows).
A referral is an entry of objectClass referral. It has an attribute, ref, whose
value is the LDAP URL of the referred entry on another LDAP server. See 4.4,
“LDAP URLs” on page 120, for information about LDAP URLs.
• Un serveur contient un sous-arbre à partir d'un DN donné
• Attribut ref dont la valeur est l'URL du serveur :
Server 1
Server 2
Suffix
o=IBM,c=US
ou=ITSO
r
fe
e
R
r
al
Suffix
Suffix
ou=ITSO,o=IBM,c=US
ou=ITSOtest,...
cn=John Smith
cn=Mike Cook
cn=Paul Miller
Figure 9. Example DIT Showing Suffixes and Referrals
• C'est le client qui interroge le second serveur (6= DNS)
When a client sends a request to an LDAP server, the response to the client
• Un serveur may
peut
sous-arbres
be acontenir
referral. Theplusieurs
client can then
choose to follow the referral by
FoilTEX
querying the other LDAP server contained in the referral returned by the first
LDAP server. Referrals are not followed (resolved) by servers. This can
improve server performance by off-loading the work of contacting other
5
Recherche
• Recherche « en dessous » d'une entrée ; profondeur variable (singleLevel,
wholeSubtree)
• Filtre (| (sn=Smith) (&(ou=Austin)(sn=Miller)))
Opérateur avant les opérandes ; | : OU ; & : ET
• Attributs à retourner
FoilTEX
6
Mise à jour
• Changement du DN : on déplace un sous arbre ou une feuille
• Changement d'un attribut
• Ajout d'une entrée : elle doit correspondre à un schéma pré-dé ni (une
personne doit avoir un numéro de téléphone)
Une nouvelle entrée doit contenir :
– Le dn
– Au moins un objectclasss
– Les attributs obligatoire pour sa (ses) classe(s) d'objet
FoilTEX
7
Types d'authenti cation
1. Pas d'authenti cation
2. le client s'identi e par un dn et un mot de passe (envoyé en clair)
3. TLS (SSL)
4. SASL (RFC 4422)
FoilTEX
8
Exemple : recherche
LDAPMessage searchRequest(2) "ou=people,dc=imag,dc=fr" wholeSubtree
messageID: 2
protocolOp: searchRequest (3)
searchRequest
baseObject: ou=people,dc=imag,dc=fr
scope: wholeSubtree (2)
derefAliases: neverDerefAliases (0)
sizeLimit: 0
timeLimit: 30
typesOnly: False
Filter: (|(|(|(givenname=morat*)(sn=morat*))(cn=morat*))(mail=morat*))
attributes: 22 items
Item: givenName
Item: sn
Item: cn
Item: mail
Item: telephoneNumber
Item: jpegPhoto
Item: co
...
FoilTEX
9
• BaseObject : la racine du sous-arbre dans lequel on recherche
Con guré dans le client, comme l'adresse du serveur.
Utilisation du suf xe DNS
• On spéci e la recherche, et les attributs recherchés
• LDAP repose sur TCP
FoilTEX
10
LDAPMessage searchResEntry(2) "cn=Philippe Morat,ou=people,dc=imag,dc=fr" [5 results]
messageID: 2
protocolOp: searchResEntry (4)
searchResEntry
objectName: cn=Philippe Morat,ou=people,dc=imag,dc=fr
attributes: 6 items
Item cn
type: cn
vals: Philippe Morat
Item givenName
type: givenName
vals: Philippe
Item sn
type: sn
vals: MORAT
Item mail
type: mail
vals: [email protected]
...
FoilTEX
11
Réplication
• Équilibrage de charge
• Redondance
FoilTEX
12
Format LDIF — RFC 2849
LDAP Data Interchange Format
• Format d'échange des données du répertoire LDAP
version: 1
dn:cn=Barbara Jensen, ou=Product Development, dc=airius, dc=com
objectclass:top
objectclass:person
objectclass:organizationalPerson
cn:Barbara Jensen
cn:Barbara J Jensen
cn:Babs Jensen
sn:Jensen
uid:bjensen
telephonenumber:+1 408 555 1212
description:Babs is a big sailing fan, and travels extensively in search of perfect sailing conditions.
title:Product Manager, Rod and Reel Division
• Étendu pour coder les modi cations (ex. : suppression)
dn: cn=Robert Jensen, ou=Marketing, dc=airius, dc=com
changetype: delete
FoilTEX

Documents pareils