Qu'est-ce que l'authentification par jeton ?
- Glossaire IAM
- Qu'est-ce que l'authentification par jeton ?
L'authentification basée sur les jetons est un protocole de sécurité qui vérifie l'identité d'un utilisateur à l'aide de jetons chiffrés. Avec l'authentification basée sur les jetons, les utilisateurs s'authentifient avec un jeton valide pour accéder aux serveurs, aux applications, aux sites web ou à une interface de programmation d'application (API). L'authentification basée sur les jetons est un protocole commun d'authentification à deux facteurs (2FA) ou d'authentification multifacteur (MFA), ajoutant une autre couche de sécurité aux côtés du nom d'utilisateur et du mot de passe traditionnels.
Qu'est-ce qu'un token ?
Un jeton est la clé qui authentifie les utilisateurs pendant le processus d'identification. Les jetons peuvent être numériques ou un appareil physique comme une carte à puce ou une clé USB. Les jetons web, étant numériques et stockés sur l'appareil de l'utilisateur, sont largement favorisés par les organisations en raison de leur commodité et de leur flexibilité. Les jetons web éliminent la nécessité pour les individus de transporter des jetons physiques et peuvent être facilement intégrés à divers systèmes logiciels, offrant une expérience d'authentification transparente.
Comment fonctionne l'authentification par jeton ?
Examinons les quatre étapes essentielles de l'authentification basée sur les jetons.
Demande initiale : Un utilisateur demandera d'accéder à une application spécifique en entrant son nom d'utilisateur et son mot de passe.
Vérification de l'utilisateur : Les identifiants d'identification sont envoyés au système d'authentification pour voir si les identifiants de l'utilisateur sont corrects. Une fois validé, il vérifiera les autorisations spécifiques que l'utilisateur a sur le système.
Validation du jeton : Le système générera et émettra un jeton web à l'utilisateur qui peut être utilisé pour une période limitée.
Stockage des jetons : Le jeton est stocké sur l'appareil de l'utilisateur jusqu'à ce que l'utilisateur se soit identifié, se déconnecte de la session ou que le jeton expire.
Types de jetons pour l'authentification
Les jetons numériques viennent de différents types, chacun jouant un rôle crucial pour assurer un processus d'authentification sécurisé et approprié. Explorons cinq types de jetons numériques courants et leurs rôles spécifiques dans l'authentification.
Jeton web JSON (JWT)
Le jeton web JSON est une norme ouverte (RFC 7519) utilisée pour échanger en toute sécurité des informations entre deux entités : un serveur et un client. Les JWT transportent des informations sur l'identité d'un utilisateur et ils sont signés numériquement pour s'assurer que les données incluses sont légitimes. Un jeton web JSON est composé de trois parties : l'en-tête, la charge utile et la signature numérique.
En-tête : L'en-tête contient des informations sur le JWT. Il fournit le type de jeton et l'algorithme utilisé pour signer le jeton.
Charge utile : La charge utile comprend les réclamations de l'utilisateur. Les réclamations sont des éléments d'information d'identification sur une entité donnée, généralement d'un utilisateur. Les charges utiles peuvent inclure des informations supplémentaires telles que l'expiration du jeton et les autorisations de l'utilisateur.
Signature numérique : La signature numérique est une clé cryptographique qui vérifie l'en-tête et la charge utile pour s'assurer que le message n'a pas été modifié pendant la transmission et certifie l'identité de l'utilisateur.
Jetons d'accès
Les jetons d'accès sont le type le plus courant de jetons web JSON. Ces jetons sont destinés à autoriser l'accès des utilisateurs à un service donné. Après qu'un utilisateur a réussi à s'identifier, un jeton d'accès avec une date d'expiration est émis à l'utilisateur. Le jeton d'accès accordera aux utilisateurs l'accès à leurs ressources et services désignés pour une durée limitée.
Jetons d'identité
À la différence des jetons d'accès, les jetons d'identification ne sont pas principalement utilisés pour accorder l'accès aux ressources et aux applications du réseau. Au lieu de cela, les jetons d'identification sont des jetons web JSON qui comprennent des informations sur l'utilisateur telles qu'un identifiant unique, un nom et une adresse e-mail, ainsi que leur statut d'authentification. Les jetons d'identification sont fournis aux applications clientes pour vérifier l'identité de l'utilisateur.
Actualiser les jetons
Les jetons d'actualisation sont des types spécifiques de jetons web JSON utilisés pour obtenir des jetons d'accès supplémentaires sans nécessiter que l'utilisateur saisisse à nouveau ses identifiants d'identification. Leur but est d'étendre la durée de vie d'un jeton d'accès pour les utilisateurs grâce à son renouvellement automatique.
Jetons API
Un jeton API est une chaîne de codes qui correspond à l'utilisateur demandant l'authentification à une API. Il authentifie l'identité de l'utilisateur et accorde l'accès aux points de terminaison API, permettant aux utilisateurs autorisés d'interagir avec les ressources API en toute sécurité.
Avantages de l'utilisation de l'authentification basée sur les jetons
Voici trois principaux problèmes de l'utilisation de l'authentification basée sur les jetons.
Sécurité : Étant donné que les jetons sont créés pour avoir une durée de vie courte, ils minimisent la fenêtre d'accès non autorisé potentiel. Une fois qu'un utilisateur a terminé sa session avec l'application, le jeton émis expire. Cela limite le temps disponible pour les attaquants pour intercepter le jeton et compromettre un compte.
Flexibilité : L'authentification basée sur les jetons peut être utilisée sur plusieurs plates-formes telles que les applications web, les applications mobiles et les API. Cela crée une expérience d'authentification facile tout en augmentant l'accessibilité pour les utilisateurs.
Évolutivité : Étant donné que les jetons doivent être stockés sur l'appareil de l'utilisateur, les serveurs n'ont pas besoin de maintenir la session d'un utilisateur sur une application. Cela permet aux serveurs de gérer efficacement plusieurs demandes tout en générant des jetons si nécessaire.
Désavantages de l'utilisation de l'authentification basée sur les jetons
Voici trois principaux problèmes de l'utilisation de l'authentification basée sur les jetons.
Risque pour la clé compromise : Une menace commune associée à l'authentification basée sur les jetons est la compromission potentielle des clés de jeton. Les cyberattaques telles que le phishing, les logiciels malveillants, la force brute ou les attaques de l'homme du milieu (MITM) peuvent cibler ces clés. La plupart des systèmes de jetons web reposent sur une seule clé, donc si un cybercriminel compromet la clé, l'ensemble du système devient vulnérable.
Durée de vie courte : En raison de la courte durée de vie des jetons, il est important de noter que les jetons nécessitent une gestion consistante. Cela implique de s'assurer que les jetons ont des dates d'expiration et de renouveler leurs identifiants si nécessaire.
Taille du jeton : Les jetons peuvent être volumineux, surtout s'ils comportent une quantité importante d'informations ou de métadonnées utilisateur. En raison de la complexité et de la taille d'un jeton, il peut augmenter la charge réseau dans les environnements qui ont une bande passante Internet limitée.