Des noms distinctifs à l’authentification des utilisateurs



Il est fréquent que les entreprises utilisent le protocole LDAP (Lightweight Directory Access Protocol) pour la gestion, le stockage et l’authentification de leurs utilisateurs essentiels.

Toutefois, cela peut induire en erreur, car il est parfois confondu avec Active Directory.

Cet article a pour objectif d’éclairer le fonctionnement de LDAP, son rôle et son mode opératoire. Nous explorerons ensuite ses fonctionnalités clés, sa structure de répertoires et ses mécanismes d’organisation des données. Enfin, nous mettrons en évidence l’importance de LDAP dans la gestion des services d’annuaire et l’authentification des utilisateurs.

Qu’est-ce que LDAP ?

LDAP, acronyme de Lightweight Directory Access Protocol, est un protocole ouvert régissant l’authentification sécurisée des utilisateurs pour les annuaires sur site. Ce protocole applicatif, indépendant de tout fournisseur, est polyvalent et largement utilisé, en particulier dans les services d’informations d’annuaire distribués sur Internet.

LDAP excelle dans sa capacité à permettre aux applications de requêter des informations sur les utilisateurs. Il est ainsi compatible avec divers services d’infrastructure informatique, comme les services de messagerie, l’autorisation, la gestion des licences et la gestion des utilisateurs.

Cependant, il est crucial de ne pas le confondre avec les services Active Directory, un ensemble de services et de bases de données utilisés par les entreprises pour organiser, sécuriser et accéder à leurs ressources informatiques. Ces services d’annuaire permettent en effet aux organisations de stocker des données descriptives, statiques et précieuses.

Techniquement, LDAP est intrinsèquement lié au processus de représentation des données au sein d’un service d’annuaire. Il garantit que les utilisateurs peuvent obtenir des données de manière standardisée. En d’autres termes, LDAP permet aux organisations de créer des entrées de données dans les services d’annuaire via ses outils.

Ainsi, au sein d’un Active Directory, LDAP garantit également la structuration des entrées en fonction des différents éléments constitutifs décrits.

En résumé, LDAP est un :

  • Protocole de communication
  • Protocole d’application ouvert et indépendant des fournisseurs
  • Protocole logiciel utilisé pour le stockage et l’organisation des données afin de faciliter leur recherche
  • Protocole fonctionnant avec des répertoires sur site
  • Protocole fonctionnant avec Active Directory, qui contient des données statiques, descriptives et précieuses
  • Protocole existant depuis 2003

Quel est son objectif ?

L’objectif de LDAP est double :

  • Stocker les données dans un répertoire LDAP/Active
  • Authentifier l’accès des utilisateurs à ce répertoire
  • Permettre aux applications d’utiliser un langage de communication approprié pour échanger des données avec les services d’annuaire.

En d’autres termes, LDAP sert de protocole de communication, non seulement capable d’authentification et d’autorisation, mais aussi d’organisation des données de manière à faciliter leur recherche. Grâce à LDAP, les organisations peuvent stocker des informations cruciales sur les utilisateurs et les actifs informatiques, notamment les informations d’identification. Il assure également un accès sécurisé en permettant aux administrateurs de définir activement des règles d’accès.

Comment fonctionne LDAP ?

LDAP repose sur une architecture client-serveur.

Ainsi, l’authentification LDAP suit un modèle client-serveur, où les principaux acteurs sont les suivants :

  • Directory System Agent (DSA) : serveur exécutant LDAP sur un réseau spécifique.
  • Le nom distinctif (DN) : chemin de navigation dans l’arborescence d’informations d’annuaire (DIT).
  • Directory User Agent (DUA) : client utilisé pour accéder aux DSA.
  • Nom distinctif relatif (RDN) : composant spécifique du chemin du DN.
  • Interface de programmation d’application (API) : interface de communication entre les services et les produits.

Lors du processus d’authentification LDAP, lorsqu’un utilisateur lance un programme client LDAP, tel qu’une application de messagerie, l’administrateur peut configurer la manière dont le client LDAP interagira avec les services d’annuaire pour l’authentification. Par exemple, il peut utiliser l’une des deux méthodes d’authentification disponibles :

Lors d’une tentative de connexion, l’authentification DN est sollicitée. Une fois le processus lancé, LDAP dirige le client vers l’agent de système d’annuaire (DSA), qui utilise le DN pour rechercher les enregistrements correspondants dans la base de données.

Le nom distinctif relatif (RDN) au sein du DN est essentiel à la recherche LDAP, car il est utilisé à chaque étape du processus de recherche dans l’arborescence d’informations d’annuaire (DIT).

Si la recherche aboutit, l’UID et le mot de passe de l’utilisateur sont comparés pour valider l’utilisateur. Dans le cas contraire, la connexion est refusée.

