logo miniOrange

Produits

Services

Plugins

Prix

Ressources

Entreprise

Qu'est-ce que JWT (JSON Web Token) ? Comment fonctionne l'authentification JWT ?

miniOrangeAuteur
31st octobre, 20234 Min Lecture

Qu'est-ce que JWT (JSON Web Token) ?

JWT, ou JSON Web Token, est une norme ouverte utilisée pour partager des informations en toute sécurité entre deux parties : un client et un serveur. Dans la plupart des cas, il s'agit d'un JSON codé contenant un ensemble de revendications et une signature. Il est généralement utilisé dans le cadre d'autres mécanismes d'authentification tels que OAuth et OpenID pour partager des informations relatives aux utilisateurs. C'est également un moyen populaire d'authentifier/d'autoriser les utilisateurs dans une architecture de microservices.

L'authentification JWT est un mécanisme d'authentification sans état basé sur un jeton. Elle est couramment utilisée comme session sans état côté client, ce qui signifie que le serveur n'a pas besoin de s'appuyer entièrement sur un magasin de données (ou) une base de données pour enregistrer les informations de session.

Les JWT peuvent être chiffrés, mais ils sont généralement codés et signés. Nous allons nous concentrer sur les JWT signés. Le but des JWT signés n'est pas de masquer les données mais de garantir leur authenticité. C'est pourquoi il est fortement recommandé d'utiliser HTTPS avec les JWT signés.

Structure du JWT

La structure JWT est divisée en trois parties : en-tête, charge utile, signature, séparées les unes des autres par un point (.), et suivra la structure ci-dessous :

Structure du jeton Web JSON (JWT)

  • En-tête
    L'en-tête se compose de deux parties :
  1. L'algorithme de signature utilisé
  2. Le type de jeton, qui est dans ce cas principalement « JWT »
  • Charge utile La charge utile contient généralement les revendications (attributs utilisateur) et des données supplémentaires telles que l'émetteur, le délai d'expiration et l'audience.
  • Signature
    Il s'agit généralement d'un hachage des sections d'en-tête et de charge utile du JWT. L'algorithme utilisé pour créer la signature est le même que celui mentionné dans la section d'en-tête du JWT. La signature est utilisée pour valider que le jeton JWT n'a pas été modifié ou changé pendant le transit. Elle peut également être utilisée pour valider l'expéditeur.

L'en-tête et la section de charge utile du JWT sont toujours codés en Base64.

Comment fonctionne l'authentification JWT ? Quand utiliser l'authentification JWT ?

En matière d'authentification API et d'autorisation de serveur à serveur, le jeton Web JSON (JWT) est une technologie particulièrement utile. En termes d'authentification unique (SSO), cela signifie qu'un fournisseur de services peut recevoir des informations fiables du serveur d'authentification.

En partageant une clé secrète avec le fournisseur d'identité, le fournisseur de services peut hacher une partie d'un jeton qu'il reçoit et le comparer à la signature du jeton. Désormais, si ce résultat correspond à la signature, le fournisseur de services sait que les informations fournies proviennent de l'autre entité possédant la clé.

Le flux de travail suivant explique le flux d’authentification :

Flux de travail d'authentification du jeton Web JSON (JWT)

  1. Connexion de l'utilisateur à l'aide d'un nom d'utilisateur et d'un mot de passe.
  2. Le serveur d’authentification vérifie les informations d’identification et émet un JWT signé à l’aide d’une clé privée.
  3. À l’avenir, le client utilisera le JWT pour accéder aux ressources protégées en transmettant le JWT dans l’en-tête d’autorisation HTTP.
  4. Le serveur de ressources vérifie ensuite l’authenticité du jeton à l’aide de la clé publique.

Le fournisseur d’identité génère une identité d’utilisateur certifiante JWT, et le serveur de ressources décode et vérifie l’authenticité du jeton à l’aide de la clé publique.

Étant donné que les jetons sont utilisés pour l'autorisation et l'authentification dans les futures requêtes et appels d'API, il convient de prendre des précautions particulières pour éviter les problèmes de sécurité. Ces jetons ne doivent pas être stockés dans des zones accessibles au public, comme le stockage local du navigateur ou les cookies. S'il n'y a pas d'autres choix, la charge utile doit être chiffrée.

Comment fonctionne JWT Single Sign-On (SSO) pour plusieurs applications Web

L'authentification unique (SSO) vous permet d'authentifier les utilisateurs de vos systèmes et informe ensuite les applications que l'utilisateur a été authentifié. Une fois l'authentification réussie, un jeton JWT est généré et renvoyé, qui peut être utilisé par l'application pour créer une session utilisateur. Le jeton est automatiquement vérifié auprès de l'IDP lorsqu'il se connecte. L'utilisateur est alors autorisé à accéder aux applications sans être invité à saisir des informations d'identification de connexion distinctes.

Ce mécanisme de sécurité permet aux applications de faire confiance aux demandes de connexion qu'elles reçoivent des systèmes. De plus, ces applications n'accorderont l'accès qu'aux utilisateurs qui ont été authentifiés par vous/l'administrateur. Par conséquent, l'authentification unique (SSO) s'appuie sur le jeton Web JSON (JWT) pour sécuriser l'échange de données d'authentification des utilisateurs. Une grande attention doit être portée à la manière dont ce jeton est stocké et géré.

Authentification JWT miniOrange pour les applications qui ne prennent pas en charge les protocoles SSO standard

Cas d'utilisation : créer un SSO personnalisé entre 2 sites Web existants et indépendants avec leur propre base de données d'utilisateurs

Avec miniOrange, vous pourrez vous authentifier à partir des magasins d'utilisateurs et des fournisseurs d'identité existants à l'aide de protocoles tels que SAML, OAuth OpenID et SSO sur des sites Web qui ne prennent en charge que les jetons JWT. Oui, vous avez bien entendu. miniOrange fournit une authentification unique (SSO) pour Applications JSON Web Token (JWT). Cette solution vous permet de configurer Single Sign-On (SSO) dans vos applications (existantes ou indépendantes), qui ne prennent pas en charge les protocoles standard SSO (comme SAML 2.0, etc.).

Cela se fait à l'aide de jetons JSON Web Token (JWT) et peut être facilement intégré à votre application créée dans n'importe quel framework ou langage. Cela vous permet d'activer l'authentification unique pour n'importe quelle application mobile, applications côté client, sites statiques qui ne prennent en charge aucun protocole standard SSO et sont construits sur des plateformes telles que React.js, Firebase, Cordova, Angular.js, etc.

Flux d'intégration miniOrange avec jeton jwt

 

miniOrange facilite l'activation de l'authentification unique pour votre application grâce à un processus simple en 3 étapes. Il vous suffit de :

  1. Intégrez un script simple sur votre site/application
  2. Configurez votre fournisseur d'identité/magasin d'utilisateurs dans miniOrange (facultatif)
  3. Ajouter une application JWT

 

C'est tout ! Vous pouvez choisir de gérer les utilisateurs dans miniOrange ou de choisir un fournisseur d'identité/magasin d'utilisateurs externe. Vous pouvez même activer l'authentification multifacteur (MFA) en plus de l'authentification unique (SSO) avec une simple modification de configuration, sans autre modification de script ou codage requis.

 

 

Découvrez la solution JWT SSO de miniOrange pour les applications les plus tendance :

 

 

Liens utiles supplémentaires :

Laisser un commentaire