Open2
RFC 7523 JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants
RFC 7523 - JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants
概要
RFC 7521 (参考) では OAuth 2.0 のトークンエンドポイントにおける認可グラントまたはクライアント認証の方法としてアサーションを用いる方法が定義されたが、アサーションの具体的な形式等については述べられていなかった。
本仕様ではアサーションとして JWT を用いる方法が定義されている。
認可グラントとして用いる場合
- トークンエンドポイントのリクエストの
grant_type
にはurn:ietf:params:oauth:grant- type:jwt-bearer
を指定する - 同じく
assertion
には JWT を 1 つ指定する。
クライアント認証で用いる場合
- トークンエンドポイントのリクエストの
client_assertion_type
にはurn:ietf:params:oauth:client-assertion-type:jwt-bearer
を指定する - 同じく
client_assertion
には JWT を 1 つ指定する
アサーションで用いるJWT の形式について
Section 3 ではJWT に必要なクレームが記載されている。これ以外のクレームがあっても良い。
claim | required | description |
---|---|---|
iss | true | JWT の発行者。認可サーバーはこれが想定された値と一致することを確認する |
sub | true | 認可グラントとして用いる場合はリソースオーナーなど[1]。クライアント認証として用いる場合は RP の client_id
|
aud | true | 認可サーバーを示す値を入れる。その認可サーバーのトークンエンドポイントの URL を入れても良い |
exp | true | アサーションの失効日時。認可サーバーは失効判定の際に時刻ズレを考慮してもよいほか、あまりにも未来の日時が指定されている場合には失効していなくても reject してよい。 |
nbf | false | JWT が有効になる日時 |
iat | false | JWT の発行日時。あまりにも過去の日時が指定されている場合は reject してもよい |
jti | false | JWT ID のこと。 |
-
仕様には the resource owner or an authorized delegate と書かれているが、authorized delegate というのはどういう場合なのかよくわからない ↩︎