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