Comment Configurer un service d'annuaire LDAP

Posted by IT2 0 commentaires

LDAP (Light Directory Access Protocol) est un service d'annuaire dérivé de la norme X.500. La norme X.500 est très lourde, LDAP en est une version allégée ("light").

Un serveur LDAP permet de centraliser des informations très diverses. Il offre de nombreux avantages :
• un serveur d'annuaire (recensement de tous les objets d'un système) : c'est la fonction la plus connue.
• Information sur les utilisateurs (nom, prénom...), et données d'authentification pour les utilisateurs :
cela permet aussi la définition de droits.
• Information pour les applications clientes et fonctions de serveur d'accès itinérant : cela permet de
stocker ses informations personnelles sur un serveur et de les récupérer lors de la connexion;
• bien d'autres choses...

Le modèle de données

LDAP fournit un modèle d'organisation des données. Ces données sont organisées sous forme hiérarchique. L'arbre est nommé Directory Information Tree (DIT). Le sommet (racine), contient le "suffixe". Chaque noeud représente une "entrée" ou "Directory Entry Service" (DSE). Les données sont stockées sur un format de base de données hiérarchique de type "dbm".

Une entrée (DSE) dans le DIT correspond à un objet abstrait (organisation, ressource) ou concret (personne, équipement...). Les objets possèdent une description dans une "classe d'objet". Une classe d'objet donne une représentation modélisée des objets qu'elle représente en caractérisant tous les attributs des objets.

Comment Configurer un service d'annuaire LDAP
Comment Configurer un service d'annuaire LDAP



Entrées

Chaque entrée correspond à une seule unité (objet) dans un répertoire LDAP. Chaque entré est identifié de manière unique par sont nom distinctif ou DN (Distinguished Name).

Attributs

Les entrées peuvent êtres considérés comme des objets possédant certains attributs. Par exemple, un employé pourrait être représenté par une entrée LDAP. Parmi les attributs associé à un employé on pourrait retrouvé le nom, le prénom, l’âge… Il est possible de définir des attributs obligatoire et optionnel.


Classes d'objet

On regroupe les objets qui sont du même domaine dans une classe d'objet, celle-ci est caractérisée
par des attributs obligatoires ou optionnels et un type. Les types de classe d'objet sont:

• type structurel : classes d'objets concrets de l'annuaire (personnes, groupes de personnes, ...).• type auxiliaire : classes d'objets permettant d’ajouter des informations (attributs)supplémentaires à des classes d'objet de type structurel déjà existantes.• type abstraire : classes d'objet qui existent par défaut et qui n'ont pas de signification concrète,par exemple la classe top est la classe d'objet générique, toutes les autres 0classes dérivent de cetteclasse.


Schémas

Un schéma décrit toutes les règles qu'utilisent le serveur LDAP pour décrire les classes d'objets (attributs, syntaxe, ...).

Fichiers de configuration

Les fichiers de configuration sont installés dans le répertoire /etc/openldap/. Cidessous figure la liste des fichiers et répertoire important :

• /etc/openldap/ldap.conf : Fichier de configuration pour les applications clientes qui utilise les bibliothèques.• /etc/openldap/slapd.conf : Fichier de configuration du démon slapd.• /etc/openldap/schema/ : Répertoire contenant le schéma utilisé par le démon slapd.


Mise en place du schéma d’annuaire

Le répertoire /etc/openldap/schema/ contient la définition du schéma utilisé par LDAP. Les définitions du système d’attribut et de définition de classe d’objet sont placées dans des fichiers différents. Ces derniers sont référencés dans le fichier /etc/openldap/sldap.conf à l’aide de l’instruction include. Voici un extrait de ce fichier :

# $OpenLDAP: pkg/ldap/servers/slapd/slapd.conf,v 1.8.8.4 2019/08/26 17:06:18
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
include /usr/share/openldap/schema/core.schema
include /usr/share/openldap/schema/cosine.schema
include /usr/share/openldap/schema/corba.schema

Mise en place du schéma d’annuaire

Une classe d'objet est définie par un nom, un OID (Object IDentifier), la liste des attributs (facultatifs et obligatoires), un type. Le type est lié à la nature des attributs utilisés.


objectclass ( 2.5.6.6 #OID
NAME 'person'
DESC 'RFC2256: a person'
SUP top
STRUCTURAL
MUST
( sn $ cn )
MAY
( userPassword $ telephoneNumber $ seeAlso $ description ) )


Configuration du serveur OpenLDAP

#######################################################################
# ldbm database definitions
#######################################################################
# Choix du format de base de données pour le stockage des informations.
database ldbm
# Configurer le suffixe (racine) de l'annuaire en fonction du domaine DNS
suffix "dc=my-domain,dc=org"
# L'administrateur de l'annuaire
rootdn "cn=Manager,dc=my-domain,dc=org"
# Le mot de passe de l'administrateur, préférer une option cryptée
# rootpw secret
# rootpw {crypt}ijFYNcSNctBYg
# Emplacement de la base de données
directory /var/lib/ldap
# Accés par défaut sur la base
defaultaccess read
access to <what> [ by <who> <none | compare | search | read | write>]
# Donne un accés en écriture pour le manager du domaine
access to * by dn="cn=Manager,dc=mydomain,dc=org" write
# Donne un accés en lecture à tout le monde sur la base
access to * by * read
# Donne un accés en écriture sur un attribut pour le manager en lecture pour les autres.
access to attr=uid
by dn="manager,dc=mydomain,dc=org" write
by * none


Le format d'échange de donnée LDIF

Le format d'échange permet l'import/export de données des bases, mais sert également pour l'ajout ou la modification. Les données sont en ASCII codées en UTF-8, sauf pour le binaire qui est codé en base64 (images par exemple).


Syntaxe générale :
dn: <distinguished name
objectClass: <object class
objectClass: <object class
...
<attribute type:<attribute value
<attribute type:<attribute value
...
Exemple :
dn: cn= Manon Des Sources, ou= compta, dc=mydomain, dc=org
objectClass: person
objectClass: organization
cn: user1 USER1
sn: USER1
givenName: AM
userPassword: {sha}KDIE3AL9DK
uid: amg





0 commentaires:

Enregistrer un commentaire

Membres

Formulaire de contact

Nom

E-mail *

Message *