Construction et utilisation du serveur LDAP (OpenLDAP)

Novembre 2017

Construction de la base de l'annuaire LDAP

Pour commencer à saisir des informations dans notre annuaire, il s'agit de créer deux fichiers texte au format LDIF.
Avant de saisir les informations concernants les utilisateurs, il faut dans un premier temps définir
la société qui est la racine de l'annuaire.
Pour cela, il faut créer un fichier societe.txt contenant les informations suivantes :



   dn: o=commentcamarche, c=fr
o:commentcamarche
description: CCM est notre société de test pour l'annuaire LDAP
postofficebox: Ville de votre société
postaladdress: Adresse de votre société
postalcode: Code postal de votre société
objectclass: organization


Ensuite, pour entrer ces informations dans l'annuaire, il faut
utiliser la commande suivante :

ldapadd -D "cn=ldap_admin, o=commentcamarche, c=fr" -W -f societe.txt


Le mot de passe de l'administrateur (dans le cas présent "secret") sera demandé  :

Enter LDAP Password: 


le message suivant devrait alors apparaître  :

adding new entry o=commentcamarche, c=fr


Le paramètre -D défini la chaîne de connexion à l'annuaire avec l'utilisateur ldap_admin.
-W siginifie que l'on veut un prompt pour saisir le mot de passe. Il aurait été possible d'utiliser le
paramètre « -w secret » mais l'inconvénient est que le mot de passe de l'administrateur est saisi en clair
(-w n'est à utiliser seulement lors de la création des scripts pour automatiser certaines opérations).
Enfin, le paramètre -f indique le fichier LDIF à insérer dans l'annuaire.


Nous allons procéder ensuite de la même façon pour créer notre premier utilisateur.
Il s'agit d'éditer un fichier personne.txt qui contient :

   dn: cn=DUPOND Georges, o=commentcamarche, c=fr
cn: DUPOND Georges
mail: dupond@tuxserveur.tuxdomaine
telephonenumber:84756
objectclass: person


Deux remarques :
  • Tout d'abord pour ceux qui suivent :


- comment se fait-il que l'on puisse mettre un attribut mail

alors qu'il n'est pas défini dans la structure de l'objet person ?

c'est grâce à la directive « schemacheck off » placée dans le fichier slapd.conf

qui indique que l'on a droit ne pas respecter complètement la structure des objets définis dans le fichier slapd.oc.conf !
  • C'est pour la même raison qu'aucun champ sn n'est défini dans le fichier


Ensuite, pour entrer ces informations dans l'annuaire, il faut utiliser la commande suivante :

ldapadd -D "cn=ldap_admin, o=commentcamarche, c=fr" -W -f personne.txt


Après avoir saisi le mot de passe, vous devriez obtenir :

adding new entry cn=DUPOND Georges, o=commentcamarche, c=fr


Pour saisir de nouveaux utilisateurs, il suffit de modifier le fichier personne.txt et utiliser la commande ldapadd.

Consultation de l'annuaire LDAP

La consultation de l'annuaire se fait par l'intermédiaire de la commande

ldapsearch.


Trois exemples pour illustrer l'utilisation de cette commande :

ldapsearch -b « o=commentcamarche, c=fr » « o=commentcamarche »


Permet d'obtenir les informations concernant la société. (-b est utilisé pour préciser le point de départ de la recherche).

ldapsearch -b « o=commentcamarche, c=fr » « objectclass=person»


Permet d'obtenir les informations concernant les utilisateurs que vous avez saisi que votre annuaire.

ldapsearch -b « o=commentcamarche, c=fr » « cn=DUPOND*»


Permet d'obtenir les informations de tous les utilisateurs DUPOND présents dans votre annuaire.

Suppression d'un élément de l'annuaire LDAP

Pour supprimer un élément, la commande ldapdelete doit être utilisé

en précisant le Distinguished Name (DN) complet de l'objet à détruire.
Ne pas oublier de préciser aussi l'utilisateur à utiliser pour effectuer la destruction, ici ldap_admin. Par exemple, pour détruire l'utilisateur PILLOU Jean-François de l'annuaire :

ldapdelete -v -D "cn=ldap_admin,
o=commentcamarche,
c=fr"
-W « cn=PILLOU Jean-François,
o=commentcamarche,
c=fr »


Vous devez obtenir (-v est l'option verbose : mode « parlant ») le message suivant :

deleting entry "cn=PILLOU Jean-François, o=commentcamarche, c=fr"



removed

modification d'un élément de l'annuaire LDAP

La modification de l'annuaire n'est pas une opération facile.
Il faut dans un premier lieu créer un fichier contenant les modifications
puis lancer la commande ldapmodify.
Par exemple, pour modifier le numéro de téléphone de l'utilisateur DUPOND, on doit créer un fichier modif.txt

contenant les informations suivantes :

   dn: cn=DUPOND Georges, o=commentcamarche, c=fr
changetype: modify
replace: telephoneNumber
telephoneNumber: 72845


Puis lancer ensuite la commande :

ldapmodify -v -D "cn=ldap_admin, o=commentcamarche, c=fr" -W -f modif.txt


Pour obtenir le résultat suivant :

   replace telephoneNumber :
72845
modifying entry cn=DUPOND Georges, o=commentcamarche, c=fr
modify complete


De plus, il est possible d'ajouter ou supprimer des éléments des objets en utilisant la syntaxe suivante dans le fichier texte :

   dn: cn=DUPOND Georges, o=commentcamarche, c=fr
mail


Cela aura pour effet de supprime le mail de l'utilisateur DUPOND.

   dn: cn=DUPOND Georges, o=commentcamarche, c=fr
+description=UtilisateurDUPOND


Ajoute la propriété description à l'objet person DUPOND.

Quelques astuces

Pour saisir plusieurs personnes dans le même fichier personne.txt, il suffit de séparer chaque définition par une ligne blanche.


Pour réinitialiser complètement l'annuaire, il faut tout d'abord détruire la base existante puis
relancer le serveur après avoir porté les modifications dans les fichiers de configuration.

Pour détruire l'ancienne base, il suffit de vider le répertoire /var/lib/ldap par la commande :

rm -fr /var/lib/ldap/*



Ecrit par [mailto:webmaster@commentcamarche.net Jeff Pillou] et Michel Maudet



Construção e utilização de um servidor  LDAP (OpenLDAP)
Construção e utilização de um servidor LDAP (OpenLDAP)
Ce document intitulé «  Construction et utilisation du serveur LDAP (OpenLDAP)  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.