Objectifs du chapitre
- Comprendre le principe d’un annuaire.
- Distinguer la différence entre un système de gestion de base de données et un annuaire.
- Mettre en place un serveur annuaire en utilisant la solution OpenLDAP.
- Établir l’intégration avec le service de messagerie et/ou le service de transfert de fichier.
1. Introduction
Un service annuaire est un système utilisé pour stocker et gérer des informations sur les utilisateurs, les ordinateurs et d’autres ressources réseau, capable de gérer un grand nombre d’utilisateurs. Il est important car il centralise les données pour une gestion simplifiée, et sert à l’authentification et à l’autorisation dans les systèmes d’information.
Exemples d’annuaires : annuaire téléphonique (les pages jaunes), carnet d’adresses, catalogue de vente.
2. Comparaison entre annuaire et base de données
| Annuaire | Base de données | |
|---|---|---|
| Définition | Base de données spécialisée, optimisée pour la lecture, utilisée pour stocker des informations sur des objets (utilisateurs, ressources réseau…). | Système général de gestion des données, conçu pour un large éventail d’opérations (lecture, écriture, mise à jour, suppression). |
| Structure des données | Hiérarchique (arbre LDAP). | Relationnelle (tables, lignes et colonnes). |
| Optimisation des performances | Moins performant pour des écritures massives ou des requêtes complexes. | Performante pour un équilibre entre lecture, écriture et modification. |
3. Fonctionnement d’un service d’annuaire
Modèle client-serveur : le client effectue des requêtes pour rechercher, ajouter, modifier ou supprimer des données ; le serveur répond en fonction des données disponibles et des permissions.
4. Architecture de l’annuaire LDAP
L’architecture d’un annuaire LDAP comprend généralement :
| Élément | Rôle |
|---|---|
| Client | Envoie des requêtes pour interagir avec le serveur LDAP. |
| Protocole LDAP | Protocole de communication standard utilisé pour accéder et gérer les données dans un service d’annuaire LDAP. |
| Serveur LDAP | Héberge l’annuaire et répond aux requêtes des clients. |
| Fichier LDIF (LDAP Data Interchange Format) | Format standard pour l’importation et l’exportation de données LDAP. |
5. Protocole LDAP
LDAP (Lightweight Directory Access Protocol) est un protocole standard utilisé pour accéder et gérer des services d’annuaire. Il fonctionne sur une architecture client-serveur, est léger et basé sur TCP/IP, et utilise le port standard 389 pour établir des communications en clair entre les clients et le serveur d’annuaire. Il supporte les opérations de recherche, ajout, modification et suppression.
Commandes courantes : ldapsearch, ldapadd, ldapmodify.
6. Modèles fondamentaux de LDAP
Le protocole LDAP définit, pour son fonctionnement, 5 modèles : un modèle d’information, un modèle de nommage, un modèle fonctionnel, un modèle de sécurité et un modèle de duplication.
Modèle d’information
Définit la structure et la représentation des données dans LDAP. Les données sont stockées sous forme d’objets organisés dans une hiérarchie (arbre) :
- Objet : une entrée dans l’annuaire (utilisateur, groupe, ressource).
- Attributs : propriétés d’un objet, chaque objet étant décrit par des attributs.
Attributs courants :
| Attribut | Fonction |
|---|---|
dc (domain component) | Une partie d’un nom DNS. Pour une entreprise mon-entreprise.com, la racine du DIT s’appelle couramment dc=mon-entreprise,dc=com. |
cn (common name) | Le nom commun. Pour une personne, en général le prénom + le nom de famille. |
gn (given name) | Le prénom. |
sn (surname) | Le nom de famille. |
o (organization name) | Pour une entreprise, le nom de l’entreprise ou de la filiale. |
ou (organisational unit) | L’unité d’organisation. Pour une entreprise, le département (commercial, comptabilité, etc.). |
L’arbre LDAP organise les données en branches (structure hiérarchique), appelé DIT (Directory Information Tree) :
dc=Esprit,dc=tn
├── ou=Personnes
│ ├── ou=Enseignants
│ └── ou=Etudiants
│ ├── cn=Etudiant1
│ └── cn=Etudiant2
├── ou=Machines
└── ou=Filiale
Modèle de nommage
Définit la manière d’identifier les objets dans l’annuaire. Chaque objet est identifié par un DN (Distinguished Name), unique dans l’arbre :
- DN : chemin complet pour identifier un objet.
- RDN (Relative Distinguished Name) : nom relatif à une branche.
Exemple, pour cn=Etudiant1 sous ou=Etudiants,ou=Personnes,dc=Esprit,dc=tn :
DN : cn=Etudiant1,ou=Etudiants,ou=Personnes,dc=Esprit,dc=tn
RDN : cn=Etudiant1
Attributs de l'entrée :
cn: Etudiant1
sn: Cherif
gn: Wael
telephone: 0123456789
email: wael.cherif@Esprit.tn
Modèle fonctionnel
Décrit les opérations possibles sur l’annuaire LDAP :
| Opération | Commande |
|---|---|
| Recherche : localiser des objets ou des informations. | ldapsearch |
| Ajout : ajouter une nouvelle entrée dans l’annuaire. | ldapadd |
| Modification : modifier un objet ou ses attributs. | ldapmodify |
| Suppression : supprimer une entrée. | ldapdelete |
Modèle de sécurité
Définit comment les accès aux données sont contrôlés et sécurisés :
- Authentification : vérifie l’identité des utilisateurs via un mot de passe.
- Contrôle d’accès (ACL) : définit les permissions (lecture, écriture, modification). Par exemple, l’utilisateur A peut lire les données, l’utilisateur B peut modifier certains attributs.
- Confidentialité : protocole sécurisé (LDAPS) pour chiffrer les données en transit.
Modèle de duplication
Définit la manière dont les données sont réparties sur plusieurs serveurs LDAP :
- Répartition : certaines branches de l’arbre sont gérées par des serveurs différents.
- Réplication : synchronisation entre plusieurs serveurs pour assurer la disponibilité.
- Modèles de réplication : maître/esclave (un serveur principal et plusieurs secondaires) ou maître/maître (plusieurs serveurs principaux synchronisés).
Objectif : haute disponibilité et tolérance aux pannes.