Introduction à LDAP
Transcription
Introduction à LDAP
Introduction à LDAP « Lightweight Directory Access Protocol » 1 Un exemple de browser LDAP http://www.iit.edu/~gawojar/ldap/ 2 1 Présentation LDAP : "Lightweight Directory Access Protocol" Version simplifiée du protocole DAP de X.500 X.500 : Intéressant, mais trop ambitieux et trop complexe pour de nombreux problèmes. LDAP : Récent, moins ambitieux, allégé Annuaire = base de données spécifique : Présentation hiérarchique Un grand nombre d'entrées (= « enregistrements ») Un peu à l'image du système DNS Si nécessaire, ces entrées peuvent être distribuées sur plusieurs serveurs On peut également mettre en place une réplication d’un serveur Une faible quantité d'informations par entrée Beaucoup plus d'accès en lecture qu'en écriture Essentiellement des attributs (= « champs ») textuels Stockage des informations optimisé pour la rapidité de lecture 3 Références Spécifications définies dans de nombreux RFC : RFC hérités de X.500 : RFC 1274, 1275, 1279, 1308, 1309, 1430, 1617, 2164, 2293, 2294 RFC spécifiques à LDAP RFC 1558 & 1960 (filtres de recherche), 1777 (LDAP), 1778, 1779, 1781, 1798 (protocole réseau), 1823 (API), 1959 (URLs), 2044 (Unicode), 2218, 2247 LDAP v3 : RFC 2251, 2252, 2253, 2254 (filtres de recherche), 2255 (URLs) 4 2 Une spécification à plusieurs niveaux Représentation des données Nommage et typage des attributs Arborescence hiérarchique Coexistence d’attributs standard de X500 (dc, c, o, cn, ou, objectclass, LabeledURI, …) et d’attributs personnalisés Protocole réseau Protocole binaire sans connexion pour optimiser les échanges Interface de programmation (API) Syntaxe d'interrogation (filtres de recherche) bind/unbind, search, add, modifiy, compare, … Notation préfixée : (&(o=*)(!(c=fr))) URLs LDAP : ldap://… Format ASCII d'échange de données : LDIF 5 Un peu de vocabulaire Arbre : un serveur LDAP Forêt : un annuaire LDAP distribué sur plusieurs serveurs Entrée : un nœud de l'arbre (= « enregistrement ») Attribut : propriété d'une entrée (= « champ ») DN (« Distinguished Name ») : identifiant d'une entrée, qui donne sa position dans l’arbre Schéma : contrôle de validité d'une entrée « LDAP Referral » : lien entre deux serveurs appartenant à un annuaire distribué 6 3 Le « Distinguished Name » (DN) Identifiant d’une entrée de l’arbre Composition : succession de composants montrant la position de l'entrée par rapport à la racine On se déplace vers la racine (comme dans les DNS), et non pas vers les feuilles (comme dans un système de fichiers) Exemples : dc=iar2m,dc=ensmp,dc=fr (racine du serveur sur Palo-Alto) uid=daverio,ou=personnes,dc=iar2m,dc=ensmp,dc=fr RDN : « Relative DN » C'est le premier composant du DN (ex : uid=daverio) En principe, le RDN doit se retrouver aussi sous la forme d'un attribut dans l'entrée concernée. 7 Filtres LDAP Définition de la syntaxe : RFC 1558 Notation préfixée Filtres de base : Les opérateurs précèdent les opérandes Existence d’un attribut : (o=*) Recherche de valeur : (o=Dupon*), (o=*bert*) Négation : (!(o=*)) ET : (&(o=*)(c=fr)) OU : (|(c=fr)(c=gb)(c=de)) 8 4 URL LDAP Spécification : RFC 1959 (LDAP v2) / RFC 2255 (LDAP v3) But : interrogation d’un annuaire LDAP Syntaxe simplifiée : ldap://server[:port]/dn?attributs?portée?filtre server : le nom du serveur (ldap.domaine.com, par exemple) port : 389 par défaut dn : le DN de base de la recherche attributs : la liste des attributs à afficher (par défaut : tous) portée : la portée de la recherche (base, one, sub) filtre : le filtre de recherche (RFC 1558) Reconnues dans Netscape 4.x et 6.2, mais pas Internet Explorer :-( 9 Schémas LDAP Spécifications d'une d'entrée La classe d'une entrée est identifiée par son/ses attribut(s) « objectclass ». Une entrée doit toujours contenir au moins un attribut objectclass Les attributs de chaque objectclass se combinent pour donner la liste des attributs de l'entrée. Propriétés des attributs Un attribut peut être requis ou simplement autorisé. Un attribut peut prendre des valeurs simples ou multiples. Chaque attribut peut-être identifié par son Object ID (OID). Un OID spécifie un nom et une "syntaxe" : cis ("Case Ignore String"), ces ("Case Exact String"), … Les OID sont partiellement normalisés (délégation d'attribution). 10 5 Sécurité d’un annuaire LDAP La sécurité n’est pas pour le moment le point fort de LDAP… Dans la majorité des cas, on peut se connecter à un serveur LDAP de façon anonyme Dans ce cas, l’accès est limité en consultation Cependant un certain nombre de mécanismes existent déjà : Authentification possible des utilisateurs par Kerberos. Restriction des permissions d’accès à des branche de l’arbre par des ACL (« Access Control Lists »). Ces mécanismes ne sont pas disponibles sur tous les serveurs Le plus simple peut être de protéger le serveur à l’aide d’un pare-feu. 11 Outils LDAP Serveurs LDAP OpenLDAP : implémentation de référence dans le domaine libre Browsers / Editeurs : Browser LDAP en Java, gq Bibliothèques Version 1.2 (LDAP v2) ou 2.0 (LDAP v3) Netscape Directory Server Active Directory (Windows 2000) Perl : module Net::LDAP Python : module LDAP Java : bibliothèque JNDI ColdFusion, php, Roxen, … : accès à LDAP intégré Passerelles LDAP vers HTML, e-mail, gopher, … Interfaces LDAP <-> SQL 12 6 Ressources http://www.ldapcentral.com http://www.openldap.org http://developer.netscape.com/tech/directory/index.html Ressources LDAP regroupées sur un site. Serveur LDAP libre. Ne pas oublier de parcourir la FAQ. Ressources LDAP chez Netscape LDAP est intégré dans quasiment tous les serveurs Netscape. http://sources.trad.org « Sources de logiciels libres » - Consulter la section LDAP pour une liste d’outils LDAP 13 7
Documents pareils
ANNUAIRE ET GESTION D`IDENTITÉ
- Conception du schéma
- Conception de l'arborescence LDAP
- Conception de la topologie
_____________________________________________________________________________________________________________...