AI セキュリティの一環として、Entra ID にて AI エージェントに ID を割当て、権限を割り当てることを検証してみました。
ここではその検証内容をまとめます。なお、AI エージェントには Anthropic 社の Claude Sonnet 5.5 モデルを使用しました。
当検証は、以下のステップで行いました。
- Foundry プロジェクトを作成する
- Foundry で AI モデルをデプロイする
- Entra ID で Agent Blueprint / Identity を作成する
- Agent Identity にロールを割り当てる
1. Microsoft Foundry で Foundry プロジェクトを作成する
Microsoft Foundry は、AI アプリケーションやエージェントを設計、カスタマイズ、管理するための統合プラットフォームです。
Foundry プロジェクトの作成は必須ではありませんが、Azure 上でエージェントを動かす場合、実行環境として Foundry を使うと便利です。なお、Agent ID の管理は Entra 側で行うため、Foundry を使わない場合でも同じように管理できます。
また、Claude モデルを使用できるのは、現時点で米国東部 2 (East US 2) とスウェーデン中部 (Sweden Central) のみとなっています。※ 2026年10月時点
それでは Foundry プロジェクトを作成して行きます。
-
ai.azure.com にサインインします。なお、プロジェクト作成には、Project Manager または Foundry Owner のロールが必要です。
-
左上のプロジェクト名をクリックし、[新しいプロジェクトの作成] をクリックします。
-
プロジェクト名を入力し、[詳細オプション] を開きます。
-
リソースグループを確認し、正しくなければ、正しいリソースグループを選択するか、[新規作成] を選択します。
-
[場所] で「米国東部 2」を指定します。
-
[プロジェクトの作成] をクリックします。
2. Foundry で AI モデルをデプロイする
次にそのまま Foundry で Claude モデルをデプロイします。なお、Foundry Account Owner のロールが必要です。
サーバーレスデプロイでは、エンドポイントの構成情報が作られるのみで、トークンを消費するまで課金が発生しません。 マネージドコンピューティングデプロイでは自前で GPU インスタンスを確保する形態となり、インスタンスを立てている間時間課金されます。※ Claude モデルはマネージドコンピューティングでは選択できません。
3. 対象の AI モデルを選択します。ここでは、「Claude-sonnet-5-5」を選択しました。

検索欄を使用し、モデルを絞り込むと便利です。
4. [カスタム設定] を選択します。

エンドポイントのベース URL は「https://<リソース名>.services.ai.azure.com/anthropic」、Messages APIのターゲットは「ベース URL +/v1/messages」となります。
3. Entra ID で Agent Blueprint / Identity を作成する
いよいよ Entra ID で Agent Identity を作成します。まず、Blueprint を作成します。Blueprint はエージェント ID を作成するためのテンプレートとして機能する Entra ID 上のオブジェクトです。エージェント ID の認証に使う資格情報は Blueprint 側で設定されます。AI エージェントが操作を行う際、その資格情報で Entra ID にトークンを要求します。
※この記事では、Foundry 外で動く自作エージェントが、自分の ID で Claude を呼ぶことを想定しています。
-
Entra 管理センター(https://entra.microsoft.com)にサインインします。
-
[Entra ID] - [Agents] - [Agent Blueprints] を選択します。
Owner は Agent ID Administrator や Agent ID Developer ロールがなくても、委任アクセス許可でその blueprint からエージェント ID を作成できるユーザーです。 Sponsor は業務オーナー、プロダクトマネージャー、チームリーダーなど、その存在に業務上の責任を持つ責任者です。 職務分掌のため、同じユーザーを指定しないことをお奨めします。
6. 内容を確認して [Create] をクリックします。
なお、Foundry で Claude モデルをデプロイした際、Blueprint がいくつか作成されているのが確認できていました。
・ <リソース名>-<プロジェクト名>-AgentIdentityBlueprint
・ <リソース名>-<プロジェクト名>-形容詞-agent-ランダム文字列-AgentIdentityBlueprint ※ 筆者環境
いろいろ調べたところ、「<リソース名>-<プロジェクト名>-形容詞-agent-ランダム文字列-AgentIdentityBlueprint」は筆者の環境ではどうもお試しのようでした。
「<リソース名>-<プロジェクト名>-AgentIdentityBlueprint」は共有 blueprint となり、Foundry が管理していて、Publish 前のエージェントが共有で使用しています。権限を何も与えないままにしておいた方がいいかな と思いました。
Foundry でエージェントを使う場合は、Foundry ポータルの「新しいエージェント」から用途がわかる名前で作成し、Publish すれば、そのエージェント専用の blueprint と identity が自動で作られます。お試しエージェントが不要な場合は、Entra 側ではなく Foundry 側でエージェントを削除します。
Blueprint ができたら、Agent Identity を作成します。
ただ、Blueprint を作成したときに、Blueprint と同名の Agent Identity が作成されたことが確認できました。同じ種類のエージェントを複数動かすなどの用途がないなら、自動作成された Agent Identity を使うのも一案だと思われます。
-
Entra 管理センター(https://entra.microsoft.com)にサインインします。
-
[Entra ID] - [Agents] - [Agent identities] を選択します。
-
[Select a blueprint] をクリックし、作成元の blueprint を選択し、[Next] をクリックします。

-
内容を確認して [Create] をクリックします。
4. Agent Identity にロールを割り当てる
Entra ID でエージェント ID に設定する権限には以下のものがあります。
| 種類 | 対象 | 例 | 主な設定場所 |
|---|---|---|---|
| Azure RBAC | Azure リソース | Foundry リソースで Claude を呼ぶ(Foundry User)、Storage のデータを読む | Azure ポータルの各リソースの「アクセス制御 (IAM)」 |
| API 権限(アプリケーション) | Microsoft Graph などの API | エージェント単独でメールやファイルを読む(自律型) | PowerShell が中心 |
| API 権限(委任) | 同上 | ユーザーの代理として、そのユーザーの権限の範囲内で操作する(対話型、OBO) | 同上+ユーザーまたは管理者の同意 |
| Entra ロール | ディレクトリ | ディレクトリ情報の読み取りなど | Entra 管理センター |
また、権限のほかに、設定できる制御として「条件付きアクセスポリシー」があります。簡単に言うと、「どんな条件ならアクセスを許すか」という制御になります。
今回は、エージェント ID にロールを割り当ててみます。今回はエージェント ID がリソースの Claude を呼び出せるように 「Foundry User」ロールを割り当てます。
-
Azure ポータル (https://portal.azure.com) にサインインします。
-
ホームにて [Foundry] を選択します。
-
[アクセス制御 (IAM)] を選択します。
-
[メンバー]タブで [ユーザー、グループ、またはサービス プリンシパル] を選び、[メンバーを選択する] でエージェント ID を指定し、[選択] をクリックします。

-
[レビューと割り当て] をクリックします。
今回はここまでになります。
現時点では Agent Blueprint に資格情報を設定していないため、まだ Claude を呼び出すことができません。資格情報の設定は次回、記載します。
次回では、以下について書きたいと思います。
・ エージェント ID とユーザー ID の違い
・ サービスプリンシパルとは何か
・ エージェント ID の資格情報の設定

















