Open1

RFC 9068 JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens

yapooyapoo

RFC 9068 - JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens

アクセストークンを発行する認可サーバーと、アクセストークンを (クライアントから) 受け取るリソースサーバーが分かれているとき、リソースサーバーがトークンイントロスペクションエンドポイントを用いずにアクセストークンの有効性や関連情報を得られるようにするために、アクセストークンを JWT にする事がある。本仕様ではアクセストークンを JWT にする場合の標準的な仕様が定義されている。

ヘッダ

アクセストークンを JWT にする場合、JWT は署名されていなければならず、署名アルゴリズムとして RS256 をサポートしなければならない。

また、ヘッダの typapplication/at+jwt または at+jwt とするべきである。

ペイロード

claim description
iss (必須) これは Server Metadata (RFC8414) の issuer と同じであり、https での URL である
exp (必須) アクセストークン の失効日時
aud (必須) 認可エンドポイントやトークンエンドポイントのリクエストに resource (RFC 8707) が含まれる場合はそれに対応した値。含まれない場合は認可サーバーで定めるデフォルト値にする
sub (必須) 認可コードフローのようにリソースオーナーがある場合にはその識別子。クライアントクレデンシャルズフローなどのようにクライアント自身がリソースオーナーの場合はクライアントの識別子
client_id (必須) アクセストークンをリクエストしたクライアントの識別子
iat (必須) アクセストークンの発行日時
jti (必須) アクセストークンの識別子
auth_time (任意) 認証日時[1]
acr (任意) 認証コンテクストリファレンス[1:1]
amr (任意) 認証方法[1:2]
scope (任意) クライアントが認可エンドポイントやトークンエンドポイントで scope リクエストパラメータを指定した場合にはこのクレームを含むべきとされている
脚注
  1. これは OpenID Connect Core で示される ID トークンのクレームと同じである ↩︎ ↩︎ ↩︎