OpenLDAP met à votre disposition toute une série de programmes pour la gestion des données dans l'annuaire LDAP. Nous présenterons ci-après les quatre principaux d'entre eux pour les opérations d'ajout, de suppression, de recherche et de modification de données.
Une fois que la configuration de votre serveur LDAP dans
/etc/openldap/slapd.conf est correcte et
opérationnelle (c'est-à-dire qu'elle comporte les indications appropriées pour
suffix, directory,
rootdn, rootpw et
index), vous pouvez commencer à ajouter des
enregistrements. OpenLDAP propose à cet effet le programme
ldapadd. Pour des raisons pratiques, il est recommandé,
dans la mesure du possible, d'ajouter les objets à la base de données par
groupes. LDAP sait interpréter le format LDIF (de l'anglais LDAP
Data Interchange Format, format d'échange de données LDAP). Un
fichier LDIF est un fichier texte simple comportant un nombre quelconque de
paires attribut-valeur. Les classes d'objets et les attributs disponibles
figurent dans les fichiers schémas spécifiés dans
slapd.conf. Le fichier LDIF destiné à créer un schéma
grossier pour l'exemple dans Figure 29.1, « Structure d'un annuaire LDAP » se
présenterait comme dans Exemple 29.7, « Exemple de fichier LDIF »).
Exemple 29.7. Exemple de fichier LDIF
# L'organisation SUSE dn: dc=suse,dc=de objectClass: dcObject objectClass: organization o: SUSE AG dc: suse # L'unité d'organisation Développement (devel) dn: ou=devel,dc=suse,dc=de objectClass: organizationalUnit ou: devel # L'unité d'organisation Documentation (doc) dn: ou=doc,dc=suse,dc=de objectClass: organizationalUnit ou: doc # L'unité d'organisation Informatique interne (it) dn: ou=it,dc=suse,dc=de objectClass: organizationalUnit ou: it
![]() | Codage des fichiers LDIF |
|---|---|
LDAP utilise le codage UTF-8 (Unicode). Par conséquent, les caractères accentués doivent être convenablement codés à la saisie. Utilisez un éditeur qui prend en charge UTF-8 (comme Kate ou les versions récentes d'Emacs). Sinon, évitez les lettres accentués et autres caractères spéciaux ou utilisez recode pour ré-encoder les données saisies en UTF-8. | |
Enregistrez le fichier sous le nom
<fichier>.ldif et transférez-le sur le serveur à
l'aide de la commande suivante :
ldapadd -x -D <dn de l'administrateur> -W -f <fichier>.ldif
L'option -x désactive dans ce cas à
l'authentification via SASL. L'option -D désigne
l'utilisateur chargé de cette opération ; saisissez ici le DN valide
de l'administrateur tel qu'il a été configuré dans
slapd.conf. Dans notre exemple, nous aurions
cn=admin,dc=suse,dc=de. L'option -W
permet d'éviter de saisir le mot de passe sur la ligne de commande (en
clair) et active une demande de mot de passe séparée. Le mot de passe en
question a été créé précédemment dans slapd.conf avec
l'option rootpw. Le paramètre -f
indique le nom du fichier. Vous pouvez voir dans Exemple 29.8, « ldapadd de exemple.ldif » le détail de l'appel de
ldapadd.
Exemple 29.8. ldapadd de exemple.ldif
ldapadd -x -D cn=admin,dc=suse,dc=de -W -f exemple.ldif Enter LDAP password: adding new entry "dc=suse,dc=de" adding new entry "ou=devel,dc=suse,dc=de" adding new entry "ou=doc,dc=suse,dc=de" adding new entry "ou=it,dc=suse,dc=de"
Vous pouvez spécifier les données liées aux utilisateurs dans des
fichiers LDIF séparés. Exemple 29.9, « Fichier LDIF pour Tux » ajoute
l'utilisateur Tux au nouvel
annuaire LDAP.
Exemple 29.9. Fichier LDIF pour Tux
# Employé Tux dn: cn=Tux Linux,ou=devel,dc=suse,dc=de objectClass: inetOrgPerson cn: Tux Linux givenName: Tux sn: Linux mail: tux@suse.de uid: tux telephoneNumber: +33 12 34 56 78 90
Un fichier LDIF peut comporter un nombre quelconque d'objets. Vous pouvez transférer au serveur des arborescences complètes ou uniquement des parties telles que des objets distincts. Si vous devez modifier vos données selon une fréquence relativement élevée, il est recommandé de définir une granularité fine avec des objets distincts, ce qui permet de faciliter le travail de recherche de l'objet à modifier dans un fichier de grande taille.
Lorsque vous voulez modifier des données, utilisez le programme
ldapmodify. Le plus simple consiste à modifier dans un
premier temps le fichier LDIF concerné, puis à passer le fichier modifié au
serveur LDAP. Ainsi, pour changer le numéro de téléphone de l'employé
Tux de +33 12 34 56 78
90 en +33 12 34 56 78 45, éditez le fichier LDIF,
comme indiqué dans Exemple 29.10, « Fichier LDIF modifié tux.ldif ».
Exemple 29.10. Fichier LDIF modifié tux.ldif
# Employé Tux dn: cn=Tux Linux,ou=devel,dc=suse,dc=de changetype: modify replace: telephoneNumber telephoneNumber: +33 12 34 56 78 45
Importez le fichier modifié dans l'annuaire LDAP à l'aide de la commande suivante :
ldapmodify -x -D cn=admin,dc=suse,dc=de -W -f tux.ldif
Autre possibilité : utiliser ldapmodify pour spécifier directement sur la ligne de commande les attributs à modifier. La procédure est la suivante :
Exécutez la commande ldapmodify et saisissez votre mot de passe :
ldapmodify -x -D cn=admin,dc=suse,dc=de -W Enter LDAP password:
Faites vos modifications dans l'ordre suivant, en respectant la syntaxe indiquée ci-après :
dn: cn=Tux Linux,ou=devel,dc=suse,dc=de changetype: modify replace: telephoneNumber telephoneNumber: +33 12 34 56 78 45
Pour plus d'informations sur la commande ldapmodify et sur sa syntaxe, reportez-vous à la page de manuel correspondante (ldapmodify(1)).
OpenLDAP fournit avec le programme ldapsearch un utilitaire en ligne de commande pour chercher des données dans un annuaire LDAP et pour en extraire des données. Une commande simple de recherche utiliserait la syntaxe suivante :
ldapsearch -x -b dc=suse,dc=de "(objectClass=*)"
L'option -b définit la base de la recherche, c'est-à-dire
la partie de l'arbre dans laquelle la recherche doit se faire. Il s'agit
dans le cas présent de dc=suse, dc=de. Pour effectuer
une recherche plus fine dans des sous-domaines donnés de l'annuaire LDAP
(par exemple uniquement dans la division devel), utilisez
-b pour passer cette branche. -x indique
qu'il faut utiliser une authentification simple.
(objectClass=*) vous permet de décider que vous voulez
lire tous les objets contenus dans votre annuaire. Utilisez cette commande
après avoir constitué une nouvelle arborescence afin de vérifier si tous
vos enregistrements ont été convenablement mis en place et si le serveur
répond comme convenu. Vous trouverez des informations supplémentaires sur
l'utilisation du programme ldapsearch dans la page de
manuel correspondante (ldapsearch(1)).
Supprimez les enregistrements dont vous n'avez plus besoin à l'aide
du programme ldapdelete. La syntaxe est analogue à celle
des commandes précédemment décrites. Ainsi, pour supprimer complètement du
système l'enregistrement de l'utilisateur Tux
Linux, vous devez saisir la commande suivante :
ldapdelete -x -D cn=admin,dc=suse,dc=de -W cn=Tux \ Linux,ou=devel,dc=suse,dc=de