Vous êtes sur la page 1sur 167

LDAP : concepts, dploiement

Laurent Mirtain C. Claveleira, C. Gross Journes LDAP - 27 et 28 septembre 2000

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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 2

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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 3

Concepts : quest-ce quun annuaire ? Un conteneur dinformations organises Exemples dannuaires courants annuaire tlphonique carnet dadresses catalogue de vente guides tl Ce sont des annuaires ofine

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 4

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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 5

Concepts : quest-ce quun annuaire ? Spcicits des annuaires lectroniques dynamiques (informations changent -> + jour) souples (changement ais type et organisation des donnes) peuvent tre scuriss (qui voit quoi) peuvent tre personaliss (faon de prsenter les donnes, action sur ses propres
donnes,...)

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 6

Concepts : quest-ce quun annuaire ? Caractristiques compares des annuaires et base de donnes rapport lecture/criture (beaucoup) plus lev pour les annuaires annuaires plus facilement extensibles (types de donnes) diffusion beaucoup plus large chelle distribution des donnes entre serveurs plus facile avec les annuaires plus grande duplication des informations des annuaires (+ able, +performant, + proche des clients) importance des standards -> LDAP performances globales des annuaires plus leves (en lecture)

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 7

Concepts : quest-ce quun annuaire ? exemple de services d'annuaires que nous utilisons dj : le DNS pour obtenir lurl http://www.sncf.com/ il faut obtenir ladresse du serveur
www.sncf.com -> requte DNS

DNS est un exemple d'un service d'annuaire global il est distribu entre des serveurs cooprants il a un espace de nommage uniforme

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 8

Concepts : quoi peut servir un annuaire en ligne ? chercher (et trouver) des informations mieux et plus vite pour des humains ou des applications grer (carnets dadresses, comptes utilisateurs, prols,...) de base de donne simple stocker et diffuser des certicats dans une PKI

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 9

Concepts : ce que nest pas un annuaire appropri de frquentes critures destin manipuler des donnes volumineuses un substitut un serveur FTP, un systme de chiers,...

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 10

Concepts : historique Historiquement sont apparus : Bases de comptes de systmes multi-utilisateurs (70-80) Unix /etc/passwd, IBM MVS PROFS ... Grapevine (Xerox, dbut 80) Internet Domain Name System (84) service de nommage rseau spcique mais efcace WHOIS bases de contacts

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 11

Concepts : historique Les annuaires ddis aux applications Lotus cc:Mail, Notes Unix sendmail /etc/aliases Microsoft Exchange Les annuaires Internet (offrent de plus en plus un accs LDAP) Bigfoot, Yahoos Four11, AnyWho (AT&T), Schwitboard Les annuaires systme-rseau (NOS) Sun NIS, NIS+ Novell NetWare Directory Service (93) (proche dX500) Microsoft Active Directory (natif LDAP) Les annuaires multi-usage X.500 (88-93-97) WHOIS++ (93) CSO (PH) LDAP (93)
CRU-UREC I Tutorial LDAP I Journes LDAP-27-28/9/00-Paris- 12

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.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 13

Concepts : historique : X.500 X.500 dnit : les rgles pour nommer les objets et les entits les protocoles pour fournir le service dannuaire un mcanisme dauthentication.
Master DSA2 DAP (Directory Access Protocol) DSP (Directory System Protocol) DAP Master DSA1 (Directory Sys-

DISP (Directory Information Shadowing Protocol)

DUA1 (Directory User Agent) DUA2

DAP Shadow DSA1

X500 = suite (consquente) : X501, X509, X511, X518, X519, X520, X521, X525

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 14

Concepts : historique : X.500 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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 15

Concepts : historique : X.500 Qualits et dfauts dX500 : Atouts dX500 : scalability, fonctions de recherche volues, distribu (donnes et administration),
ouvert

Dfauts dX500 : implmentations (trs) lourdes, bugges et difcilement interoprables, bas sur les
protocoles ISO, contraire la culture internet

Echec : les ambitions dX500 nont pas t atteintes

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 16

Concepts : historique : LDAP En 1993 Lightweight Directory Access Protocol (LDAP) est n de ladaptation et du dgraissage 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 Efciently (DIXIE) : RFC 1249 qui convergent nalement 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 simplication et de la performance

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 17

Concepts : historique : LDAP 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.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 18

Concepts : historique, autres annuaires 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).

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 19

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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 20

Concepts : LDAP LDAP dnit : le protocole daccs -- comment accder linformation contenue dans lannuaire, un modle dinformation -- le type dinformations contenues dans lannuaire, un modle de nommage -- comment linformation est organise et rfrence, un modle fonctionnel -- comment on accde et met jour 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.
CRU-UREC I Tutorial LDAP I Journes LDAP-27-28/9/00-Paris- 21

Concepts : LDAP, le protocole Le protocole dnit : Comment stablit la communication client-serveur : commandes pour se connecter ou se dconnecter, pour rechercher, comparer,
crer, modier 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)

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 22

