web-dev-qa-db-ja.com

OpenID Connect( "OIDC")が `jti`登録済みクレームの代わりに` nonce`クレームを使用する理由

仕様 によると、OpenID Connectはnonceを登録済みクレーム名として使用しますが、- RFC 7519 にはすでに 登録済みクレーム という名前が含まれていますjtiこれと同じ目的のため。

これは見落としでしたか、それともjtiの指定(または実装)方法に問題がありましたか?

この情報を見つけることができるメーリングリストエントリはOpenId内にありますか?

3
Jon Wolski

Jti(JWT ID)は、トークンを識別するために認証サーバーによって選択されます。 OpenID Connectのセクション9に従って

JWT ID。トークンの再利用を防ぐために使用できる、トークンの一意の識別子。これらのトークンは、再利用の条件が当事者間で取り決められていない限り、1回だけ使用する必要があります。そのような交渉は、この仕様の範囲を超えています。

nonce はアプリケーションによって選択され、 parameter として認証要求。

クライアントセッションをIDトークンに関連付け、リプレイ攻撃を軽減するために使用される文字列値。値は、認証要求からIDトークンに変更されずに渡されます。 IDトークンに存在する場合、クライアントはnonceクレーム値が認証リクエストで送信されたnonceパラメータの値と等しいことを確認する必要があります。認証リクエストに存在する場合、承認サーバーはIDトークンにノンスクレームを含めなければなりません(クレーム値は認証リクエストで送信されるノンス値です)。認可サーバーは、使用されるナンス値に対して他の処理を実行してはいけません。 nonce値は、大文字と小文字が区別される文字列です。

したがって、それらは異なる目的を果たします。そしてnonceはOAuth2でのJWTバインディングよりも古く(あいまいに定義されていますが)、不透明なトークン文字列を使用する場合でも適用されます。

ここで別の答え は、状態パラメータとノンスパラメータの違いを説明します。

6
Geir Emblemsvag