41
Mars 2002 Yves Durand 1 Introduction à LDAP Licence Pro Avril 2003 Yves Durand , Avril 03

Introduction à LDAP

  • Upload
    nevaeh

  • View
    21

  • Download
    1

Embed Size (px)

DESCRIPTION

Licence Pro Avril 2003. Introduction à LDAP. Yves Durand , Avril 03. Annuaires LDAP : plan. Qu’est-ce que c’est un annuaire Protocole de LDAP Modèle d’information Modèle de nommage Partition & duplication Sécurité Modèle fonctionnel Conception d’un modèle de nommage - PowerPoint PPT Presentation

Citation preview

Page 1: Introduction à LDAP

Mars 2002Yves Durand1

Introduction à LDAP

Licence Pro Avril 2003

Yves Durand , Avril 03

Page 2: Introduction à LDAP

Mars 2002Yves Durand2

Annuaires LDAP : plan

• Qu’est-ce que c’est un annuaire • Protocole de LDAP • Modèle d’information• Modèle de nommage• Partition & duplication• Sécurité• Modèle fonctionnel• Conception d’un modèle de nommage• Solutions / vulnérabilités / exemples

Page 3: Introduction à LDAP

Mars 2002Yves Durand3

Qu’est-ce qu’un annuaire

• Répertoire en ligne, dynamique• Possibilité de faire des recherches• Contrôle d’accès à l’information Ce n’est pas:• approprié à de fréquentes écritures• destiné à manipuler des données

volumineuses• un substitut à un serveur FTP, un système de

fichiers,...

Page 4: Introduction à LDAP

Mars 2002Yves Durand4

Exemple typique d’annuaire (1)

ldap.company.com

Serveur d’application[ ex paye ]

Serveur d’infrastructure[ ex passerelle mail ]

Pages blanchesEntreprise (web)

Serveur d’infrastructure[ ex auth. Accès externes]

passwords

Page 5: Introduction à LDAP

Mars 2002Yves Durand5

Exemple typique d’annuaire (2)

ldap.company.com

Serveur d’infrastructure[ ex passerelle mail ]

MUA (mail user agent)

MTA

Mailbox virtuelles

administration

Solution

Postfix+courierIMAP+LDAP

<smtp>

<smtp, <pop3,<imap, ldap>

Page 6: Introduction à LDAP

Mars 2002Yves Durand6

Annuaires versus databases

• Annuaires• Performance ~140

req/sec (**)• Ratio

Read/write1000<r<10000

• Extensibilité• Distribution• AAA cablé• Protocole standard :

LDAP

• Database• Performance ~n*100

xAct/s (*)

• Auth/ etc. à gérer• langage “standard”: SQL

(*) Source : Howes/Smith/Good 1999

Page 7: Introduction à LDAP

Mars 2002Yves Durand7

Facettes de LDAPLDAP définit :• le protocole -- comment accéder à l’information

contenue dans l’annuaire,• un modèle d’information -- le type d’information

contenu dans l’annuaire,• un modèle de nommage -- comment l’information

est organisée et référencée,• un modèle fonctionnel -- comment on accède à

l’information,• un modèle de sécurité -- comment données et

accès sont protégés,• un modèle de duplication -- comment la base est

répartie entre serveurs,• des API -- pour développer des applications clientes,• LDIF -- un format d’échange de données.

Page 8: Introduction à LDAP

Mars 2002Yves Durand8

Protocole (1)

• Communication client/serveur– Normalisée (LDAPv3, RFC2251)

• Communication serveur/serveur– Referral défini, replication en cours (LDUP)

• Messages LDAP encapsulés dans des trames TCP/IP – [pas la seule solution, ex. UDP]– Pas en ASCII mais en Lightweight Basic Encoding

Rules: LBER• Le Serveur écoute sur le port 389 (par défaut) / 636• Le protocole nécessite une connection : bind

Page 9: Introduction à LDAP

Mars 2002Yves Durand9

Protocole (2): client-serveur

bindstatus

requêteRéponse 1

Réponse 2

résultat

unbind

Page 10: Introduction à LDAP

Mars 2002Yves Durand10

Modèle de nommage / modèle d’information

c=fr

o=ventes

ou=aspirateurs

cn=maurice_duplantier

countrymust cmay descriptionmay searchguide

organizationmust omay businessCategorymay postalAddress

organizationalUnitmust oumay businessCategorymay registeredAddress

personmust cn,snmay description

Page 11: Introduction à LDAP

Mars 2002Yves Durand11

Modèle d’information (1)