Enfin, le client se déconnecte du serveur LDAP. Une fois cette étape franchie, l’utilisateur authentifié peut interagir avec les services via les API. Il peut alors accéder à toutes les informations stockées, dans la limite des autorisations qui lui sont accordées.

Pour approfondir le fonctionnement de LDAP, vous pouvez consulter l’article publié en 2003 par Greg Vaneder et Mark Wahl, ainsi que l’article dédié aux opérations de recherche LDAP.

Fonctionnalités clés de LDAP

Les fonctionnalités clés de LDAP peuvent être résumées comme suit :

  • Authentification des sessions utilisateur : LDAP est utilisé pour authentifier les sessions utilisateur auprès d’un service de base de données tel qu’Active Directory.
  • Diverses opérations : LDAP est capable d’effectuer des opérations sur une base de données de serveur d’annuaire, incluant :
    • Les sessions de liaison
    • La suppression d’entrées LDAP
    • La modification d’entrées existantes
    • La recherche et la comparaison d’entrées
    • Les demandes d’abandon
    • Les opérations de déliaison
  • Légèreté : LDAP est un protocole léger qui ne surcharge pas les ressources réseau et système.
  • Indépendance du fournisseur et du protocole : LDAP est indépendant du fournisseur et du protocole, ce qui signifie qu’il est compatible avec n’importe quel fournisseur, solution ou protocole. Il peut par exemple être utilisé sur TCP/IP ou X.25. Toutefois, la dernière version de LDAP, LDAPv3, utilise TCP/IP.
  • Structure de répertoire : LDAP utilise une arborescence de répertoires pour stocker et accéder aux ressources d’une base de données d’annuaires. La relation parent-enfant facilite la recherche et la récupération.
  • Standardisation : LDAP est standardisé par l’IETF (Internet Engineering Task Force), garantissant son fonctionnement sur différentes solutions.
  • Sécurité : LDAP est sécurisé. Il assure la sécurité en utilisant TLS sur la couche TCP/IP. Il peut également utiliser Secure Socket (SSL) pour chiffrer, déchiffrer et transférer des informations à distance avec intégrité et confidentialité.
  • Réplication : LDAP prend également en charge la réplication sur plusieurs serveurs. Il assure ainsi la redondance des données et leur disponibilité en cas de panne, en utilisant Syncrepl, un moteur de réplication Sync.

Structure de l’annuaire LDAP

L’annuaire LDAP possède une structure propre et définie, facilitant l’accès aux données et améliorant la capacité de recherche du contenu.

La structure de LDAP étant arborescente, elle est hiérarchique. C’est pourquoi elle est principalement désignée par l’acronyme DIT (Directory Information Tree).

Les différents niveaux de la structure d’annuaire LDAP sont les suivants :

  • Répertoire racine
  • Organisation

Comme vous pouvez le constater, l’annuaire LDAP est structuré en arborescence. Le répertoire « racine » est une entrée de niveau supérieur qui englobe toutes les autres entrées du répertoire. En dessous, on trouve les Pays, qui se divisent ensuite en Organisations, puis en Unités Organisationnelles (UO), et enfin en Individus et Groupes.

Pour bien comprendre la structure du répertoire LDAP, prenons l’exemple suivant :

 - Root (Entrée de niveau supérieur)
   |
   +-- Pays: "dc=com" (par ex. dc=exemple,dc=com)
         |
         +-- Organisation: "dc=exemple" (par ex. dc=exemple)
               |
               +-- Unité Organisationnelle (OU): "ou=Utilisateurs"
               |      |
               |      +-- Utilisateur: "cn=Nitish Singh"
               |      |
               |      +-- Utilisateur: "cn=Oliver Green"
               |
               +-- Unité Organisationnelle (OU): "ou=Groupes"
                      |
                      +-- Groupe: "cn=Admins"
                      |
                      +-- Groupe: "cn=Utilisateurs"
		|
		+-- Groupe: “cn=Superutilisateurs”

L’entité racine est identifiée par DC, qui correspond à l’attribut Domain Component. Ainsi, si « dc=com », l’entrée racine est identifiée comme le domaine « com ».

Sous la racine, peuvent se trouver plusieurs organisations ou domaines, représentés par « dc=organisation » sous le domaine « com ».

De même, chaque organisation peut comporter une ou plusieurs unités organisationnelles (UO), qui sont des subdivisions logiques, telles que « utilisateurs », « groupes » ou « superutilisateurs ».

Enfin, sous chaque unité organisationnelle, peuvent être répertoriées différentes entrées, notamment des groupes, des appareils, des utilisateurs, etc. Dans notre exemple, les deux valeurs d’utilisateurs de l’unité organisationnelle incluent « Nitish Singh » et « Oliver Green », et sous OU Groupes, on trouve « Admins », « Utilisateurs » et « Superutilisateurs ».

La structure du répertoire LDA dépend fortement du nom distinctif (DN), utilisé pour identifier chaque entrée. Il contient un nom unique permettant de récupérer le nom distinctif relatif (RDN).

