Survol de LDAP - PowerPoint PPT Presentation

1 / 54
About This Presentation
Title:

Survol de LDAP

Description:

FORMATION D PLOIEMENT AGALAN - 13 et 14 f vrier 2003 - ' Survol de LDAP ' - INP ... appartiennent des classes. on les nomme : Directory Service Entry (DSE) ... – PowerPoint PPT presentation

Number of Views:274
Avg rating:3.0/5.0
Slides: 55
Provided by: cripagala
Category:

less

Transcript and Presenter's Notes

Title: Survol de LDAP


1
  • Survolde LDAP

2
Plan
  • Dessine moi un annuaire...
  • Historiques
  • Ce que définit LDAP (ou presque)
  • LDIF
  • Serveurs
  • Bibliographie

3
Dessine moi un annuaire...
  • Exemples d'annuaires électroniques
  • DNS
  • /etc/passwd
  • whois
  • whois
  • NIS
  • PH
  • X.500

4
Dessine moi un BON annuaire...
  • Qualité des informations sources fiables, mise
    à jour rapides
  • Informations protégées
  • Accessible par les applications
  • Gestion en partie automatisée
  • Rapide en lecture
  • Fiable et disponible

5
Historique X.500
  • Projet ISO à vocation d'annuaire global et
    distribué
  • racine d'un annuaire à réserver
  • modèle de donnés objet
  • ne s'appuie par sur TCP/IP
  • Première version en 1988, grosse révision en 1993
  • Pas d'essor lourd, complexe...

6
Historique LDAP
  • LDAP à l'origine un frontal à x500 sur TCP/IP
  • Lightweight DAP
  • Directory Access Protocol de X.500
  • Version 3 à ce jour
  • v1 RFC 1487  X.500 Lightweight Directory
    Access Protocol. , juillet 1993
  • v2 RFC 1777,  Lightweight Directory Access
    Protocol. , mars 1995
  • v3 RFC 2251-2256, déc. 1997 RFC 2228-2830,
    mai 2000 RFC 3377, sept. 2002

7
Serveur historique
  •  standalone LDAP  en 1995 à l'université de
    Michigan
  • Aura pour héritiers
  • OpenLDAP
  • Serveur Netscape (?)

8
Ce que définit LDAP
  • LDAP définit
  • Un format et un protocole de communication
  • Un modèle de données
  • Un modèle de nommage
  • Un modèle fonctionnel
  • LDAP définit presque...
  • Un modèle de sécurité
  • Un modèle de réplication

9
Ce que définit LDAP
  • LDAP définit
  • Un format et un protocole de communication
  • Un modèle de données
  • Un modèle de nommage
  • Un modèle fonctionnel
  • LDAP définit presque...
  • Un modèle de sécurité
  • Un modèle de réplication

10
Format de données et protocole de communication
  • Données transportées en utilisant
  • ASN.1
  • BER (LBER)
  • Protocole de communication client-serveur
  • Une connexion permet de faire passer plusieurs
    requètes
  • Protocole de communication serveur-serveur
  •  refferal  renvoi sur un autre annuaire

11
Ce que définit LDAP
  • LDAP définit
  • Un format et un protocole de communication
  • Un modèle de données
  • Un modèle de nommage
  • Un modèle fonctionnel
  • LDAP définit presque...
  • Un modèle de sécurité
  • Un modèle de réplication

12
Modèle de données
  • Dans l'annuaire, des entrées
  • Le modèle de données vise à définir la nature des
    entrées que l'on va trouver dans l'annuaire
  • Les entrées
  • sont des objets
  • appartiennent à des classes
  • on les nomme Directory Service Entry (DSE)

13
Classe
  • Une classe
  • est constituées d'attributs
  • obligatoires ou optionnels
  • est typée
  • structurelle, auxiliaire ou abstraite
  • s'inscrit dans un arbre d'héritage de classes
  • LDAP définit des classes d'après X.500
  • On peut en fabriquer de nouvelles !

14
Arbre d'héritage des classes des RFC 2256 et 2798
  • top
  • alias
  • country
  • locality
  • organization
  • organizationalUnit
  • person
  • organizationalPerson
  • inetOrgPerson
  • residentialPerson
  • organizational role
  • groupOfName
  • ...