Concepts : LDAP, le protocole Le protocole dnit (suite) : Les mcanismes de scurit : mthodes de chiffrement et dauthentication 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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 23

Concepts : LDAP, le protocole Communication client-serveur : normalise par lIETF : la version actuelle est LDAPv3 (RFC2251). Communication serveur-serveur : le referral service est dnit par LDAPv3, le replication service est encore en cours de normalisation sous la dnomination
LDAP Duplication Protocol (LDUP)

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 24

Concepts : LDAP, le protocole possibilit davoir une seule connexion pour passer plusieurs requtes

1. connexion et authentication 2. rsultat authentication 3. recherche 4. rponse entre #1 5. rponse entre #2 6. message de rsultat 7. abandon session 8. dconnexion

Client LDAP

Serveur LDAP

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 25

Concepts : LDAP, le protocole LDAPv3 est conu pour tre extensible sans avoir modier 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 modient le comportement. Simple Authentication and Security Layer : couche supplmentaire permettant LDAP dutiliser des mthodes dauthentication externes.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 26

Concepts : LDAP, modle dinformation Le modle dinformation dnit 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 dnit la liste des classes dobjets quil connat.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 27

Concepts : LDAP, modle dinformation Schma Le Directory schema est lensemble des dnitions relatives aux objets quil sait grer (~typedef). Le schma dcrit les classes dobjets, les types des attributs 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.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 28

Concepts : LDAP, modle dinformation Attributs Un type dattribut (ou attribut) est caractris par : Un nom, qui lidentie Un Object Identier (OID), qui lidentie galement Sil est mono ou multi-valu Une syntaxe et des rgles de comparaison (matching rules) Un format ou une limite de taille de valeur qui lui est associe
Tableau 1 : Exemple dattributs dune entre

type dattribut

valeur dattribut

cn: Barnab Dupond uid: bdupond telephonenumber: +33 (0)1 2345 6789 mail: Barnabe.Dupond@acme.com roomnumber: C105

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 29

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
cis ces tel int dn bin

syntaxe X.500
caseIgnoreMatch caseExactMach telephoneNumberMatch integerMatch distinguishedNameMatch octetStringMatch

description
texte, la casse nest pas prise en compte texte, la casse intervient texte reprsentant un numro de tel nombre entier, comparaison numrique nom dentre, rgles spciques donnes binaires, comparaison byte/byte

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 30

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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 31

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 dnie par : Un nom, qui lidentie Un OID, qui lidentie 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).

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 32

Concepts : LDAP, modle dinformation Le type dune classe est li la nature des attributs quelle utilise : Une classe structurelle correspond la description dobjets courants de lannuaire : les personnes, les groupes, les units organisationnelles... Une entre appartient toujours une classe dobjet structurelle. Une classe auxiliaire permet de rajouter des informations complmentaires des objets structurels. Une classe abstraite dsigne des objets basiques du schma (top, alias).

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 33

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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 34

Concepts : LDAP, modle dinformation Par exemple, lobjet inetOrgPerson la liation 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.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 35

Concepts : LDAP, modle dinformation Exemple de classes dobjets :


Entry Type inetOrgPerson (denes entries for a person) Required Attributes commonName (cn) surname (sn) objectClass Optional Attributes businessCategory carLicense departmentNumber description employeeNumber facsimileTelephone Number givenName mail manager mobile organizationalUnit (ou) pager postalAddress roomNumber secretary seeAlso telephoneNumber title labeledURI uid businessCategory description facsimileTelephoneNumber location (l) postalAddress seeAlso telephoneNumber

organizationalUnit (denes entries for organizational units)

ou objectClass

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 36

Concepts : LDAP, modle dinformation OIDs Les classes dobjets et les attributs sont normaliss par le RFC2256 an de garantir linteroprabilit entre logiciels. Sont rfrences par un object identier (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 dnir la signication
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 1.3.6.1.4.1.7135
CRU-UREC

fait rfrence au service X.500 est la dfinition des types dattributs est la dfinition des classes dobjets Internet OID IANA-assigned company OIDs, utilis pour entreprises prives OpenLDAP pour le CRU
I Tutorial LDAP I Journes LDAP-27-28/9/00-Paris- 37

Concepts : LDAP, modle dinformation Dnition 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 : chier de conguration utilis par U-M slapd, OpenLDAP et Netscape
Directory. ASN.1 : grammaire utilise dans les documents dcrivant les standards LDAP et X.500. LDAPv3 : LDAPv3 introduit lobligation pour un serveur de publier son schma via LDAP en le stockant dans lentre subschema.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 38

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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 39

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}

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 40

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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 41

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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 42

Concepts : LDAP, modle de nommage Le modle de nommage dnit 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, lidentication dune entre se fait laide dun nom, le Distinguish Name (DN).

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 43

Concepts : LDAP, modle de nommage Le Directory Information Tree (DIT) Classication des entres dans une arborescence hirarchique (comparable au systme de chier Unix).
Exemple de modlisation dune organisation organisation

