Bonjour,

Vous connaissez tous l’annuaire téléphonique lorsque vous avez besoin de trouver un numéro de téléphone correspond à une personne. En informatique, il existe un équivalent : les annuaires LDAP, le plus connu est proposé par Microsoft et s’appelle Active Directory. Il est très évolué puisqu’il est couplé directement avec le contrôleur de domaine et permet d’utiliser les informations de l’annuaire avec un serveur de messagerie (Exchange) ou même de mettre en place des Group Policy Object (GPO) qui servent à mettre en place des sécurités ou des restrictions sur les postes clients. Côté libre, il existe un équivalent : OpenLDAP, il est lui aussi puissant même s’il ne gère pas les GPO, il permet de centraliser un grand nombre d’informations. Nous allons voir sa mise en place aujourd’hui.

Un peu de théorie

LDAP signifie Lightweight Directory Access Protocol, c’est un protocole qui définit une norme de modèle d’annuaire et d’interrogation  de ceux ci. La version actuelle (v3), est définit par la RFC 4510.  Il fonctionne en structure arborescente dont chaque nœud est constitué d’attribut associé à une valeur. Le nommage de la structure est décomposée en 2 parties : la base et les éléments profonds. La base utilise le nommage du DNS (domain components – dc …). Les éléments profonds utilisent des objets (organization unit – ou, common name -  cn …). On obtient alors une arborescence de ce type :

dc=org
|
dc=m2env
|
dc=www

/                                   \

ou=developpeurs             ou=redacteur
/               \                         /                   \

cn=dev1 cn=dev2                cn=redac1             cn=redac2

Une dernière petite chose : « le distinguieshed name  « , c’est le nom complet d’un attribut, son nom correspond à tous les noeuds situés au dessus de lui, du plus bas au plus haut. Par exemple pour dev1 :

cn=dev1, ou=developpeurs, dc=www, dc=m2env, dc=org

Voilà pour la théorie, nous allons voir maintenant comment installer et configurer simplement, OpenLDAP.

(Inspiré de http://fr.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol )

Installation

Comme d’habitude nous allons utiliser une Debian Lenny. Le paquet OpenLDAP s’appelle « slapd », nous allons aussi installer une interface web, qui nous facilitera la tâche pour la configuration :

aptitude install slapd phpldapadmin

Lors de l’installation, un mot de passe administrateur pour OpenLDAP vous est demandé, j’ai utilisé celui ci : OpenLDAP.

Une fois que la magie d’aptitude à fini d’opérer, OpenLDAP et PhpLDAPadmin sont installés. Nous allons pouvoir passer à la configuration.

Configuration

Les fichiers de configuration d’OpenLDAP se trouvent dans /etc/ldap :

  • ldap.conf : contient entre autre l’URI (chemin d’accès)
  • slapd.conf : configuration d’OpenLDAP, ce fichier comprend la racine principale du serveur, les informations de l’administrateur principal et les autorisations d’accès
  • sasl2/ : permet de configurer le sasl2, c’est une méthode d’authentification, nous ne l’utiliserons pas ici.
  • schema/ : contient les fichiers qui définissent le schéma (l’arborescence) de l’annuaire

Comme nous souhaitons une configuration simple, nous allons nous laisser guider par openldap, pour cela :

dpkg-reconfigure slapd

Les questions suivantes vont apparaitre :

  • Voulez-vous omettre la configration d’OpenLDAP ? : Non
  • Nom de domaine : monldap.lan
  • Nom d’entité : m2env
  • Mot de passe de l’administrateur : OpenLDAP
  • Module de base de données à utiliser : HDB
  • Faut-il supprimer la base de données à la purge du paquet : Non
  • Faut-il déplacer l’ancienne base de données : Oui
  • Faut-il autoriser le protocole LDAPv2 : Non

OpenLDAP est maintenant configuré. On va bientôt pouvoir utiliser phpLDAPadmin, mais avant ça une petite configuration s’impose. En effet, cette interface est configuré pour utiliser OpenLDAP par défaut, c’est à dire avec le domain : « nodomain ». Nous allons changer ca et le personnaliser un peu :

vi /etc/phpldapadmin/config.php

Ligne 156 : On remplace « My LDAP Server » par un texte de notre choix : « Serveur LDAP de MonLDAP.lan ». (facultatif, c’est de la personnalisation)

Ligne 170 : On remplace « dc=nodomain » par le notre : « dc=monldap, dc=lan »

Ligne 194 : Cette ligne permet de remplir automatiquement le champ login de phpldapadmin. Par sécurité on la vide, mais on pourrait la remplir pour ne pas avoir à saisir le login. On remplace « cn=admin,dc=nodomain », soit par « cn=, dc= ».

Maintenant, rendez-vous sur http://adresseIPdevotreServeur/phpldapadmin.

A gauche on voit « Login » :

On clique dessus et la fenêtre d’authentification apparait. On la rempli et on valide :

A gauche, nous avons maintenant la possibilité de parcourir l’annuaire et de créer des sous entrées.

Grâce à cette interface nous allons pouvoir ajouter une liste d’objet à l’annuaire :

Chaque objet à des attributs spécifiques, par exemple un « Courier Mail Account » n’aura pas les mêmes attributs qu’un « User Account », et c’est normal ! Vous pouvez maintenant créer les objets de votre choix, il suffit de remplir le formulaire et de valider. Voici un exemple pour un groupe d’utilisateur Unix (il est obligatoire d’en avoir un pour pouvoir créer un utilisateur) :

Il faut faire attention aux champs qui sont définit comme « requis », c’est à dire qu’ils sont obligatoires. Une fois cet objet créé il apparait à gauche :

Vous pouvez ensuite modifier l’utilisateur admin pour qu’il appartienne au groupe Developpeurs, ou créer de nouveaux utilisateurs etc …

La configuration d’OpenLDAP peut vite devenir complexe, et il y a énormément à dire, notamment avec l’utilisation de l’annuaire avec d’autre services (mail, apache, svn …) …