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É

ANNUAIRE ET GESTION D`IDENTITÉ - Conception du schéma - Conception de l'arborescence LDAP - Conception de la topologie _____________________________________________________________________________________________________________...

Plus en détail