personnes

services

salles runions

organisation organisation organisation user1

organisation organisation organisation service1

organisation organisation organisation salle1

Chaque nud de larbre correspond une entre de lannuaire ou directory specic entry (DSE). Au sommet de larbre se trouve lentre Sufx ou Root Entry ou BaseDN, qui caractrise une base LDAP.
CRU-UREC I Tutorial LDAP I Journes LDAP-27-28/9/00-Paris- 44

Concepts : LDAP, modle de nommage Le sufx dnit lespace de nommage dont le serveur a la gestion. Un serveur peut grer plusieurs arbres (donc plusieurs sufxes). Il possde une entre spciale, appele root DSA Specic Entry (rootDSE) qui contient la description du DIT (V3). Avec LDAP, vous tes libres dorganiser vos donnes comme bon vous semble
(design du DIT) (X500). Des contraintes (performance, gestion...) impliqueront de choisir tel ou tel type de modle (cf dploiement).

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 45

Concepts : LDAP, modle de nommage Le Distinguished name (DN) Rfrence de manire unique une entre du DIT ( path chier UNIX).
Form de la suite des noms des entres, en partant de lentre et en remontant vers le suffix, spar par des ",".
o=WorldCompany

ou=people

ou=countries

ou=groups

uid=jsmith

uid=sjones

cn=staff

Ex : le DN de lentre jsmith vaut :


uid=jsmith, ou=people, o=WorldCompany

Chaque composant du DN est appel Relative Distinguished 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.
CRU-UREC I Tutorial LDAP I Journes LDAP-27-28/9/00-Paris- 46

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=acme.com o=WorlCompany

Serveur LDAP 1

Serveur LDAP 2

Lattribut aliasObjectName de lobjet alias a pour valeur le DN de lentre poin


te. Lattribut ref de lobjet referral a pour valeur lURL LDAP de lentre dsigne. Les referrals sont traits au niveau du serveur en LDAP V2, par le client en V3

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 47

Concepts : LDAP, modle fonctionnel Le modle fonctionnel dcrit le moyen daccder aux donnes et les oprations quon peut leur appliquer. Le modle dnit : Les oprations dinterrogation. Les oprations de comparaison. Les oprations de mise jour. Les oprations dauthentication et de contrle. Les oprations tendus (V3)

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 48

Concepts : LDAP, modle fonctionnel 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 :
Tableau 3 :

base object scope derefAliases size limit time limit attrOnly search filter list of attributes

lendroit de larbre o doit commencer la recherche la profondeur de la recherche si on suit les liens ou pas nombre de rponses limite temps maxi allou pour la recherche renvoie ou pas la valeur des attributs en plus de leur type le ltre de recherche la liste des attributs que lon souhaite connatre

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 49

Concepts : LDAP, modle fonctionnel Le scope

o=WorldCompany

o=WorldCompany

o=WorldCompany

ou=countries

ou=countries

ou=countries

search base = "ou=countries,o=WorldCompany" search scope = base search scope = onelevel search scope = subtree

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 50

Concepts : LDAP, modle fonctionnel Les ltres de recherche (RFC 2254)


(<operator>(<search operation>)(<search operation>)...))
Tableau 4 : Exemples de ltres de recherche

(cn=Norbert Durand) (cn=*Mart*) (cn~=martin) (employeenumber>=100) (sn=*) (&(sn=Durand)(l=paris)) (|(ou=gens)(ou=groupes)) (!(tel=*))

galit sous-chane approximation comparaison existance ET OU NON

Nom vaut "Norbert Durand" Nom contient "Mart" Nom sonne comme "martin" Numro suprieur 100 Tous les noms propres Nom vaut "Durand" ET localisation vaut paris ou vaut gens ou groupes Toutes les entres sans attribut tlphone

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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 51

Concepts : LDAP, modle fonctionnel : comparaison Hritage de X.500 : vrier si lattribut dune entre contient bien une valeur spcie. Le serveur rpond vrai ou faux. Equivalent une recherche qui 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.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 52

Concepts : LDAP, modle fonctionnel : mise jour 4 oprations : add, delete, rename, modify Ces quatre oprations ncessitent les droits daccs 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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 53

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=WorlCompany ou=people uid=jsmith uid=jsmith ou=guests ou=people uid=john o=WorlCompany ou=guests ou=people uid=jsmith uid=jsmith o=WorlCompany ou=guests ou=people uid=john o=WorlCompany ou=guests

dn: uid=jsmith,ou=people,o=WorlCompany dn: uid=john,ou=people,o=WorlCompany


uid=john o=WorlCompany ou=people uid=jsmith ou=guests ou=people o=WorlCompany ou=guests

dn: uid=jsmith,ou=people,o=WorlCompany dn: uid=john,ou=people,o=WorlCompany


uid=jsmith o=WorlCompany ou=people ou=guests ou=people o=WorlCompany ou=guests uid=john

