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

3. 認可リクエスト (Authorization Request)

authorization_details認可リクエストパラメータは、scopeパラメータが同じ目的で使用されるすべての場所で認可要件を指定するために使用できます。例には以下が含まれます:

  • [RFC6749]で指定された認可リクエスト
  • [RFC8628]で指定されたデバイス認可リクエスト
  • [OID-CIBA]で定義されたバックチャネル認証リクエスト

[RFC6749]で定義された認可リクエストの場合、実装者はフローのセキュリティ、プライバシー、および信頼性を向上させるためにプッシュ認可リクエスト[RFC9126]の使用を検討する場合があります(MAY)。詳細については、セクション12、13、および11.4を参照してください。

パラメータのエンコーディングは、それぞれのコンテキストによって決定されます。[RFC6749]に従った認可リクエストのコンテキストでは、パラメータは、セクション2の例を使用して、図8に示すように、シリアル化されたJSONのapplication/x-www-form-urlencoded形式を使用してエンコードされます(改行は表示目的のみ):

GET /authorize?response_type=code
&client_id=s6BhdRkqt3
&state=af0ifjsldkj
&redirect_uri=https%3A%2F%2Fclient.example.org%2Fcb
&code_challenge_method=S256
&code_challenge=K2-ltc83acc4h0c9w6ESC_rEMTJ3bwc-uCHaoeK1t8U
&authorization_details=%5B%7B%22type%22%3A%22account%5Finformation%22%2C%22actions%22%3A%5B%22list%5Faccounts%22%2C%22read%5Fbalances%22%2C%22read%5Ftransactions%22%5D%2C%22locations%22%3A%5B%22https%3A%2F%2Fexample%2Ecom%2Faccounts%22%5D%7D%2C%7B%22type%22%3A%22payment%5Finitiation%22%2C%22actions%22%3A%5B%22initiate%22%2C%22status%22%2C%22cancel%22%5D%2C%22locations%22%3A%5B%22https%3A%2F%2Fexample%2Ecom%2Fpayments%22%5D%2C%22instructedAmount%22%3A%7B%22currency%22%3A%22EUR%22%2C%22amount%22%3A%22123%2E50%22%7D%2C%22creditorName%22%3A%22Merchant%20A%22%2C%22creditorAccount%22%3A%7B%22iban%22%3A%22DE02100100109307118603%22%7D%2C%22remittanceInformationUnstructured%22%3A%22Ref%20Number%20Merchant%22%7D%5D HTTP/1.1
Host: server.example.com

authorization_detailsパラメータで提供されたデータに基づいて、ASはユーザーに要求されたアクセス権限への同意を求めます。

注意: ユーザーは、要求された認可詳細のサブセットを付与することもできます。

3.1. "scope"パラメータとの関係 (Relationship to the "scope" Parameter)

authorization_detailsscopeは、独立した認可要件を運ぶために同じ認可リクエストで使用できます。authorization_detailsscopeの組み合わせ使用は、既存のOAuthベースのアプリケーションがauthorization_detailsを専用で使用するように段階的に移行できるように、この仕様でサポートされています。特定のAPIは、要件仕様の1つの形式のみを使用することが推奨されます(RECOMMENDED)。

ASは、与えられた認可リクエストに対して、両方の要件セットを組み合わせて処理しなければなりません(MUST)。ASがこれらのパラメータをどのように組み合わせるかの詳細は、保護されているAPIに固有であり、この仕様の範囲外です。

ユーザーの同意を収集する際、ASは認可リクエストによって表される要件のマージされたセットを提示しなければなりません(MUST)。

リソース所有者がクライアントに要求されたアクセスを許可する場合、ASはクライアントにそれぞれのauthorization_details(および該当する場合はscope値)に関連付けられたトークンを発行します。

3.2. "resource"パラメータとの関係 (Relationship to the "resource" Parameter)

[RFC8707]で定義されているresource認可リクエストパラメータは、要求されたscopeを適用できるリソースをさらに決定するために使用できます。resourceパラメータは、ASがauthorization_details認可リクエストパラメータを処理する方法に影響を与えません。