Le JSON Web Token - JWT
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.
Quelle est la structure d'un JWT ?
Un JSON Web Token contient 3 parties :
- Un header
- Un payload
- Une signature
Il est souvent représenté sous cette forme :
xxxxx.yyyyy.zzzzz
Header
Le header contient généralement deux parties :