uid=jsmith uid=jsmith

dn: uid=jsmith,ou=people,o=WorlCompany dn: uid=jsmith,ou=guests,o=WorlCompany

dn: uid=jsmith,ou=people,o=WorlCompany dn: uid=john,ou=guests,o=WorlCompany

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 54

Concepts : LDAP, modle fonctionnel : Authentication Authentication et contrle 3 oprations : bind, unbind, abandon bind = connexion. unbind = dconnexion abandon= le client indique au serveur quil laisse tomber la requte quil avait
envoy. Celui-ci abandonne alors le process.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 55

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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 56

Concepts : LDAP, modle de scurit Lauthentication LDAP est un protocole avec connexion : louverture de session (bind) saccompagne dune identication et, ventuellement, dun mot de passe (optionnel en V3). - Anonymous authentication - accs sans authentication permettant datteindre les donnes sans restrictions daccs (V2, V3). - Root DN authentication - accs administrateur (tous les droits) (V2, V3). - Mot de passe en clair - un DN plus un password qui transite en clair sur le rseau (V2, V3). - Kerberos V4 (V2) - Mot de passe + SSL (LDAPS) ou TLS - la session est chiffre et le mot de passe ne transite plus en clair. - Certicats sur SSL - change de certicats SSL (clefs publiques/prives). - Simple Authentication and Security Layer (SASL) - mcanisme externe dauthentication (V3).
CRU-UREC I Tutorial LDAP I Journes LDAP-27-28/9/00-Paris- 57

Concepts : LDAP, modle de scurit SASL Simple Authentication and Security Layer (SASL) est dni par le RFC 2222 et permet dajouter des mcanismes dauthentication des protocoles orients connexion (~ plug-in). SASL est implant dans LDAPv3. Les mcanismes supports par SASL sont Kerberos, S/Key, GSSAPI entre autres.

Client LDAP

LDAP

Serveur LDAP

SASL plug-in

SASL plug-in

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 58

Concepts : LDAP, modle de scurit Le contrle daccs Le serveur attribue lutilisateur identi, des droits daccs aux donnes (lecture, criture, recherche et comparaison), qui lui ont t dnis 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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 59

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.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 60

Concepts : LDAP, modle de scurit Expression gnrique des ACLs :


<quoi> <qui> <comment>

<quoi> : point dentre de lannuaire auquel sapplique la rgle <qui> : qui sappliquent ces droits <comment> : oprations autorises/refuses

<comment>

<qui>

Read Write Search Compare Selfwrite Add Delete

Tout le monde Un utilisateur Un groupe dutilisateur Une machine

Exemple openldap :
access to * by self write by * read

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 61

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 lauthentication par certicats : permet au client de prouver son identit au serveur et, en retour, celui-ci den faire
de mme vis vis du client.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 62

Concepts : LDAP, modle de duplication Le modle de duplication (replication service) dnit 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.
CRU-UREC I Tutorial LDAP I Journes LDAP-27-28/9/00-Paris- 63

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 conguration dcrivant les suppliers, les consumers et quelles donnes ils changent, forment le replication agreement.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 64

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 spcis via un ltre du genre
:
on ne duplique que les objets de type personne on ne duplique que les attributs non condentiels (annuaire interne vs. annuaire externe)

Plusieurs manires de synchroniser les serveurs : mise jour totale mise jour incrmentale... Plusieurs stratgies de duplications : single-master replication multiple-master replication cascading replication.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 65

Concepts : LDAP, modle de duplication La duplication se fait en temps-rel ou heure xe (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 de la duplication ncessite de la prvoir au moment du design du DIT.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 66

LDAP : APIs Ces bibliothques de programmation permettent de crer des applications annuaire-compatibles. Les APIs disponibles actuellement : 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)

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 67

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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 68

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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 69

LDAP : LDIF Mode modication 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 : ajouter des attributs et leurs valeurs. : remplacer des valeurs dattributs par dautres. : dtruire lattribut spcifi.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 70

LDAP : LDIF 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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 71

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 V3 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 le standard ISO 639)

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 72

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.worldcompany.com/cn=John%20Smith,ou=people,o=worldcompany ldap://ldap.worldcompany.com/o=worldcompany?mail,uid?sub?(sn=Smith)

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 73

Dploiement Dployer un service dannuaire LDAP, cest rchir : 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.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 74

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.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 75

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 spciques une application de dterminer par quelle source les obtenir et les maintenir jour.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 76

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...) chiers textes ou feuilles de calcul dutilisateurs des bases propres des applications (chier htpasswd dApache, carnet dadresses...)

Les mcanismes de mise jour envisageables : synchronisation avec un SGBD batches saisie manuelle

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 77

Dploiement : Donnes ncessaires Choisir, en fonction des donnes retenues, quelles classes dobjets et types dattributs utiliser. Les schmas standards ou fournis avec les serveurs conviennent en gnral aux besoins. En rgle gnrale, viter de modier 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.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 78

