Le JSON Web Token - JWT

Le JSON Web Token - JWT
Photo by FLY:D / Unsplash

Qu'est-ce qu'un JSON Web Token ?

Le JSON Web Token (JWT) est une norme qui définit un moyen qui se suffit à lui même pour transmettre en toute sécurité des informations entre plusieurs parties en tant qu'objet JSON. Ces informations peuvent être vérifiées et approuvées car elles sont signées numériquement. Les JWT peuvent être signés à l'aide d'un secret (avec l'algorithme HMAC) ou d'une paire de clés publique/privée utilisant RSA ou ECDSA.

Les jetons signés peuvent vérifier l'intégrité des informations qu'ils contiennent et lorsque les jetons sont signés à l'aide de clés publique/privée, la signature certifie également que seule la partie détenant la clé privée est celle qui l'a signée.

Les JWT interviennent majoritairement dans les mécanismes d'autorisation. Une fois que l'utilisateur s'est connecté à l'aide de son identifiant et de son mot de passe, chaque demande ultérieure sera réalisée à l'aide du JWT qui lui permettra d'accéder aux routes ou au services protégés.

Les Single Sign On utilisent très largement les JWT notamment du fait du faible impact réseau et sa capacité à pouvoir être utilisés sur différents domaines.

C’est quoi un SSO (Single Sign On) ?
Découvrez ce qu’est un single sign on, comment cela fonctionne et quelles sont les technologies mises en œuvre

Quelle est la structure d'un JWT ?

Un JSON Web Token contient 3 parties :

  1. Un header
  2. Un payload
  3. Une signature

Il est souvent représenté sous cette forme :

xxxxx.yyyyy.zzzzz

Le header contient généralement deux parties :