Les chemins d'accès aux fichiers changent un peu d'une version à l'autre.
Les fichiers de configuration d'OpenLDAP sont dans /etc/ldap/ alors que ceux de l'Université du Michigan se placent dans /etc; pour la suite, je me baserais sur les chemins de l'Université du Michigan car j'en ai plus l'habitude.
include /etc/slapd.oc.conf
include /etc/slapd.at.conf
schemacheck off
database ldbm
mode 0600
directory /var/ldap/base/
suffix "o=MaSociete, c=FR"
rootdn "cn=rootdn, o=MaSociete, c=FR"
rootpw secret
# Les index :
index cn,sn,uid pres,eq,approx,sub
index objectclass pres,eq
index default none
# Les droits
defaultaccess read
access to attr=password
by self write
by dn="cn=Admin, o=MaSociete, c=FR" write
by * compare
access to attr=uid
by dn="cn=Admin, o=MaSociete, c=FR" write
by * none
slapd.oc.conf et slapd.at.conf), Pour lancer le serveur, rien de plus simple :
# slapd
Bien sur, il faudra créer un fichier /etc/rc.d/init.d/slapd et il y a des options mais dans un premier temps, on peut s'en passer. Les options par défauts sont :
-f /etc/slapd.conf -p 389
Une option super utile est le mode debug. "Mon serveur meurt juste après que je le lance !!" "Je lance une recherche mais je ne sais pas si mon serveur reçoit les paquets !!" ...
La réponse est slapd -d 255
Le serveur se lance mais ne passe pas en tâche de fond (background). Il affiche à l'écran tout ses paramètres et se met en attente. S'il n'arrive pas à ce lancer, il en indique la raison et sort; en général, cela viens du fichier de configuration /etc/slapd.conf.
Ensuite, il faut créer la base de l'arbre. Cela ce fait en partie dans le fichier
/etc/slapd.conf et par la manipulation suivante :
Il faut créer un fichier qui contient :
o=MaSociete, c=FR
objectclass=organization
o=MaSociete
description=MaSociete, Mon activité
Puis, il faut lancer une commande pour l'inclure dans l'arbre :
$ ldapadd -f /var/ldap/source/MaSociete.fr -D "cn=rootdn, o=MaSociete, c=FR"\
-w secret
ps ax au moment de la commande.
Il faut donc créer des scripts qui contiennent le mot de passe de façon à le cacher de la ligne de commande. Voici mon script (/usr/sbin/ldapadd.bash) :
ldapadd.bash (avec les droits 700)
#!/bin/bash
/usr/bin/ldapadd -D "cn=Admin, o=MaSociete, c=FR"\
-w secret $*
Il faut faire la même chose pour ldapmodify.
Les unités organisationnelle (OrganizationalUnit; ou en abrégé) servent à organiser (comme leurs nom l'indique) la base. Elles penvent refléter un découpage réel (par sites, départements, sociètè, ...) ou logique (les commerciaux, les directeurs, la comptabilité, ...) :
dn: ou=siege, o=MaSociete, c=FR
objectclass: OrganizationalUnit
ou: siege
description=Siege social de MaSociete
Ensuite, on peux remplir avec des personnes, ...
De même que pour la base, il faut créer un fichier qui contient :
dn: cn=Fabrice Rafart, ou=Siege, o=MaSociete, c=FR
objectclass: person
cn: Fabrice Rafart
uid: frafart
title: Responsable Réseau
o: Siege
ou: Informatique
mail: Fabrice.Rafart@MaSociete.fr
telephonenumber: 01-00-00-00-00
facsimiletelephonenumber: 01-00-00-00-00
l: Paris
pays: France
Puis, il faut l'entrer dans la base :
$ ldapadd.bash -f ./frafart -D "cn=rootdn, o=MaSociete, c=FR" -w secret