> ## 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)に登録済みであれば、アプリケーションからユーザーのスマートフォンまたは認証デバイスに認証リクエストを送信できます。

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

* たとえばコールセンターに電話しているときのように、ユーザーが認証を必要とするアプリケーションの前にいない場合。
* サービス利用用のデバイス (コンテンツ消費デバイス) や、ユーザーのサービス利用を補助するデバイスが、機密性の高い操作には安全でない場合 (例: 金融取引で使用するウェブブラウザー) 。
* サービス利用用のデバイス (コンテンツ消費デバイス) の対話機能が限られている場合 (例: 電動自転車や電動キックボード) 。

<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]" }
```

* 認証には、Client Secret (HTTP Basic Auth または POST 経由) 、Private Key JWT、または mTLS を使用できます。詳しくは、上記の例を参照してください。

<div id="body-parameters">
  ## Body Parameters
</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>
  OIDC およびカスタム API のスコープをスペース区切りで並べたリストです。少なくとも `openid` を含める必要があります。
</ParamField>

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

<ParamField body="resource" type="string">
  アクセスする対象 API (リソースサーバー) の識別子です。Auth0 テナントに登録されている API Identifier と一致している必要があります。テナントの [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   | サーバー内部エラー            |
