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