1. Sujets
  2. Sécurité
  3. L'authentification LDAP (Lightweight Directory Access Protocol), qu'est-ce que c'est ?

L'authentification LDAP (Lightweight Directory Access Protocol), qu'est-ce que c'est ?

CopiedFailedCopier l'URL

Le protocole LDAP (Lightweight Directory Access Protocol) permet aux utilisateurs de rechercher des données, notamment sur des entreprises ou des individus. Il a deux objectifs principaux : stocker des données dans l'annuaire LDAP et authentifier les utilisateurs qui souhaitent accéder à cet annuaire. Il fournit également le langage de communication dont les applications ont besoin pour échanger des informations avec des services d'annuaire. Ces services permettent d'accéder à l'emplacement des données au sein du réseau, par exemple pour se renseigner sur des entreprises ou des individus.

Le protocole LDAP est couramment utilisé pour centraliser l'accès aux services d'annuaire et leur gestion. Les entreprises s'en servent pour stocker, gérer et sécuriser des informations sur elles-mêmes, leurs utilisateurs et leurs ressources, telles que les noms d'utilisateur et les mots de passe. Cette approche simplifie l'accès au stockage grâce à la hiérarchisation des informations, et peut s'avérer essentielle pour les entreprises en plein développement, qui acquièrent de plus en plus de ressources et de données sur les utilisateurs.

Le protocole LDAP peut aussi servir de solution de gestion des identités et des accès pour l'authentification des utilisateurs. Il est notamment compatible avec Kerberos et les technologies d'authentification unique et unifiée (SSO), SASL (Simple Authentication Security Layer) et SSL (Secure Sockets Layer).

Découvrir Red Hat Enterprise Linux

LDAP est le protocole le plus utilisé en association avec le service d'annuaire Microsoft Active Directory (AD), une vaste base de données qui contient des informations sur chaque compte d'utilisateur d'un réseau. Plus précisément, LDAP est une version allégée du protocole Directory Access Protocol qui centralise l'accès aux services d'annuaire utilisant le protocole TCP/IP (Transmission Control Protocol/Internet Protocol) ainsi que leur gestion. La version la plus récente est LDAPv3. 

AD se charge de l'authentification et de la gestion des utilisateurs et des groupes, et permet à un utilisateur ou à un ordinateur de s'authentifier. Cette base de données contient un plus grand volume d'attributs que le protocole LDAP. Toutefois, comme celui-ci a la particularité de pouvoir trouver des objets d'annuaire avec peu d'informations, il n'a pas besoin d'extraire tous ses attributs d'AD ou d'un autre service d'annuaire.

L'objectif principal du protocole LDAP est de communiquer avec les objets (domaines, utilisateurs, groupes, etc.), de les stocker et de les extraire d'AD dans un format qui pourra être utilisé avec son propre annuaire, situé sur le serveur LDAP.

Pour mieux comprendre, on pourrait comparer AD à la plus grande bibliothèque du monde dans laquelle on voudrait chercher un livre dont le titre mentionne des zombies. Dans l'univers de LDAP, les informations telles que le lieu de publication, le nombre de pages ou le contenu du livre importent peu, même si elles peuvent réduire le champ de recherche. Ce protocole agit plutôt comme un bibliothécaire expérimenté qui sait exactement où trouver les éléments qui vont répondre à une demande et garantir le succès de la recherche.

Optimiser la sécurité de Linux avec Red Hat

Voyons le fonctionnement des recherches LDAP et ce qui les déclenche.

Le processus d'authentification LDAP suit un modèle d'authentification client-serveur qui repose sur les éléments clés suivants :

  • Serveur DSA (Directory System Agent) : serveur qui exécute le protocole LDAP sur son réseau
  • Agent DUA (Directory User Agent) : programme informatique qui accède au serveur DSA en tant que client (par exemple, l'ordinateur d'un utilisateur)
  • DN (Distinguished Name) : nom distinctif qui contient un chemin permettant au protocole LDAP de parcourir l'arbre DIT (Directory Information Tree), par exemple, cn=Suzanne, ou=utilisateurs, o=entreprise
  • RDN (Relative Distinguished Name) : nom distinct relatif composé de chaque élément du chemin dans le DN (par exemple : cn=Suzanne)
  • API : interface de programmation d'application qui permet à un produit ou service de communiquer avec d'autres produits et services sans connaître les détails de leur mise en œuvre

