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

- 前提条件
- ステップ 1: クライアントアプリケーションが CIBA リクエストを開始する
- ステップ 2: Auth0 テナントが CIBA リクエストを受け付ける
- ステップ 3: クライアントアプリケーションがレスポンスをポーリングする
- ステップ 4: Auth0 がユーザーのメールアドレスにリンクを送信する
- ステップ 5: ユーザーがブラウザーで認証する
- ステップ 6: ブラウザーが同意内容をユーザーに表示する
- ステップ 7: フロー完了後に Auth0 がユーザーの応答を受信する
- ステップ 8: Auth0 がアクセストークンをクライアントアプリケーションに返す
前提条件
- テナントとアプリケーションで、クライアント起点バックチャネル認証を設定し、メール通知も構成します。
requested_expiryパラメーターを 301 ~ 259200 秒 (72 時間) の範囲で設定します。詳細については、通知チャネルを設定するを参照してください。- CIBA と Rich Authorization Requests (RAR) の ユーザー認可 でメール通知を使用する場合は、カスタマイズされた同意プロンプトを設定します。
ステップ 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: Auth0 がユーザーのメールアドレスにリンクを送信する
login_hint を使用して、認証デバイスでのユーザー認証を開始します。
- Auth0 認可サーバーは、ユーザーの確認済みメールアドレスにメールを送信します。
- メールには、ユーザーが認証するためにクリックする必要がある確認リンクが含まれています。
binding_messageはリクエスト code として表示されます。 - このリンクにより、
/bc-verifyエンドポイントへのリクエストを介してユーザーはブラウザーに移動し、そこでconsentクエリパラメーターが同意待ちの CIBA リクエストを参照します。

ステップ 5: ユーザーがブラウザーで認証する
/bc-authorize エンドポイントへ送信した login_hint パラメーターに対応する認証情報を使用する必要があります。そうしない場合は、エラーメッセージが表示されるため、ログアウトして再試行する必要があります。

post-login Actions トリガーが実行されるため、お客様はアクセス制御ポリシーを適用したり、追加の MFA ファクターを要求したりするカスタムロジックを実装できます。CIBA の確認リンクから実行された場合、event.transaction.protocol の値は oidc-ciba-web-link になるため、この種類のログインに対して独自のルールを適用できます。詳細については、Login Triggerを参照してください。
認証が完了すると、ブラウザーには Auth0 Consent API による同意の詳細が表示されます。これには binding_message、scope、audience が含まれます。スコープは、RBAC ポリシーに従ってフィルタリングされます。詳しくは、ロールベースアクセス制御を参照してください。
次のコードサンプルは、Auth0 Consent API からのレスポンス例です。
ステップ 6: ブラウザーがユーザーの応答を Auth0 に返送する
ユーザーが認証リクエストを承認する

ユーザーが認証リクエストを拒否する

ステップ 7: フローの完了後、Auth0 はユーザーの応答を受信する
/token エンドポイントからの応答を受信すると、ポーリングを完了します。CIBA フローでは、認可を行うユーザーからの応答が常に必要であり、その内容は承認または拒否のいずれかです。既存のグラントは確認されません。
ステップ 8: Auth0 がクライアントアプリケーションにアクセストークンを返す
refresh_token は、最初の /bc-authorize リクエストに offline_access スコープが含まれている場合にのみ返されます。