> ## 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.

# トークンを取得

> Cross App Access（XAA）フローの一部として、信頼できるEnterprise IdPが発行したIdentity Assertion Authorization Grant（ID-JAG）を交換し、共有エンドユーザーに代わってResource AppのAPIを呼び出すためのアクセストークンを取得します。

`POST /oauth/token`

Cross App Access (XAA) は、信頼できるEnterprise IdP (Oktaなど) が発行したID-JAGを、共有エンドユーザーに代わってResource AppのAPI用にスコープが設定されたアクセストークンと交換できるOAuth拡張機能である[Identity Assertion Authorization Grant](https://datatracker.ietf.org/doc/draft-ietf-oauth-identity-assertion-authz-grant/)を実装しています。詳細については、[Cross App Access (XAA) のドキュメント](https://auth0.com/docs/ai-agents-mcp/cross-app-access)を参照してください。

<Note>
  Resource App向けのCross App Access (XAA) は**早期アクセス**です。Enterprise、B2B Pro、B2B Essentialのお客様は、Enterprise Connectionsの機能として利用できます。Freeテナントでも、トライアル期間中に試すことができます。この機能を使用することで、Oktaの[Master Subscription Agreement](https://www.okta.com/legal/?_gl=1*51wq70*_gcl_au*NzczNzM1NjYyLjE3ODE3NzY0MDI.*_ga*MTE3ODU0MTY1Ny4xNzgxNzc2NDAy*_ga_QKMSDV5369*czE3ODQ1NTM3ODckbzgyJGcxJHQxNzg0NTU0NzIxJGo1OCRsMCRoMA..)に記載されている該当のFree Trial規約に同意したものとみなされます。
</Note>

<div id="remarks">
  ## 注意事項
</div>

* Requesting App は、Resource App の Auth0 テナントに登録され、Cross App Access のトグルが有効になっている必要があります。
* このグラントでは、`refresh_token` と `id_token` は発行されません。新しいアクセストークンを取得するには、Requesting App は ID-JAG の有効期限が切れていなければ同じ ID-JAG を再利用するか、Enterprise IdP に新しい ID-JAG をリクエストできます。
* このエンドポイントでの ID-JAG の交換には、テナント全体の Authentication API のレート制限の最大 50% というレート制限が適用されます。詳細については、[レート制限の構成](/docs/ja-jp/troubleshoot/customer-support/operational-policies/rate-limit-policy/rate-limit-configurations)を参照してください。

<div id="request-body">
  ## リクエストボディ
</div>

<ParamField body="grant_type" type="string" required>
  使用するフローを示します。Cross App Access では、`urn:ietf:params:oauth:grant-type:jwt-bearer` を使用します。
</ParamField>

<ParamField body="assertion" type="string" required>
  信頼できる Enterprise IdP がエンドユーザー向けに発行した ID-JAG JWT。
</ParamField>

<ParamField body="client_id" type="string" required>
  Resource App の Auth0 テナントに登録されている Requesting App のクライアント ID。他のグラントタイプと同様に、HTTP Basic Auth を使用して Authorization ヘッダーでクライアント ID を渡すこともできます。
</ParamField>

<ParamField body="client_secret" type="string" required>
  Resource App の Auth0 テナントに登録されている Requesting App のクライアントシークレット。他のグラントタイプと同様に、HTTP Basic Auth を使用して Authorization ヘッダーでクライアントシークレットを渡すこともできます。
</ParamField>

<ParamField body="resource" type="string">
  (任意) Auth0 テナント内のリソースサーバー (API) のリソース識別子。ID-JAG アサーション に `resource` クレーム が含まれている場合は、その値がこのパラメータより優先されます。ID-JAG またはリクエストボディでリソースが指定されていない場合は、テナントの[デフォルトの audience](https://auth0.com/docs/get-started/tenant-settings#api-authorization-settings)が使用されます。
</ParamField>

<div id="response">
  ## レスポンス
</div>

| ステータス | 説明                                                                                |
| ----- | --------------------------------------------------------------------------------- |
| 200   | 成功レスポンス。対象 API に対してスコープが設定されたアクセストークンを返します。                                       |
| 400   | 不正なリクエスト。アサーションの形式が不正である、期限切れである、必要なクレームが含まれていない、または必須パラメータが不足している場合に発生することがあります。 |
| 401   | 未認可。クライアント資格情報が正しくないか、アサーションの署名を検証できませんでした。                                       |
| 403   | 禁止。クライアントで Cross App Access が有効になっていないか、要求されたスコープが許可されていません。                      |

<ResponseExample>
  ```json 200 Response theme={null}
  {
    "access_token": "eyJ...",
    "expires_in": 86400,
    "token_type": "Bearer",
    "scope": "read:items write:items"
  }
  ```

  ```json 400 Response (無効または期限切れのアサーション) theme={null}
  {
    "error": "invalid_grant",
    "error_description": "アサーションが無効か、有効期限が切れています"
  }
  ```
</ResponseExample>

<div id="response-fields">
  ## レスポンスフィールド
</div>

<ResponseField name="access_token" type="string">
  ID-JAG の `sub` クレームで識別されるエンドユーザー向けに発行された、対象 API 用にスコープが設定された Auth0 アクセストークン。
</ResponseField>

<ResponseField name="token_type" type="string">
  Authorization ヘッダーで使用する認証スキームを指定します。値: `Bearer`。
</ResponseField>

<ResponseField name="expires_in" type="number">
  アクセストークンの有効期間 (秒) 。
</ResponseField>

<ResponseField name="scope" type="string">
  (任意) 付与されたスコープがリクエストされたスコープと異なる場合にのみ含まれます。実際に付与されたスコープのスペース区切りリスト。
</ResponseField>