Le processus débute lorsqu'un utilisateur essaie d'accéder à un programme client qui fonctionne avec le protocole LDAP, comme une application de messagerie professionnelle, sur son ordinateur. Avec LDAPv3, les utilisateurs peuvent choisir entre deux méthodes d'authentification : l'authentification simple, par exemple via un système SSO avec des informations d'identification, ou l'authentification SASL, qui lie le serveur LDAP à un programme comme Kerberos. La tentative de connexion déclenche l'envoi d'une demande pour authentifier le DN attribué à l'utilisateur. Ce nom est envoyé par le biais de l'API ou du service propre au client qui lance le serveur DSA.

Le client se lie automatiquement au serveur DSA et le protocole LDAP utilise le DN pour rechercher l'objet ou l'ensemble d'objets correspondant dans les enregistrements de la base de données LDAP. Les RDN contenus dans le DN sont très importants lors de cette phase, car ils permettent à LDAP de parcourir l'arbre DIT étape par étape pour trouver l'objet. Tout RDN manquant au niveau du back-end peut affecter la validité du résultat. Dans le cas présent, l'objet que recherche le protocole LDAP est un compte d'utilisateur individuel (cn=Suzanne). L'utilisateur ne peut être validé que si le compte enregistré dans l'annuaire présente les mêmes valeurs uid et userPassword. Les groupes d'utilisateurs sont également identifiés comme des objets dans l'annuaire LDAP.

Dès que l'utilisateur reçoit une réponse (valide ou non), le client supprime sa liaison au serveur LDAP. Les utilisateurs authentifiés sont alors en mesure d'accéder à l'API et à ses services, notamment les fichiers dont ils ont besoin, les informations sur les utilisateurs et d'autres données d'application, en fonction des autorisations accordées par l'administrateur système.

Grâce à sa structure légère et à l'utilisation d'un arbre DIT, le protocole LDAP permet d'exécuter rapidement des recherches et d'obtenir des résultats satisfaisants. Il faut maîtriser la structure de l'arbre DIT pour parcourir efficacement un serveur LDAP et comprendre le fonctionnement des recherches.

L'arbre DIT permet de passer rapidement d'un niveau de l'annuaire LDAP à l'autre afin d'affiner les résultats de recherche et de répondre à la requête. L'arbre part du répertoire racine puis se divise en branches pour les pays, qui se divisent ensuite en deux sous-classes : dc (Domain Component) et o (Organization Name).

dc (Domain Access Component)

Le composant dc (dc=com, dc=exemple) utilise la mise en correspondance DNS (Domain Name System) pour localiser les noms de domaine Internet et les traduire en adresses IP.

La plupart des utilisateurs ne connaissent pas le nom de domaine ou l'adresse IP de l'individu qu'ils recherchent. C'est pourquoi le protocole LDAP utilise le DN attribué à l'utilisateur comme chemin pour parcourir rapidement l'arbre DIT et trouver la réponse. C'est là que la sous-classe o entre en jeu.

o (Organization Name)

La sous-classe o (par exemple, o-Entreprise) est l'une des sous-classes les plus générales du DN. Il s'agit généralement du point de départ pour les recherches LDAP. Par exemple, un chemin simple commence souvent par la sous-classe o, puis se dirige vers la sous-classe ou (Organizational Unit) avant d'atteindre un compte ou un groupe d'utilisateurs.

ou (Organizational Unit)

Comme indiqué ci-dessus, la classe ou est une sous-classe de la classe o. En général, on l'associe aux valeurs ou=utilisateurs ou ou=groupe, qui contiennent respectivement une liste de comptes et une liste de groupes d'utilisateurs. Voici un exemple dans un annuaire :

  • o-Entreprise

    • ou=groupes

      • cn=développeurs

    • ou=utilisateurs

      • cn=Suzanne

cn (Common Name)

