- 銀行振込の承認、操作履歴へのアクセス、アクセス資格情報の変更など、自社サービスで実行される機密性の高い操作を保護する。
- デジタル決済の承認や、アカウント確認のための 1 回限りのアクセス許可など、サードパーティサービスから要求される機密性の高い操作を保護する。
トランザクション認可は、API ごとに設定する必要があります。有効にすると、その API のスコープと
authorization_details.types に適用されます。前提条件
authorization_details.types を登録してください。
エンドツーエンドフロー
- トランザクションの詳細とともに、ユーザーを安全に Auth0 にリダイレクトします。このステップでは、フロントチャネル (例: ブラウザー) で機密情報が漏れないようにしてください。
- ユーザーの認証後に動的なポリシーを適用します。Actions を使用すると、トランザクションの詳細や、外部 API などのソースから取得したその他の情報に基づいて、次のステップを動的に決定できます。詳しくは、動的なポリシーを適用する を参照してください。
- 第 2 の認証要素でユーザーに追加認証を求め、ユーザーが明示的に承認できるようにトランザクションの詳細を表示します。このステップは、Actions を使用して適用する認証要素として何を選択したかによって異なります。
- アクセストークンを取得し、機密性の高い操作を続行します。API は、アクセストークンに関連付けられた、承認済みのトランザクション詳細を検証します。

トランザクションの詳細を伝達し、Auth0 にリダイレクトする
/authorize エンドポイントにクエリーパラメーターを送信する代わりに、PAR では POST リクエストを使用して、バックエンドから専用の /par エンドポイントへパラメーターを直接送信します。設定方法については、Configure Pushed Authorization Requests を参照してください。
PAR リクエストの本文では、トランザクションの詳細は authorization_details JSON オブジェクトの一部として送信されます。
authorization_details を確認し、トランザクションに応じて使用する認証要素を決定します。authorization_details の詳細と、PAR と併用する方法については、リッチ認可リクエストを使用した Authorization Code Flowを参照してください。
FAPI 1 Advanced Security の準拠要件を満たすには、公開鍵暗号方式も使用して、バックエンドを /par または /token エンドポイントに対して認証する必要があります。これは、 を送信するよりも安全です。Auth0 では、次の公開鍵暗号方式による認証方法を提供しています。
PAR リクエストに対する成功レスポンスを受信したら、ユーザーを Auth0 テナントの /authorize エンドポイントにリダイレクトします。PAR レスポンスで受け取った request_uri パラメーターと client_id のみをクエリパラメーターとして追加することで、機密情報を実質的にブラウザーから隠すことができます。
動的ポリシーを適用する
/authorizeエンドポイントにアクセスすると、Auth0はそのユーザーの認証を試みます。銀行振込の承認という本ガイドの例では、ユーザーがWebアプリケーションにアクセスするための認証は、すでにAuth0によって完了しています。しかし、デジタル決済のようにサードパーティによってユーザーがリダイレクトされた場合は、Auth0がユーザーにログイン画面を表示します。認証フローの詳細については、Authenticateのドキュメントを参照してください。
Auth0がユーザーの認証に成功すると、Auth0はログイン後のActionsをトリガーします。これにより、ユーザー、アプリ、使用された認証要素などに関するトランザクションの詳細が、post-login event objectで参照できるようになります。この post-login event object では、event.transaction.requested_authorization_detailsプロパティに、前のステップで受け取った認可リクエストの詳細が含まれます。
post-login event objectを使用して、トランザクションをどのように進めるかを判断します。たとえば、トランザクションの詳細を外部のリスクエンジンに送信し、リスクレベルを評価したうえで、次のコードサンプルに示すように、smsを使用したステップアップ認証を要求するかどうかを決定できます。
ユーザーにトランザクション詳細の承認を求める
プッシュ通知

otpFallback: false を追加すると、OTP を手動で入力するフォールバックオプションを無効にできます。
authorization_details をユーザーに表示するには、モバイルアプリケーションが txlnkid パラメーターからそれらを取得する必要があります。Auth0 Guardian SDK は、プッシュ通知を介して txlnkid パラメーターをテナントからモバイルアプリケーションに渡します。
モバイルアプリケーションが Guardian SDK 経由でプッシュ通知を受信すると、Auth0 Consent API から authorization_details を含む同意の詳細を取得できます。
- iOS
- Android
api.authentication.challengeWith() の前に api.multifactor.enable() を呼び出すと、このデバイスを記憶するオプションを削除し、すべてのトランザクションでユーザーにプッシュチャレンジの検証を必須にできます。詳しくは、Action Triggers: post-login - API object を参照してください。
ユーザーが操作を承認または拒否すると、モバイルアプリケーションは MFA チャレンジを許可または拒否できます。トランザクションは 操作を完了する フェーズに進みます。
プッシュ通知を開いたユーザーの本人確認を行うために、モバイルアプリケーションに生体認証を追加できます。詳しくは、Configure WebAuthn with Device Biometrics for MFA を参照してください。
SMS、メールアドレス、または WebAuthn

Actions から、
api.authentication.challengeWith の前に api.multifactor.enable('any', { allowRememberBrowser: false }) を呼び出すと、このデバイスを記憶するオプションを無効にし、すべてのトランザクションでユーザーに push チャレンジの検証を必須にできます。チャレンジなし
操作を完了する
authorization_details が含まれます。次のコードサンプルは、復号したアクセストークンの内容を示しています。
authorization_details を確認し、金額、送信元、送金先などのトランザクションの詳細を検証します。検証が完了すると、送金が正常に実行され、承認画面が表示されます。
いずれかのステップでトランザクションが拒否された場合、ユーザーのブラウザーには access_denied エラーコードが表示されます。