クライアント主導のバックチャネル認証 (CIBA) 機能を使用するには、Enterprise プランまたは適切なアドオンが必要です。詳しくは Auth0 Pricing を参照してください。
authorization_details パラメーターにはリクエストの詳細が含まれており、その内容はユーザーに表示する同意プロンプトでカスタマイズできます。
CIBA では、次の通知チャネルを使用してユーザーを認可できます。
- Auth0 Guardian アプリと、Auth0 Guardian SDK を統合したカスタムアプリを使用するモバイルプッシュ通知。
- カスタマイズした同意プロンプトの設定が必要なメール通知。
一般的なユースケース
- 支払いアプリが、送金の確認をユーザーに求めます。
authorization_detailsは、トランザクションの詳細を表示するようにカスタマイズできます。 - AI エージェントが、予約変更された診察の詳細をユーザーに提示します。
authorization_detailsは、新しい日時を表示するようにカスタマイズできます。
仕組み
/bc-authorize エンドポイントを介して authorization_details を認可サーバーに渡すことができます。
次のシーケンス図は、CIBA を使用したユーザー認可フローのエンドツーエンドの流れを示しています。

- 前提条件
- ステップ 1: クライアントアプリケーションが CIBA リクエストを開始する
- ステップ 2: Auth0 テナントが CIBA リクエストを受け付ける
- ステップ 3: クライアントアプリケーションが応答をポーリングする
- ステップ 4: 認証デバイスがプッシュ通知を受信する
- ステップ 5: 認証デバイスが同意の詳細を取得する
- ステップ 6: 認証デバイスが同意の詳細をユーザーに提示する
- ステップ 7: 認証デバイスがユーザーの応答を Auth0 に送り返す
- ステップ 8: フローの完了後、Auth0 がユーザーの応答を受信する
- ステップ 9: Auth0 がクライアントアプリケーションにアクセストークンを返す
前提条件
- テナントとアプリケーションに対して、クライアント主導のバックチャネル認証を設定します。これには、通知チャネルの設定も含まれます。
- に対して、Rich Authorization Requests を設定します。これには、
authorization_detailsのタイプの登録が含まれます。 - RAR を使用する CIBA でメール通知を使用する場合は、カスタマイズされた同意プロンプトを設定します。
ステップ 1: クライアント アプリケーションが CIBA リクエストを開始する
authorization_details を含む CIBA リクエストを /bc-authorize エンドポイントに送信します。
ステップ 2: Auth0 テナントが CIBA リクエストの受信を確認する
POST リクエストを正常に受信すると、そのリクエストを参照する auth-req-id を含むレスポンスが返されます:
auth_req_id の値は、CIBAフローの完了を確認するために /token エンドポイントに渡されます。
ステップ 3: クライアントアプリケーションが応答をポーリングする
urn:openid:params:grant-type:ciba グラントタイプと /bc-authorize エンドポイントから受け取った auth_req_id を指定し、/token エンドポイントを呼び出します。
- cURL
- C#
- Go
- Java
/token エンドポイントをポーリングできるまでの間隔 (秒) が経過するのを待ってください。
ステップ4: 認証デバイスが通知を受信する
- モバイルプッシュ通知: Auth0 は、Auth0 Guardian アプリまたは Auth0 Guardian SDK を組み込んだカスタムモバイルアプリに通知を送信します。
- メール通知: Auth0 は、ユーザーの確認済みメールアドレスに通知を送信します。
Step 5: 認証デバイスが同意の詳細を取得する
binding_message の内容を取得します。
- Mobile push notification: Auth0 Guardian アプリ、または Auth0 Guardian SDK を組み込んだカスタムアプリが Auth0 Consent API を呼び出し、同意の詳細を取得します。
- Email notification: ユーザーが確認リンクをクリックするとブラウザーにリダイレクトされ、そのブラウザーが Auth0 Consent API から同意の詳細を取得します。
ステップ 6: 認証デバイスが同意の詳細をユーザーに提示する
binding_message、scope、audience、authorization_details が含まれます。モバイルアプリケーションに返されるスコープは、RBAC ポリシーに従ってフィルタリングされます。詳しくは、ロールベースのアクセス制御を参照してください。
次のコードサンプルは、Auth0 Consent API からのレスポンスの例です。
authorization_details とともに同意の詳細をユーザーに表示します。
- モバイルプッシュ通知: Auth0 Guardian アプリは、プッシュ通知を使用して同意画面に
authorization_detailsをレンダリングします。 - メール通知: ブラウザーは、カスタム同意画面に
authorization_detailsをレンダリングします。同意画面をカスタマイズする方法については、カスタマイズされた同意プロンプトを設定する を参照してください。
Step 7: 認証デバイスがユーザーの応答を Auth0 に返送する
- モバイルプッシュ通知: Auth0 Guardian アプリ、または Auth0 Guardian SDK を統合したカスタムアプリケーションが、ユーザーの応答を Auth0 に返送します。
- メール通知: ブラウザーがユーザーの応答を Auth0 に返送します。
ステップ 8: フローの完了後、Auth0 がユーザーの応答を受け取る
/token エンドポイントから応答を受け取ると、ポーリングを完了します。CIBAフローでは、認可を行うユーザーによる承認または拒否のいずれかの応答が常に必要であり、既存のグラントは確認されません。つまり、Auth0 はすべての CIBA リクエストを、認可を行うユーザーに対する新たな認可として扱います。
ステップ 9: Auth0 がクライアントアプリケーションにアクセストークンを返す
authorization_details を含む をクライアントアプリケーションに返します。
refresh_token が含まれるのは、最初の /bc-authorize リクエストに offline_access スコープが含まれていた場合のみです。authorization_details の型やオブジェクトを同意の詳細から厳密な型で照会できます。
- iOS
- Android
filterAuthorizationDetailsByType() 関数を使用して、目的の型に一致する authorization_details オブジェクトをすべて返せます。
次のコードサンプルでは、payment 型の authorization_details を照会しています。
- iOS
- Android
filterAuthorizationDetailsByType() は、指定した authorization_details 型に一致するオブジェクトのみを返します。そのため、モバイル アプリケーションでは、リクエストの内容をユーザーが完全に理解できるよう、型に関係なく関連するすべての authorization_details を同意のために提示する必要があります
AI エージェントまたはアプリケーションが応答を取得するために /oauth/token エンドポイントをポーリングするときにも、authorization_details を照会できます。
認可を行うユーザーがリクエストを承認すると、Auth0 はユーザーの応答を受け取り、CIBA フローが完了して、アクセストークンと
authorization_details 配列が返されます。
制限事項
- CIBAフローで Actions 内の RAR を変更すること。
- クライアントが検出できるように RAR タイプを公開すること。つまり、クライアントが送信できる
authorization_detailsのタイプを事前に登録しておく必要があります。 - API で許可されているタイプに一致する
typeプロパティを持っているかどうかの確認を超えて、RAR オブジェクトを検証すること。authorization_details内の内容をきめ細かく検証する責任は、リソースサーバーにあります。詳しくは、RARを構成 を参照してください。