Rich Authorization Requests(RAR)を構成する
前提条件
APIのRich Authorization Requests(RAR)構成する前に、以下をセットアップします。
カスタムのユニバーサルログインページテンプレートManagement APIを使用してユニバーサルログインページのテンプレートをカスタマイズする方法については、「ページテンプレートAPI」をお読みください。
リソースサーバーを構成する
同意ポリシーを設定する
同意ポリシーは、Auth0がいつ、どのようにして同意プロンプトをエンドユーザーに提示するかを定めます。
Auth0テナントに登録されているリソースサーバー(すなわちAPI)は、Rich Authorization Request(RAR)を承認する際にどの同意ポリシーを適用するかを事前に定義する必要があります。
デフォルトの同意ポリシーは、null
または未定義です。Auth0は同意ポリシーのtransactional-authorization-with-mfa
もサポートしており、これは、リソース所有者(すなわちエンドユーザー)の明示的同意が常に必要なトランザクション認可のユースケースに対応します。Auth0の同意ポリシーの動作を下の表にまとめました。
Rich Authorization Request? | MFA必須? | null または未定義(デフォルト) |
transactional-authorization-with-mfa |
---|---|---|---|
いいえ | いいえ | 要求されるアクセス権を含む付与がない限りは、標準の同意が表示されます。 | 以前付与されたアクセス権に関わらずカスタマイズされた同意が表示されます。 |
はい | いいえ | 認可要求はinvalid_request で拒否されます。 |
以前付与されたアクセス権に関わらずカスタマイズされた同意が表示されます。 |
はい | はい。プッシュ通知でない認証要素を使用 | 認可要求はinvalid_request で拒否されます。 |
ユーザーがMFAチャレンジを完了した後、カスタマイズされた同意が表示されます。 |
はい | はい。プッシュ通知要素を使用 | 認可要求はinvalid_request で拒否されます。 |
同意は表示されません。同意は、プッシュ通知チャレンジを受け取ったモバイルアプリケーションで対処されます。 |
Auth0 Dashboardを使用してAPI設定に同意ポリシーを設定します。
[Auth0 Dashboard] > [Applications(アプリケーション)] > [APIs]に移動します。
[Settings(設定)]タブを選択します。
[Access Settings(アクセス設定)]の下の、[Transactional Authorization with MFA(MFAを使用したトランザクション認可)]を選択します。
変更を保存します。

Management APIのリソースサーバーの更新エンドポイントへの次のPATCH要求は、既存のリソースサーバーに対する同意ポリシーをtransactional-authorization-with-mfa
に設定します。
curl --location --request PATCH 'https://$tenant/api/v2/resource-servers/$resource-server-id' \ --header 'Authorization: Bearer $management_access_token' \ --header 'Content-Type: application/json' \ --data-raw '{ "consent_policy": "standard" }'
Was this helpful?
authorization_detailsタイプを登録する
リソースサーバーは、許可されたスコープの登録と同様に、承認されたauthorization_details
タイプを登録しなければなりません。authorization_details
が以下の要件を満たしていることを確認してください。
5Kbが上限です
有効なJSONでなければなりません
オブジェクトの配列でなければなりません
配列には5エントリが上限です
すべてのオブジェクトには
type
プロパティが必要です(APIに事前登録)オブジェクトあたりのプロパティは10個が上限です
プロパティ名の長さは255文字が上限です
プロパティ値の長さは255文字が上限です
ネストされたオブジェクトは5レベルが上限です
プロパティ名には次の文字のみを使用できます:
a-zA-Z0-9_.-
authorization_details
タイプの登録には、Auth0 DashboardまたはManagement APIを使用できます。
Auth0 Dashboardでauthorization_details
を追加することができます。
[Auth0 Dashboard] > [Applications(アプリケーション)] > [APIs]に移動します。
[Permissions(権限)]タブを選択します。
[Add an Authorization Details Type(認可詳細タイプの追加)]の下に、
payment_initiation
を追加します。[+Add(+追加)]オプションを選択します。money_transfer
を追加し、[+Add(+追加)]オプションを選択します。
次のPATCH要求は、Management APIのリソースサーバーの更新エンドポイントに対して、payment_initiation
とmoney_transfer
を既存のリソースサーバーのauthorization_details
タイプとして登録します。
curl --location --request PATCH 'https://$tenant/api/v2/resource-servers/$resource-server-id' \
--header 'Authorization: Bearer $management_access_token' \
--header 'Content-Type: application/json' \
--data-raw '{
"authorization_details": [{"type": "payment_initiation"}, {"type": "money_transfer"}]
}'
Was this helpful?
Rich Authorization Requestsのリソースサーバーを作成する
以下のPOST要求はRich Authorization Requests(リッチ認可要求)を受け取るリソースサーバーを作成して構成します。
curl --location --request POST 'https://$tenant/api/v2/resource-servers' \
--header 'Authorization: Bearer $management_access_token' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Payments API",
"identifier": "https://payments.api/",
"consent_policy": "standard",
"authorization_details": [{"type": "payment_initiation"}]
}'
Was this helpful?
カスタマイズされた同意プロンプトを設定して認可詳細を表示する
Rich Authorization Requests(リッチ認可要求)の認可詳細を同意画面に表示するには、適切なテンプレートのパーシャルを使用してcustomized-consent
プロンプトを構成する必要があります。
以下のPUT要求は、カスタマイズされた同意のパーシャルを構成します。
curl --location --request PUT "https://$tenant/api/v2/prompts/customized-consent/partials" \
--header "Authorization: Bearer $management_access_token" \
--header "Content-Type: application/json" \
--data '{
"customized-consent": {
"form-content": "<div style=\"font-size: 1.3em; font-weight: bold;\">Operation Details</div><hr style=\"margin: 10px 0;\"><div style=\"margin-bottom: 20px;\"></div><div style=\"font-weight: bold;\">Transaction Type</div><div>{{ transaction.params.authorization_details[0].type }}</div><div style=\"margin-bottom: 20px;\"></div><div style=\"font-weight: bold;\">Amount</div><div>{{ transaction.params.authorization_details[0].instructedAmount.amount }} {{ transaction.params.authorization_details[0].instructedAmount.currency }}</div><div style=\"margin-bottom: 20px;\"></div><div style=\"font-weight: bold;\">Recipient</div><div>{{ transaction.params.authorization_details[0].beneficiary }}</div><div style=\"margin-bottom: 20px;\"></div><div style=\"font-weight: bold;\">Destination Account</div><div>{{ transaction.params.authorization_details[0].destinationAccount }}</div><div style=\"margin-bottom: 20px;\"></div>"
}
}'
Was this helpful?
カスタマイズされた同意テンプレートは、Auth0がエンドユーザーに表示する以下の同意プロンプト内に認可詳細をレンダリングします。
同意プロンプトをカスタマイズする方法については、「新しいユニバーサルログインページをカスタマイズする」と「ノーコードエディターで新しいユニバーサルログインをカスタマイズする」をお読みください。