Microsoft Foundry のエージェント ID の概念

agent identity は、AI エージェント専用に設計された Microsoft Entra ID の特殊な ID 型です。 Microsoft サービス全体で AI エージェントを管理、認証、承認するための標準化されたフレームワークが提供されます。 このフレームワークにより、エージェントはリソースに安全にアクセスし、ユーザーと対話し、他のシステムと通信できます。

Microsoft Foundry は、エージェントのライフサイクル全体を通じてエージェント ID を自動的にプロビジョニングおよび管理します。 この統合により、エージェントが開発から運用に移行する際にセキュリティと監査性を維持しながら、アクセス許可管理が簡素化されます。

この記事では、エージェント ID がMicrosoft Entra ID オブジェクトとどのように関連しているか、エージェントがツールを呼び出すときに Foundry がオブジェクトを使用する方法、およびロールベースのアクセス制御 (RBAC) を使用して最小特権アクセスAzure適用する方法について説明します。

前提 条件

  • Microsoft Entra ID および OAuth 認証について
  • Azureのロールベースアクセス制御 (RBAC) に関する知識
  • AI エージェントとそのランタイム要件に関する基本的な知識

Foundry固有のRBACロールとスコープについては、「FoundryにおけるAzureロールベースのアクセス制御」を参照してください。

Foundry でのエージェント ID のしくみ

Foundry では、Microsoft Entra ID エージェント ID を使用して、次の 2 つの関連するニーズをサポートします。

  • 管理とガバナンス: 管理者は、エージェントのインベントリ作成、ポリシーの適用、および監査アクティビティに一貫した方法を提供します。
  • Tool 認証: プロンプト、コード、または接続文字列にシークレットを埋め込まずに、エージェントがダウンストリーム システム (Azure Storage など) に対して認証できるようにします。

大まかに言えば、Foundry は次の処理を行います。

  1. Microsoft Entra IDで、agent ID ブループリントおよび 1 つ以上の agent ID をプロビジョニングします。
  2. RBAC ロール (またはターゲット システムに応じて他のアクセス許可モデル) をエージェント ID に割り当てます。
  3. エージェントがツールを呼び出すと、Foundry はダウンストリーム サービスのアクセス トークンを要求し、そのトークンを使用してツール呼び出しを認証します。

ランタイム トークン交換

エージェントがツールを呼び出すと、エージェント サービス、Microsoft Entra ID、およびダウンストリーム リソースの間で複数ステップの OAuth 2.0 トークン交換が自動的に行われます。 開発者はトークンを直接管理しません。エージェント サービスは交換全体を処理します。

