Comment Configurer un service d'annuaire LDAP
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".
Comment Configurer un service d'annuaire LDAP |
Entrées
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