Dploiement : Donnes ncessaires Par exemple cration de la classe dobjet Personne lle de inetOrgPerson dans laquelle on dnira les attributs ncessaires ses besoins :
attributetype ( 1.3.6.1.4.1.999.1.1 NAME fonction EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) objectclass ( 1.3.6.1.4.1.999.2.1 NAME Personne SUP inetorgperson DESC membre du personnel MUST ( sn $ cn $ fonction ) MAY ( uidNumber $ gidNumber $ homeDirectory $ loginShell ))

Dans tous les cas : documenter son schma pour en faciliter la maintenance et lvolution. viter de dsactiver loption de schema checking.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 79

Dploiement : concevoir son modle de nommage Consiste dnir 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.


CRU-UREC I Tutorial LDAP I Journes LDAP-27-28/9/00-Paris- 80

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.
Exemple de DIT la X.500
c=fr

o=cnrs

o=inria

l=Grenoble
cn=Claude Dupont cn=Henri Durand

l=Paris

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 81

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 : plat, dcoup pour reter lorganisation interne, branch par type dobjet, branch en vue de faciliter la duplication entre serveurs, la dlgation de gestion,
ou la dnition de rgles daccs spciques une branche.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 82

Dploiement : concevoir son modle de nommage Design du DIT (suite)


Exemple : arbre plat

c=us

o=WorldCompany

cn=smith cn=jones

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 83

Dploiement : concevoir son modle de nommage Design du DIT (suite)


Exemple : branchage par service ou par localisation

c=us

c=us

o=WorldCompany

o=WorldCompany

ou=R&D

ou=Ventes

ou=Administration

ou=Nantes

ou=Lyon

ou=Paris

cn=jones cn=smith

cn=dupont cn=durand

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 84

Dploiement : concevoir son modle de nommage Design du DIT (suite)


Exemple : branchage par type dobjet

c=us

o=WorldCompany

ou=Location

ou=Groups

ou=People

Site=Paris Site=New York

cn=admins cn=Mail admins

cn=dupont cn=jones

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 85

Dploiement : concevoir son modle de nommage Design du DIT (suite)


Exemple : branchage fort c=us o=WorldCompany ou=People

l=United States

l=France

ou=Sales

ou=Engineering

ou=Engineering

ou=R&D

ou=Sales

l=WDC

l=LA

l=NYC

cn=Mike Smith

cn=John Doe
CRU-UREC I Tutorial LDAP I

cn=Jean Dupont
Journes LDAP-27-28/9/00-Paris- 86

Dploiement : concevoir son modle de nommage Design du DIT : branchage fort ou faible ?
Fort : les plus Rete lorganisation interne. Minimise le problme de DNs identiques. Facilite le partitionnement des donnes entre plusieurs serveurs. Fort : les moins Longueur du DN. Problme si lorganisation change. Dure de recherche augmente. Faible : les plus Pas de soucis de classication des entres DN courts stabilit du DIT Meilleurs rapidit de recherche. Faible : les moins Risque de DNs identiques. Mal adapt au listage des entres

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 87

Dploiement : concevoir son modle de nommage Choix du sufxe Le sufxe = identiant de lannuaire. Mme si la base na quune vocation interne , elle peut terme sexternaliser. Choisir, si possible, un sufxe 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 sufxe : o=World Company, c=us Aucun organisme de contrle dattribution des sufxes : 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 sufxe de son annuaire est recommand par lIETF IDS group.
I Tutorial LDAP I

CRU-UREC

Journes LDAP-27-28/9/00-Paris- 88

Dploiement : concevoir son modle de nommage Choix du sufxe (suite) Il pourra sexprimer sous deux formes : utilisation de lattribut organization (o) :
o=world-company.com utilisation de lattribut Domain Component (dc) dni par le RFC 2377 : dc=world-company, dc=com

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=jones,ou=people,dc=World-Company,dc=com renvoie sur le domaine DNS World-Company.com. Requte sur lentre SRV du DNS de World-Company.com _ldap._tcp.World-Company.com. IN SRV 0 0 389 ldap.World-Company.com Dduction : serveur : ldap.world-company.com - port : 389

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 89

Dploiement : concevoir son modle de nommage Choix du sufxe (conclusion) Pas de standard de design et pas de solution universelle : faire des compromis visant prendre la moins mauvaise solution, en essayant de
dnir 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
CRU-UREC I Tutorial LDAP I Journes LDAP-27-28/9/00-Paris- 90

Dploiement : concevoir son modle de nommage Nommage des entres : choix du RDN
Exemples :
dn = cn=robert jones,ou=people,dc=world-company,dc=com dn = uid=rdupont,ou=people,dc=world-company,dc=com

Problmes : garantir lunicit viter les changements de DN donner une information pertinente prise en compte des clients Recommendations de lETF : Identication des utilisateurs par leur email
dn = uid=rdupont@world-company.com,ou=people,dc=world-company,dc=com

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 91