• Kescekeuçé ?– Un jeu de règles qui détermine ce qui peut

être stocké dans le répertoire– Verification avant stockage

d’informations– Un jeu de règles qui contrôle l’exploitation

de l’information– Règles de comparaison– Pas les règles d’accès

Page 12: Introduction à LDAP

Mars 2002Yves Durand12

Modèle d’information (2)

• schéma– Décrit les classes d’objets

– Structurelles– Auxiliaires– abstraites

– Décrit les types d’attributs qui sont rattachés– user – operational

Page 13: Introduction à LDAP

Mars 2002Yves Durand13

Modèle d’information (3)

• Classes d’objetsLes classes d’objets modélisent des objets réels ou

abstraits en les caractérisant par une liste d’attributs optionnels ou obligatoires. Une classe d’objet est définie par :– Un nom, qui l’identifie– Un OID, qui l’identifie également– Des attributs obligatoires– Des attributs optionnels– Un type (structurel, auxiliaire ou abstrait)

• Exemples de classes d’objet :– une organisation (o),– ses départements (ou),– son personnel (organizationalPerson),– ses imprimantes (device),– ses groupes de travail (groupofnames).

Page 14: Introduction à LDAP

Mars 2002Yves Durand14

Modèle d’information (4)

• Les classes d’objets forment une hierarchie, au sommet de laquelle on trouve l’objet top

• Chaque classe d’objet hérite des attributs de la classe père

top

organizationalUnit person

organizationalPerson

Core.schemaobjectclass ( 2.5.6.0 NAME 'top' ABSTRACTMUST objectClass )

objectclass ( 2.5.6.6NAME 'person' SUP top STRUCTURALMUST ( sn $ cn )MAY ( userPassword $ telephoneNumber $ seeAlso $ description ) )

Page 15: Introduction à LDAP

Mars 2002Yves Durand15

Modèle d’information (5)

• Exemple de classe d’objet( 2.5.6.7 NAME 'organizationalPerson' SUP person STRUCTURAL MAY ( title $ x121Address $ registeredAddress $

destinationIndicator $ preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier $ telephoneNumber $ internationaliSDNNumber $ facsimileTelephoneNumber $ street $ postOfficeBox $ postalCode $ postalAddress $ physicalDeliveryOfficeName $ ou $ st $ l ) )

OID

Page 16: Introduction à LDAP

Mars 2002Yves Durand16

Object instance example

dn: uid=tlippert, ou=Development, dc=structure-net, dc=de

objectclass: organizationalpersoncn: Thomas Lippertsn: Lippertl: Hamburgpostalcode: 21033streetadress: billwiese 22telephonenumber: 040-7654321facsmiletelephonenumber: 040-7654321

Page 17: Introduction à LDAP

Mars 2002Yves Durand17

Le modèle de nommage (1)• Organisation des entrées : structure logique

arborescente, le directory information tree (DIT)

• Chaque objet est une instance d’objet• Chaque entrée est identifiée par un nom, le

DN=distinguished name• Le “suffix” définit l’espace de nommage dont

le serveur a la gestion• Un noeud de l’arbre (entrée de l’annuaire) est

appelé DSE (directory service entry)• Sommet de l’arbre: BaseDN ou rootDSE racine

de l’arbre

Page 18: Introduction à LDAP

Mars 2002Yves Durand18

Le modèle de nommage (2)

dc=gazu, dc=com

ou=direction ou=marktg ou=lab

cn=adeline_durand cn=maurice_duplantier

dn:dc=domaine,dc=comobjectClass:top

dn:ou=direction,dc=gazu,dc=comobjectClass:organizationalUnitou:direction

dn:cn=maurice_duplantier,ou=lab,dc=gazu,dc=comobjectClass:organizationalPersonobjectClass:persontitle:larbincn:maurice_duplantiersn:mauriceuserPassword:{md5}$3$zw4kD19KJ0htelephoneNumber:047676713

Racine de l’annuaire

RDN

Page 19: Introduction à LDAP

Mars 2002Yves Durand19

Le modèle de nommage: alias & referral

• permettent à une entrée de l’annuaire de pointer vers une autre entrée du même (alias) ou d’un autre(referral) annuaire.– L’attribut

aliasObjectName de l’objet alias a pour valeur le DN de l’entrée pointée.dn: cn=Claudie_Martin, ou=class-Mr_marand, ou=Basson, o=CNR-Grenoble, c=FR

objectclass: alias

objectclass: aliasObject

aliasedObjectName: cn=Claudie_Martin, ou=class-Mr_marand, ou=Basson, o=CNR-Grenoble, c=FR

