web-dev-qa-db-fra.com

Comment JTI empêche-t-il la relecture d'un JWT?

Selon le RFC JWT, un jeton JWT peut éventuellement avoir un jti que j'interprète comme un ID unique pour un jeton JWT. On dirait qu'un UUID est une bonne valeur pour un jti. Le RFC prétend que le jti peut être utilisé pour empêcher la relecture du JWT. Deux questions.

  • Comment un JTI empêche-t-il un JWT d'être relu?
  • À quelle fréquence le champ JTI doit-il être régénéré? A chaque demande? ou uniquement lorsqu'un nouveau jeton est généré?

La revendication "jti" (ID JWT) fournit un identifiant unique pour le JWT.
La valeur d'identifiant DOIT être attribuée de manière à garantir que
il y a une probabilité négligeable que la même valeur soit
affecté accidentellement à un autre objet de données; si la demande
utilise plusieurs émetteurs, les collisions DOIVENT être évitées entre les valeurs
également produite par différents émetteurs. La revendication "jti" peut être utilisée
pour empêcher la relecture du JWT. La valeur "jti" est un cas-
chaîne sensible. L'utilisation de cette réclamation est FACULTATIVE.

33
ams
  • Comment un JTI empêche-t-il un JWT d'être relu?
  • À quelle fréquence le champ JTI doit-il être régénéré? A chaque demande? ou uniquement lorsqu'un nouveau jeton est généré?

Je pense que les réponses à ces deux questions dépendront de l'application elle-même.

Par exemple, s'il a été programmé pour recevoir uniquement des messages qui ont un JTI unique, alors une relecture du même JTI peut être ignorée par l'application.

Le JTI serait régénéré dans ce cas lorsqu'il est valide pour que le même message soit répété.

6
SilverlightFox