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設定に同意ポリシーを設定します。

  1. [Auth0 Dashboard] > [Applications(アプリケーション)] > [APIs]に移動します。

  2. [Settings(設定)]タブを選択します。

  3. [Access Settings(アクセス設定)]の下の、[Transactional Authorization with MFA(MFAを使用したトランザクション認可)]を選択します。

  4. 変更を保存します。

Dashboard > Applications > APIs > Settings > Access Settings

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 を追加することができます。

  1. [Auth0 Dashboard] > [Applications(アプリケーション)] > [APIs]に移動します。

  2. [Permissions(権限)]タブを選択します。

  3. [Add an Authorization Details Type(認可詳細タイプの追加)]の下に、payment_initiationを追加します。[+Add(+追加)]オプションを選択します。money_transferを追加し、[+Add(+追加)]オプションを選択します。

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がエンドユーザーに表示する以下の同意プロンプト内に認可詳細をレンダリングします。

同意プロンプトをカスタマイズする方法については、「新しいユニバーサルログインページをカスタマイズする」と「ノーコードエディターで新しいユニバーサルログインをカスタマイズする」をお読みください。