- 銀行振込の承認、操作履歴へのアクセス、アクセス資格情報の変更など、自社サービスから実行される機密性の高い操作を保護すること。
- デジタル決済の承認や、口座確認のための 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 と併用する方法について詳しくは、Rich Authorization Requests を使用する認可コードフロー をお読みください。
FAPI 1 Advanced Security の準拠要件を満たすには、バックエンドが /par または /token エンドポイントに対して認証する際に、公開鍵暗号方式も使用する必要があります。これは、 を送信するよりも安全です。Auth0 では、次の公開鍵暗号方式による認証方法を提供しています。
PAR リクエストに対する成功レスポンスを受け取ったら、ユーザーを Auth0 テナントの /authorize エンドポイントにリダイレクトします。PAR レスポンスで受け取った request_uri パラメータと client_id のみをクエリパラメータとして追加することで、機密情報をブラウザーから実質的に隠せます。
動的ポリシーを適用する
/authorize エンドポイントにアクセスすると、Auth0 はユーザーの認証を試みます。銀行振込の承認を例にすると、Auth0 はユーザーが Web アプリケーションにアクセスするための認証をすでに完了しています。しかし、デジタル決済などでサードパーティがユーザーをリダイレクトした場合、Auth0 はユーザーにログイン画面を表示します。認証フローの詳細については、Authenticate のドキュメントを参照してください。
Auth0 がユーザーの認証に成功すると、Auth0 は post-login Actions をトリガーします。これにより、ユーザー、アプリ、使用された認証要素などに関するトランザクションの詳細が、post-login event object で公開されます。post-login event object 内では、event.transaction.requested_authorization_details プロパティに、前のステップで受信した認可リクエストの詳細が含まれます。
post-login event object を使用して、そのトランザクションをどのように進めるかを決定します。たとえば、トランザクションの詳細を外部のリスクエンジンに送信し、リスクレベルを評価したうえで、次のコードサンプルに示すように、sms を使用した step-up authentication を要求するかどうかを判断できます。
ユーザーにトランザクションの詳細の承認を求める
プッシュ通知

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 challenge を許可または拒否できます。トランザクションは 操作を完了する フェーズに進みます。
プッシュ通知を開いたユーザーの本人確認を行うために、モバイルアプリケーションに生体認証を追加できます。詳しくは、MFA 向けに Device Biometrics を使用して WebAuthn を設定する を参照してください。
SMS、Email、または WebAuthn

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