yostane / cours-archi-logicielle

Cours d'Architecture Logicielle
https://yostane.github.io/cours-archi-logicielle/
Other
3 stars 0 forks source link

JWT #20

Closed ThomasBerthier closed 2 months ago

ThomasBerthier commented 2 months ago

JWT (JsonWebToken)

Qu'est qu'un JWT ?

Une methode qui permet de transmettre des informations entre plusieurs parties sous formes d'objet JSON

Structure du JWT

Tous ces champs sont en base64 et separé par des points

Structure du Header

Structure du Payload :

Structure de la Signature :

Signature symétrique : Une clé privée est connu et partagé entre l'émetteur et le receveur, l'émetteur signe avec cette clé et le receveur valide avec cette meme clé. (HMAC, HS256). La signature symétrique est rapide et simple mais induit le partage de la clé privée.

Signature asymétrique : Une clé privé est détenu par l'émetteur seulement avec laquelle il signe. Une clé publique est envoyé au receveur avec le token signé et le receveur valide la jwt avec la clé publique. La signature asymétrique evite le partage de la clé privée mais est plus longue en contrepartie

Utilisation des JWT :

Exemple d'utilisation d'un JWT :

Cas d'utilisation :

Cas où le JWT n'est pas recommandé:

Vulnerabilités du JWT :

Pour réduire les risques :

Avantages :

Inconvenient :

Résumé :