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

# エージェントとクライアントを関連付ける

> 1つ以上のクライアントをエージェントに関連付けると、それらのクライアントに発行されるトークンにエージェントのアイデンティティが含まれ、帰属の特定とトレーサビリティを確保できます。

export const ReleaseStageNotice = ({feature, stage, plans, contact, terms}) => {
  const stageTextMap = {
    "beta": "Beta",
    "ea": "早期アクセス"
  };
  const stageText = stageTextMap[stage] || "製品リリース段階";
  const prsLink = "/docs/troubleshoot/product-lifecycle/product-release-stages";
  const linkify = (text, url) => {
    return <a href={url} target="_blank" rel="noreferrer" class="link">{text}</a>;
  };
  const includeDetails = (plans, contact, terms) => {
    const hasDetails = terms || plans || contact;
    if (!hasDetails) return null;
    return <span data-as="p">
            {plans && <>この機能は{linkify(`${plans}プラン`, "https://auth0.com/pricing")}でご利用いただけます。 </>}
            {contact && "参加をご希望の場合は、" + contact + "までお問い合わせください。 "}
            {terms && <>この機能を使用することにより、Oktaの該当する無料トライアル規約および{linkify("Master Subscription Agreement", "https://www.okta.com/legal")}に同意したものとみなされます。</>}
        </span>;
  };
  return <Warning>
            <span data-as="p">
                <strong>{feature}機能は現在、{linkify(stageText, prsLink)}です。</strong>
            </span>

            {includeDetails(plans, contact, terms)}
        </Warning>;
};

<ReleaseStageNotice feature="Agent as Principal" stage="ea" contact="Auth0 Support" terms="true" />

[Auth0でファーストクラスのアイデンティティとして登録](/docs/ja-jp/ai-agents-mcp/agent-as-principal/register-an-agent)すれば、エージェントを任意のOAuthクライアントに関連付けることができます。1つのエージェントを複数のクライアントに関連付けることも可能です。これは、環境別やリージョン別に分けたクライアントなど、複数のクライアントをまたいでトークンやログに単一の`agent_id`が表示される、1つの論理的なエージェントアイデンティティを持たせたい場合に便利です。

`agent_id`はクライアントオブジェクトに保存され、関連付けは動的に管理されます。

エージェントをクライアントに関連付けると、そのクライアントに発行されるトークンには、クライアントクレデンシャルグラントの場合はサブジェクト (`sub`) として、トークン交換や標準のログインフローの場合はアクター (`act`) として、エージェントのアイデンティティが含まれます。詳しくは、[トークン内のエージェントアイデンティティ](/docs/ja-jp/ai-agents-mcp/agent-as-principal/agent-identity-in-tokens)をお読みください。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  `external_agent_id`を設定しているかどうかにかかわらず、Management APIを通じてエージェントを管理する際に使用される識別子は、内部の`agent_id`のままです。
</Callout>

<h2 id="associate-a-client-at-creation">
  作成時にクライアントを関連付ける
</h2>

`POST /api/v2/clients` でクライアントを作成するときに `agent_id` を設定します。

<Tabs>
  <Tab title="Auth0 CLI">
    <Callout icon="file-lines" color="#0EA5E9" iconType="regular">Auth0 CLIをお使いですか？まだの場合は、このコマンドを実行する前に[CLIセッションのセットアップと認証](/docs/ja-jp/deploy-monitor/auth0-cli)を行ってください。</Callout>

    ```bash theme={null}
    auth0 api post "clients" \
      --data '{
        "name": "My AI Client",
        "agent_id": "YOUR_AGENT_ID"
      }'
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl --request POST \
      --url 'https://YOUR_AUTH0_DOMAIN/api/v2/clients' \
      --header 'Content-Type: application/json' \
      --header 'Authorization: Bearer YOUR_MGMT_API_TOKEN' \
      --data '{
        "name": "My AI Client",
        "agent_id": "YOUR_AGENT_ID"
      }'
    ```
  </Tab>
