/par エンドポイントに authorization_details パラメーターを渡すことで、scope で要求する権限よりも細かい permissions をリクエストできます。これにより、クライアントとリソース所有者の双方がリソースへのアクセスをよりきめ細かく制御できるようになり、過剰なアクセス権付与に伴うセキュリティリスクを軽減できます。
Auth0 では authorization_details の type の検証のみがサポートされているため、authorization_details 内の JSON オブジェクトの検証は自分で実装する必要があります。詳しくは、Rich Authorization Requests を設定する を参照してください。
仕組み
authorization_details パラメーターはオブジェクトの JSON 配列で、各オブジェクトには文字列として表される type フィールドが含まれている必要があります。type フィールドによって、カスタマイズ可能なオブジェクトフィールドが決まります。authorization_details 配列には、同じ type のエントリーを複数含めることもできます。authorization_details の type を登録する方法について詳しくは、Rich Authorization Requests を設定するを参照してください。
Auth0 は、ユーザーがカスタム同意画面で認可できるように authorization_details を表示します。詳しくは、カスタマイズされた同意プロンプトを設定するを参照してください。
authorization_details パラメーターは /par エンドポイントに渡す必要があります。これにより、Auth0 の が type を事前に検証できるようになります。/par エンドポイントは、ブラウザーなどのフロントチャネルで機密データが漏えいするのを防ぐため、認可リクエストをバックチャネルで渡します。認可リクエストを /par エンドポイントに渡すと、アプリケーション は /authorize エンドポイントにリダイレクトされ、その後、認可コードフローに進みます。詳しくは、PAR を使用した認可コードフローを参照してください。
認可コードフローを完了するには、次の例のように /oauth/token エンドポイントで認可コードを token と交換します。
authorization_details 配列を含むレスポンスが返されます:
authorization_details を使用することで、アクセストークンを確認しなくても、自身に付与された認可のスコープを把握できます。リクエストされたが JWE access tokens を必要とする API である場合、/oauth/token エンドポイントは、authorization_details から type 以外のすべてのオブジェクトフィールドを省略したレスポンスを返します。レスポンス内のアクセストークンのクレームには影響ありません。
- カスタムドメインを作成します。
- カスタム Universal Login Pages テンプレートを作成します。 Page テンプレートをカスタマイズする方法については、Page templates API のドキュメントを参照してください。
- リソースサーバーに
authorization_detailsタイプを登録します。 - カスタマイズした同意プロンプトを設定します。
Auth0 は、Actions を使用した RAR の更新をサポートしていません。
event.transaction.requested_authorization_details プロパティを通じて、authorization_details パラメーターを利用できます。Action ではこのプロパティを参照して、MFA challenge でユーザーにトランザクションの詳細を表示できます。
Auth0 でサポートされていないこと
- Actions を使用した RAR の更新。
- クライアントが検出できるように RAR タイプを公開すること。
- API で許可されているタイプと一致する
typeプロパティを持っているかどうかの確認を超える、RAR オブジェクトの検証。詳細については、RARを構成 を参照してください。