Dploiement : Dnir la topologie du service Analyser la manire dont le service dannuaire LDAP va tre rendu en termes de performance, de abilit 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.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 92

Dploiement : Dnir la topologie du service Le partitionnement Consiste clater les donnes de lannuaire sur plusieurs serveurs.
serveur A

serveur B serveur C

serveur A 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 dnissent des moyens de les relier (re-coller). Ces moyens sont les services "referral service" et "replication service".
CRU-UREC I Tutorial LDAP I Journes LDAP-27-28/9/00-Paris- 93

Dploiement : Dnir 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.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 94

Dploiement : Dnir 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=world-company,dc=com

ou=New York

ou=LA

ou=Paris

subordinate reference

immediate superior knowledge reference


ou=Paris

contexte de nom-

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.
CRU-UREC I Tutorial LDAP I Journes LDAP-27-28/9/00-Paris- 95

Dploiement : Dnir 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.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 96

Dploiement : Dnir la topologie du service Le referral service (suite) les serveurs ne les positionnent pas tous 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.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 97

Dploiement : Dnir la topologie du service Le referral service (suite) Le default referral est positionn dans le chier 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=Paris, dc=world-company, dc=com objectclass: top objectclass: organization objectclass: referral ou: Sophia description: Filiale Paris l: Paris ref: ldap://ldap.paris.world-company.fr:389/ou=paris
CRU-UREC I Tutorial LDAP I Journes LDAP-27-28/9/00-Paris- 98

Dploiement : Dnir 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 able, hautement disponible, et performant.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 99

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


CRU-UREC I Tutorial LDAP I Journes LDAP-27-28/9/00-Paris- 100

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.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 101

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.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 102

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. La duplication est mise en uvre pour ramener les branches distantes localement (performance) et assurer une redondance de tout larbre en local (disponibilit).

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 103

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.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 104

Dploiement : mettre en service la duplication Rpartir la charge en utilisant le DNS round robin Ce mcanisme du DNS permet de congurer 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 dnir le ux de mise jour des donnes entre les serveurs de duplication. Plusieurs mthodes existent : Single-master replication Floating-master replication Multi-master replication

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 105

Dploiement : mettre en service la duplication Single-master replication Un serveur en lecture-criture (master) et tous les serveurs replicas sont read-only. Les modications 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

modica-

Client LDAP

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 106

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 modications Client LDAP


CRU-UREC I Tutorial LDAP I Journes LDAP-27-28/9/00-Paris- 107

Dploiement : mettre en service la duplication Multi-master replication


Plusieurs serveurs read-write sur lesquels les clients peuvent faire les modications. Des mcanismes de synchronisation se chargent de grer les conits (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.

modications

modications

Client LDAP

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 108

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 xes
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 ltrer les donnes dupliques par une slection dattributs. slection dobjets via ltre sur lattribut objectclass, slection de certains attributs (uid, password...) pour ltrer les donnes condentielles, par ex.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 109

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

...Vrier que ces ACLs sont bien dans la partie dupliques du DIT ou comment
cest pris en compte par le logiciel.
CRU-UREC I Tutorial LDAP I Journes LDAP-27-28/9/00-Paris- 110

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 sufx doit toujours tre le mme entre les serveurs replicas.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 111

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 sufxes ou des branches principales de larbre (ne pas
sen servir comme alias pour des entres), maintenir la cohrence des liens... et vrier la disponibilit du serveur distant, attention au contrle daccs et lauthentication : les authentications 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...

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 112

Dploiement : mettre en uvre le partitionnement


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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 113

Dploiement : mettre en uvre le partitionnement


Cas dun changement de sufx : un serveur, plusieurs sufxes (source Netscape)

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 114

Dploiement : scuriser le service Les aspects scurit et condentialit 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 condentialit (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) ?

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 115

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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 116

Dploiement : scuriser le service Mettre en place des rgles de contrle daccs Etape 1 : analyser pour chaque attribut son mode daccs :
Tableau 1 :

Attribut cn,sn,givenname
uid

Personne
tous administrateur utilisateurs authentis administrateur tous propritaire administrateur tous manager administrateur

Droit daccs
lecture lecture/modication lecture lecture/modication lecture lecture/modication lecture/modication lecture lecture/modication lecture/modication

telephoneNumber employeeNumber

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 117

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=world-company,dc=com) (targetattr="telephonenumber") (version 3.0;acl "anonymous read-search access"; allow (read,search,compare) (userdnattr="manager");)
rgle pour administrateur