</Tabs>

成功すると、設定した `agent_id` を含むクライアントオブジェクトがAuth0から返されます。

<h2 id="retrieve-the-agent-associated-client">
  エージェントに関連付けられたクライアントを取得する
</h2>

`agent_id`をクライアントに関連付けたら、`/api/v2/clients/{id}`に`GET`リクエストを送信してクライアントオブジェクトを取得します。

<Tabs>
  <Tab title="Auth0 CLI">
    ```bash theme={null}
    auth0 api get "clients/YOUR_CLIENT_ID"
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl --request GET \
      --url 'https://YOUR_AUTH0_DOMAIN/api/v2/clients/YOUR_CLIENT_ID' \
      --header 'Authorization: Bearer YOUR_MGMT_API_TOKEN'
    ```
  </Tab>
</Tabs>

成功すると、Auth0は設定した`agent_id`を含むクライアントオブジェクトを返します。

<h2 id="associate-an-existing-client">
  既存のクライアントを関連付ける
</h2>

既存のクライアントは、Auth0 DashboardまたはManagement APIを使って関連付けられます。

<Tabs>
  <Tab title="Auth0 Dashboard">
    1. **Dashboard > Agents**に移動してエージェントを選択し、エージェントの**Applications**タブを開きます。
    2. **Add Application**を選択し、モーダルでエージェントに関連付けるアプリケーションを選択します。複数のアプリケーションを選択できます。
    3. **Add Applications**を選択します。

    追加に成功すると、そのエージェントの**Applications**タブにアプリケーションが表示されます。
  </Tab>

  <Tab title="Management API">
    `PATCH /api/v2/clients/{id}`を使って、既存のクライアントをエージェントに関連付けます。

    <Tabs>
      <Tab title="Auth0 CLI">
        ```bash theme={null}
        auth0 api patch "clients/YOUR_CLIENT_ID" \
          --data '{
            "agent_id": "YOUR_AGENT_ID"
          }'
        ```
      </Tab>

      <Tab title="cURL">
        ```bash theme={null}
        curl --request PATCH \
          --url 'https://YOUR_AUTH0_DOMAIN/api/v2/clients/YOUR_CLIENT_ID' \
          --header 'Content-Type: application/json' \
          --header 'Authorization: Bearer YOUR_MGMT_API_TOKEN' \
          --data '{
            "agent_id": "YOUR_AGENT_ID"
          }'
        ```
      </Tab>
    </Tabs>

    成功すると、Auth0は設定した`agent_id`を含む更新後のクライアントオブジェクトを返します。
  </Tab>
</Tabs>

<h2 id="remove-the-agent-association">
  エージェントの関連付けを解除する
</h2>

クライアントとエージェントの関連付けを解除するには、`PATCH /api/v2/clients/{id}` で `agent_id` を `null` に設定します。

<Tabs>
  <Tab title="Auth0 CLI">
    ```bash theme={null}
    auth0 api patch "clients/YOUR_CLIENT_ID" \
      --data '{
        "agent_id": null
      }'
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl --request PATCH \
      --url 'https://YOUR_AUTH0_DOMAIN/api/v2/clients/YOUR_CLIENT_ID' \
      --header 'Content-Type: application/json' \
      --header 'Authorization: Bearer YOUR_MGMT_API_TOKEN' \
      --data '{
        "agent_id": null
      }'
    ```
  </Tab>
</Tabs>

関連付けを解除すると、以降そのクライアントに発行されるトークンにはエージェントのアイデンティティが含まれなくなります。既存のトークンは有効期限が切れるまで有効です。

<h2 id="next-steps">
  次のステップ
</h2>

* Auth0 が[エージェントアイデンティティ をトークンに埋め込む仕組み](/docs/ja-jp/ai-agents-mcp/agent-as-principal/agent-identity-in-tokens)について学ぶ