交換は次の 4 つの段階を経て進行します。

  • Blueprint 認証: Agent Service は、ブループリントの OAuth 資格情報をMicrosoft Entra IDに提示します。 これは、エージェント サービスがブループリントとそのエージェント ID に代わって動作する権限を持っていることを証明します。

  • Agent ID トークンの発行: ブループリント資格情報を検証し、特定のエージェント ID のトークンを発行Microsoft Entra ID。 このトークンは、人間のユーザーまたはマネージド ID トークンとは異なり、エージェントをディレクトリ内の独立したアクターとして識別します。

  • Scoped トークン要求: エージェント サービスは、エージェント ID トークンをMicrosoft Entra IDに提示し、ダウンストリーム サービスの audience をスコープとする新しいアクセス トークンを要求します。 対象ユーザーは、ターゲット サービスの OAuth リソース識別子です (たとえば、Azure Storageの場合は https://storage.azure.com)。

  • 認証済みツール呼び出し: エージェント サービスは、スコープ付きアクセス トークンを MCP サーバーまたは A2A エンドポイントに渡します。 ダウンストリーム リソースは、アクセスを許可または拒否する前に、トークンを検証し、エージェント ID の RBAC ロールの割り当てを確認します。

次の表に、グローバル Azure サービスの一般的な対象ユーザーの値を示します。

ダウンストリーム サービス 対象ユーザーの値
Azure Storage https://storage.azure.com
Azure Logic Apps https://logic.azure.com
Azure Cosmos DB https://cosmos.azure.com
Microsoft Graph https://graph.microsoft.com
Azure Key Vault https://vault.azure.net

重要

対象ユーザーの値が正しくないと、RBAC ロールが正しく割り当てられている場合でも認証エラーが発生します。 対象ユーザーは、MCP サーバー自体の URL ではなく、ダウンストリーム サービスのリソース識別子と一致する必要があります。

この記事で使用される用語

用語 Foundryの定義
エージェント アイデンティティ 実行時にエージェントを表す Microsoft Entra ID サービス プリンシパルです。
エージェント ID ブループリント エージェント ID のクラスを管理し、ライフサイクル操作に使用されるMicrosoft Entra ID オブジェクト。
agentIdentityId エージェント ID にアクセス許可を割り当てるときに使用する識別子。
観客 トークンの対象となるダウンストリーム サービスのリソース識別子 (たとえば、 https://storage.azure.com)。

主な概念

エージェント ID プラットフォーム フレームワークでは、AI エージェントを表すために、正式な agent IDagent ID ブループリント がMicrosoft Entra IDに導入されています。 このフレームワークを使用して、AI エージェントと安全に通信できます。 また、このフレームワークにより、これらの AI エージェントは、Web サービス、他の AI エージェント、およびさまざまなシステムと安全に通信できます。

エージェント 識別子

エージェント ID は、Microsoft Entra ID における特別なサービス プリンシパルです。 これは、エージェント ID ブループリントによって作成され、偽装が承認されている ID を表します。

セキュリティ上の利点

エージェント ID は、AI エージェントが直面する特定のセキュリティの課題に対処するのに役立ちます。

  • AI エージェントが実行する操作と、従業員、顧客、またはワークロードの ID が実行する操作を区別します。
  • AI エージェントがシステム間で適切なサイズのアクセスを取得できるようにします。
  • AI エージェントが重要なセキュリティ ロールとシステムにアクセスできないようにします。
  • ID 管理を、迅速に作成および破棄できる多数の AI エージェントにスケーリングします。

認証機能

エージェント ID では、次の 2 つの主要な認証シナリオがサポートされています。

  • 参加済み (委任されたアクセスまたは代理フロー): エージェントは、OAuth 2.0 On-Behalf-of (OBO) フローを使用して、ユーザーに代わって動作します。 ユーザーは最初にアプリケーションに対して認証を行い、アプリケーションはユーザーのトークンをエージェント サービスに渡します。 エージェント サービスは、そのトークンを、エージェント ID とユーザーの委任されたアクセス許可の両方を持つトークンと交換します。 この方法は、エージェントがアクセスできるのは、ユーザーが同意し、承認されているリソースに限られます。
  • 無人 (アプリケーション専用フロー):エージェントは、OAuth 2.0 クライアント資格情報フローを使用して、独自の権限で動作します。 エージェント サービスは、ブループリントを認証してMicrosoft Entra IDし、エージェント ID のトークンを取得し、ダウンストリーム リソースのスコープ付きアクセス トークンを要求します。 エージェントのアクセスは、独自の RBAC ロールの割り当て、アプリ レベルのアクセス許可Microsoft Graph、またはその他の承認ポリシーによって完全に管理されます。人間のユーザーは関与しません。

エージェント ID ブループリント

エージェント ID ブループリントは、関連するすべてのエージェント ID の作成元となる再利用可能な管理テンプレートとして機能します。 エージェントの 種類種類、または クラス に対応します。 これは、そのクラスのすべてのエージェント ID インスタンスの管理オブジェクトとして機能します。

ブループリント機能

エージェント ID ブループリントは、次の 3 つの重要な目的を果たします。

型分類: ブループリントは、"Contoso Sales Agent" などのエージェントのカテゴリを確立します。この分類により、管理者は次のことが可能になります。

  • その種類のすべてのエージェントに条件付きアクセス ポリシーを適用します。
  • その種類のすべてのエージェントのアクセス許可を無効または取り消します。
  • 一貫性のあるブループリント ベースのコントロールを使用して、エージェントを大規模に監査および管理します。

ID 作成機関: エージェント ID を作成するサービスは、ブループリントを使用して認証します。 ブループリントには、エージェント ID の作成、更新、または削除のためにMicrosoft Entra IDからトークンを要求するためにサービスが使用する OAuth 資格情報があります。 これらの資格情報には、クライアント シークレット、証明書、またはマネージド ID などのフェデレーション資格情報が含まれます。

ランタイム認証プラットフォーム: ホスティング サービスは、ランタイム認証時にブループリントを使用します。 サービスは、ブループリントの OAuth 資格情報を使用してアクセス トークンを要求します。 その後、そのトークンをMicrosoft Entra IDに提示し、エージェントIDに関連したトークンを取得します。

ブループリント メタデータ

たとえば、組織で "Contoso Sales Agent" という AI エージェントを使用する場合があります。ブループリントは、次のような情報を定義します。

  • エージェントタイプの名前: "Contoso Sales Agent"。
  • ブループリントを担当する発行元または組織: "Contoso"
  • エージェントが実行する可能性があるロール: "営業マネージャー" または "営業担当者"
  • Microsoft Graphアクセス許可または委任されたスコープ: "サインインしているユーザーの予定表を読み取る"。

フェデレーテッド ID 資格情報

ブループリントの OAuth 資格情報により、runtime トークン交換中にエージェント サービスが Microsoft Entra ID に対して認証を行います。 ブループリントでは、次の 3 種類の資格情報がサポートされています。

資格情報の種類 しくみ トレードオフ
クライアント シークレット ブループリントのEntra ID登録に格納されている共有シークレット文字列。 構成が最も簡単ですが、手動ローテーションとセキュリティで保護されたストレージが必要です。
証明 書 アサーション ベースの認証に使用される X.509 証明書。 クライアント シークレットよりも強力ですが、証明書のライフサイクル管理が必要です。
フェデレーション資格情報 (管理されたアイデンティティ) ブループリントとマネージド ID またはサービス プリンシパルの間の信頼関係。 ブループリントにはシークレットは格納されません。 本番環境で推奨されます。 Azureは資格情報のローテーションを自動的に管理します。

フェデレーション資格情報オプションは、Foundry に最も関連します。 Foundry がプロジェクトのエージェント ID ブループリントをプロビジョニングすると、ブループリントによってプロジェクトのマネージド ID との信頼関係が確立されます。 認証チェーンは次のように機能します。

  • エージェント ID ブループリントには、プロジェクトのマネージド ID とのフェデレーション資格情報の信頼関係があります。
  • 実行時に、エージェント サービスはマネージド ID を使用してブループリントを認証し、Microsoft Entra IDします。 クライアント シークレットまたは証明書は必要ありません。
  • Entra IDは、フェデレーション資格情報を検証し、agent ID (サービス プリンシパル) のトークンを発行します。
  • その後、エージェント ID トークンは、ダウンストリーム リソースの対象ユーザーを対象とする スコープ付きアクセス トークン と交換されます。

このチェーンは、ブループリント構成に格納されているシークレットを排除するように設計されています。 Azureはマネージド ID のインフラストラクチャを介して資格情報のローテーションを管理します。各レイヤー (マネージド ID、エージェント ID、ダウンストリーム リソース) には、独立した最小特権ロールの割り当てがあります。 ただし、一部のツール構成では、認証オプションとしてプロジェクトのマネージド ID が引き続き公開されます。

メモ

マネージド ID は、blueprint を Entra ID に対して認証します。 ダウンストリーム リソースに直接アクセスすることはありません。 エージェント ID は、マネージド ID ではなく、ターゲット リソースに対する RBAC ロールの割り当てを必要とするプリンシパルです。

ファウンドリの統合

Foundry は、エージェント開発ライフサイクル全体を通じて ID を作成および管理することで、Microsoft Entra エージェント IDと自動的に統合されます。 Foundry プロジェクトで最初のエージェントを作成すると、システムによって、プロジェクトの既定のエージェント ID ブループリントと既定のエージェント ID がプロビジョニングされます。

共有プロジェクト ID

同じプロジェクト内のすべての未発行または開発中のエージェントは、共通の ID を共有します。 この設計により、発行されていないエージェントでは通常、同じアクセス パターンとアクセス許可構成が必要になるため、アクセス許可の管理が簡略化されます。 共有 ID アプローチには、次の利点があります。

  • 管理の簡素化: 管理者は、プロジェクト内のすべての開発中エージェントのアクセス許可を一元的に管理できます。
  • ID のスプロールの減少: プロジェクトごとに 1 つの ID を使用すると、初期の実験中に不要な ID が作成されるのを防ぐことができます。
  • 開発者の自律性: 共有 ID を構成した後、開発者は新しいアクセス許可を繰り返し構成することなく、エージェントを個別にビルドおよびテストできます。

共有エージェント ID のブループリントとエージェント ID を見つけるには、Azure ポータルで Foundry プロジェクトに移動します。 [ 概要 ] ウィンドウで、[ JSON ビュー] を選択します。 ID を表示してコピーする最新の API バージョンを選択します。

 Foundry プロジェクトのエージェント ID ブループリントとエージェント ID の詳細を表示するAzure ポータルの JSON ビューのスクリーンショット。

個別のエージェントの識別子

エージェントのアクセス許可、監査可能性、またはライフサイクルの要件がプロジェクトの既定値とは異なる場合は、個別の ID にアップグレードする必要があります。 エージェントを発行すると、専用のエージェント ID ブループリントとエージェント ID が自動的に作成されます。 どちらもエージェント アプリケーション リソースにバインドされます。 この個別の ID は、独自のリソースにアクセスするためのエージェントのシステム権限を表します。

個別の ID を必要とする一般的なシナリオは次のとおりです。

  • エージェントは統合テストの準備が整っています。
  • 製品用途のために準備されたエージェント。
  • 一意のアクセス許可セットを必要とするエージェント。
  • 独立した監査証跡を必要とするエージェント。

個別のエージェント ID ブループリントとエージェント ID を見つけるには、Azure ポータルでエージェント アプリケーション リソースに移動します。 [ 概要 ] ウィンドウで、[ JSON ビュー] を選択します。 ID を表示してコピーする最新の API バージョンを選択します。

自動化とデプロイのツール

Azure Developer CLI (azd) などのデプロイ ツールでは、エージェント ID のアクセス許可の自動化が制限されます。

  • Development: azd は、発行されていないエージェントの共有プロジェクト エージェント ID に Azure AI ユーザーを自動的に割り当てます
  • 運用: 公開されたエージェントは、手動ロールの割り当てを必要とする個別の ID を受け取ります

azd では、Container Registry、Application Insights、またはカスタム リソースのアクセス許可は構成されません。 運用環境のデプロイと、ホストされるエージェントの完全なアクセス許可要件については、 ホストされるエージェントのアクセス許可のリファレンスを参照してください

ツール認証

エージェントは、認証にエージェント ID を使用してリモート リソースとツールにアクセスします。 認証メカニズムは、エージェントの公開状態によって異なります。

  • 発行されていないエージェント: 共有プロジェクトのエージェント ID を使用して認証します。
  • 公開されたエージェント: エージェント アプリケーションに関連付けられている一意のエージェント ID を使用して認証します。

エージェントを発行するときは、エージェントがアクセスする必要があるリソースについて、新しいエージェント ID に RBAC アクセス許可を再割り当てする必要があります。 この再割り当てにより、公開されたエージェントは、個別の ID で動作しながら適切なアクセスを維持できます。

エージェント ID にアクセス許可を割り当てる

エージェント ID は、Microsoft Entra IDのサービス プリンシパルです。 それに RBAC ロールを割り当てる際には、他のサービス プリンシパルやマネージド ID にロールを割り当てるときと同じ方法で行います。 プロジェクトまたはエージェント アプリケーションの JSON ビューの agentIdentityId を担当者として使用します。

たとえば、ストレージ アカウントへの読み取り/書き込みアクセス権をエージェント ID に付与するには、ストレージ アカウント スコープで ストレージ BLOB データ共同作成者 ロールを割り当てます。

az role assignment create \
    --assignee "<agentIdentityId>" \
    --role "Storage Blob Data Contributor" \
    --scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>"

割り当てを確認するには:

az role assignment list \
    --assignee "<agentIdentityId>" \
    --scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>" \
    --output table

エージェント ツールの一般的なロールの割り当て:

ツールのシナリオ 必要なロール ターゲット スコープ
BLOB の読み取り/書き込みを行う MCP サーバー ストレージ BLOB データ貢献者 ストレージ アカウント
ロジック アプリをトリガーする MCP サーバー Logic Apps Standard オペレータ (プレビュー) ロジック アプリ リソース
Cosmos DB にクエリを実行する A2A ツール Cosmos DB 組み込みデータ リーダー Cosmos DB アカウント

重要

エージェントを発行すると、agentIdentityIdが新しく割り当てられます。 新しい ID に対してこれらのロールの割り当てを繰り返します。 共有プロジェクト ID ロールは、公開されたエージェントの ID には引き継がれません。

ヒント

Azure Container Registry、Application Insights、マルチリソース RBAC 構成など、ホストされるエージェントのデプロイに関連するすべてのアクセス許可の包括的な詳細については、「Hosted エージェントのアクセス許可リファレンスを参照してください。

サポートされているツール

現在、エージェント ID での認証をサポートするツールは次のとおりです。

  • モデル コンテキスト プロトコル (MCP): エージェントの ID を使用して、エージェント ID 認証をサポートする MCP サーバーで認証します。 詳細については、「 モデル コンテキスト プロトコルMCP サーバー認証」を参照してください。
  • エージェント間 (A2A): エージェント ID を使用してエージェント間のセキュリティで保護された通信を有効にします。 詳細については、 エージェント間ツールAgent2Agent (A2A) 認証に関するページを参照してください。

その他のツールと統合では、異なる認証方法 (キーベースの認証や OAuth ID パススルーなど) を使用する場合があります。 サポートされている認証を確認するには、ツールのドキュメントを使用します。

ツール接続の構成

エージェント ID 認証を使用して MCP サーバーまたは A2A エンドポイントを接続するには、ダウンストリーム サービスの認証の種類と対象ユーザーを指定するプロジェクト接続を作成します。 認証の種類はツールによって異なります。

ツールの種類 認証の種類の値 接続カテゴリ
MCP サーバー AgenticIdentityToken RemoteTool
A2A エンドポイント AgenticIdentity RemoteA2A

エージェントがツールを呼び出すと、エージェント サービスはエージェント ID を使用して 対象ユーザー の値をスコープとするアクセス トークンを取得し、認証のためにそのトークンをツール エンドポイントに渡します。

詳細な構成手順については、以下を参照してください。

セキュリティに関する考慮事項

エージェント ID は、エージェント構成に有効期間の長い資格情報を埋め込む必要がなくなるため、リスクを軽減するのに役立ちます。 アクセスを最小限の特権で監査可能な状態に保つには、次のプラクティスを使用します。

  • エージェントがそのツール アクションに必要なアクセス許可のみを割り当てます。 サブスクリプション全体のアクセスよりも、狭いスコープ (リソースまたはリソース グループ) を優先します。
  • 共有プロジェクトの識別子は、より広い影響範囲として扱います。 エージェントがより厳密な制御または個別の監査を必要とする場合は、それを発行して個別の ID を取得し、その新しい ID にロールを割り当てます。
  • Microsoft以外のツールとサーバーへのアクセスを確認してログに記録します。 ツール呼び出しがMicrosoft サービスを離れる場合、データの処理と保持は外部プロバイダーによって異なります。

制限

  • 現在、エージェント ID 認証をサポートしているツールは一部のみです。 サポートされている認証については、ツールのドキュメントを参照してください。
  • エージェントを発行すると、ツール呼び出しに使用される ID (共有プロジェクト ID と個別のエージェント ID) が変更されます。 公開時にロール再割り当ての計画を立てる。

一般的な問題

一般的に、エージェント ID を使用すると、ツールの認証エラーが発生する問題があります。

  • 間違った ID に割り当てられたロール: エージェントによって使用されている現在の ID (発行されていないエージェントの共有プロジェクト ID、発行されたエージェントの個別の ID) にアクセス許可を付与したことを確認します。
  • ロールの割り当てがない: エージェント ID にターゲット リソースに必要な RBAC ロールがあることを確認します。 Foundry のロールとスコープについては、Foundry の Azureロールベースのアクセス制御に関するページを参照してください。
  • Incorrect 対象ユーザー: 対象ユーザーが呼び出すダウンストリーム サービス (たとえば、Azure Storage の場合は https://storage.azure.com) と一致していることを確認します。

ツール固有のトラブルシューティングについては、ツールのドキュメントを参照してください。

エージェント ID の管理

エージェント ID は、関連する Foundry プロジェクトまたはエージェント アプリケーション リソースが存在する限り保持されます。 Foundry プロジェクトを削除すると、関連付けられているエージェント ID ブループリントと共有エージェント ID が削除されます。 公開されたエージェントには、エージェント アプリケーション リソースに関連付けられた独自の ID ライフサイクルがあります。エージェント アプリケーションを削除すると、その個別の ID が削除されます。

Microsoft Entra 管理センターを使用して、テナント内のすべてのエージェント ID を表示および管理できます。 Microsoft Entra 管理センター にサインインし、Entra ID>Agent ID>すべてのエージェントの ID を参照して、テナント内のすべてのエージェントのインベントリを表示します。これには、Foundry エージェント、Microsoft Copilot Studio エージェントなどが含まれます。

スクリーンショットは Microsoft Entra 管理センターのもので、テナント内のすべてのエージェントのインベントリを含むエージェント ID のタブを示しています。

このエクスペリエンスでは、次のような組み込みのセキュリティ制御を有効にすることができます。

  • 条件付きアクセス: エージェント ID にアクセス ポリシーを適用します。
  • ID 保護: エージェント ID を監視し、脅威から保護します。
  • ネットワーク アクセス: エージェントのネットワーク ベースのアクセスを制御します。
  • ガバナンス: エージェント ID の有効期限、所有者、およびスポンサーを管理します。

Microsoft Entra エージェント ID機能の詳細については、Microsoft Entraドキュメントを参照してください。