Try using it in your preferred language.

English

  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • 한국어
  • Deutsch
  • Français
  • Italiano
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • हिन्दी
  • Magyar
translation

Ceci est un post traduit par IA.

Seize the day

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

Choisir la langue

  • Français
  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • 한국어
  • Deutsch
  • Italiano
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • हिन्दी
  • Magyar

Texte résumé par l'IA durumis

  • JSON Web Token (JWT) est un jeton chiffré qui permet de transmettre des informations en toute sécurité.
  • JWT est composé d'un en-tête, d'une charge utile et d'une signature, la signature garantissant l'intégrité des données.
  • JWT ne nécessite pas de gestion d'état séparée, ce qui le rend hautement évolutif dans un environnement distribué.

Qu'est-ce que JWT ?

JSON Web Token (JWT) est une norme ouverte (RFC 7519) qui définit une manière standardisée de transférer en toute sécurité des informations sous forme d'objets JSON. En d'autres termes, il s'agit d'une manière d'emballer les informations nécessaires dans un jeton et de les chiffrer pour une utilisation ultérieure.


JWT est souvent présenté comme un jeton signé (signed token). Lorsque vous utilisez une paire de clés publique/privée pour la signature, cette signature garantit que seul celui qui possède la clé privée a signé ce jeton. En d'autres termes, le serveur qui possède la clé peut savoir si ce jeton est valide.


Structure de JWT

JWT est composé de trois parties : l'en-tête (Header), la charge utile (Payload) et la signature (Signature).

Chaque partie est codée en Base64 et séparée par un point (.). 

En-tête

{
    "alg": "HS256",
    "typ": "JWT"

L'en-tête contient deux informations principales : le type de jeton (typ) et l'algorithme de signature utilisé (alg). L'algorithme de signature est utilisé pour générer et vérifier la signature.

typ est défini sur "JWT", et alg est HMAC, SHA256, etc. Dans l'exemple ci-dessus, cela signifie qu'une clé privée est utilisée avec l'algorithme HS256. 

Charge utile

{
    "sub": "1234567890",
    "name": "John Doe",
    "iat": 1516239022


La charge utile contient les revendications (Claims) que vous souhaitez transmettre dans le jeton. Vous stockez les informations d'identification de l'utilisateur ou les propriétés relatives au jeton sous forme de paires clé-valeur. En d'autres termes, vous pouvez y mettre ce que vous voulez !

Selon les spécifications standard, les noms des clés sont définis de manière compacte, avec trois lettres.

Les revendications enregistrées sont les suivantes : 

  • iss (Issuer) : Émetteur du jeton (contient des informations d'identification uniques de l'émetteur du jeton)
  • sub (Subject) : Sujet auquel le jeton est destiné
  • aud (Audience) : Destinataire du jeton
  • exp (Expiration Time) : Expiration du jeton (le jeton n'est plus valide après cette heure)
  • nbf (Not Before) : Date d'activation du jeton (le jeton ne peut pas être utilisé avant cette heure)
  • iat (Issued At) : Heure d'émission du jeton
  • jti (JWT Id) : Identifiant du jeton JWT (valeur utilisée pour différencier les émetteurs en cas de plusieurs émetteurs)


Vous pouvez ajouter d'autres valeurs nécessaires et les utiliser si nécessaire. 

Cependant, la charge utile n'est pas une valeur signée chiffrée, elle ne contient donc pas d'informations sensibles.

N'importe qui peut la décoder. jwt.io Vous pouvez également vérifier immédiatement sur le site.

Signature

HMACSHA256(
    base64UrlEncode(header) + "." +
    base64UrlEncode(payload),
    your-256-bit-secret

L'en-tête et la charge utile sont codées en Base64, puis concaténées avec un point (.) comme séparateur, puis signées à l'aide de la clé privée your-256-bit-secret détenue par le serveur. 

Par conséquent, seule le serveur qui a émis le jeton peut déchiffrer la signature (Signature) avec la clé privée.

En ce qui concerne le décryptage, vous pouvez déchiffrer la signature avec la clé privée, puis vérifier si base64UrlEncode(header) correspond à la valeur d'en-tête de JWT et si base64UrlEncode(payload) correspond. 

À l'exception de la signature, l'en-tête et la charge utile sont simplement codées, vous pouvez donc voir les informations du corps, mais la signature garantit l'intégrité et la sécurité des informations. 



JWT est auto-contenu (Self-contained), il contient toutes les informations nécessaires en soi, et il a été conçu pour pallier les inconvénients des sessions qui doivent être générées par le serveur. JWT ne nécessite pas de stockage séparé. 

Le serveur n'a pas besoin de maintenir de session, ce qui rend le système sans état (stateless) et améliore l'extensibilité dans les systèmes distribués et les architectures de microservices. 

Il est protégé par une signature numérique (Signature), ce qui garantit l'intégrité des données.

nofunfromdev
Seize the day
Seize the day
nofunfromdev
[Effective Java] Évitez la création d'objets inutiles Ce guide vous explique comment réduire la création d'objets inutiles en Java. Pour les objets immuables comme String et Boolean, il est préférable d'utiliser des littéraux. Il est également conseillé de mettre en cache les instances Pattern pour les expre
제이온
제이온
제이온
제이온

28 avril 2024

Utilisez un certificat d'authentification financière gratuit au lieu d'un certificat d'authentification conjoint payant ! Nous vous présentons un certificat d'authentification financière pouvant être délivré gratuitement à la place d'un certificat d'authentification conjoint. Il est facile à obtenir en 3 minutes et peut être utilisé pendant 3 ans. Il peut être demandé sur le
길리
길리
길리
길리
길리

17 avril 2024

[Efficace Java] Item 1. Envisager des méthodes d'usine statiques à la place des constructeurs Les méthodes d'usine statiques sont un moyen flexible et efficace de créer des instances à la place des constructeurs. Elles peuvent avoir un nom, renvoyer des instances répondant à des conditions spécifiques et améliorer les performances grâce à la mise
제이온
제이온
제이온
제이온

27 avril 2024

Qu'est-ce qu'un modèle linguistique de grande taille (LLM) ? Les modèles linguistiques de grande taille (LLM) sont une technologie clé de l'intelligence artificielle qui apprend à partir d'un ensemble de données textuelles volumineux pour acquérir des capacités de traitement du langage similaires à celles des humai
세상 모든 정보
세상 모든 정보
세상 모든 정보
세상 모든 정보

1 avril 2024

[Non-majors, Surviving as Developers] 14. Résumé des questions d'entrevue technique fréquemment posées aux développeurs débutants Guide de préparation aux entrevues techniques pour les développeurs débutants. Zone de mémoire principale, structures de données, RDBMS et NoSQL, programmation procédurale et orientée objet, surcharge et surcharge, algorithmes de remplacement de page, pro
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

3 avril 2024

Le jeu de cartes Witcher, Glossaire Gwent Le Gwent de Witcher est un jeu de cartes de stratégie gratuit pour les fans de romans, de films et de jeux fantastiques. Il est composé de différentes cartes comme les unités, les pièges, les sorts, les stratégies, etc., et les combats et la gestion de vo
길리
길리
길리
길리

7 avril 2024