aci: (target="ldap:///dc=world-company,dc=com) (targetattr="*") (version 3.0;acl "Admin write access"; allow (write) (userdn="ldap:///cn=Directory Manager");)
rgle pour propritaire

aci: (target="ldap:///ou=people,dc=world-company,dc=com) (targetattr="telephonenumber||roomnumber||userpassword") (version 3.0;acl "self write access"; allow (write) (userdn="ldap:///self");)

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 118

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=world-company,dc=com) (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=John Smith,ou=people,dc=world-company,dc=com objectclass: top objectclass: person cn: John Smith manager: cn=Bill Baxter, ou=people,dc=world-company,dc=com ...

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 119

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=world-company,dc=com) (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=world-company,dc=com");)

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 120

Dploiement : scuriser le service Mettre en place des rgles de contrle daccs Le placement des ACLs inue sur leur porte.

ACLs sappliquant tout larbre

dc=world-company,dc=com

ou=people

ou=groups ACLs sappliquant au sous-arbre groups

uid=jones ACLs sappliquant lentre jones

cn=smith

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 121

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 nal (photo, tlphone...) attributs maintenus par les applications (prfrences...) attributs maintenus par le service dannuaire lui-mme Pour chacune, il faut dnir la mthode et la frquence de mise jour, valuer la qualit des donnes et valuer lincidence sur les performances du serveur.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 122

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 efcaces minimiser les mises jours

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 123

Dploiement : gestion des donnes Les attributs maintenus de manire centralises font lobjet des choix suivants : mise jour par commande ou par import de chier protger les transactions de mises jours de donnes sensibles qui fait les mises jour (personnes, scripts...) quelle frquence vrier les donnes en amont

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 124

Dploiement : gestion des donnes Les attributs maintenus par lutilisateur prsentent les caractristiques suivantes : source dinformation, do des donnes plus jour (bureau, tlphone...) implication des utilisateurs risque de saisies errones ou invalides disposer dune interface spcique de mise jour attention la frquence globale de mise jour et son impact sur les performances

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 125

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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 126

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.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 127

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)

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 128

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 conguration et dadministration (interface web, commandes en ligne pour automatisation...) interfaces de gestion de la base (clients natifs, web, commandes en ligne...) possibilit dadministrer distance

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 129

Logiciels serveurs Choisir un logiciel serveur : quelques critres dvaluation (suite) Les outils de dveloppement
API SDK logiciels clients la abilit sauvegardes et modications de conguration chaud mcanismes de replication multi-master outils de monitoring qualit de la base de donnes utilise en cas darrt intempestif

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 130

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 dauthentication chiffrement des transactions, de la duplication

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 131

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, certicats X509 schmas standards standards X.500 interoprabilit

Le respect des standards est une premire garantie dinteroprabilit

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 132

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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 133

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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 134

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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 135

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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 136

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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 137

Les outils de dveloppement : Netscape C SDK Connexion/Dconnexion


#include <stdio.h> #include "ldap.h" #define HOST "ldap.worldcompany.com" #define PORT "389" LDAP *ld; int rc; /* LDAP Data Structure */

if ( (ld = ldap_init("ldap.worldcompany.com",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); }

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 138

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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 139

Les outils de dveloppement : Netscape C SDK Search


[...] #define SEARCHBASE "ou=people,o=WorldCompany" #define SCOPE LDAP_SCOPE_SUBTREE #define FILTER "(uid=jsmith)" 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]); } } } }
CRU-UREC I Tutorial LDAP I Journes LDAP-27-28/9/00-Paris- 140

Les outils de dveloppement : Netscape C SDK Add entry


[...] #define DN "cn=john smith,ou=people,o=WorldCompany" LDAPMod attribut1, attribut2, attribut3, mods[]; char objectclass_values[] = {"top", "person", "organizationalperson", NULL}; char cn_values[] = {"John Smith", NULL}; char ou_values[] = {"people", 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...]
CRU-UREC I Tutorial LDAP I Journes LDAP-27-28/9/00-Paris- 141

Les outils de dveloppement : Netscape C SDK Delete entry


[...] #define DN "cn=john smith,ou=people,o=WorldCompany" [...connexion...] [...authentification...] /* destruction de lentre */ rc = ldap_delete_ext_s(ld, DN, NULL, NULL); [...deconnexion...]

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 142

Les outils de dveloppement : Netscape PerLDAP SDK Connexion/Dconnexion/Bind


use Mozilla::LDAP::Conn; use Mozilla::LDAP::Utils; my $ldap = "ldap.worldcompany.com"; my $port = "389"; my $base = "o=worldcompany"; # cas 1 : authentification anonyme my $bind = "NULL"; my $passwd = "NULL"; # cas 2 : authentification utilisateur my $bind = "uid=jsmith,ou=people,o=WorldCompany"; 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;
CRU-UREC I Tutorial LDAP I Journes LDAP-27-28/9/00-Paris- 143

Les outils de dveloppement : Netscape PerLDAP SDK Search


use Mozilla::LDAP::Conn; use Mozilla::LDAP::Entry; my $base = "ou=people,o=WorldCompany"; 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; } }
I Tutorial LDAP I

CRU-UREC

Journes LDAP-27-28/9/00-Paris- 144

Les outils de dveloppement : Netscape PerLDAP SDK Add entry