Le composant cn est utilisé pour identifier le nom d'un groupe ou d'un compte d'utilisateur individuel (par exemple, cn=développeurs, cn=Suzanne). Puisqu'un utilisateur peut appartenir à un groupe, une développeuse appelée Suzanne pourrait également apparaître dans la classe cn=développeurs.

Attributs et valeurs

Chaque sous-classe de l'arbre DIT LDAP (o, ou, cn) contient des attributs et valeurs, ou des schémas donnant des informations sur la structure d'un annuaire LDAP qui permettent de réduire le champ de recherche. Les attributs ressemblent aux données qu'on pourrait trouver dans un carnet d'adresses, notamment des étiquettes telles que le nom, le numéro de téléphone et l'adresse. Ces attributs sont associés à des valeurs. Par exemple, Suzanne correspond à la valeur de l'attribut nom.

Dans le compte cn=Suzanne, l'identifiant de l'utilisateur (uid) et l'élément userPassword sont des attributs, tandis que les identifiants de connexion sont des valeurs. Cependant, dans un groupe comme cn=développeurs, Suzanne pourrait avoir l'attribut uniqueMember (p. ex. uniqueMember=cn-Suzanne,ou-utilisateurs,o-Entreprise). Cette structure crée un chemin vers l'emplacement où se trouve le compte d'utilisateur individuel de Suzanne, ainsi que vers les informations que recherche le protocole LDAP. L'arbre DIT se termine au niveau du compte d'utilisateur. C'est à ce point que le protocole LDAP finit par extraire les résultats de la recherche.

Il existe de nombreux autres types et syntaxes d'attributs qui peuvent aider à affiner une recherche, notamment l'attribut ObjectClass : organizationalPerson (structurel) ou personal (structurel). Cependant, le nombre d'attributs LDAP est limité afin de conserver la légèreté et la facilité d'utilisation du protocole.

Les équipes d'administration réseau gèrent généralement des milliers d'utilisateurs en même temps. Elles sont donc responsables d'attribuer les contrôles et politiques d'accès en fonction du rôle de l'utilisateur et du niveau d'accès aux fichiers pour toutes les tâches quotidiennes, par exemple pour la connexion à l'intranet de l'entreprise.

