Outils pour utilisateurs

Outils du site


cours:informatique:sysadmin:gerer_serveur_linux_et_services:140_installer_annuaire_ldap

Notes et transcriptions du cours “Gérez votre serveur Linux et ses services” disponible sur la plateforme Openclassrooms.

Installez un annuaire LDAP

Dans les deux prochains chapitres, vous allez apprendre à installer et à gérer un annuaire LDAP.

Mais c’est quoi, un annuaire LDAP ?

LDAP signifie Lightweight Directory Access Protocol. C’est le standard de fait pour accéder à un annuaire. Un annuaire est une base de données qui va contenir des informations sur des personnes, des machines, des groupes ou toute autre catégorie que vous pourriez imaginer.

Un annuaire se distingue d’une base de données relationnelle par le fait qu’il a une structure hiérarchique et qu’il est très rapide pour chercher et lire des éléments, mais plus lent pour les modifier.

Les annuaires sont couramment employés pour stocker les données d’authentification (login et mot de passe) ou pour obtenir des informations sur des personnes (e-mail, téléphone, etc.) ou des objets (localisation, marque, modèle, etc.). Toutes les applications de votre entreprise (site web, e-mail, comptes système des ordinateurs, etc.) peuvent par exemple utiliser ce service d’annuaire pour valider les identifiants de connexion.

Voyons plus précisément la structure d’un annuaire LDAP.

Découvrez le fonctionnement de LDAP

Tout d’abord, un annuaire LDAP est un organisation hiérarchique d’entrées. Cette organisation constitue un arbre appelé DIT (Directory Information Tree) dont une des entrées est la racine.

Schéma d'un arbre avec une racine Exemple d'un DIT de racine “dc=mon-entreprise,dc=com”

Chaque entrée peut contenir des attributs auxquels on assigne des valeurs. Chaque entrée appartient au moins à une classe d’objet qui définit les attributs de l’entrée.

Par exemple, la classe d’objet “Employés” pourrait définir qu’un “élément” appartenant à cette classe doit contenir les attributs obligatoires :

  • nom de famille ;
  • prénom.

et peut contenir les attributs facultatifs :

  • e-mail ;
  • téléphone ;
  • date de naissance.

Chacun des attributs de cet élément aura une valeur. Par exemple, “nom de famille=Dupond”.

De nombreux attributs et classes d’objets sont prédéfinis, mais il est possible de définir les vôtres si besoin. L’ensemble des classes d’objets et attributs utilisés est défini dans le schéma. Certains attributs sont particulièrement courants et intéressants à connaître :

Attributs Fonction
dc (domain component) une partie d’un nom DNS. Pour une entreprise dont le nom de domaine serait “mon-entreprise.com”, il est courant d’appeler la racine du DIT “dc=mon-entreprise,dc=com”
cn (common name) le nom commun. Pour une personne, c’est en général le prénom + le nom de famille
gn (given name)
sn (surname) le nom de famille
o (organization name) pour une entreprise, ce serait le nom de l’entreprise ou de la filiale
ou (organisational unit) l’unité d’organisation. Pour une entreprise, ce serait le département (commercial, comptabilité, etc.)

Un attribut particulier est le dn (distinguished name), c’est-à-dire le nom distinct. C’est un attribut qui identifie de manière unique un élément dans le DIT. Il reprend les noms de tous les éléments depuis la racine jusqu’à l’élément, et indique ainsi un “chemin” unique pour trouver l’élément.

Par exemple, le dn de “Marie Dupond” qui travaille chez “mon-entreprise.com” pourrait être “cn=Marie Dupond,ou=Personnes,dc=mon-entreprise,dc=com”. On appelle RDN, pour Relative Distinguished Name, la partie “finale” propre à Marie. Ici le RDN serait “cn=Marie Dupond”. Lui ne garantit pas l'unicité dans le DIT.

Vous avez maintenant quelques bases sur LDAP. Pour une présentation plus détaillée, je vous recommande de suivre le cours “Présentation du concept d’annuaire LDAP”. Je vous propose de passer à la pratique et d’installer l’annuaire OpenLDAP sur votre serveur Ubuntu.

Installez OpenLDAP

OpenLDAP est un des annuaires les plus répandus. Pour l’installer, vous devrez installer le paquet slapd. Installez également le paquet ldap-utils qui contient les utilitaires clients pour pouvoir interroger ou modifier votre annuaire.

$ sudo apt-get install slapd ldap-utils
À l’installation de slapd, on vous demandera d’entrer le mot de passe de l’administrateur de votre annuaire. Pas besoin de le rentrer, car vous allez refaire cette opération dans un instant.

