> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# バックチャネルログイン

> CIBA バックチャネルログインフローを使用して、ユーザーの登録済みデバイスに認証リクエストを直接送信します。

<div id="endpoint">
  ## エンドポイント
</div>

`POST /bc-authorize`

バックチャネルログイン エンドポイントを使用すると、アプリケーションは、ユーザーがアプリをインストール済みで、[Guardian SDK を使用したプッシュ通知](https://auth0.com/docs/secure/multi-factor-authentication/auth0-guardian#enroll-in-push-notifications)に登録している場合、ユーザーの電話番号または認証デバイスに認証リクエストを送信できます。

バックチャネルログイン エンドポイントは、次のようなユースケースでユーザーを認証するために使用します。

* たとえばコールセンターに電話している場合のように、ユーザーが認証が必要なアプリケーションの前にいない場合。
* 利用デバイス、つまりユーザーがサービスを利用するためのデバイスが、機密性の高い操作 (例: 金融トランザクションを行う Web ブラウザー) には安全でない場合。
* 利用デバイスのインタラクティブ機能が限られている場合 (例: 電動自転車や電動スクーター) 。

<div id="response-body">
  ### レスポンス本文
</div>

リクエストが成功すると、次のようなレスポンスが返されます。

```http theme={null}
{
  "auth_req_id": "eyJh...",
  "expires_in": 300,
  "interval": 5
}
```

`auth_req_id` の値は、後続のフローで認証リクエストを識別するために使用されるため、そのまま保持する必要があります。

`expires_in` の値は、認証リクエストの有効期限が切れるまでの残り時間 (秒) を示します。

`interval` の値は、ポーリングリクエストの間隔として待機する必要がある秒数を示します。

リクエストは、Guardian SDK を使用して、ユーザーの認証デバイス上で承認または拒否する必要があります。

<div id="remarks">
  ### 備考
</div>

* `login_hint` の値は `iss_sub` 形式に従います。たとえば次のとおりです。

```http theme={null}
{ "format": "iss_sub", "iss": "https://[TENANT_DOMAIN]/", "sub": "auth0|[USER ID]" }
```

* 認証には、クライアントシークレット (HTTP Basic Auth または POST 経由) 、Private Key JWT、または mTLS を使用できます。詳細については、上記の例を参照してください。

<div id="body-parameters">
  ## Body パラメーター
</div>

<ParamField body="client_id" type="string" required>
  アプリケーションの `client_id`。
</ParamField>

<ParamField body="binding_message" type="string" required>
  ユーザーが正しいリクエストを承認していることを確認できるようにするための、人が理解しやすい文字列。
</ParamField>

<ParamField body="login_hint" type="string" required>
  認証用のユーザー詳細を `iss_sub` 形式で含む JSON オブジェクト。
</ParamField>

<ParamField body="scope" type="string" required>
  少なくとも `openid` を含む、OIDC およびカスタム API のスコープのスペース区切りリスト。
</ParamField>

<ParamField body="audience" type="string">
  アクセストークンの対象 API を一意に識別する省略可能な値。
</ParamField>

<ParamField body="resource" type="string">
  アクセスする対象 API (リソースサーバー) の識別子。Auth0 テナントに登録されている API 識別子と一致している必要があります。テナントの [Resource Parameter Compatibility Profile](https://auth0.com/docs/get-started/tenant-settings#settings-advanced) が `compatibility` に設定されている場合は、`audience` の代わりに使用されます。
</ParamField>

<ParamField body="requested_expiry" type="string">
  リクエストのカスタム有効期限 (秒単位、1～300) 。デフォルトは 300 秒です。
</ParamField>

<ParamField body="authorization_details" type="array">
  認可する権限を記述する、省略可能な JSON オブジェクトの配列。各オブジェクトの `type` 値は、リソースサーバーの `authorization_details` パラメーターを使用して事前に登録しておく必要があります。詳細は、[Update a resource server](https://auth0.com/docs/api/management/v2/resource-servers/patch-resource-servers-by-id#body-parameters) の Management API ドキュメントを参照してください。
</ParamField>

<div id="response-messages">
  ## レスポンスメッセージ
</div>

| ステータス | 説明                     |
| ----- | ---------------------- |
| 200   | 認証リクエストは正常に開始されました。    |
| 400   | 不正なリクエスト - パラメーターが無効です |
| 500   | 内部サーバー エラー             |
