web-dev-qa-db-ja.com

JTIはJWTの再生をどのように防止しますか?

JWT RFCによれば、JWTトークンはオプションで、JWTトークンの一意のIDであると解釈するjtiを持つことができます。 UUIDはjtiに適した値のようです。 RFCは、jtiを使用してJWTが再生されないようにすることができると主張しています。 2つの質問。

  • JTIはJWTの再生をどのように防止しますか?
  • JTIフィールドはどのくらいの頻度で再生成する必要がありますか?すべての要求に?または新しいトークンが生成されたときのみ?

「jti」(JWT ID)クレームは、JWTの一意の識別子を提供します。
識別子の値は、次のことを保証する方法で割り当てる必要があります
同じ値になる確率はごくわずかです
誤って別のデータオブジェクトに割り当てられた;アプリケーションの場合
複数の発行者を使用するため、値間の衝突を防止する必要があります
さまざまな発行者によっても作成されました。 「jti」クレームを使用できます
JWTが再生されないようにするため。 「jti」値はケースです
センシティブな文字列。このクレームの使用はオプションです。

33
ams
  • JTIはJWTの再生をどのように防止しますか?
  • JTIフィールドはどのくらいの頻度で再生成する必要がありますか?すべての要求に?または新しいトークンが生成されたときのみ?

これら2つの質問に対する答えは、アプリケーション自体に依存すると思います。

たとえば、一意のJTIを持つメッセージのみを受信するようにプログラムされている場合、同じJTIの再生はアプリケーションで無視できます。

この場合、同じメッセージの繰り返しが有効なときにJTIが再生成されます。

6
SilverlightFox