OpenLDAP

Dans un premier temps nous ferons une première approche du service d'annuaire OpenLDAP sous Gnu/Linux, pour comprendre les bases de son fonctionnement. Par la suite cet article serra enrichi afin de gérer un annuaire OpenLDAP de bout en bout.

Installer OpenLDAP :

apt-get install slapd ldap-utils

Lors de l'installation vous serez invité à répondre à ces questions :

Nom de domaine DNS : entrer votre nom de domaine. ici lantsei.local. (Votre nom de domaine sera traduit par un DN LDAP, la racine de votre BaseDN, sous la forme dc=lantsei,dc=local).

Le nom de votre organisation. ici lantsei. Il est associé au champ ou de votre BaseDN.

Le mot de passe administrateur LDAP, ici admin. (cn=admin,dc=lantsei,dc=local).

Autoriser le protocole LDAPv2 ? Utile pour des clients Windows. (La norme v2 autorise les clients Windows 2000. Les clients Windows NT fonctionnent sans cette option).

Vous pouvez refaire la configuration et modifier certaines valeurs en exécutant la commande :

dpkg-reconfigure slapd

Configuration du Serveur LDAP

Fichier de configuration :

nano /etc/ldap/slapd.conf

Pour redémarrer le démon :

/etc/init.d/slapd restart

Nous allons modifier le fichier de configuration pour optimiser l'indexation par défaut.

Avant de recréer des index il faut arrêter le démon.

/etc/init.d/slapd stop

Ouvrir le fichier :

nano /etc/ldap/slapd.conf

Rehercher la ligne : index objectClass eq et entrer ces valeurs à la suite :

index   cn          pres,sub,eq
index   sn          pres,sub,eq
index   uid         pres,sub,eq
index   default     sub
index   uidNumber       eq
index   gidNumber       eq
index   mail,givenName  eq,subinitial
index   dc          eq

Il faut ensuite inscrire l'index puis fixer les permissions.

chown -R openldap:openldap /var/lib/ldap

Puis démarrer le demon slapd.

/etc/init.d/slapd start

Voyons comment ajouter des données à la base en ligne de commande (J'aborderais, dans un nouvel article, les clients de gestion d'une Base LDAP).

Les fichier LDIF

Ce format de fichier est utilisé pour faire des imports /exports entre plusieurs bases ou pour modifier ou ajouter des données dans une base.

Pour nous économiser, aller dans le répertoire : cd /etc/ldap/.

La commande suivante permet de générer un fichier .ldif contenant la base complète :

slapcat -l SaveBase0.ldif -b "dc=lantsei,dc=local"

Fichier LDIF pour ajouter une nouvelle fiche :

Modifier le fichier Addfiche.ldif :

dn: cn=lantsei HIMSELF,dc=lantsei,dc=local
objectClass: inetOrgPerson
cn: lantsei HIMSELF
givenName: lantsei
sn: HIMSELF

Commande pour ajouter la fiche à la base :

ldapadd -x -D "cn=admin,dc=lantsei,dc=local" -w admin -f AddFiche.ldif

Fichier LDIF pour modifier une fiche :

Modifier le fichier EditFiche.ldif :

dn: cn=lantsei HIMSELF,dc=lantsei,dc=local
changetype: modify
add: telephonenumber
telephonenumber: 06 35 00 00 00

Commande pour ajouter une modification de fiche à la base :

ldapadd -x -D "cn=admin,dc=lantsei,dc=local" -w admin -f EditFiche.ldif

Fichier LDIF pour supprimer des enregistrements :

Modifier le fichier DelFiche.ldif :

dn: cn=lantsei HIMSELF,dc=lantsei,dc=local
changetype: delete

Commande pour supprimer des enregistrements de la base :

ldapadd -x -D "cn=admin,dc=lantsei,dc=local" -w admin -f DelFiche.ldif

Rechercher des enregistrements :

Rechercher les enregistrements contenant un attribut objectClass depuis la racine :

ldapsearch -x -b "dc=lantsei,dc=local" "objectClass=*"

Rechercher les enregistrements contenant un attribut cn dans la branche :

ldapsearch -x -b "o=lantsei.local,dc=lantsei,dc=local" "cn=*"

Rechercher les enregistrements dont l’attribut dc se termine par PONT :

ldapsearch -x -b "dc=lantsei,dc=local" "dc=*PONT"