Skip to main content
クライアント主導のバックチャネル認証 (CIBA) 機能を利用するには、Enterpriseプランまたは適切なアドオンが必要です。詳しくは Auth0 Pricing を参照してください。
クライアント主導のバックチャネル認証 (CIBA) フローは、安全なバックチャネルリクエストを使用して、デバイスから切り離された認証と認可を可能にする Foundation の標準です。CIBAフローは、リクエストを開始するデバイス (利用デバイス) と、ユーザーが認証に使用するデバイス (認証デバイス) が異なるユースケース向けに設計されています。 CIBAフローには、2 つの主体があります。
  • 開始ユーザー: 利用デバイスで認証または認可を開始する主体です。バックエンドアプリケーション、人間のユーザー (たとえばカスタマーサービスアプリケーション上のカスタマーサービス担当者) 、またはエンドユーザーに代わってタスクを実行する AIエージェントが該当します。
  • 認可を行うユーザー: 認証デバイスで認証または認可リクエストを受け取り、同意を行うエンドユーザーです。
認証と認可を利用デバイスから切り離すことで、クライアントアプリケーションはバックチャネルリクエストを使って OpenIDプロバイダーを直接呼び出せます。これによりセキュリティが強化され、CIBAフローでは mTLSPrivate Key JWT など、より安全なクライアント認証方式を使用できます。

ユースケース

CIBAフローの一般的なユースケースには、次のようなものがあります。
  • AIエージェントが、人による承認を介して、ユーザーが依頼した操作を完了するための許可をユーザーに求める。
  • ユーザーがコールセンターに電話をかけ、対応中の担当者が自分のコンピューターで発信者の個人情報にアクセスしたい場合。発信者は、たとえば自分の電話に届いたプッシュ通知を承認することで、これに同意できます。
  • ユーザーが、都市部で借りる自転車や小売店のキオスクのような、入力機能が限られたデバイスを利用したい場合。
  • ユーザーが比較的安全性の低いデバイスで機微なトランザクションを開始し、より安全なデバイスでそのトランザクションを承認したい場合。たとえば、個人用の携帯電話に届いたプッシュ通知を承認して、支払いや個人情報の変更を承認することがあります。

通知チャネル

Auth0 は、CIBA で次の通知チャネルをサポートしています。
  • Auth0 Guardian モバイルプッシュ通知: Enterprise プランで利用できます。ユーザーは、認証またはトランザクションの詳細を確認するために、登録済みのモバイル端末でプッシュ通知を受け取ります。認証と認可は、プッシュ通知を受け取った認証デバイス上で行われます。CIBA でモバイルプッシュ通知を有効にするには、次の方法があります。
    • Auth0 Guardian アプリ
    • Auth0 Guardian SDK と統合したカスタムアプリ
  • メール通知: 有料プランのアドオンとして利用できます。ユーザーは、確認済みのメールアドレスにメールを受け取ります。メールにはリンクが含まれており、認証と認可はブラウザー経由で行われます。
デフォルトでは、Auth0 は CIBA フローで Guardian プッシュ通知を使用しており、これを推奨しています。Guardian プッシュ通知は、フィッシング攻撃の影響を受けやすいメールなどの他のチャネルよりも安全です。CIBA フローでメール通知を使用するには、明示的に有効にする必要があります。

仕組み

次の図は、CIBAフローの一連の流れを示しています。
  1. クライアントアプリケーションまたは利用デバイスが、ユーザーの認証または認可を要求します。
  2. クライアントアプリケーションのバックエンドが、/bc-authorize エンドポイントに POST リクエストを送信します。
  3. Auth0 は POST リクエストを受信し、認証デバイスに通知を送信します。
  4. 認証デバイスは Auth0 から認可の詳細を取得し、エンドユーザーに表示します。
  5. エンドユーザーは、リクエストに関するコンテキスト情報を含む認可の詳細を確認します。
  6. エンドユーザーは認証デバイス上で応答し、その応答が Auth0 に送信されます。
  7. クライアントアプリケーションのバックエンドが /token エンドポイントをポーリングし、CIBAフローが完了すると適切なトークンを受け取ります。
CIBAフローは、1回限りの非同期ユーザー認証および認可に使用されるため、アプリケーションによる API リソースへのアクセスに対するユーザーの同意を含むグラントは、CIBA では作成も保存もされません。後でユーザーが別の認証フローを使用して認証され、そのフローで以前に CIBA で同意したものと同じスコープが要求された場合でも、Auth0 にはその同意の記録がありません。そのため、ユーザーは再度同意を求められます。

エンティティの上限

CIBAフローには、以下の上限があります。
  • テナントごとに、1分あたり最大500件のCIBAリクエストを作成できます。
  • 1つのテナントで同時に保留できるCIBAリクエストは最大5000件です。保留中のCIBAリクエストとは、開始されているものの、まだユーザーからの応答を受け取っていないリクエストを指します。CIBAリクエストの有効期限が応答を受け取らないまま切れた場合でも、最大24時間、この5000件の上限に引き続きカウントされることがあります。

はじめに