Définition de l'authentification JWT
Qu'est-ce que l'authentification JWT ?
L'authentification par jeton Web JSON (JWT) est un moyen de suivre les informations d'authentification dans une application Web sans état. Après qu'un utilisateur s'est authentifié avec succès auprès de l'application, un JWT est généré et stocké côté client. Le client inclut le jeton dans chaque requête subséquente, ce qui permet au serveur de vérifier que l'utilisateur a bien été authentifié sans avoir à suivre lui-même l'état de l'authentification.
Structure d'un JWT
Un jeton Web JSON est conçu pour résumer les informations d'authentification dans un jeton que le serveur peut facilement consommer et valider. Le JWT comporte trois parties principales :
- En-tête : L'en-tête précise le type de jeton (JWT) et l'algorithme de signature numérique utilisé pour la vérification.
- Charge utile : La charge utile contient les revendications concernant l'identité de l'utilisateur et d'autres informations pertinentes. Ces revendications attestent que l'utilisateur a été authentifié et contiennent les informations nécessaires pour vérifier qu'il est autorisé à accéder à l'application Web.
- Signature : Un JWT est signé par la partie qui a authentifié l'utilisateur et généré le JWT. Cela prouve que le jeton est authentique et qu'il n'a pas été modifié.
Ces trois sections du JWT sont encodées à l'aide de l'algorithme Base64. Ces valeurs encodées sont ensuite concaténées avec des points pour créer une seule chaîne.
Comment fonctionne l'authentification JWT ?
Les JWT permettent un suivi de l'authentification sans état dans une application Web. Les étapes clés du processus d'authentification JWT comprennent :
- Authentification : L'utilisateur s'authentifie auprès du système au moyen d'un mot de passe, de la biométrie, etc.
- Émission du jeton : Après avoir authentifié l'identité de l'utilisateur, le serveur génère un JWT qui inclut l'identité de l'utilisateur et les privilèges qui lui sont accordés.
- Stockage du jeton : Le serveur envoie le JWT au client, qui le stocke localement sur son appareil.
- Requêtes authentifiées : Pour les requêtes subséquentes, le JWT est inclus dans les en-têtes HTTP de la requête.
- Vérification côté serveur : Lorsque le serveur reçoit une requête, il valide le JWT. Si la validation réussit, le serveur traite la requête.
- Expiration : Chaque JWT comporte une date d'expiration intégrée. Passé ce délai, il ne peut plus servir à authentifier un utilisateur.
Avantages de l'authentification JWT
Les JWT offrent plusieurs avantages pour l'authentification, notamment :
- Sans état : L'authentification JWT est sans état, ce qui signifie que le serveur n'a pas besoin de suivre les données de session et d'authentification.
- Autonome : Les JWT sont autonomes et contiennent toutes les informations nécessaires à l'authentification et à l'autorisation. Cela réduit la taille et le nombre des requêtes de base de données qu'une application Web doit effectuer.
- Évolutivité : Puisque les JWT sont autonomes, ils constituent un système d'authentification très évolutif. Aucune ressource côté serveur n'est consacrée au suivi des données d'authentification et de session.
- Compacité : Les JWT stockent les informations d'authentification de façon compacte. Cela réduit leur taille sur disque et l'utilisation de la bande passante.
Conclusion
L'authentification JWT est un mécanisme d'authentification sans état pour les applications Web. Les données d'authentification et d'autorisation sont contenues dans un jeton signé numériquement, stocké par le client et inclus dans chaque requête. Cela permet à un serveur de valider l'accès de l'utilisateur sans que celui-ci ait à se connecter à chaque requête et sans que le serveur ait à suivre les sessions des utilisateurs et leur statut d'authentification.
L'équipe KZero
Découvrez d'autres contenus instructifs rédigés par l'équipe compétente de KZero dans notre section de blogues et de guides.