Supposons un serveur OpenLDAP installé avec les RPMs. Les fichiers de configuration sont dans /etc/openldap et les bases LDAP sont dans /var/lib/ldap.
Le fichier /etc/openldap/slapd.conf comprend deux parties : la section globale contenant les paramètres généraux du serveur LDAP, puis la définition des bases LDAP.
La définition d’une base LDAP commence avec la ligne :
database ldbm
ou
database bdb
Cette deuxième option optimise les performances et est recommandée.
Les directives qui suivront définiront la base, jusqu’à ce qu’une autre directive database soit rencontrée ou que l’on arrive à la fin du fichier.
suffix "dc=entreprise,dc=com"
Cette directive définit l’entrée racine de l’arbre.
rootdn "cn=admin,dc=entreprise,dc=com"
rootpw secret
# rootpw {crypt}ijFYNcSNctBYg
Ces directives définissent l’administrateur qui aura tous les droits sur la base.
directory /var/lib/ldap
Cette directive indique où est stocké la base. Si il y a plusieurs bases, il faut créer des sous-répertoires spécifiques pour chaque base. Ex :
directory /var/lib/ldap/entreprise
Le sous-répertoire doit exister avant de lancer slapd et ne doit être accessible qu’aux outils slapd et ldap (mode 700).
Alimentation de la base :
Il faut définir les objets de plus haut niveau situés dans la racine, avec un fichier LDIF (par ex : entreprise.ldif) :
dn: dc=entreprise,dc=com
objectclass: dcObject
objectclass: organization
o: consultant
dc: entreprise
dn: ou=personnel, dc=entreprise,dc=com
objectclass: organizationalUnit
ou=personnel
Les attributs "dc :", "ou :" doivent être identiques sur les deux lignes où ils sont définis.
Pour ajouter ces objets :
slapadd -l entreprise.ldif
Pour vérifier le contenu de l’annuaire :
ldapsearch -x -b "dc=entreprise,dc=com" '(objectclass=*)'
"-x" indique une authentification simple
"-b" définit où commence la recherche
"objectclass" est le filtre de recherche. Ici, tous les objets. L’argument est encadré avec des simples quotes pour éviter l’interprétation par le shell.
Pour ajouter des données, créer un fichier LDIF (ex : utilisateurs.ldif) contenant :
dn: cn=pierre,ou=personnel,dc=entreprise,dc=com
objectclass: inetOrgPerson
cn: pierre
sn: pierre quimousse
mail: pierre@entreprise.com
labeledURI: http://www.entreprise.com
roommNumber: 123
departmentNumber: commercial
telephoneNumber: 11 22 33 44 55 66 77
pager: 22 33 44 55 66 77 88
mobile: 06 11 22 33 44 55 66
Puis exécuter la commande :
ldapmodify -x -D "cn=amdin,dc=entreprise,dc=com" -w secret -a -f utilisateurs.ldif