現在、クライアントが開始するバックチャネル認証は早期アクセスで利用できます。CIBAを有効化するには、テクニカルアカウントマネージャーまでお問い合わせください。

- 前提条件
- ステップ1:クライアントアプリケーションがCIBA要求を開始する
- ステップ2:Auth0テナントがCIBA要求を確認する
- ステップ3:クライアントアプリケーションが応答をポーリングする
- ステップ4:モバイルアプリケーションがプッシュ通知を受け取る
- ステップ5:モバイルアプリケーションが同意の詳細を取得する
- ステップ6:モバイルアプリケーションが同意の詳細をユーザーに表示する
- ステップ7:モバイルアプリケーションがユーザーの応答をAuth0に送信する
- ステップ8:フローが完了した後でAuth0がユーザーの応答を受け取る
前提条件
CIBAのプッシュ要求を開始するには、認可しているユーザーがプッシュ通知でに登録されていなければなりません。で確認するには、**[User Management(ユーザーの管理)]>[Users(ユーザー)]**に移動して、ユーザーをクリックします。
ステップ1:クライアントアプリケーションがCIBA要求を開始する
ユーザー検索APIを使用して、認可しているユーザーを見つけます。このユーザーのためにCIBA要求を始めてユーザーIDを取得することになります。 認可しているユーザーのユーザーIDを入手したら、Authentication APIまたはAuth0のSDKを使用して、CIBA要求を/bc-authorize
エンドポイントに送信します。
- cURL
- C#
- Go
- Java
パラメーター | 説明 |
---|---|
TENANT | テナント名。カスタムドメインにすることもできます。 |
CLIENT ID | クライアントアプリケーション識別子 |
CLIENT SECRET | クライアントシークレット、プライベートキーJWT、mTLS認証など、CIBAを使ったユーザー認証に使用されるクライアント認証方法。 |
SCOPE | openid を含める必要があります。スコープには、リフレッシュトークンを要求するための offline_access をオプションで含めることができます。ただし、CIBAフローを使ったトランザクションのワンタイム認証にはリフレッシュトークンは必要なく、その場合は意味を持ちません。 |
USER ID | login_hint 構造で渡される、認証を受けるユーザーのユーザーID。フェデレーション接続のユーザーIDは、フォーマットが異なることがあります。 |
EXPIRY | CIBAフローの要求された有効期限は1秒から300秒の間で、デフォルトは300秒です。 |
BINDING MESSAGE | 認証デバイスと消費デバイス間でCIBAフローをバインドするために使用されるメッセージ。バインドメッセージは必須で、最大64文字です。英数字と+-_.,:# の文字のみを使用してください。 |
AUDIENCE | 発行されたトークンに対するオーディエンスを表す一意の識別子。 |
ユーザー固有のレート制限があり、認可するユーザーには1分あたり5件を超える要求は送信されません。
ステップ2:Auth0テナントがCIBA要求を確認する
Auth0テナントがPOST要求の受信に成功したら、その要求を参照したauth-req-id
のある応答を受け取るはずです。
auth_req_id
値はCIBAフローの完了をポーリングするために、/token
エンドポイントに渡されます。
ステップ3:クライアントアプリケーションが応答をポーリングする
Authentication APIまたはAuth0のSDKを使用して/token
エンドポイントを呼び出し、urn:openid:params:grant-type:ciba
の付与タイプと/bc-authorize
エンドポイントから受け取ったauth_req_id
を渡します。
- cURL
- C#
- Go
- Java
/token
エンドポイントをポーリングします。
ステップ4:モバイルアプリケーションがプッシュ通知を受け取る
Auth0はプッシュ通知をユーザーの登録済みのモバイルアプリまたはモバイルデバイスに送信します。Guardian SDKにはプッシュ通知で受け取ったデータを解析するメソッドが備わっているため、即座に使えるNotification
インスタンスを返します。Notification
インスタンスにはトランザクションリンクIDまたはtxlinkid
が含まれており、モバイルアプリケーションはAuth0から同意の詳細を取得するためにそれを使用します。
以下のサンプルコードはGuardian SDKを使用して、iOSとAndroidのモバイルプッシュ通知を実装する例です。
- iOS
- Android
ステップ5:モバイルアプリケーションが同意の詳細を取得する
モバイルアプリケーションからGuardian SDKを呼び出して、同意の詳細であるbinding_message
の内容をAuth0 Consent APIから取得します。
以下のサンプルコードは、Auth0 Consent APIからのデータ取得をiOSとAndroidに実装する例です。
- iOS
- Android
ステップ6:モバイルアプリケーションが同意の詳細をユーザーに表示する
Auth0 Consent APIは、同意の詳細であるbinding_message
を応答に含めてモバイルアプリケーションに送信します。モバイルアプリケーションは認証要求や同意の詳細をユーザーに表示します。
以下のサンプルコードはAuth0 Consent APIからの応答の例です。
ステップ7:モバイルアプリケーションがユーザーの応答をAuth0に送信する
ユーザーによる認証要求の受け入れまたは拒否に応じて、モバイルアプリケーションがユーザーの応答をAuth0に返します。 以下のサンプルコードは、ユーザー応答の処理をiOSとAndroidに実装する例です。ユーザーが認証要求を受け入れる
- iOS
- Android
ユーザーが認証要求を拒否する
- iOS
- Android
ステップ8:フローが完了した後でAuth0がユーザーの応答を受け取る
クライアントアプリケーションは/token
エンドポイントから応答を受け取ったら、ポーリングを完了します。承認や拒否にかかわらず、CIBAフローには認可しているユーザーからの応答が常に必要です。既存の付与は確認されません。
ユーザーがプッシュ要求を拒否した場合は、以下の応答を受け取ります。