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

# プリンシパルとしてのエージェント

> AIエージェントを、独自のライフサイクル、credentials、監査証跡を備えたAuth0の第一級のアイデンティティとして登録します。

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" />

Agent as Principal は、AI エージェントを Auth0 における第一級のアイデンティティとして扱う機能で、人間のユーザーや従来のマシンツーマシン (M2M) クライアントとは区別されます。エージェントは、安定した識別子を持ち、独自のライフサイクル管理、credentials、監査履歴を備えた登録済みのエンティティです。

Auth0 のプリンシパルとして登録されたエージェントは、次のことができます。

* ユーザーに代わって動作する
* ユーザーセッションなしで自律的に動作する
* トークン交換によるマルチホップの委任を行う

<h2 id="use-cases">
  ユースケース
</h2>

* 自律型エージェント: AIエージェントがクライアント認証情報を使って、自分自身としてAPIを直接呼び出します。そのアイデンティティはログとトークンに記録されます。
* 委任アクセス: ユーザーがAIエージェントに対し、自分に代わって動作する権限を付与します。エージェントはユーザーのアクセストークンを委任トークンに交換します。この委任トークンでは、サブジェクトはユーザーのまま保持され、エージェントはアクターとして識別されます。
* マルチホップチェーン: オーケストレーションを担うエージェントがサブエージェントに委任します。委任チェーンは入れ子になった `act` クレームに保持されるため、どのリソースサーバーでも完全な追跡が可能です。

<h2 id="how-it-works">
  仕組み
</h2>

Agent as Principal は、登録、クライアントの関連付け、トークンの発行という 3 つの段階で動作します。

```mermaid theme={null}
flowchart LR
    A([あなた]) -->|"POST /api/v2/agents"| B[("Auth0\n(agent_id を発行)")]
    B -->|"PATCH /api/v2/clients/{id}"| C["M2Mクライアント\n(エージェントに紐付け)"]
    C --> D{"認証"}
    D -->|"クライアント認証情報"| E["トークン\nsub = agent_id\nsub_profile = ai_agent"]
    D -->|"OBO交換"| F["トークン\nsub = user\nact.sub = agent_id"]
    D -->|"標準ログイン"| G["トークン\nsub = user\nact.sub = agent_id"]
    E --> H[("テナントログ\n+ アクション")]
    F --> H
    G --> H
```

1. [エージェントを登録する](/docs/ja-jp/ai-agents-mcp/agent-as-principal/register-an-agent)：Dashboard または Management API を使用して、エージェントを Auth0 に登録します。Auth0 は一意で変わらない `agent_id` を持つ[エージェントオブジェクト](/docs/ja-jp/ai-agents-mcp/agent-as-principal/register-an-agent#agent-object)を作成します。この ID により、ライフサイクル全体を通じてトークン、ログ、Management API をまたいだ追跡が可能になります。

2. [エージェントをクライアントに関連付ける](/docs/ja-jp/ai-agents-mcp/agent-as-principal/associate-agent-client)：エージェント自体は credentials を持たず、関連付けられた 1 つ以上のクライアントを通じて認証します。1 つのエージェントを複数のクライアントに紐付けることもできるため、環境やリージョンごとにクライアントを分けつつ、ログ上では単一の論理的なアイデンティティを維持できます。

3. [トークン内のエージェントアイデンティティ](/docs/ja-jp/ai-agents-mcp/agent-as-principal/agent-identity-in-tokens)：エージェントに紐付いたクライアントが認証されると、Auth0 は付与タイプに応じて、発行するトークンにエージェントのアイデンティティを埋め込みます。

`agent_id` (作成時に設定した場合は `external_agent_id`) は、トークン発行のたびに[テナントログ](/docs/ja-jp/ai-agents-mcp/agent-as-principal/tenant-logs)にも記録されるため、エージェント単位の完全な監査証跡が得られます。さらに、[Actions](/docs/ja-jp/ai-agents-mcp/agent-as-principal/actions-context) では `event.agent` からエージェントアイデンティティを参照し、トークン発行時にカスタムロジックを適用できます。

<h2 id="migration-guidance">
  移行ガイダンス
</h2>

既存のクライアントとリソースサーバーを Agent as Principal に対応するよう移行しましょう。

<h3 id="clients">
  クライアント
</h3>

既存のクライアントは、エージェントと明示的に関連付けない限り影響を受けません。エージェントの関連付けはオプトイン方式で、後から解除することもできます。詳しくは[クライアントとエージェントを関連付ける](/docs/ja-jp/ai-agents-mcp/agent-as-principal/associate-agent-client)をご覧ください。

<h3 id="resource-servers">
  リソースサーバー
</h3>

`sub_profile` および `client_profile` クレームを受け取るには、対象のリソースサーバーの設定で `agent_subject_claims: 'auth0-v1'` を指定します。これはリソースサーバーごとのオプトイン方式です。詳細については、[エージェントのサブジェクトクレームを受け取るためのリソースサーバーの設定](/docs/ja-jp/ai-agents-mcp/agent-as-principal/agent-identity-in-tokens#configure-resource-server-to-receive-agent-subject-claims)をお読みください。
