Protocoles d’authentification : LDAP vs Kerberos vs OAuth2 vs SAML vs RADIUS
L’authentification des utilisateurs dans les applications est l’un des plus grands défis actuels auxquels le département informatique est confronté. Il y a beaucoup de systèmes différents auxquels un utilisateur doit avoir accès, et c’est pourquoi la plupart des protocoles d’authentification sont généralement des normes ouvertes.
En lisant les questions sur les protocoles d’authentification sur Stack Overflow, il devient assez clair que cela peut être un sujet confus et accablant.
Dans ce billet de blog, nous présentons les cinq protocoles d’authentification les plus couramment utilisés et expliquons comment ils fonctionnent et leurs avantages.
LDAP
LDAP (Lightweight Directory Access Protocol) est un protocole logiciel permettant à quiconque de localiser des organisations, des individus et d’autres ressources telles que des fichiers et des périphériques dans un réseau, que ce soit sur l’Internet public ou sur un intranet d’entreprise.
Il est juste de dire que LDAP est devenu un programme populaire. Il a servi de base sur laquelle Microsoft a construit Active Directory, et a joué un rôle déterminant dans le développement des annuaires actuels basés sur le cloud (également connus sous le nom de Directories-as-a-Service).
LDAP envoie des messages entre les serveurs et les applications client qui peuvent inclure tout, des demandes du client au formatage des données.
A un niveau fonctionnel, LDAP fonctionne en liant un utilisateur LDAP à un serveur LDAP. Le client envoie une requête d’opération qui demande un ensemble particulier d’informations, comme les identifiants de connexion de l’utilisateur ou d’autres données organisationnelles. Le serveur LDAP traite alors la requête en fonction de son langage interne, communique avec les services d’annuaire si nécessaire, et répond. Lorsque le client reçoit la réponse, il se détache du serveur et traite les données en conséquence.
Kerberos
Kerberos est un protocole d’authentification réseau. Il est conçu pour fournir une authentification forte pour les applications client/serveur en utilisant la cryptographie à clé secrète. Une implémentation libre de ce protocole est disponible auprès du Massachusetts Institute of Technology. Kerberos est également disponible dans de nombreux produits commerciaux.
Voici les étapes les plus basiques effectuées pour s’authentifier dans un environnement Kerberisé.
- Le client demande un ticket d’authentification (TGT) au centre de distribution de clés (KDC).
- Le KDC vérifie les informations d’identification et renvoie un TGT crypté et une clé de session.
- Le client demande à accéder à une application sur un serveur. Une demande de ticket pour le serveur d’application est envoyée au KDC qui se compose du TGT du client et d’un authentifiant.
- Le KDC renvoie un ticket et une clé de session à l’utilisateur.
- Le ticket est envoyé au serveur d’application. Une fois le ticket et l’authentifiant reçus, le serveur peut authentifier le client.
- Le serveur répond au client avec un autre authentifiant. A la réception de cet authentifiant, le client peut authentifier le serveur.
Oauth 2
OAuth 2 est un cadre d’autorisation qui permet aux applications d’obtenir un accès limité aux comptes d’utilisateurs sur un service HTTP, comme Facebook, GitHub et DigitalOcean.
Voici une description des étapes de base du processus d’autorisation :
- L’application demande à l’utilisateur l’autorisation d’accéder aux ressources du service.
- Si cet utilisateur approuve, alors l’application reçoit un octroi d’autorisation.
- L’application demande un jeton d’accès au serveur d’autorisation (API). Pour ce faire, elle présente son identité et l’octroi d’autorisation.
- Si l’identité de l’application est authentifiée et que l’octroi d’autorisation est valide, l’API émet un jeton d’accès à l’application. L’autorisation est terminée.
- L’application demande la ressource à l’API et présente le jeton d’accès pour authentification.
- Si le jeton d’accès est valide, l’API sert la ressource à l’application.
SAML
Security Assertion Markup Language (SAML) est un format de données standard ouvert basé sur XML pour échanger des données d’authentification et d’autorisation entre parties, en particulier entre un fournisseur d’identité et un fournisseur de services. SAML est un produit du comité technique des services de sécurité OASIS.
JumpCloud est l’un des meilleurs fournisseurs de Single Sign-On (SSO) qui prend en charge les protocoles d’authentification SAML. Le SSO de JumpCloud fournit des intégrations SAML avec 700 applications d’entreprise populaires (y compris Kisi) et des fonctions de gestion automatisée du cycle de vie des utilisateurs comme le provisionnement juste à temps (JIT) et le provisionnement/déprovisionnement SCIM.
Voici une description des étapes typiques du processus d’authentification :
- L’utilisateur accède à l’application distante en utilisant un lien sur un intranet ou similaire et l’application se charge.
- L’application identifie l’origine de l’utilisateur (par le sous-domaine de l’application, l’adresse IP de l’utilisateur, ou similaire). Elle redirige l’utilisateur vers le fournisseur d’identité, en demandant une authentification.
- L’utilisateur a soit une session de navigateur active existante avec le fournisseur d’identité, soit en établit une en se connectant au fournisseur d’identité.
- Le fournisseur d’identité construit la réponse d’authentification sous la forme d’un document XML contenant le nom d’utilisateur ou l’adresse électronique de l’utilisateur. Ce document est ensuite signé à l’aide d’un certificat X.509 et ensuite posté au fournisseur de services.
- Le fournisseur de services (qui connaît déjà le fournisseur d’identité et possède une empreinte de certificat) récupère la réponse d’authentification et la valide en utilisant l’empreinte de certificat.
- L’identité de l’utilisateur est établie, et l’utilisateur reçoit un accès à l’app.
RADIUS
Le service d’authentification à distance des utilisateurs (RADIUS) est un protocole de réseau qui fournit une gestion centralisée de l’authentification, de l’autorisation et de la comptabilité (AAA ou Triple A) pour les utilisateurs qui se connectent et utilisent un service réseau.
L’authentification RADIUS commence lorsque l’utilisateur demande l’accès à une ressource réseau par le serveur d’accès à distance (RAS). L’utilisateur saisit un nom d’utilisateur et un mot de passe, qui sont chiffrés par le serveur RADIUS avant d’être envoyés dans le processus d’authentification.
Puis le serveur RADIUS vérifie l’exactitude des informations en employant des schémas d’authentification pour vérifier les données. Cela se fait en comparant les informations fournies par l’utilisateur avec une base de données stockée localement ou en se référant à des sources externes telles que les serveurs Active Directory.
Le serveur RADIUS répond alors en acceptant, en contestant ou en rejetant l’utilisateur. Les utilisateurs individuels peuvent se voir accorder un accès restreint sans affecter les autres utilisateurs. Dans le cas d’un challenge, le serveur RADIUS demande des informations supplémentaires à l’utilisateur pour vérifier son ID utilisateur – qui peut être un PIN ou un mot de passe secondaire. Dans le cas d’un rejet, l’utilisateur se voit refuser inconditionnellement tout accès au protocole RADIUS.
Alors lequel choisir ?
LDAP, Kerberos, OAuth2, SAML et RADIUS sont tous utiles pour différents objectifs d’autorisation et d’authentification et sont souvent utilisés avec le SSO.
Le protocole que vous choisissez doit refléter les besoins de votre application et l’infrastructure existante. Il est utile de choisir une solution simple et standardisée qui évite l’utilisation de solutions de contournement pour l’interopérabilité avec les applications natives. C’est pourquoi SAML est un bon choix car il s’intègre au SSO de JumpCloud et à 700 applications professionnelles populaires.
Si vous recherchez plus de contenu lié au SSO, vous pouvez consulter notre guide sur la façon de décider quel type d’authentification unique vous pouvez utiliser.
Liens pertinents
- Évaluation de la sécurité physique | Meilleures pratiques & Processus d’audit
- Qu’est-ce que l’IoT – Définitions des experts du secteur
- Outils de gestion des accès aux identités (IAM)
.