Le protocole LDAP permet de simplifier la gestion des utilisateurs, de faire gagner un temps précieux aux équipes d'administration réseau et de centraliser le processus d'authentification. Avant de l'intégrer à l'environnement, il faut tenir compte de certains éléments :

  • Capacité : quelle est la quantité de données de gestion des utilisateurs à stocker ? Les produits qui mettent en œuvre des solutions LDAP doivent offrir une capacité suffisante pour stocker et gérer toutes les données nécessaires.

  • Fréquence de recherche : les utilisateurs doivent-ils accéder à certaines données quotidiennement (intranet d'entreprise, application de messagerie, service, etc.) ? Si tel est le cas, le protocole LDAP est adapté.

  • Organisation : l'arbre DIT simple du protocole LDAP suffira-t-il pour organiser les données, ou faudra-t-il mettre en place un système plus détaillé ?

Même si le protocole LDAP est couramment utilisé dans AD, il peut également servir à authentifier les utilisateurs pour d'autres outils et environnements client, notamment Red Hat Directory Server sous UNIX et l'application Open Source OpenLDAP sous Windows. De plus, les fonctionnalités d'authentification et de gestion des utilisateurs qu'offre LDAP peuvent s'avérer utiles pour la gestion des API, le contrôle d'accès basé sur les rôles ou d'autres applications et services comme Docker et Kubernetes.

Découvrir 8 conseils techniques pour renforcer la sécurité et la conformité

La solution Red Hat® Enterprise Linux® inclut des fonctionnalités de gestion centralisée des identités qui permettent d'authentifier des utilisateurs et de mettre en œuvre le contrôle d'accès basé sur les rôles, via une interface unique et évolutive qui couvre l'ensemble du datacenter.

Avec Red Hat Enterprise Linux, les entreprises peuvent gérer les identités avec toute une gamme de fonctionnalités d'authentification et d'autorisation :

  • Gestion centralisée des identités : Red Hat Enterprise Linux facilite la gestion centralisée des identités, ce qui permet aux entreprises d'appliquer des contrôles de sécurité, de respecter les normes de conformité et de gérer les politiques d'authentification à partir d'une plateforme unique. Elles peuvent ainsi renforcer la cohérence au sein de l'environnement, améliorer l'expérience utilisateur et alléger la charge de travail des équipes informatiques.
  • Fonctions d'authentification multifactorielle et par mot de passe : la solution Red Hat Enterprise Linux inclut l'authentification multifactorielle, ce qui permet d'introduire une deuxième couche de vérification des identités. Elle favorise le développement des architectures Zero Trust en prenant en charge l'authentification sans mot de passe, notamment les protocoles FIDO2/WebAuthn et les tickets Kerberos obtenus par clé d'accès pour les connexions SSH et GDM, permettant d'évoluer vers un système d'authentification adaptatif et résistant face aux attaques par hameçonnage.
  • Intégration du fournisseur d'identité externe : Red Hat Enterprise Linux permet aux utilisateurs de s'authentifier auprès des clients à l'aide du protocole OAuth 2.0 et s'intègre à des fournisseurs d'identité externes tels que Keycloak, Entra ID (Azure AD) et GitHub. Les processus d'authentification et d'autorisation peuvent ainsi être délégués à des entités externes, ce qui améliore la flexibilité et l'interopérabilité au sein d'environnements informatiques hétérogènes.
  • Gestion complète des politiques et des certificats : avec Red Hat Enterprise Linux, les entreprises bénéficient d'une gestion personnalisée des politiques de sécurité, notamment le contrôle d'accès basé sur les rôles. Elles peuvent ainsi déléguer l'administration du serveur de gestion des identités et des règles sudo personnalisées afin d'éviter l'augmentation des privilèges. La solution fournit également des outils robustes de gestion des certificats qui automatisent l'ensemble de leur cycle de vie : suivi des dates d'expiration, renouvellement en temps utile et utilisation de l'authentification par infrastructure à clé publique pour vérifier les identités de confiance, élément clé de l'architecture Zero Trust.
  • Automatisation et orchestration avec les rôles système : à l'aide des rôles système Red Hat utilisés avec Ansible Automation Platform, Red Hat Enterprise Linux automatise la configuration et la gestion de la sécurité. Les processus automatisés assurent la cohérence et la conformité dans tous les environnements, que ce soit dans le cloud ou sur site. De plus, ils réduisent le nombre d'interventions manuelles et les risques d'erreurs de configuration. Les rôles système font partie de la couche d'automatisation et d'orchestration du framework d'architecture Zero Trust de la CISA.

En savoir plus sur la sécurité de Red Hat Enterprise Linux

Nous proposons également le module complémentaire Red Hat Directory Server pour répondre aux besoins plus spécifiques.

Red Hat Directory Server est un annuaire évolutif basé sur LDAP pour les environnements vastes et diversifiés. Il permet de remplacer partiellement et temporairement les solutions LDAP tierces coûteuses ainsi que de gérer des topologies d'annuaires distribuées et complexes à l'aide d'un large éventail d'options de réplication. Il offre aussi davantage de flexibilité, avec la possibilité de personnaliser les attributs et schémas pour les données d'annuaire.

Le blog officiel de Red Hat

Découvrez les dernières informations concernant notre écosystème de clients, partenaires et communautés.

Tous les essais de produits Red Hat

Profitez de nos essais gratuits de produits pour renforcer votre expérience pratique, préparer une certification ou évaluer l'adéquation d'un produit avec les besoins de votre entreprise.

En savoir plus

L'automatisation de la sécurité, qu'est-ce que c'est ?

L'automatisation de la sécurité consiste à utiliser des technologies pour réaliser des tâches avec une intervention humaine limitée, afin d'intégrer les processus, les applications et l'infrastructure en lien avec la sécurité.

Le DevSecOps, qu'est-ce que c'est ?

Pour tirer pleinement parti de l'agilité et de la réactivité d'une approche DevOps, il est nécessaire d'intégrer la sécurité informatique au cycle de vie complet des applications.

Approches Shift Left et Shift Right

Les approches Shift Left et Shift Right consistent à mettre en œuvre des tests continus à chaque étape du cycle de développement logiciel.

Sécurité : ressources recommandées

Articles associés