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"