Qu’est-ce que l’authentification basée sur des jetons ?
Que trouverez-vous ici ?
- 1. Comment fonctionne l'authentification basée sur des jetons
- 2. Que sont les JSON Web Tokens (JWT) et comment fonctionnent-ils ?
- 3. Les différents types d'authentification basée sur des jetons
- 4. Les Avantages de l'Authentification par Jeton
- 5. Questions fréquentes
- 6. Gérer l'authentification basée sur des jetons avec la solution SASE de Cato.
Bien que les mots de passe soient la forme d’authentification la plus courante, ils ne sont pas la seule option et ne sont pas toujours le meilleur choix. Par exemple, les mots de passe nécessitent que chaque personne ait un mot de passe unique et fort pour chaque compte.
L’authentification basée sur des jetons encode les données d’authentification dans un jeton. Ce jeton peut être envoyé à d’autres applications, qui lisent les données d’authentification stockées à l’intérieur et les utilisent pour déterminer si un utilisateur est autorisé à accéder à un système.
Comment fonctionne l’authentification basée sur des jetons
Les systèmes d’authentification basée sur des jetons décomposent le processus de gestion des identités et des accès (IAM) en deux étapes effectuées par différents systèmes. L’authentification est effectuée par un serveur d’authentification, tandis que l’autorisation est gérée par chaque application ou système individuel. Ces systèmes peuvent résider au sein de la même organisation ou être répartis entre elles si le système d’autorisation est configuré pour faire confiance à l’authentification de l’identité de l’utilisateur par l’autre système. Se connecter à des sites web via un compte de réseau social est un exemple d’authentification inter-organisationnelle effectuée à l’aide de jetons.
Dans la première étape, l’utilisateur prouve son identité au serveur d’authentification via un mot de passe ou d’autres moyens. C’est le seul système qui reçoit le mot de passe de l’utilisateur, ce qui offre divers avantages en matière de sécurité et d’utilisabilité. Après avoir authentifié l’utilisateur, le serveur d’authentification génère un jeton contenant des informations sur son identité. Ce jeton est ensuite inclus dans une demande à une application à laquelle l’utilisateur souhaite accéder.
Lors de la réception de ce jeton et de la validation de son contenu, l’application peut être confiante que l’utilisateur est bien celui qu’il prétend être. Sur la base de ces informations, elle peut déterminer si l’utilisateur est autorisé à faire cette demande et fournir/refuser l’accès à la ressource.
Quelques cas d’utilisation courants pour les jetons incluent :
- Authentification App-à-App : Les mots de passe sont principalement conçus pour que les humains s’authentifient à une application. Les applications interagissant entre elles utilisent couramment des jetons ou d’autres moyens d’authentification à la place.
- Single Sign-On L’authentification basée sur des jetons est la colonne vertébrale du SSO, qui permet aux utilisateurs de s’authentifier une fois pour accéder à de nombreuses applications. Dans ce cas, le jeton du serveur d’authentification est approuvé par chaque application utilisant le SSO.
- Expiration du jeton: Les mots de passe ont de longues durées de vie, ce qui les rend plus vulnérables aux attaques par devinette de mots de passe et prolonge l’impact des identifiants compromis. Les jetons ont des dates d’expiration intégrées, limitant le risque s’ils sont volés.
Que sont les JSON Web Tokens (JWT) et comment fonctionnent-ils ?
La plupart des schémas d’authentification basés sur des jetons sont mis en œuvre à l’aide de JSON Web Tokens (JWT). Ces jetons contiennent trois champs principaux :
- En-tête : Contient des métadonnées comme le type de jeton et l’algorithme de cryptage utilisé.
- Charge utile: Contient des informations d’authentification utilisées pour l’autorisation.
- Signature Prouve cryptographiquement l’authenticité des données de la charge utile.
Après avoir vérifié l’identité d’un utilisateur, un serveur d’authentification génère un JWT qui inclut les données de l’utilisateur et une date d’expiration du jeton dans la charge utile. L’application recevant ces données vérifiera la signature, s’assurera que le jeton n’a pas expiré, puis utilisera les informations qu’il contient pour autoriser la demande.
Notez que bien que les JWT soient parmi les jetons les plus courants en usage, ils ne sont pas les seuls. Par exemple, le Security Assertion Markup Language (SAML) est une autre norme courante utilisée pour mettre en œuvre le SSO pour les applications d’entreprise.
Les différents types d’authentification basée sur des jetons
Un JWT fournit un format défini pour les données d’authentification, mais ce n’est qu’un format de données. Les applications ont besoin d’un protocole commun pour comprendre comment créer, envoyer et utiliser ces jetons. Les deux algorithmes basés sur des jetons les plus courants sont OAuth2.0 et OpenID Connect (OIDC).
OAuth 2.0
OAuth 2.0 est un protocole d’autorisation qui repose sur une authentification par jeton pour permettre l’autorisation sans partager les identifiants de l’utilisateur. L’objectif est qu’un utilisateur autorise une application (« Consommateur ») à effectuer une action sur une autre (« Fournisseur de services ») sans fournir les identifiants de l’utilisateur pour que le « Fournisseur de services » puisse les utiliser avec le « Consommateur ».
Pour ce faire, le Consommateur redirigera l’utilisateur vers le Fournisseur de services, où il s’authentifiera en utilisant son mot de passe habituel pour ce service. Le Fournisseur de services vérifie ensuite que l’utilisateur approuve la demande du Consommateur. Si c’est le cas, un jeton d’accès est généré que le Consommateur peut utiliser pour accéder au compte de l’utilisateur auprès du Fournisseur de services. Cela autorise la demande sans révéler le mot de passe de l’utilisateur pour le Fournisseur de services.
OpenID Connect (OIDC)
OpenID Connect (OIDC) est un protocole d’authentification et d’autorisation construit sur OAuth 2.0. Il ajoute une couche d’identité pour authentifier les utilisateurs, qui stocke les informations d’identité dans des JWT et fournit les capacités d’authentification que OAuth 2.0 n’a pas.
Le cas d’utilisation principal de l’OIDC est de mettre en œuvre le SSO, permettant l’accès à plusieurs applications avec une seule demande d’authentification. Le protocole comprend un ensemble de revendications standard pour permettre des échanges cohérents des données d’identité et de profil des utilisateurs entre les applications.
Les Avantages de l’Authentification par Jeton
L’authentification par jeton permet de communiquer de manière sécurisée les informations d’authentification entre les applications, éliminant ainsi le besoin pour une application d’effectuer sa propre authentification des utilisateurs. Cela offre de nombreux avantages pour les utilisateurs et l’organisation.
Amélioration de l’Expérience Utilisateur
Les schémas d’authentification par jeton sont la base du SSO, ce qui permet à un utilisateur de s’authentifier une fois et d’accéder à de nombreuses applications. Éliminer le besoin de se souvenir et de saisir plusieurs mots de passe améliore l’efficacité opérationnelle et l’expérience utilisateur.
Sécurité Renforcée
L’authentification par jeton renforce la sécurité en éliminant le besoin pour chaque application d’accepter et de gérer les mots de passe des utilisateurs. Souvent, les utilisateurs ont des mots de passe faibles ou réutilisés, et ces mots de passe n’expirent jamais. En utilisant des jetons, une application n’a pas besoin de stocker des informations d’authentification sensibles. De plus, les jetons expirent automatiquement, réduisant le temps pendant lequel un attaquant peut abuser des identifiants compromis.
Meilleure évolutivité et efficacité
Les jetons éliminent le besoin pour les serveurs de stocker des informations sur la session existante d’un utilisateur. Cela permet à un serveur de prendre en charge plus d’utilisateurs car ils consomment moins de ressources côté serveur.
Gestion d’accès granulaire
Les JWT et d’autres jetons peuvent transporter une gamme de données d’identité au-delà d’un simple nom d’utilisateur. De plus, les applications peuvent adapter l’autorisation à un scénario spécifique, leur permettant de mieux appliquer le principe du moindre privilège (POLP) et d’autres principes de confiance zéro. Cette combinaison permet aux schémas d’authentification basés sur des jetons de mettre en œuvre des politiques de gestion d’accès très granulaires.
Questions fréquentes
Quelle est la différence entre OAuth 2.0 et l’authentification basée sur des jetons ?
OAuth 2.0 est un exemple de protocole spécifique qui utilise des jetons d’accès pour mettre en œuvre l’autorisation des utilisateurs. L’authentification basée sur des jetons est plus générale et couvre tout schéma qui utilise des jetons pour l’authentification des utilisateurs.
Comment l’authentification basée sur des mots de passe est-elle différente de l’authentification basée sur des jetons ?
Une application utilisant l’authentification basée sur des mots de passe stocke les données d’identification de l’utilisateur et demande à un utilisateur de s’authentifier en fournissant son mot de passe pour cette application. Avec l’authentification basée sur des jetons, un serveur d’authentification accepte un mot de passe ou d’autres identifiants et génère un jeton attestant de l’identité de l’utilisateur qui est envoyé à l’application qu’il souhaite accéder.
Quels sont les inconvénients de l’authentification basée sur des jetons ?
L’authentification basée sur des jetons offre généralement une sécurité plus forte que l’authentification basée sur des mots de passe, mais elle comporte des risques. Par exemple, un jeton volé peut être utilisé pour s’authentifier en tant qu’utilisateur légitime, ou la clé privée utilisée pour signer numériquement les jetons pourrait être volée et utilisée pour falsifier de faux jetons d’accès.
Gérer l’authentification basée sur des jetons avec la solution SASE de Cato.
L’authentification basée sur des jetons dissocie l’authentification et l’autorisation en faisant vérifier l’identité d’un utilisateur par un serveur d’authentification, puis en envoyant un jeton attestant de son identité à une application. Cette approche présente divers avantages et constitue la base des protocoles SSO.
L’authentification basée sur des jetons est également centrale dans de nombreux systèmes modernes de gestion des identités et des accès (IAM), tels que les capacités de Zero Trust Network Access (ZTNA) de Cato SASE Cloud et l’application de gestion Cato (CMA).
Pour en savoir plus sur la mise en œuvre de la sécurité zéro confiance pour votre organisation avec Cato, inscrivez-vous pour une démo gratuite.
This page was machine-translated. If you notice any inaccuracies or have feedback, please feel free to send it to us here.