cn: John Doe

CFR

OCNR-Grenoble

OUBasson

OUpiano

OUclass-Mr-Marand

CNDenis_Marand

CNClaudie_Martin

OUclass-Mme-Violette

CNMauricette_duplantier

CNClaudie_Martin

Page 20: Introduction à LDAP

Mars 2002Yves Durand20

Redirection: Referral C N R

C NC la u d ie_ M a rtin

O Ucla ss-M r-M a ra nd

O UB a sson

C NM a urice tte _ du p lan tier

O Uc la ss-M m e-V io le tte

O Ucla ss-M -Ta rtig n ol

O Up iano

OC N R -G re n o b le

OE co leM u siq u e Eyb e ns

CFR

E ybens

C NA lfre d_ b rend el

O Uclass-M r-ch a sse p ot

O Uh e licon

C NA ris tid e _ Be rg es

O Uc la ss -M m e-M irecou rt

O Utrian g le

OE co leM us iqu e Eyb e ns

CFR

URLURL

Page 21: Introduction à LDAP

Mars 2002Yves Durand21

Modèle de nommage: referral

dn: dc=univ-nancy2,dc=frobjectClass: top objectClass: domain dc: univ-nancy2

dn: ou=Pers,dc=univ-nancy2,dc=fr ou: Pers objectClass: referral objectClass: extensibleObject ref: ldap://ldap.univ-nancy2.fr:392/ou=Pers,dc=univ-nancy2,dc=fr

dn: ou=Etudiants,dc=univ-nancy2,dc=fr ou: Etudiants objectClass: referral objectClass: extensibleObject ref: ldap://ldap.etudiant.univ-nancy2.fr:392/ou=Etudiants,dc=univ-nancy2,dc=fr

Page 22: Introduction à LDAP

Mars 2002Yves Durand22

Loi des partitionsTous les objets d’une partition doivent partager un ancêtre commun, et cet ancêtre doit appartenir à la partition

Page 23: Introduction à LDAP

Mars 2002Yves Durand23

Duplication: replication

• Le modèle de duplication (replication service) définit comment dupliquer l’annuaire sur plusieurs serveurs.

• Pas encore standard, mais est proposé par la plupart des serveurs.

• L’IETF prépare le protocole LDUP.

Master slapd

slave slapd

Page 24: Introduction à LDAP

Mars 2002Yves Durand24

Implémentation dans openldap

/usr/sbin/slapd

/etc/openldap/slapd.conf

/usr/share/openldap/core.schema

include