15
Exemple de classes
  • inetorgPerson
  • ( 2.16.840.1.113730.3.2.2 NAME
    'inetOrgPerson' SUP organizationalPerson
    STRUCTURAL MAY ( audio
    businessCategory carLicense departmentNumber
    displayName employeeNumber
    employeeType givenName homePhone
    homePostalAddress initials jpegPhoto
    labeledURI mail manager mobile o pager
    photo roomNumber secretary uid
    userCertificate x500uniqueIdentifier
    preferredLanguage userSMIMECertificate
    userPKCS12 ))

16
Types d'attributs
  • Pour définir un type d'attribut, il nous faut
  • décider s'il est mono ou multi-valué
  • lui donner une syntaxe prédéfine
  • le munir de règles de comparaison
  • éventuellement le faire hériter d'un autre type
    d'attribut
  • Deux familles d'attributs
  • attributs utilisateurs
  • attributs opérationnels

17
Exemples de déclarations de types d'attributs
  • attributetype ( 1.3.6.1.4.1.12274.1.1.1.5 NAME
    'aglnDate' DESC 'Date AGALAN format
    YYYYMMDDHHMMSSZ ou YYYYMMDDZ' EQUALITY
    generalizedTimeMatch ORDERING
    generalizedTimeOrderingMatch SYNTAX
    1.3.6.1.4.1.1466.115.121.1.24 )
  • attributetype ( 1.3.6.1.4.1.12274.1.1.1.6 NAME
    'aglnAdmissionDate' DESC 'Date de declaration
    de l entree' SUP aglnDate SINGLE-VALUE )

18
Syntaxes (RFC 2252)
  • Value being represented H-R OBJECT
    IDENTIFIER
    ACI Item
    N 1.3.6.1.4.1.1466.115.121.1.1
    Access Point Y
    1.3.6.1.4.1.1466.115.121.1.2 Attribute Type
    Description Y 1.3.6.1.4.1.1466.115.121.1.3
    Audio N
    1.3.6.1.4.1.1466.115.121.1.4 Binary
    N 1.3.6.1.4.1.1466.115.121.1.5
    Bit String Y
    1.3.6.1.4.1.1466.115.121.1.6 Boolean
    Y 1.3.6.1.4.1.1466.115.121.1.7
    Certificate N
    1.3.6.1.4.1.1466.115.121.1.8 Certificate List
    N 1.3.6.1.4.1.1466.115.121.1.9
    Certificate Pair N
    1.3.6.1.4.1.1466.115.121.1.10 Country String
    Y 1.3.6.1.4.1.1466.115.121.1.11
    DN Y
    1.3.6.1.4.1.1466.115.121.1.12 Data Quality
    Syntax Y 1.3.6.1.4.1.1466.115.121.1.1
    3 Delivery Method Y
    1.3.6.1.4.1.1466.115.121.1.14 Directory String
    Y 1.3.6.1.4.1.1466.115.121.1.15
    ... Generalized Time Y
    1.3.6.1.4.1.1466.115.121.1.24 Guide
    Y 1.3.6.1.4.1.1466.115.121.1.25
    IA5 String Y
    1.3.6.1.4.1.1466.115.121.1.26 INTEGER
    Y 1.3.6.1.4.1.1466.115.121.1.27
    JPEG N
    1.3.6.1.4.1.1466.115.121.1.28 ...

19
OID
  • Tous ces objets (classes attributs, syntaxes...)
    sont identifiés de façon unique par un OID
    ( Object Identifier ) géré par l'IANA
  • On peut réserver un numéro dans une branche
    particulière
  • http//www.iana.org/assignments/enterprise-numbers
  • Exemple
  • 1.3.6.1.4.1.7140INPG, Institut National
    Polytechnique de Grenoble

20
OID Agalan
  • Pas de Private Enterprise Number AGALAN
    attribué par l'IANA. Utilisation de celui de
    l'UJF. 1.3.6.1.4.1.12274 UJF
    1.3.6.1.4.1.12274.1 AGALAN
    1.3.6.1.4.1.12274.1.1 LDAP schéma v1
    1.3.6.1.4.1.12274.1.1.1 types d'attributs
    1.3.6.1.4.1.12274.1.1.1.1 attribut
    aglnPersonStatus 1.3.6.1.4.1.12274.1.1.1.2
    aglnGroupStatus 1.3.6.1.4.1.12274.1.1.1.3
    aglnPassword... 1.3.6.1.4.1.12274.1.1.1.34
    aglnSearchCommonName 1.3.6.1.4.1.12274.1
    .1.2 classes d'objets 1.3.6.1.4.1.12274.1.1.
    2.1 classe aglnPerson 1.3.6.1.4.1.12274.1.
    1.2.2 classe aglnGroup 1.3.6.1.4.1.12274.1
    .1.2.3 classe aglnInstGroup
    1.3.6.1.4.1.12274.1.1.2.4 classe
    aglnConnector 1.3.6.1.4.1.12274.1.1.2.5
    classe aglnMachine ...

21
Schéma
  • L'ensemble de ces objets constituent le schéma
    que connaît le serveur
  • Classes
  • Types d'attribut
  • Syntaxes
  • etc.

22
Exemple d'entrée
uidneigeb,oupeople,ouinpg,dcagalan,dcorg obje
ctClass top objectClass person objectClass
organizationalPerson objectClass
inetOrgPerson objectClass aglnPerson objectClass
shadowAccount objectClass posixAccount givenName
Blanche sn Neige aglnPatronymicName Neige cn
Blanche Neige aglnSearchCommonName
Blanche.Neige aglnDateOfBirth 193712210000Z ou
INPG aglnOrganizationUid harp-002 employeeType
P
aglnAdmissionDate 200211150000Z aglnExpiryDate
200212310000Z aglnPersonStatus
OFFI aglnAuthenticationDate 200211150000Z userPas
sword ... aglnPassword ... aglnMailStatus
normal uid neigeb homeDirectory
neigeb uidNumber 270838 gidNumber 270838 mail
Blanche.Neige_at_grenet.fr
23
Ce que définit LDAP
  • LDAP définit
  • Un format et un protocole de communication
  • Un modèle de données
  • Un modèle de nommage
  • Un modèle fonctionnel
  • LDAP définit presque...
  • Un modèle de sécurité
  • Un modèle de réplication

24
Modèle de nommage
  • Ranger les entrées dans une structure
    hiérarchique
  • Directory Information Tree (DIT)
  • Les nommer de façon distincte
  • RDN
  • DN

25
Directory Information Tree
Dcagalan,dcorg
  • Présence d'un suffixe ( Base DN )
  • Les noeuds sont des objets

Ou upmf
Ou inpg
Ou ujf
Ou ...
Ou machines
Ou connecteurs
Ou people
Ou groups
Uid kassovim
Uid tautoua
cn esisar-3A- TP-GÉlec-02
cn hmg-1A
26
RDN DN
  • RDN (Relative Distinguished Name)
  • mailAudrey.Tautou_at_inpg.fr, uidtautoua, etc.
  • Attention la valeur de l'attribut utilisé au
    RDN et le RDN lui-même ne sont pas synchronisés
  • DN (Distinguished Name)
  • RDN chemin dans l'arborescence en remontant
  • attribut du RDN à choisir pour que tout DN soit
    unique(Penser aux déplacements éventuels dans le
    DIT !)
  • uidtautoua,oupeople,ouinpg,dcagalan,dcorg

27
Deux objets particuliers
  • objet  alias 
  • pointeur sur une autre entrée (DN)
  • objet  referral 
  • pointe sur un autre serveur (URL LDAP)

28
Ce que définit LDAP
  • LDAP définit
  • Un format et un protocole de communication
  • Un modèle de données
  • Un modèle de nommage
  • Un modèle fonctionnel
  • LDAP définit presque...
  • Un modèle de sécurité
  • Un modèle de réplication

29
Modèle fonctionnel
  • Définit les opérations que l'on peut effectuer
    sur l'annuaire
  • Connexion au serveur
  • Déconnexion du serveur
  • Recherche d'entrées
  • Modification d'une entrée
  • Abandon des opérations en cours
  •  Extended Operations 
  •  Control extensions 

30
Opérations
  • Connexion au serveur ( bind )
  • Paramètres de connexion
  • Version de LDAP demandé (v2, v3)
  • DN sous lequel on veut se connecter
  • Type d'authentification
  • Déconnexion du serveur ( unbind )

31
Opérations
  • Recherche d'entrées
  • Paramètres de recherche
  • base object (DN)
  • scope
  • derefAliases
  • sizeLimit
  • timeLimit
  • typesOnly
  • filter
  • attributes

32
 Scope  de recherche
Dcagalan,dcorg
  • Scope base

Ou upmf
Ou inpg
Ou ujf
Ou ...
Ou machines
Ou connecteurs
Ou people
Ou groups
Uid kassovim
Uid tautoua
cn esisar-3A- TP-GÉlec-02
cn hmg-1A
33
 Scope  de recherche
Dcagalan,dcorg
  • Scope onelevel

Ou upmf
Ou inpg
Ou ujf
Ou ...
Ou machines
Ou connecteurs
Ou people
Ou groups
Uid kassovim
Uid tautoua
cn esisar-3A- TP-GÉlec-02
cn hmg-1A
34
 Scope  de recherche
Dcagalan,dcorg
  • Scope sub

Ou upmf
Ou inpg
Ou ujf
Ou ...
Ou machines
Ou connecteurs
Ou people
Ou groups
Uid kassovim
Uid tautoua
cn esisar-3A- TP-GÉlec-02
cn hmg-1A
35
Filtres de recherche
  • Type de recherche d'entrées
  • égalité, sous-chaîne, approximation, plus
    grand/petit ou égal, présence...
  • Opérateurs de combinaison des filtres
  • , , !
  • Exemple
  • ((snNeige)(mailgrenet))
  • Ne pas oublier de positionner des index !

36
Opérations
  • Recherche particulière informations sur le
    serveur
  • filtre  (objectClass) , DN null
  • Informations récupérées
  • namingContexts
  • subschemaSubentry
  • altServer
  • supportedExtension
  • supportedControl
  • supportedSASLMechanisms
  • supportedLDAPVersion

37
Opérations
  • Modification d'une entrée
  • Paramètres de la modification
  • Object à modifier (DN)
  • Liste d'opérations sur les attributs
  • type d'opération
  • ajout
  • suppression
  • remplacement
  • type d'attribut
  • valeurs

38
Opérations
  • Ajout d'une entrée
  • Paramètres de l'ajout
  • DN souhaité pour l'entrée
  • Liste d'attributs et de leurs valeurs
  • Suppression d'une entrée
  • Seul paramètre le DN de l'entrée à supprimer
  • Ne supprime que les feuilles du DIT

39
Opérations
  • Modification du DN d'une entrée
  • Déplacement de l'entrée dans le DIT
  • N'est pas faite pour le déplacement entre
    serveurs
  • Comparaison
  • Paramètres de la comparaison
  • Entrée à comparer (DN)
  • Liste d'atributs avec leurs valeurs
  • OK si les attributs sont de valeurs comparables

40
Opérations
  • Abandon
  • Il s'agit d'abandonner les opérations en cours
  •  Extended Operations 
  • Permettent des opérations prévues ou non dans les
    RFC
  • Chaque opération doit être enregistrée sous un
    OID
  • Exemple
  • TLS avec opération  start TLS 

41
Ce que définit LDAP
  • LDAP définit
  • Un format et un protocole de communication
  • Un modèle de données
  • Un modèle de nommage
  • Un modèle fonctionnel
  • LDAP définit presque...
  • Un modèle de sécurité
  • Un modèle de réplication

42
Modèle de sécurité
  • Authentification chiffrement des transactions
  • Authentification lors de la connexion au serveur
  • Types de connexion
  • Anonyme
  • rootDN (mode administrateur)
  • DN mot de passe en clair
  • Mot de passe ou certificats (clefs asymétriques)
    sur SSL/TLS
  • via opération étendues
  • Mécanisme externe via SASL

43
ACL
  • ACL pas définies par le protocole
  • Peut différer d'un serveur à l'autre
  • Forme générale (finesse attribut)
  • ltaccess directivegt access to
    ltwhatgt by ltwhogt ltaccessgt ltcontrolgt
  • RFC 2820  Access Control Requirements for
    LDAP. , mai 2000
  • statut INFORMATIONAL seulement

44
ACL
  • Exemples simples
  • access to by read
  • access to by self write by
    anonymous auth by read by read

45
ACL syntaxe OpenLDAP
  • ltaccess directivegt access to ltwhatgt
  • by ltwhogt ltaccessgt ltcontrolgt
  • ltwhatgt dn.lttarget
    stylegtltregexgt
  • filterltldapfiltergt
    attrsltattrlistgt
  • lttarget stylegt regex base one
    subtree children
  • ltattrlistgt ltattrgt ltattrgt ,
    ltattrlistgt
  • ltattrgt ltattrnamegt entry children
  • ltwhogt anonymous users self
  • dn.ltsubject stylegtltregexgt
  • dnattrltattrnamegt
  • group/ltobjectclassgt/ltattrnamegt
    .ltbasic stylegtltregexgt
  • peername.ltbasic
    stylegtltregexgt
  • sockname.ltbasic
    stylegtltregexgt
  • domain.ltbasic stylegtltregexgt
  • sockurl.ltbasic stylegtltregexgt
  • setltsetspecgt
  • aciltattrnamegt
  • ltsubject stylegt regex exact base
    one subtree children
  • ltbasic stylegt regex exact

46
Ce que définit LDAP
  • LDAP définit
  • Un format et un protocole de communication
  • Un modèle de données
  • Un modèle de nommage
  • Un modèle fonctionnel
  • LDAP définit presque...
  • Un modèle de sécurité
  • Un modèle de réplication

47
Modèle de réplication
  • Pas de standard...
  • Groupe de travail IETF LDUP
  • Pour répliquer l'annuaire entier ou une branche
    du DIT seulement
  • Réplication au fil de l'eau ou non
  • Selon serveurs, réplication
  • single master
  • multiple master
  • cascading replication

48
LDIF
  • LDAP Data Interchange Format (RFC2849)
  • Représentation ASCII Base64 des entrées
  • Mode import
  • comment dn ltdistinguished namegt attribute
    typeltattribute value ASCIIgtattribute
    typeltattribute value BASE64gt
  • Mode modification
  • dn ltDNgtchangetype identifier (opération sur
    l'entrée)change operation identifier (opération
    sur attributs)list of attributes-change
    operation identifier...

49
LDIF exemple
  • Bjorn's Entrydn cnBjorn J Jensen,
    dcexample, dccomcn Bjorn J Jensencn Bjorn
    JensenobjectClass personsn Jensen Base64
    encoded JPEG photojpegPhoto /9j/4AAQSkZJRgABAAA
    AAQABAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0o
    OjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ
    2P/2wBDARESEhgVG

50
LDIF exemple
  • Modify an entry add an additional value to the
    postaladdress attribute, completely delete the
    description attribute, replace the
    telephonenumber attribute with two values, and
    delete a specific value from the
    facsimiletelephonenumber attributedn
    cnPaula Jensen, ouProduct Development,
    dcairius, dccomchangetype modifyadd
    postaladdresspostaladdress 123 Anystreet
    Sunnyvale, CA 94086-delete description
  • -
  • replace telephonenumber
  • telephonenumber 1 408 555 1234
  • telephonenumber 1 408 555 5678
  • -
  • delete facsimiletelephonenumber
  • facsimiletelephonenumber 1 408 555 9876
  • -

51
Serveurs
  • eDirectory
  • iPlanet
  • OpenLDAP
  • ...

52
Avec tout ces éléments...
  • Quels choix effectuer ?
  • Quel schéma ?
  • Utiliser les classes existantes comme bases pour
    en créer de nouvelles
  • Quel DIT ?
  • Le plus plat possible selon RFC 1617
  • ...
  • Garder à l'esprit que les choix techniques ne
    résolvent pas tous les aspects fonctionnels

53
RFC
  • RFC2251  Lightweight Directory Access Protocol
    (v3) 
  • RFC2252  Lightweight Directory Access Protocol
    (v3) Attribute Syntax Definitions 
  • RFC2253  Lightweight Directory Access Protocol
    (v3) UTF-8 String Representation of
    Distinguished Names 
  • RFC2254  The String Representation of LDAP
    Search Filters 
  • RFC2255  The LDAP URL Format 
  • RFC2256  A Summary of the X.500(96) User
    Schema for use with LDAPv3 
  • RFC2829  Authentication Methods for LDAP 
  • RFC2830  Lightweight Directory Access Protocol
    (v3) Extension for Transport Layer Security 
  • RFC3377  Lightweight Directory Access Protocol
    (v3) Technical Specification. 
  • RFC1617  Naming and Structuring Guidelines for
    X.500 Directory Pilots.  (Status INFORMATIONAL)
  • RFC2247  Using Domains in LDAP/X.500
    Distinguished Names. 
  • RFC2307  An Approach for Using LDAP as a
    Network Information Service. 
  • RFC2798  Definition of the inetOrgPerson LDAP
    Object Class.  (Status INFORMATIONAL)
  • RFC2820  Access Control Requirements for
    LDAP.  (Status INFORMATIONAL)
  • RFC2891  LDAP Control Extension for Server
    Side Sorting of Search Results. 
  • ...

54
Bibliographie
  • http//www.cru.fr/ldap/
Write a Comment
User Comments (0)
About PowerShow.com