Les concepts de LDAP

Posted by IT NISRO 0 commentaires

 

Organisation client/serveur et serveur/serveur

Fonctionnement

Pour son fonctionnement, LDAP met en place 2 méthodes de communication pour 2 fonctionnalités différentes.

Une communication de type client/serveur pour permettre au client d'accéder aux informations contenues sur le serveur.

Une communication de type serveur/serveur pour permettre au serveur de dupliquer ou synchroniser ses informations sur d'autres serveurs.

Exemple de communication client/serveur

Les échanges avec le protocole LDAP se font au format ASCII comme pour HTTP ou SMTP. En plus des opérations présentées sur l'exemple de communication client/serveur ci-dessus, les opérations de base définies par le protocole LDAP sont :

  • interrogation: search, compare
  • mise à jour: add, delete, modify
  • connexion: bind, unbind, abandon

Etant donné que ces échanges sont réalisés au format ASCII, des mécanismes d'authentification et de chiffrement sont mis en place pour sécuriser le service.


Les modèles de LDAP

Description des 5 modèles

Comme précisé dans les parties précédentes, le protocole LDAP met en jeu 5 modèles qui définissent son fonctionnement à différents niveaux. Ces 5 modèles sont :

  • un modèle d’information: pour définir le type de données de l’annuaire
  • un modèle de nommage: pour indiquer comment les données sont organisées
  • un modèle fonctionnel: pour indiquer comment accéder aux données
  • un modèle de sécurité: pour indiquer comment protéger l’accès aux données
  • un modèle de duplication: pour indiquer comment répartir les données entre serveurs
Dans la suite de cette page, nous présenterons l'ensemble de ces modèles.

Le modèle d'information

LDAP permet de gérer des données. Ces données utilisent un modèle particulier pour être stockées. Dans ce modèle, l'élément de base est appelé "Entry".

Une entrée (entry) est un élément de base de l'annuaire. C'est lui qui contient les données. C'est l'équivalent en programmation orientée objet d'une "classe d'objet". Une entrée regroupe un ensemble d'attribut contenant les différentes informations relatives à l'entrée.

Exemple d'entrée

Sur l'exemple ci-dessus, on a une entrée de type "Client" qui contient plusieurs arguments avec les différentes informations sur le client.

Un attribut est caractérisé par:

  • un nom
  • un type
  • une méthode de comparaison
  • un « Object Identifier » (IOD)
  • une valeur

Remarque: un attribut peut être possédé par plusieurs classes !

Par exemple, une entré de type "Fournisseur" peut avoir le meme attribut "cn" (common name) qu'une entrée de type "Client".

Voici une listes des attributs classiques que l'on retrouve sur les entrées d'un service LDAP:

Les attributs classiques de LDAP

D'une manière générale, tout les types d'entrées (Client, Fournisseur, ...) et leur attributs (cn, ou, ...) sont définis dans un schéma.

Le schéma définit l'ensemble des types d'entrées par le service LDAP. Chaque entrée de l'annuaire fait obligatoirement référence à une classe d'objet du schéma.

Les types d'entrées sont organisées de manière hiérarchique. Le sommet de cette organisation hiérarchique est toujours occupé par le type "Top". Et cette organisation met en place un système d'héritage où chaque type hérite des attributs de son type parent.

Exemple d'organisation hiérarchique

Sur l'exemple ci-dessus, les types "Client" et "Salarié" héritent des attributs du type "Personne" qui lui même héritent des attributs du type "Top".

Le modèle de nommage

Une fois le modèle d'information définit, il faut pouvoir définir la manière dont sont référencées les différentes informations gérer par le services LDAP. C'est le role du modèle de nommage. Il définit comment sont organisées les entrées de l'annuaire et comment elles sont référencées.

Cette organisation est représentée par le Directory Information Tree (DIT). C'est une classification comparable au système de fichier UNIX.

Exemple de Directory Information Tree (DIT)

Chaque noeud du DIT correspond à une entrée de l'annuaire. Au sommet se trouve l'entrée "Suffix" ou "Root Entry". Cette derniere correspond à l'espace de nommage géré par le serveur LDAP. Il faut savoir qu'un serveur LDAP peut gérer plusieurs arbres donc plusieurs "Root Entry".

Exemple de Directory Information Tree (DIT)
Schéma d'un serveur LDAP avec 2 "Root Entry"

Pour référencer de manière unique une entrée contenus dans le DIT, on utilise un "Distinguish Name" (DN). Ce dernier est équivalent à un path d'un fichier UNIX. Chaque élément qui compose le DN est appelé "Relative Distinguish Name" (RDN).

Un DN est constitué d'un ensemble d'attribut et de leurs valeurs provenant de chacunes des entrées parentes mises bout à bout. Voici un exemple de DN pour l'entrée Ziggy :

DN de l’entrée ziggy = [uid=ziggy, ou=personne, dc=ingenieurs2000, dc = umlv ]
On doit s’assurer que 2 entrées du DIT n’aient pas le même DN

Remarque: il est important de s'assurer que 2 entrées d'un même DIT n'aient pas le même DN. Pour cela, il faut s'assurer que la sélection des attributs composant le DN donne un résultat unique.

Le modèle de fonctionnement

Une fois les données stockées et référencées, il faut permettrent d'utiliser ces données. Pour cela, LDAP définit un modèle de fonctionnement. Ainsi, ce modèle définit les opérations possibles sur les données. On rescence 4 types d'opérations:

  • opérations d’interrogation: requête pour accéder aux données
  • opérations de comparaison: renvoie vrai ou faux si égal
  • opérations de mise à jour: add, delete, rename, modify
  • opérations d’authentification et de contrôle: bind, unbind, abandon

Le modèle de sécurité

Le modèle de sécurité permet de protéger l'accès au données de l'annuaire. La sécurité se fait à plusieur niveaux. Au niveau de l'authentification pour se connecter au service, par des règles d'accès au données et par le chiffrement des communications.

Pour l'authentification, LDAPv3 propose plusieurs choix:

  • Anonymous authentification: accès sans authentification
  • Root DN authentification: accès administrateur
  • Mot de passe + SSL ou TLS: accès chiffré
  • Certificats sur SSL: échange clé publique/privée

Pour le contrôle d'accès, c'est un fonctionnement similaire à la gestion des droits des système UNIX. Un utilisateur peut avoir des droits d'accès en lecture, écriture, recherche, comparaison). Et pour le chiffrement des communications, il est possible d'utiliser des algorithmes de cryptage comme TLS.

Le modèle de duplication

Le protocole LDAP offrent des facilités pour dupliquer ou synchroniser les données entres plusieurs serveurs lDAP. Pour réaliser cela, il définit un modèle de duplication. Ce dernier définit comment échanger les informations d'un serveur à l'autre.

L'intérêt de dupliquer un serveur est par exemple de pallier une panne de l'un des serveurs, ou d'une coupure réseaux. Mais aussi pour répartir la charge du service et garantir une qualité de service.

Cependant ce modèle n'est pas encore standardisé. IETF est en préparation du protocole LDUP (Lightweight Directory Update Protocol) pour résoudre ce problème.


0 commentaires:

Enregistrer un commentaire

Membres

Formulaire de contact

Nom

E-mail *

Message *