/var/lib/ldap/*.dbbtruc.ldif

ldapmodify

ldap2ldif

Page 25: Introduction à LDAP

Mars 2002Yves Durand25

modèle de sécurité

• Le modèle de sécurité décrit le moyen de protéger les données de l’annuaire des accès non autorisés.

• La sécurité se fait à plusieurs niveaux :– par l’authentification pour se connecter au

service (phase de bind) – par un modèle de contrôle d’accès aux

données (les acl) – non standard -– par le chiffrement des transactions entre

clients et serveurs ou entre serveurs.

Page 26: Introduction à LDAP

Mars 2002Yves Durand26

modèle de sécurité (2)

• par l’authentification pour se connecter au service (phase de bind) – Anonyme ou RootDN– Mot de passe en clair ou SSL/TLS (eg

certificats SSL)– Mécanisme extérieur : SASL

Page 27: Introduction à LDAP

Mars 2002Yves Durand27

modèle de sécurité (3)

• par un modèle de contrôle d’accès aux données (les acl) – non standard –<target> <permission> <bind rule><target> : point d’entrée de l’annuaire auquel s’applique la règle

<permission> : permet ou refuse un type d’accès (lecture, écriture...)

<bind rule> : identifie le bindDN utilisé en connexion

Page 28: Introduction à LDAP

Mars 2002Yves Durand28

modèle de sécurité (4)

• par le chiffrement des transactions entre clients et serveurs ou entre serveurs.

• LDAPv3 supporte le chiffrement des transactions (entre clients et serveurs ou entre serveurs) via l’utilisation de SSL ( ldaps ) ou de son successeur, TLS ( startTLS extended operation ).

• SSL ou TLS servent également pour l’authentification par certificats :– permet au client de prouver son identité au serveur et, en

retour, à celui- ci d’en faire de même vis à vis du client.

Page 29: Introduction à LDAP

Mars 2002Yves Durand29

vulnérabilités

• Déni de service– Codes BER semi-valides, requete malformées =>

freeze– Mesures compensatoires

– Firewall– Opérations signées

• Buffer overflow– Attaquant récupère les privilèges système, ou

privilège de la database– Mesures compensatoires

– Tourner ldap en chroot

Page 30: Introduction à LDAP

Mars 2002Yves Durand30

Modèle fonctionnel

• Interrogation– Search– compare

• Modification– Add– Modify– Rename– delete

• Connection– Bind– Unbind– Abandon

Ldapmodify, GQ,…

Ldapsearch, outils web, API

*

Page 31: Introduction à LDAP

Mars 2002Yves Durand31

Requête (1)

• LDAP ne fournit pas d’opération de lecture d’entrée.• Pour connaître le contenu d’une entrée, il faut écrire une

requête qui pointe sur cette entrée. Une requête est composée de 8 paramètres :– base object l’endroit de l’arbre où doit commencer la

recherche– scope la profondeur de la recherche– derefAliases si on suit les liens ou pas– size limit nombre de réponses 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

Page 32: Introduction à LDAP

Mars 2002Yves Durand32

Requête (3) : format des filtres

• (<operator>(<search operation>)(<search operation>)...))– Ex : (&(objectclass=inetOrgPerson)(!(mail=*)))– Toutes les entrées de type utilisateur sans adresse mail

• : Exemples de filtres de recherche– (cn=Laurent Mirtain) égalité Nom vaut "Laurent Mirtain"– (cn=*Mart*) sous-chaîne Nom contient "Mart"– (cn~=martin) approximation Nom sonne comme "martin"– (employeenumber>=100) comparaison Numéro supérieur

à 100– (sn=*) existence 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 entrées sans attribut téléphone

Page 33: Introduction à LDAP

Mars 2002Yves Durand33

Requête (2)

Page 34: Introduction à LDAP

Mars 2002Yves Durand34

URLS LDAPsyntaxe :ldap[ s]://< hostname>:< port>/< base_ dn>?<

attributes>?< scope>?< filter><base_ dn> : DN de l’entrée qui est le point de départ de la recherche<attributes> : les attributs que l’on veut consulter<scope> : la profondeur de recherche dans le DIT à partir du <base_ dn>

- base : s’arrête au niveau courant (par défaut)- one : descend d’un niveau- sub : parcourt tous les sous- niveaux

<filter> : filtre de recherche, par défaut (objectClass=*)

Page 35: Introduction à LDAP

Mars 2002Yves Durand35

url ldap depuis ie

Page 36: Introduction à LDAP

Mars 2002Yves Durand36

Conception du modèle

• Définir son système d’information: quelles applis, quelle capacités, quelle topologie en avec l’espace de nommage

• Directory peut être plat, ou branché par organisations

• Choix des RDN pour designer les personnes.– cn significatif, – cn abstrait (event. Avec un alias)– uid abstrait, unique&non ambigu– Recommendation IETF : email

Page 37: Introduction à LDAP

Mars 2002Yves Durand37

Qques solutions

• ServeursServeurs• Openldap• Slapd (u Michigan)• Netscape directory

server• IBM LDAP• MS Active Directory !!

• Clients– GQ– Web browsers– Clients mail– Ldapsearch– Cygsoft LDAP browser

Page 38: Introduction à LDAP

Mars 2002Yves Durand38

Acronymes

• DIT ?Directory information tree• OID ?Object IDentifier • CN ?Common name• SN ?

• LDIFFormat d’encodage des

données

• DN & RDN ?[relative] distinguished

name• LBERLightweight Basic Encoding

Rules• RTFM ?Lisez le manuel !!

Page 39: Introduction à LDAP

Mars 2002Yves Durand39

Ce qu’il faut retenir

• A quoi cela sert• Différences avec une database• Modèle d’objets et modèle de nommage• Se retenir de re-inventer des schémas (oid

etc.)

• Se rappeller que ça existe !

Page 40: Introduction à LDAP

Mars 2002Yves Durand40

Références bibliographiques

• “Understanding and Deploying LDAP directory Services” Howes/Smith/Good, MacMillan tech. Publishing– Une bible…

• http://www-sop.inria.fr/semir/personnel/Laurent.Mirtain/LDAP.html – Lisible & utile

• Les RFC• Understanding LDAP. - IBM téléchargeable a partir de

http://tux.iut2.upmf-grenoble.fr/~bonnaud/LP/reseaux/2002/reseaux.html

Page 41: Introduction à LDAP

Mars 2002Yves Durand41

TP

• Lancement/configuration d’un annuaire• Utilisation d’un outil client en consultation

(GQ)

• Modification d’une base existante.