クライアント起点バックチャネル認証 (CIBA) 機能を使用するには、エンタープライズプランまたは適切なアドオンが必要です。詳しくは、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タイプの登録が含まれます。 - CIBA と RAR でメール通知を使用している場合は、カスタマイズした同意プロンプトを設定 します。
ステップ 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 はユーザーの確認済みメールアドレスに送信します。
ステップ 5: 認証デバイスが同意内容を取得する
binding_message の内容を取得します。
- モバイルプッシュ通知: Auth0 Guardian アプリ、または Auth0 Guardian SDK を統合したカスタムアプリが Auth0 Consent API を呼び出し、同意の詳細を取得します。
- メール通知: ユーザーが確認用リンクをクリックするとブラウザーにリダイレクトされ、そのブラウザーが Auth0 Consent API から同意の詳細を取得します。
ステップ 6: 認証デバイスがユーザーに同意の詳細を表示する
binding_message、scope、audience、および設定されている場合は authorization_details を含む同意の詳細を認証デバイスに返します。モバイルアプリケーションに返されるスコープは、RBAC ポリシーに従ってフィルタリングされます。詳しくは、ロールベースアクセス制御 を参照してください。
次のコードサンプルは、Auth0 Consent API からのレスポンス例です。
authorization_details を含む同意の詳細をユーザーに表示します。
- モバイルプッシュ通知: Auth0 Guardian アプリは、プッシュ通知を使用して、同意画面に
authorization_detailsをレンダリングします。 - メール通知: ブラウザーは、カスタム同意画面に
authorization_detailsをレンダリングします。同意画面をカスタマイズする方法については、カスタマイズされた同意プロンプトを設定するを参照してください。
ステップ 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内の内容の詳細な検証は、リソースサーバー側で行う必要があります。詳しくは、Configure RAR を参照してください。