クライアント起点バックチャネル認証 (CIBA) 機能を使用するには、Enterprise Plan または適切なアドオンが必要です。詳しくは、Auth0 Pricingを参照してください。

- 前提条件
- ステップ 1: クライアントアプリケーションが CIBA リクエストを開始する
- ステップ 2: Auth0 テナントが CIBA リクエストを受け付ける
- ステップ 3: クライアントアプリケーションがレスポンスをポーリングする
- ステップ 4: モバイルアプリケーションがプッシュ通知を受信する
- ステップ 5: モバイルアプリケーションが同意の詳細を取得する
- ステップ 6: モバイルアプリケーションが同意の詳細をユーザーに表示する
- ステップ 7: モバイルアプリケーションがユーザーの応答を Auth0 に送信する
- ステップ 8: フローの完了後に Auth0 がユーザーの応答を受信する
- ステップ 9: Auth0 がクライアントアプリケーションにアクセストークンを返す
前提条件
- テナントとアプリケーションで、クライアント起点バックチャネル認証を設定し、モバイルプッシュ通知も設定します。
requested_expiryパラメーターを 300 秒以下に設定します。詳しくは、通知チャネルの設定を参照してください。
ステップ 1: クライアントアプリケーションが CIBA リクエストを開始する
/bc-authorize エンドポイントに CIBA リクエストを送信します。
- cURL
- C#
- Go
- Java
認可を行うユーザーごとにレート制限があり、1 分あたり 5 件を超えるリクエストは送信されません。
ステップ 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: モバイルアプリケーションでプッシュ通知を受信する
Notification インスタンスを返すメソッドが用意されています。Notification インスタンスには、トランザクション関連付け ID (txlinkid) が含まれており、モバイルアプリケーションはこれを使用して Auth0 から同意の詳細を取得します。
以下のコードサンプルは、Guardian SDK を使用した iOS および Android のモバイル向けプッシュ通知実装例です。
- iOS
- Android
ステップ 5: モバイルアプリケーションが同意の詳細を取得します
binding_message の内容を取得します。
カスタムアプリを使用している場合、次のコードサンプルは Auth0 Consent API からデータを取得する iOS および Android の実装例です。
- iOS
- Android
ステップ 6: モバイルアプリケーションが同意の詳細をユーザーに表示する
binding_message、scope、audience を含む同意の詳細を、Auth0 Guardian アプリまたは Auth0 Guardian SDK と連携したカスタムアプリに返します。モバイルアプリケーションに返されるスコープは、RBAC ポリシーに基づいてフィルタリングされます。詳しくは、ロールベースアクセス制御 を参照してください。
モバイルアプリケーションは、認証リクエストおよび/または同意の詳細をユーザーに表示します。
次のコードサンプルは、Auth0 Consent API からのレスポンスの例です。
ステップ 7: モバイルアプリケーションがユーザーの応答を Auth0 に返送する
ユーザーが認証リクエストを承認する
- iOS
- Android
ユーザーが認証リクエストを拒否する
- iOS
- Android
ステップ8: フロー完了後、Auth0 はユーザーの応答を受け取る
/token エンドポイントからの応答を受信すると、ポーリングを終了します。CIBA フローでは常に、認可を行うユーザーから承認または拒否の応答が必要であり、既存のグラントは確認されません。
ステップ 9: Auth0 がクライアントアプリケーションにアクセストークンを返す
refresh_token は、最初の /bc-authorize リクエストに offline_access スコープが含まれている場合にのみ返されます。