OpenLDAP – Utilisation des outils client

Introduction

Ce document va expliquer l’utilisation des outils client de la suite OpenLDAP.

Cela s’applique aussi bien à une distribution Linux, testé sur Debian Sarge, que sur FreeBSD, testé en 6.1.

 

Prérequis

Il est bien évidement nécessaire d’avoir un serveur LDAP configuré, pourquoi un OpenLDAP slapd par exemple. Pour cela, vous pouvez suivre le document suivant: Configuration SLAPD standard.

Il faudra avoir installé le paquet ldap-utils sur une Debian ou alors le port openldap23-client sur un FreeBSD.

Dans le cas de la Debian, les configurations se passeront dans /etc/ldap alors que sur FreeBSD, cela sera dans /usr/local/etc/openldap.

Il faudra éditer le fichier ldap.conf pour qu’il ressemble à ca:

#
# Config LDAP client
#

# La base de notre annuaire 
BASE    o=centile,dc=com
# L'URL pour joindre le server
URI     ldaps://ldap.free-4ever.net

# Nécessaire pour les connexions SSL si le client ne connait pas le certificat du CA
TLS_REQCERT     allow

Grâce à ces paramètres, nous pourrons alléger les lignes de commandes puisque nous ne devrons plus spécifier le host et le base DN.

Dans la suite du document, tout sera basé un FreeBSD.

 

Un fichier LDIF

Un fichier LDIF est un fichier qui a une syntaxe spécifique qui va permettre à OpenLDAP de le comprendre pour ajouter ou modifier des informations par exemple.

Voici le fichier LDIF de l’utilisateur « watcher ». Si vous avez suivi mon document: Configuration SLAPD standard. Celui-ci est nécessaire pour parcourir l’arbre LDAP sans utiliser le login « manager ».

# watcher, free-4ever, net
# Le DN, ce qui nous permet de placer de d'identifier l'object dans l'arbre
dn: cn=watcher,o=free-4ever,dc=net
# La définition de l'objet
# watcher est de type person
objectClass: top
objectClass: person
# le password, généré avec la commande slappassword
userPassword: {SSHA}kJCQrbYPrvKNXEKsGrAxHfjGmJsk7ZJw
# Le common name de notre objet
cn: watcher
# Normalement le nom de famille, ici plus une description qu'autre chose
sn: LDAP viewer

Un autre exemple de fichier LDIF mais qui serait pour un container:

# users, free-4ever, net
# Le DN de notre objet
dn: ou=users,o=free-4ever,dc=net
# La définition de l'objet
# C'est un organizationalUnit qui un container utiliser pour ranger des objets
objectClass: top
objectClass: organizationalUnit
# Le nom de notre "ou"
ou: users
# Une description
description: tous les utilisateurs

 

Les commandes OpenLDAP client

Dans tous les commandes suivantes, il y aura certains paramètres commun. Je vais les détailler de suite:

  • -x permet de désactiver l’authentification SASL
  • -D spécifie le DN de l’utilisateur qui a les droits minimum pour faire l’opération souhaité
  • -W pour que la commande demande en interactif le password correspond au DN

 

ldapadd

La commande ldapadd va nous permettre d’entrer les informations d’un fichier LDIF dans notre arbre LDAP.

Pour cela, taper simplement la commande suivante:

# ldapadd -x -D "cn=manager,o=free-4ever,dc=net" -W -f watcher.ldif
# Enter LDAP Password: <Very secret root password>

Dans ce cas, on se contente de rajouter l’option suivante:

  • -f <fichier.ldif> qui indique quel fichier LDIF on souhaite ajouter à notre arbre

Cela aura pour résultat d’ajouter notre utilisateur « watcher » à notre arbre LDAP.

 

ldappasswd

La commande ldappasswd va nous permettre de changer le mot de passe d’un utilisateur présent dans notre arbre LDAP.

Pour cela taper simplement:

# ldappasswd -x -D "cn=manager,o=free-4ever,dc=net" -W -S "cn=watcher,o=free-4ever,dc=net"
# Password: <Very secret new password>
# Confirm: <Very secret new password>
# Enter LDAP Password: <Very secret root password>

Dans ce cas, on se contente de rajouter les options suivantes:

  • -S que la commande nous demande en interactif le nouveau password
  • « cn=watcher,o=free-4ever,dc=net » qui indique le DN de l’utilisateur dont on veut changer le mot de passe

Cela aura pour résultat de changer le mot de passe de notre utilisateur « watcher ».

 

ldapmodify

La commande ldapmodify va nous permettre de changer un paramètre d’un DN de l’arbre LDAP.

Disons par exemple que nous souhaitons changer la description de notre utilisateur « watcher ». Modifions le fichier LDIF comme ci-dessous:

# watcher, free-4ever, net
# Le DN, ce qui nous permet de placer de d'identifier l'object dans l'arbre
dn: cn=watcher,o=free-4ever,dc=net
# La définition de l'objet
# watcher est de type person
objectClass: top
objectClass: person
# le password, généré avec la commande slappassword
userPassword: {SSHA}kJCQrbYPrvKNXEKsGrAxHfjGmJsk7ZJw
# Le common name de notre objet
cn: watcher
# Normalement le nom de famille, ici plus une description qu'autre chose
sn: Utilisateur LDAP pour regarder

Taper simplement la commande suivante:

# ldapmodify -x -D "cn=manager,o=free-4ever,dc=net" -W -f watcher.ldif
# Enter LDAP Password: <Very secret root password>

Dans ce cas, on se contente de rajouter l’option suivante:

  • -f <fichier.ldif> qui indique quel fichier LDIF on souhaite utiliser pour modifier quelque chose

Cela aura pour résultat de changer le « sn » qui l’on utilise comme description de notre utilisateur.

 

ldapsearch

La commande ldapsearch va nous permettre de faire des recherches dans notre arbre LDAP.

Pour cela taper simplement:

# ldapsearch -x -D "cn=manager,o=free-4ever,dc=net" -W objectclass=*
# Enter LDAP Password: <Very secret root password>

Dans ce cas, on se contente de rajouter l’option suivante:

  • objectclass=* qui indique de tout recherche dans l’arbre. En gros cette commande dump tout l’arbre sur la sortie standard… pratique pour les backups

On peut bien sur pousser les critères de recherche en précisant des branches de l’arbre ou alors certains objectclass uniquement.

 

ldapdelete

La commande ldapdelete va nous permettre d’effacer des entrées dans notre arbre LDAP.

Pour cela, taper simplement:

# ldapdelete  -x -D "cn=manager,o=free-4ever,dc=net" -W "cn=watcher,o=free-4ever,dc=net" 
# Enter LDAP Password: <Very secret root password>

Dans notre cas, on se contente de rajouter l’option suivante:

  • « cn=watcher,o=free-4ever,dc=net » qui indique le DN à effacer

Cela aura pour résultat d’effacer l’objet « cn=watcher,o=free-4ever,dc=net ».

 

Mot de la fin

Voila une courte présentation des principales commandes OpenLDAP client pour manager notre arbre LDAP.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s