Voilà, vous avez installé votre annuaire. Vous allez maintenant utiliser l’outil de configuration debconf de Debian pour définir la configuration de base de votre annuaire :

$ sudo dpkg-reconfigure slapd

Indiquez :

  • No pour la première question afin de pouvoir utiliser l’outil de configuration ;
  • Pour nom DNS : mon-entreprise.com ;
  • Pour nom d’organisation : mon-entreprise ;
  • Le mot de passe administrateur x2 ;
  • Choisissez le format de base par défaut : mdb ;
  • No pour savoir si la base doit être supprimée quand slapd est purgé ;
  • Yes pour déplacer l’ancienne base de données.

Comme votre DNS est “mon-entreprise.com”, la racine de votre DIT a été configurée à “dc=mon-entreprise,dc=com”, vous pouvez utiliser la commande ldapsearch suivante pour visualiser votre DIT :

$ sudo ldapsearch -Q -L -Y EXTERNAL -H ldapi:/// -b dc=mon-entreprise,dc=com

On obtient le résultat :

version: 1

#
# LDAPv3
# base <dc=mon-entreprise,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# mon-entreprise.com
dn: dc=mon-entreprise,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: mon-entreprise
dc: mon-entreprise

# admin, mon-entreprise.com
dn: cn=admin,dc=mon-entreprise,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator

# search result

# numResponses: 3
# numEntries: 2

La commande ldapsearch sert, comme son nom l’indique, à chercher dans un annuaire LDAP. Voici le détail des options utilisées :

-Q active le mode silencieux pour l’authentification SASL.
-Y indique le mode SASL choisi pour l’authentification. Normalement, EXTERNAL implique une authentification par certificat client, mais dans ce cas-là, ça signifie que l’authentification se fera par l’UID et le GID du compte système. C’est pour ça que vous devez lancer la commande avec “sudo”. L’utilisateur root a des passe-droits pour accéder à la base locale LDAP.
-L indique d’afficher le résultat au format LDIF. On aurait pu indiquer -LLL pour avoir la même chose sans toutes les lignes commentées.
-H indique l’URI qu’on veut utiliser pour se connecter. Ici ldapi:/// dit de se connecter à la socket Unix en local (la communication passe par un fichier local plutôt que par le réseau).
-b indique le nœud à partir duquel vous voulez faire votre recherche. Ici dc=mon-entreprise,dc=com est la racine donc vous recherchez dans tout le DIT. À la suite du nœud, vous auriez pu indiquer des filtres pour votre recherche, mais sans filtre vous avez l’affichage le plus complet.

Je vais maintenant vous parler un peu du format LDIF utilisé pour afficher la réponse de cette commande.

Comprenez le format LDIF

LDIF signifie “LDAP Directory Interchange Format”. C’est un format créé pour décrire les ajouts ou les modifications à réaliser dans un annuaire LDAP. Le format d’une entrée dans un fichier LDIF est toujours de la forme suivante :

dn: <Le dn que vous voulez changer>
changetype: <add, replace ou delete. Cette ligne est optionnelle>
<attribut ou objectclass>: valeur

Dans la sortie de la commande précédente, vous voyez que votre DIT contient en tout et pour tout 2 entrées :

  • La première est la racine. On la reconnaît au fait qu’elle appartient à la classe d’objet dcObject. Vous voyez qu’elle appartient aussi à 2 autres classes d’objets. Chacune décrit une série d’attributs que l’entrée peut ou doit contenir. Vous avez ensuite deux attributs : o et dc, deux types que vous connaissez déjà ;
  • La deuxième est le compte administrateur LDAP, comme l’indique l’attribut description. Il appartient notamment à la classe d’objets simpleSecurityObject qui représente les comptes d’authentification.

En résumé

  • LDAP est LE standard en terme d’accès à un service d’annuaire.
  • Un annuaire est une base de données hiérarchique optimisée pour la recherche et la lecture d’informations.
  • Un annuaire LDAP prend la forme d’un arbre, appelé Directory Information Tree, dans lequel on trouve des entrées identifiées de manière unique par un Distinguished Name.
  • Chaque entrée appartient à une ou plusieurs classe d’objet et peut posséder des attributs.
  • Le format LDIF permet de décrire des changements à appliquer à un annuaire LDAP.

Dans la partie suivante, vous utiliserez le format LDIF pour compléter votre DIT et créer votre premier utilisateur.

◁ Précédent | ⌂ Retour au sommaire | Suivant ▷

cours/informatique/sysadmin/gerer_serveur_linux_et_services/140_installer_annuaire_ldap.txt · Dernière modification : 2024/04/26 08:34 de yoann