メインコンテンツまでスキップ

3. Requesting a JWT Access Token (JWTアクセストークンの要求)

認可サーバーは、[RFC6749] およびアクセストークンをもたらすことを意図した後続の拡張で定義されている任意の認可グラントに応答して、JWTアクセストークンを発行できます。

要求に "resource" パラメータ ([RFC8707] で定義) が含まれている場合、結果として得られるJWTアクセストークンの "aud" クレームは、要求の "resource" パラメータと同じ値を持つべきです (SHOULD)。

以下は要求の例です:

GET /as/authorization.oauth2?response_type=code
&client_id=s6BhdRkqt3
&state=xyz
&scope=openid%20profile%20reademail
&redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb
&resource=https%3A%2F%2Frs.example.com%2F HTTP/1.1
Host: authorization-server.example.com

図1: リソースとスコープパラメータを含む認可要求

一度引き換えられると、上記の要求から取得されたコードは、以下に示す形式のJWTアクセストークンになります:

ヘッダー:

{"typ":"at+JWT","alg":"RS256","kid":"RjEwOwOA"}

クレーム:

{
"iss": "https://authorization-server.example.com/",
"sub": "5ba552d67",
"aud": "https://rs.example.com/",
"exp": 1639528912,
"iat": 1618354090,
"jti": "dbe39bf3a3ba4238a513f51d6e1691c4",
"client_id": "s6BhdRkqt3",
"scope": "openid profile reademail"
}

図2: JWTアクセストークンのヘッダーとJWTクレームセット

トークンによって付与される認可が曖昧である場合、認可サーバーはJWTアクセストークンを発行してはなりません (MUST NOT)。曖昧さにつながる可能性のある一般的なケースと、認可サーバーがそれらを防ぐために制定できる戦略の詳細については、セクション5を参照してください。

要求に "resource" パラメータが含まれていない場合、認可サーバーは "aud" クレームでデフォルトのリソース指標 (Resource Indicator) を使用しなければなりません (MUST)。要求に "scope" パラメータが存在する場合、認可サーバーはそれを使用して、"aud" クレームで使用されるデフォルトのリソース指標の値を推測すべきです (SHOULD)。スコープがデフォルトのリソース指標値に関連付けられるメカニズムは、本仕様の範囲外です。"scope" パラメータの値が異なるデフォルトのリソース指標値を参照する場合、認可サーバーは [RFC6749] のセクション4.1.2.1で説明されているように、"invalid_scope" で要求を拒否すべきです (SHOULD)。