Éléments communs de LDAP

Pour comprendre l’organisation des données LDAP, il est nécessaire de connaître les éléments communs de LDAP, qui sont à la base de la construction des entrées du système LDAP.

Les principaux composants de données LDAP sont les suivants :

  • Attributs
  • Entrées
  • Arborescences d’informations sur les données

Les attributs

Les attributs dans LDAP sont des paires clé-valeur. Ils sont utilisés pour stocker les données dans le système LDAP. L’attribut mail, par exemple, est utilisé pour stocker l’adresse e-mail dans le système LDAP.

email: [email protected]

Entrées

Les entrées du système LDAP s’associent aux attributs pour donner du sens. Elles peuvent être considérées comme une collection d’attributs associés.

Par exemple, les données au format LDIF (LDAP Data Interchange Format) se présentent comme suit :

dn: sn=Poudlard, ou=sorciers, dc=MondeDesSorciers, dc=fiction

objectclass: sorcier

sn: Poudlard

cn: Harry Potter

Arborescences d’informations sur les données

Les arbres d’informations de données, ou DIT, permettent de représenter et d’accéder aux données dans un système LDAP. La plupart des données étant ramifiées, il est logique de les représenter sous forme d’arbres, à l’image d’un système de fichiers avec une association parent-enfant.

Organisation des données LDAP

Maintenant que nous avons une idée des entités de base, nous pouvons explorer l’organisation des données au sein du système LDAP.

LDAP utilise le DIT pour organiser et structurer les données. Comment procède-t-il ? Découvrons-le ensemble.

Les entrées sont placées dans un DIT en étant liées les unes aux autres de manière hiérarchique. Ainsi, lors de la création d’une nouvelle entrée, elle est ajoutée à la structure arborescente en tant qu’enfant d’une entrée existante.

Tout commence au sommet de l’arborescence hiérarchique du DIT, qui couvre toutes les entrées enfants et est principalement étiquetée comme une organisation, par exemple « dc=com » ou « exemple ». Des composants de domaine sont utilisés pour faciliter la gestion. L’administrateur peut ainsi définir l’emplacement à l’aide de « l=nom_de_lieu » ou de segments organisationnels, tels que « ou=tech », « marketing », etc.

Les entrées utilisent objectClass d’unité organisationnelle (OU). C’est parce que les entrées peuvent utiliser l’étiquette d’attribut « ou= ». Elles sont simples et constituent un excellent moyen de catégoriser et de trouver des informations dans le DIT.

Vient ensuite un autre concept important, le nom distinctif relatif, qui est le nom relatif d’un élément en fonction de son niveau hiérarchique DIT. Pour accéder à une entrée, il faut donc saisir les valeurs RDN de l’entité ainsi que la valeur RDN du parent.

Cela crée une chaîne de valeurs RDN, allant de bas en haut, constituant un chemin vers cette entrée. Cette chaîne de valeurs RDN est appelée « nom distinctif » ou « DN ».

En d’autres termes, lors de la création d’une entrée, il est nécessaire de mentionner le DN pour que LDAP sache précisément où placer la nouvelle ressource ou information. Le RDN agit ainsi comme une valeur relative, tandis que le DN est un chemin absolu.

Importance de LDAP

Dans cette section, nous allons explorer l’importance de LDAP sous deux angles :

  • Gestion du service d’annuaire : le protocole LDAP dispose des moyens appropriés pour stocker et accéder aux données de l’annuaire LDAP. Nous en avons parlé précédemment dans les sections « Fonctionnement de LDAP et des composants de données » et « Organisation ». LDAP est un moyen de gérer, stocker, accéder et sécuriser les données. Il assure également une recherche efficace des informations. De plus, il offre évolutivité et réplication.
  • Authentification des utilisateurs : outre la gestion des services d’annuaire, LDAP excelle dans l’authentification et l’autorisation des utilisateurs. Une fois la connexion établie, l’utilisateur peut accéder aux ressources stockées en fonction des règles d’accès définies par l’administrateur.

LDAP contre Active Directory

Il est fréquent de confondre LDAP et Active Directory. LDAP et Active Directory de Microsoft collaborent étroitement pour fournir aux organisations un moyen de stocker et d’accéder en toute sécurité aux données de tous les services.

Ainsi, LDAP est un protocole, tandis qu’Active Directory est un produit de service d’annuaire qui stocke les données organisationnelles dans une structure arborescente.

LDAP agit comme un protocole de communication pour accéder aux serveurs d’annuaire tels qu’Active Directory.

Conclusion

LDAP est un protocole clé pour utiliser les services Active Directory. Il s’agit d’un protocole léger qui ne surcharge pas les services et les serveurs avec lesquels il interagit. De plus, sa nature open source, indépendante des fournisseurs et standardisée lui permet d’être facilement intégré à des solutions existantes.

Vous pouvez également explorer l’authentification multi-facteurs (MFA).