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

# トークンの取得

> カスタムトークン交換（CTE）は、アプリケーションが `/oauth/token` エンドポイントを呼び出すことで既存のアイデンティティトークンを Auth0 トークンと交換するメカニズムを提供します。RFC 8693の仕様に準拠しています。

`POST /oauth/token`

カスタムトークン交換（CTE）は、アプリケーションが `/oauth/token` エンドポイントを呼び出すことで既存のアイデンティティトークンを Auth0 トークンと交換するメカニズムを提供します。[RFC 8693](https://datatracker.ietf.org/doc/html/rfc8693) の仕様に準拠しています。この機能は、既存の Auth0 トークンを同じユーザーの別のオーディエンスにアクセスするために交換する、外部 ID プロバイダーの統合を容易にする、または Auth0 プラットフォームへのシームレスなユーザー移行を有効にするなど、高度な統合要件に対応するために不可欠です。交換プロセスは完全に管理可能で、開発者は関連する Auth0 アクションで実行されるカスタムロジックを使用してその詳細を制御できます。

<Note>
  カスタムトークン交換は現在アーリーアクセス中です。この機能を使用することにより、[Okta マスターサブスクリプション契約](https://www.okta.com/legal/)の適用される無料試用版条件に同意するものとします。ユーザーの `subject_token` を安全に検証することはお客様の責任です。詳細については、[ユーザーガイド](https://auth0.com/docs/ja-jp/authenticate/custom-token-exchange)を参照してください。
</Note>

### 備考

* アプリケーションに発行されたスコープは、要求されるスコープとは異なる場合があります。この場合、`scope` パラメーターが応答 JSON に含まれます。スコープは、[アプリケーションの API アクセスポリシー](https://auth0.com/docs/ja-jp/get-started/apis/api-access-policies-for-applications)で説明されているようにフィルタリングされます。

* `subject_token_type` は、既存のカスタムトークン交換プロフィールと関連する[アクション](https://auth0.com/docs/ja-jp/customize/actions)に対応している必要があります。

* クライアントシークレットを安全に保つことができない非機密アプリケーション（ネイティブアプリなど）の場合、エンドポイントはクライアントシークレットを渡さないことをサポートしていますが、アプリケーション自体は `tokenEndpointAuthMethod` プロパティを `none` に設定する必要があります。これは UI (**ダッシュボード > アプリケーション > アプリケーション設定**) から、または管理 API を使用して実行できます。

* [アプリケーションのカスタムトークン交換を有効にする](https://auth0.com/docs/authenticate/custom-token-exchange/configure-custom-token-exchange#enable-custom-token-exchange-for-your-application)必要があります。詳細については、[カスタムトークン交換ドキュメント](https://auth0.com/docs/ja-jp/authenticate/custom-token-exchange)を参照してください。

## Parameters

<ParamField header="DPoP" type="string">
  リクエストの DPoP 証明。これはオプションであり、アプリケーションが Proof-of-Possession の実証を使用している場合にのみ必要です。
</ParamField>

<ParamField header="auth0-forwarded-for" type="string">
  エンドユーザーの IP を文字列値として指定します。サーバー側のシナリオで疑わしい IP スロットリング保護を機能させたい場合は、これを設定してください。
</ParamField>

## Request Body

<ParamField body="grant_type" type="string" required>
  使用するフローを示します。カスタムトークン交換の場合は、`urn:ietf:params:oauth:grant-type:token-exchange` を使用します。

  許可される値: `urn:ietf:params:oauth:grant-type:token-exchange`
</ParamField>

<ParamField body="subject_token_type" type="string" required>
  サブジェクトトークンの種類です。カスタムトークン交換の場合、これは `http://acme.com/legacy-token` や `urn:acme:legacy-token` など、ユーザー独自の所有権の下にスコープされた任意の URI です。次の名前空間は予約されており、使用できません: `http://auth0.com`、`https://auth0.com`、`http://okta.com`、`https://okta.com`、`urn:ietf`、`urn:auth0`、`urn:okta`。
</ParamField>

<ParamField body="subject_token" type="string" required>
  サブジェクトトークン。アクションはこれを検証して、ユーザーを特定するために使用する必要があります。
</ParamField>

<ParamField body="client_id" type="string" required>
  アプリケーションのクライアント ID です。他のグrant タイプと同様に、HTTP Basic Auth を使用して Authorization ヘッダーでクライアント ID を渡すこともできます。
</ParamField>

<ParamField body="client_secret" type="string">
  （オプション）アプリケーションのクライアントシークレットです。他のグrant タイプと同様に、HTTP Basic Auth を使用して Authorization ヘッダーでクライアントシークレットを渡すこともできます。他の代替案も[Auth0 認証 API リファレンスドキュメント](https://auth0.com/docs/api/authentication#authentication-methods)で説明されています。カスタムトークン交換はパブリックアプリケーションで使用できるため、[攻撃保護](https://auth0.com/docs/ja-jp/authenticate/custom-token-exchange/cte-attack-protection)を読んで追加のセキュリティを実装してください。
</ParamField>

<ParamField body="audience" type="string">
  （オプション）アクセスしたいターゲット API の一意の識別子です。存在しない場合、[テナント設定](https://auth0.com/docs/ja-jp/get-started/tenant-settings)で設定されているデフォルトのテナントオーディエンスが使用されます。
</ParamField>

<ParamField body="resource" type="string">
  （オプション）アクセスしたいターゲット API（リソースサーバー）の識別子です。Auth0 テナントに登録されている API 識別子と一致する必要があります。テナントの[リソースパラメータ互換性プロフィール](https://auth0.com/docs/ja-jp/get-started/tenant-settings#settings-advanced)が `compatibility` に設定されている場合、`audience` の代わりとして使用されます。
</ParamField>

<ParamField body="scope" type="string">
  （オプション）OAuth2 スコープパラメーター。
</ParamField>

<ParamField body="organization" type="string">
  （オプション）リクエストを関連付けたい組織または識別子です。または、[認証 API で組織名を使用する](https://auth0.com/docs/ja-jp/manage-users/organizations/configure-organizations/use-org-name-authentication-api)が指定されている場合は、組織名を指定することもできます。
</ParamField>

## Response

| Status | Description |
| ------ | ----------- |
| 200    | 成功レスポンス     |
