====== LDAP : Lightweight Directory Access Protocol ====== ===== Introduction : ===== * 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 (email, 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. ===== Notions de base : ===== 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. 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) | Le prénom 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.) dn (distinguished name) | Le nom distinct. C’est un attribut qui identifie de manière unique un élément dans le DIT. RDN (Relative Distinguished Name) | Ne garantit pas l'unicité dans le DIT ===== Installez OpenLDAP : ===== - OpenLDAP est un des annuaires les plus répandus. Pour l’installer, vous devrez installer le paquet slapd : 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. - Configuration : sudo dpkg-reconfigure slapd - No pour la première question afin de pouvoir utiliser l’outil de configuration. - Nom DNS : mon-entreprise.com - Nom d’organisation : mon-entreprise - Mot de passe administrateur x2 - 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 - Pour tester : sudo ldapsearch -Q -L -Y EXTERNAL -H ldapi:/// -b dc=mon-entreprise,dc=com 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 noeud, | vous auriez pu indiquer des filtres pour votre recherche mais sans filtre vous avez l’affichage le plus complet. ===== 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: changetype: : valeur