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

6. トークンリクエスト (Token Request)

authorization_detailsトークンリクエストパラメータは、クライアントがASにアクセストークンに割り当てることを望む認可詳細を指定するために使用できます。ASは、基礎となるグラント(グラントタイプauthorization_coderefresh_tokenなどの場合)またはクライアントのポリシー(グラントタイプclient_credentialsの場合)が、要求された認可詳細を持つアクセストークンの発行を許可するかどうかをチェックします。それ以外の場合、ASはエラーコードinvalid_authorization_details(invalid_scopeと同様)でリクエストを拒否します。

6.1. 認可詳細の比較 (Comparing Authorization Details)

OAuthプロトコルの多くのアクションでは、リクエストが以前の既存のリクエストよりも「多く」または「少なく」要求しているかどうかに基づいて、ASとRSがセキュリティ上の決定を下すことができます。たとえば、トークンを更新する際、クライアントは、リソース所有者が以前に承認したものよりも「権限が少ない」新しいアクセストークンを要求できます。要求されたアクセストークンは、削減された権限を伝えますが、リソース所有者の以前の承認はそのようなリクエストによって変更されません。

authorization_details内のフィールドのセマンティクスは、特定のAPIまたはAPIセットの実装に固有であるため、2つの任意の認可詳細リクエストを比較する標準化されたメカニズムはありません。ASは、ほとんどの場合、単純なオブジェクトの比較に依存すべきではありません。リクエスト内のいくつかのフィールドの交差は、APIがどのように設計および展開されているかに応じて、付与されるアクセス権に副作用を及ぼす可能性があるためです。これは、一部のAPIで使用されるscope値と同様の効果です。

新しいリクエストを既存のリクエストと比較する場合、ASは、最初にリクエストを許可する際に使用したのと同じ処理技術を使用して、リソース所有者がリクエストを承認する必要があるかどうかを判断できます。この比較の詳細は、認可リクエストのタイプの定義に依存し、この仕様の範囲外ですが、一般的なパターンを適用できます。