Le protocole LDAP est un protocole d'identité fondamental depuis le début des années 1990, époque à laquelle il a été développé comme une alternative plus légère au protocole d'accès aux annuaires X.500. Il reste aujourd'hui intégré à la plupart des environnements d'entreprise et continue de servir de base aux services d'authentification et d'annuaire, même alors que les organisations adoptent des solutions d'identité dans le cloud.
Le protocole LDAP fonctionne selon un modèle client-serveur dans lequel un client LDAP envoie des requêtes à un serveur d'annuaire, qui stocke et renvoie des informations provenant d'un annuaire centralisé. La communication s'effectue via le protocole TCP/IP, généralement sur le port 389 pour les connexions standard ou sur le port 636 pour le protocole LDAPS (LDAP sur SSL/TLS).
Dans les grandes lignes, un échange LDAP se déroule en quatre étapes :
- Se connecter :Le client établit une session TCP avec le serveur LDAP.
- Reliure : Le client s'authentifie auprès du serveur, soit de manière anonyme, soit à l'aide d'identifiants.
- Demande :Le client envoie une opération, telle qu'une requête de recherche ou de modification, au répertoire.
- Réponse :Le serveur renvoie les données demandées ou un code d'état, puis le client finit par envoyer une commande « unbind » pour fermer la session.
Le serveur organise ses données selon une arborescence hiérarchique et prend en charge un ensemble défini d'opérations, notamment la liaison, la recherche, la comparaison, l'ajout, la modification, la suppression et la déliaison. C'est ce modèle d'accès partagé en temps réel qui fait du protocole LDAP une solution particulièrement adaptée aux environnements dans lesquels de nombreuses applications doivent interroger la même source faisant autorité pour obtenir des données d'identité.
La structure du répertoire LDAP
Un annuaire LDAP stocke des informations dans une arborescence hiérarchique appelée « arborescence d'informations d'annuaire » (DIT). Chaque entrée de cette arborescence représente un objet (tel qu'un utilisateur, un groupe ou un périphérique) et est identifiée par un nom distinctif (DN) unique qui décrit sa position dans la hiérarchie.
Le DN est constitué d'une série d'éléments classés du plus spécifique au plus général :
- cn(nom courant), comme le nom complet d'une personne
- ou(unité organisationnelle), telle qu'un service
- dc(composant de domaine), comme certaines parties d'un nom de domaine
Par exemple, le DN « cn=John Smith,ou=Engineering,dc=example,dc=com » identifie un utilisateur nommé John Smith au sein de l'unité organisationnelle « Engineering » du domaine example.com.
Opérations LDAP
Le protocole LDAP définit un ensemble restreint d'opérations normalisées qui couvrent l'intégralité du cycle de vie de l'interaction d'un client avec un annuaire, depuis l'authentification jusqu'aux opérations de lecture et d'écriture, en passant par la fermeture de la session.
- Lier: authentifie le client auprès du serveur d'annuaire et établit une session authentifiée. C'est l'opération de liaison qui permet d'utiliser LDAP comme mécanisme d'authentification, car une liaison réussie confirme que les identifiants fournis correspondent à une entrée valide dans l'annuaire.
- Recherche: recherche dans l'annuaire les entrées correspondant à des critères spécifiques, à l'aide d'une syntaxe de filtrage permettant de définir les attributs et les valeurs à renvoyer. La recherche est l'opération LDAP la plus couramment utilisée ; elle est à l'origine de cas d'utilisation tels que la recherche d'utilisateurs, la vérification de l'appartenance à un groupe et la navigation dans l'annuaire.
- Comparer: vérifie si la valeur d'un attribut donné correspond à celle stockée pour une entrée donnée, en renvoyant une réponse « vrai » ou « faux » sans révéler la valeur stockée elle-même. La fonction « compare » est souvent utilisée pour des tâches de vérification simples ne nécessitant pas une recherche complète.
- Ajouter: crée une nouvelle entrée dans l'annuaire à un emplacement spécifié de l'arborescence. Les opérations d'ajout sont couramment utilisées lors de la gestion des utilisateurs, lorsque de nouveaux comptes, groupes ou périphériques doivent être enregistrés dans l'annuaire.
- Modifier: met à jour les attributs d'une entrée existante, ce qui permet d'effectuer des modifications telles que la réinitialisation d'un mot de passe, la mise à jour de l'appartenance à un groupe ou la modification d'un profil. La fonction « Modifier » permet d'ajouter, de remplacer et de supprimer des valeurs d'attributs individuelles au sein d'une entrée.
- Modifier le DN: permet de renommer une entrée ou de la déplacer vers un autre emplacement dans l'arborescence des répertoires. La fonction « Modifier le DN » est utilisée lorsque les structures organisationnelles évoluent, par exemple lorsqu'un utilisateur change de service ou qu'une unité organisationnelle fait l'objet d'une restructuration.
- Supprimer: supprime une entrée du répertoire. La commande « Delete » est généralement utilisée lors du désapprovisionnement, lorsque des comptes ou des ressources sont désactivés et que leurs enregistrements dans le répertoire doivent être supprimés.
- Désenchaîner: ferme la session client et met fin à la connexion au serveur. Bien que son nom laisse entendre qu’il annule une liaison, la commande « unbind » indique en réalité que le client a terminé son activité et libère les ressources associées du serveur.
- Opérations étendues: il s'agit d'un cadre permettant aux fournisseurs et aux organismes de normalisation de définir des opérations supplémentaires allant au-delà de l'ensemble de base. StartTLS, qui transforme une connexion LDAP standard en une connexion chiffrée, est l'une des opérations étendues les plus couramment utilisées.
Le protocole LDAP est utilisé dans les environnements d'entreprise pour centraliser les données d'identité et permettre un accès cohérent à ces données depuis plusieurs applications et services. Parmi les cas d'utilisation courants, on peut citer :
- Authentification centralisée: validation des identifiants des utilisateurs pour de nombreuses applications à partir d'un annuaire unique, ce qui permet de limiter la prolifération des mots de passe et de réduire la charge administrative
- Gestion des utilisateurs et des groupes: le stockage et l'organisation des fiches relatives aux salariés, aux prestataires et aux comptes système, ainsi que des groupes et des droits d'accès qui leur sont associés
- Carnet d'adresses et recherche de contacts: permettre aux clients de messagerie et aux outils de collaboration d'interroger l'annuaire de l'entreprise pour obtenir des informations de contact
- Gestion des appareils et des ressources: suivi des ressources réseau telles que les imprimantes, les serveurs et les espaces de stockage partagés
- Principes fondamentaux de l'authentification unique: servant de source d'identité sous-jacente que les systèmes d'authentification unique (SSO) utilisent pour vérifier l'identité des utilisateurs et récupérer les attributs de leur profil
L'authentification LDAP est le processus par lequel une application vérifie l'identité d'un utilisateur en établissant une connexion à un annuaire LDAP à l'aide des identifiants fournis par ce dernier. Si l'annuaire confirme que ces identifiants correspondent à une entrée valide, l'utilisateur est authentifié et se voit accorder l'accès à l'application qui en a fait la demande.
Le processus d'authentification LDAP se déroule généralement comme suit :
- L'utilisateur saisit ses identifiants (généralement un nom d'utilisateur et un mot de passe) dans une application.
- L'application envoie une requête de connexion LDAP au serveur d'annuaire contenant ces identifiants.
- Le serveur LDAP localise l'entrée de l'utilisateur dans l'arborescence du répertoire à l'aide de l'identifiant fourni.
- Le serveur compare le mot de passe saisi aux identifiants enregistrés pour cette entrée.
- Le serveur renvoie une réponse indiquant la réussite ou l'échec de l'opération à l'application.
- En cas de réussite, l'application autorise l'utilisateur à accéder à la ressource demandée.
Liaison simple vs liaison SASL
Le protocole LDAP prend en charge deux mécanismes de liaison principaux, et le choix entre ces deux mécanismes a des implications importantes en matière de sécurité quant à la manière dont les identifiants sont transmis et vérifiés lors de l'authentification.
A liaison simple transmet le nom d'utilisateur et le mot de passe directement au serveur, qui envoie ces identifiants en clair, sauf si la connexion est protégée par le protocole TLS (comme c'est le cas avec LDAPS ou StartTLS).
A Liaison SASL (Simple Authentication and Security Layer) prend en charge des mécanismes d'authentification plus robustes, notamment Kerberos, les certificats clients et d'autres méthodes modulaires, et est privilégié dans les environnements où l'exposition des identifiants constitue un risque.
On confond souvent LDAP et Active Directory, mais il ne s'agit pas de technologies concurrentes. LDAP est un protocole ouvert permettant d'accéder à des informations d'annuaire, tandis qu'Active Directory est un produit de service d'annuaire Microsoft qui utilise LDAP comme l'une de ses méthodes d'accès prises en charge.
En termes simples, Active Directory utilise le protocole LDAP, mais LDAP n'est pas Active Directory. De nombreux services d'annuaire autres que Microsoft, notamment OpenLDAP, 389 Directory Server et Oracle Internet Directory, implémentent également le protocole LDAP.
LDAP, SAML et OAuth sont des protocoles apparentés mais distincts qui répondent à des besoins différents dans le domaine plus large de la gestion des identités et des accès.
- LDAPgère l'accès aux annuaires et l'authentification, généralement pour les ressources sur site et les applications internes. Il s'agit d'un protocole permettant d'interroger et de modifier un annuaire, et il peut effectuer l'authentification via l'opération « bind ».
- SAML (Security Assertion Markup Language) permet l'authentification fédérée dans le cadre d'une authentification unique sur le Web, en échangeant des assertions d'authentification et d'autorisation entre un fournisseur d'identité et un fournisseur de services. Il est couramment utilisé pour permettre aux utilisateurs de se connecter à des applications cloud et SaaS.
- OAuth Il s'agit d'un protocole d'autorisation qui permet à des applications tierces d'obtenir un accès limité aux ressources d'un utilisateur sans divulguer ses identifiants. Il définit ce qu'une application peut faire au nom d'un utilisateur, et non l'identité de ce dernier.
De nombreux environnements modernes s'appuient sur ces trois technologies : LDAP comme annuaire sous-jacent pour les données utilisateur, SAML pour l'authentification unique fédérée (SSO) vers les applications cloud, et OAuth pour l'accès délégué aux API. Pour mieux comprendre comment les couches d'authentification et de gouvernance fonctionnent ensemble, consultez l'article de RSA sur Gouvernance des identités et gestion des identités et des accès (IAM) .
Le protocole LDAP reste largement déployé et n'est pas en passe d'être remplacé en bloc, même si les entreprises adoptent de plus en plus des fournisseurs d'identité dans le cloud et des applications SaaS. La plupart des environnements d'entreprise continuent de s'appuyer sur les annuaires LDAP existants comme source de référence pour les données utilisateur, et les plateformes IAM modernes sont généralement conçues pour s'intégrer à ces annuaires plutôt que pour les remplacer.
La tendance actuelle est aux architectures hybrides dans lesquelles les annuaires LDAP coexistent avec des fournisseurs d'identité dans le cloud, des plateformes d'authentification unique (SSO) et des couches d'authentification multifactorielle. Plutôt que de se contenter d’une simple connexion LDAP pour accorder l’accès, les entreprises intègrent de plus en plus souvent à l’authentification LDAP des contrôles supplémentaires, notamment l’authentification multifactorielle, l’authentification sans mot de passe, l’authentification adaptative, les décisions d’accès basées sur le risque et la vérification continue. Cette approche par couches permet de préserver les investissements existants dans les annuaires tout en traitant les risques liés aux identifiants qu’une simple connexion LDAP ne peut pas atténuer.
RSA’s solutions de gestion des identités et des accès s'intégrer aux annuaires LDAP existants afin d'ajouter des mécanismes d'authentification et de contrôle d'accès modernes à une infrastructure existante. RSA étend l'authentification basée sur LDAP avec l'authentification multifactorielle (MFA), des options sans mot de passe et un accès basé sur les risques, permettant ainsi aux entreprises de renforcer la sécurité des identités sans avoir à remplacer les services d'annuaire dont elles dépendent déjà.
Par défaut, LDAP ne crypte pas le trafic, et les connexions LDAP standard transmettent les identifiants de connexion en clair. LDAP devient sécurisé lorsqu’il est déployé avec LDAPS ou StartTLS pour chiffrer la connexion, en combinaison avec des mécanismes d’authentification robustes tels que SASL et des contrôles supplémentaires comme l’authentification multifactorielle. Sans ces protections, LDAP est vulnérable aux attaques par interception et injection d’identifiants.
Le protocole LDAP utilise le port TCP 389 pour les connexions standard non chiffrées et le port TCP 636 pour le protocole LDAPS, qui chiffre les communications à l'aide des protocoles SSL/TLS. Le protocole StartTLS constitue une alternative qui s'initie sur le port 389 et fait passer la connexion à une session chiffrée. Les services de catalogue global d'Active Directory utilisent les ports 3268 et 3269 pour leur équivalent chiffré.
Le protocole LDAP transmet les données via une connexion TCP non chiffrée sur le port 389, ce qui expose les identifiants et les requêtes d'annuaire à une interception. Le protocole LDAPS encapsule ce même protocole LDAP dans un canal chiffré SSL/TLS sur le port 636, protégeant ainsi la connexion contre l'écoute clandestine et la falsification. LDAPS est généralement requis dans les environnements où des données d'annuaire sensibles ou du trafic d'authentification transitent par des réseaux non fiables.
Oui, le protocole LDAP reste largement utilisé dans les environnements d’entreprise. Il continue de servir de protocole d’annuaire sous-jacent pour Active Directory, OpenLDAP et d’autres services d’annuaire, et on continue de s’y fier pour l’authentification, la gestion des utilisateurs et les recherches dans l’annuaire, tant dans les architectures sur site que dans les architectures hybrides. Les plateformes d’identité dans le cloud s’intègrent généralement au protocole LDAP plutôt que de le remplacer.
Une requête LDAP est une demande de recherche envoyée par un client LDAP à un serveur d'annuaire afin de récupérer les entrées correspondant à des critères spécifiques. Les requêtes utilisent une syntaxe de filtrage définie, telle que (&(objectClass=user)(department=Engineering)), pour préciser quels attributs et quelles valeurs doivent être renvoyés. Les applications utilisent les requêtes LDAP pour rechercher à grande échelle des utilisateurs, des groupes et d'autres objets d'annuaire.
Oui, LDAP peut prendre en charge les applications cloud grâce à la synchronisation des annuaires, aux offres « LDAP-as-a-service » ou à l'intégration avec des fournisseurs d'identité cloud qui fédèrent l'authentification vers des annuaires LDAP sur site. De nombreuses entreprises utilisent SAML ou SCIM en complément de LDAP pour relier les annuaires sur site aux applications SaaS, tout en conservant LDAP comme source d'identité de référence.