[...] # DN de lentre my $dn = "cn=john smith,ou=people,o=WorldCompany"; [...connexion...] # construction de lentre my $newentry = new Mozilla::LDAP::Entry(); $newentry->setDN($dn); $newentry->{objectclass} = [ "top", "person", "organizationalPerson" ]; $newentry->{manager} = [ "uid=jsmith,ou=people,o=WorldCompany" ]; $newentry->{cn} = [ "John Smith" ]; $newentry->{description} = [ "indescriptible !" ]; $newentry->{ou} = [ "people" ]; $newentry->addValue("o", "french part of company"); $newentry->addValue("seeAlso", "http://www.worldcompany.com/~jsmith"); # ajout de lentre $conn->add($newentry); if ($conn->getErrorCode()) { print $conn->printError(); }

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 145

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=john smith,ou=people,o=WorldCompany"; [...connexion...] # destruction de lentre $conn->delete($dn); if ($conn->getErrorCode()) { print $conn->printError(); } else { print "Utilisateur supprim.\n"; }

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 146

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.worldcompany.com",389); /* authentification anonyme */ ldap.authenticate("",""); /* authentification utilisateur */ ldap.authenticate("uid=jsmith,ou=people,o=WorldCompany","toto"); /* connexion et authentification en un coup */ ldap.connect("ldap.worldcompany.com",389,"uid=jsmith,ou=people,o=WorldCompany","toto"); /* dconnexion */ ldap.disconnect();
CRU-UREC I Tutorial LDAP I Journes LDAP-27-28/9/00-Paris- 147

Les outils de dveloppement : Netscape Java SDK Search


[...connexion...] String base = "o=worldcompany"; 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); } } }
CRU-UREC I Tutorial LDAP I Journes LDAP-27-28/9/00-Paris- 148

Les outils de dveloppement : Netscape Java SDK Add entry


[...connexion...] String dn = "cn=john smith,ou=people,o=WorldCompany"; String objectclass_values[] = {"top", "person", "organizationalperson"}; String cn_values[] = {"John Smith"}; String ou_values[] = {"people"}; [...] 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); [...]

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 149

Les outils de dveloppement : Netscape Java SDK Delete entry


[...connexion...] String dn = "cn=john smith,ou=people,o=WorldCompany"; [...] /* destruction de lentre */ ldap.delete(dn); [...]

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 150

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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 151

Les outils de dveloppement : les autres LDAP Command Line Tools -- packages LDAP (U-M, OpenLDAP, Netscape) ldapsearch
ldapsearch -h ldap.worldcompany.com -b "o=worldcompany" -s sub "&((objectclass=person)(ou=semir))" cn,uid,mail,telephonenumber

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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 152

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.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 153

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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 154

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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 155

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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 156

Les applications de LDAP : applications systmes Les applications systmes Lannuaire utilis pour servir aux besoins des services rseaux tels que lauthentication, le contrle daccs, la localisation des imprimantes ou des serveurs de chier. 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...

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 157

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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 158

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.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 159

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 (chier 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.
CRU-UREC I Tutorial LDAP I Journes LDAP-27-28/9/00-Paris- 160

Les applications de LDAP : exemples Gestion centralise de lauthentication et des droits daccs Remplacer les multiples mots de passe applicatifs/systmes par une authentication
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 lauthentication Cyrus IMAP/POP3 pwcheck_ldap.c - programme externe dauthentication LDAP pour les serveurs IMAP/POP3 de Cyrus. Apache::AuthLDAP - module dauthentication et de gestion des autorisations daccs au serveur Web Apache via LDAP. PADL Softwares PAM (Pluggable Authentication Module) & NSS (Name Service Switch) Modules - authentication/lookup redirigs sur LDAP sous Solaris et Linux

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 161

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

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 162

Les applications de LDAP : exemples Mobilit utilisateur : accs distant des applications aux options, congurations et prfrences permettre lutilisateur de retrouver son environnement applicatif indpendamment de sa localisation

Netscape Communicator Roaming Access. Netscape Calendar nscalUser object class.

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 163

Les applications de LDAP : exemples Annuaires... Annuaire du personnel Inventaire du matriel Stockage des certicats (X509) et des listes de rvocation (CLRs) - pour des infrastructures base de clefs publiques -

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 164

Les applications de LDAP : exemples Directory Enabled Networks Initiative (DEN) Consortium pour dnir un modle dinformation standard facilitant le dveloppe
ment dapplications reseaux Directory-Enabled interoprables. Faciliter laccs des utilisateurs aux services rseaux : authentication, droits daccs...

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 165

Futur apparition des mta-annuaires intgration des annuaires dans les OS tendance utiliser LDAP comme un protocol lger daccs des bases de donnes prdominance de LDAP des annuaires partout !

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 166

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/

Understanding and deploying LDAP directory services, T. Howes, M. C. Smith, G.


Good; Macmillan

CRU-UREC

I Tutorial LDAP I

Journes LDAP-27-28/9/00-Paris- 167

Vous aimerez peut-être aussi