仕様 によると、OpenID Connectはnonce
を登録済みクレーム名として使用しますが、- RFC 7519 にはすでに 登録済みクレーム という名前が含まれていますjti
これと同じ目的のため。
これは見落としでしたか、それともjti
の指定(または実装)方法に問題がありましたか?
この情報を見つけることができるメーリングリストエントリはOpenId内にありますか?
Jti(JWT ID)は、トークンを識別するために認証サーバーによって選択されます。 OpenID Connectのセクション9に従って :
JWT ID。トークンの再利用を防ぐために使用できる、トークンの一意の識別子。これらのトークンは、再利用の条件が当事者間で取り決められていない限り、1回だけ使用する必要があります。そのような交渉は、この仕様の範囲を超えています。
nonce はアプリケーションによって選択され、 parameter として認証要求。
クライアントセッションをIDトークンに関連付け、リプレイ攻撃を軽減するために使用される文字列値。値は、認証要求からIDトークンに変更されずに渡されます。 IDトークンに存在する場合、クライアントはnonceクレーム値が認証リクエストで送信されたnonceパラメータの値と等しいことを確認する必要があります。認証リクエストに存在する場合、承認サーバーはIDトークンにノンスクレームを含めなければなりません(クレーム値は認証リクエストで送信されるノンス値です)。認可サーバーは、使用されるナンス値に対して他の処理を実行してはいけません。 nonce値は、大文字と小文字が区別される文字列です。
したがって、それらは異なる目的を果たします。そしてnonceはOAuth2でのJWTバインディングよりも古く(あいまいに定義されていますが)、不透明なトークン文字列を使用する場合でも適用されます。
ここで別の答え は、状態パラメータとノンスパラメータの違いを説明します。