Microsoft Foundry の AI モデル利用を、認証・RBAC・ログ・安全機能に絞って整理する
Microsoft Foundry を調べていると、Agent、APIM、MCP、周辺の統制機能まで話題が広がりがちです。
ただ、実際に最初に知りたいことはもっとシンプルで、「Foundry の AI モデルをどう認証して呼ぶのか」「どこまで権限を絞れるのか」「何がログとして追えるのか」「安全機能はどこまで built-in なのか」 だったりします。
そこで本記事では、2026-04-14 時点の Microsoft Learn をベースに、Microsoft Foundry の AI モデルを Entra 認証または API キーで利用する場合 に話を絞って整理します。
今回はあえて、
- APIM との組み合わせ
- Agent identity の深掘り
- MCP / A2A 連携
- Gateway 的な外部制御
は外し、純粋に Foundry 側で持っているモデル利用機能 を中心に見ます。
先に結論
先に要点だけまとめると、Microsoft Foundry の AI モデル利用は次のように整理できます。
-
認証方式は Entra ID と API キーの 2 本立て
- 本番運用は Entra ID が基本
- API キーは PoC や単体疎通確認向け
-
RBAC は「Foundry のロール」と「推論用ロール」を分けて考えると分かりやすい
- Foundry portal / project 利用は
Azure AI Userなど - モデル推論の keyless access は
Cognitive Services Userが中心
- Foundry portal / project 利用は
-
Owner / Contributor でも推論できるとは限らない
- 管理権限と推論権限は別物
-
ログは 2 層で見る
- API レスポンス内の usage / content filter 結果
- Azure Monitor 側の診断ログ・監視
-
AI Content Safety はモデルやデプロイ方式によって built-in の度合いが違う
- serverless の言語モデルでは統合フィルタが入りやすい
- managed compute では別途 Content Safety API を使う前提が残る
-
スループット設計は PTU が要点
- Foundry / Azure OpenAI のスループット予約単位は PTU(Provisioned Throughput Units)
- 高トラフィック・低ぶれ重視なら provisioned、可変負荷なら standard が基本
-
モデル差異はかなりある
- Azure OpenAI 系は API と機能が最も揃っている
- その他の Foundry Models は、デプロイ方式・サポート・安全機能の入り方がモデルごとに異なる
一言でいえば、「認証は Entra、権限は RBAC、運用監視はログ、安全対策は Content Safety、性能設計は PTU」 の 5 点を押さえると、Foundry のモデル利用はかなり見通しがよくなります。
認証の詳細
認証方式は 2 つ
Microsoft Foundry でモデルを利用する場合の認証方式は、基本的に次の 2 つです。
| 方式 | 向いている用途 | 特徴 |
|---|---|---|
| Microsoft Entra ID | 本番運用、社内アプリ、権限制御が必要な環境 | OAuth 2.0、RBAC と連動、監査しやすい |
| API キー | PoC、簡易接続、単体検証 | 実装は簡単だが、権限制御と監査は粗い |
Microsoft Learn でも、本番用途は Microsoft Entra ID 推奨 という整理です。理由は単純で、API キーは「鍵を持っている主体」を細かく区別しにくく、最小権限や監査に弱いからです。
Entra ID 認証の実装要点
Entra ID でのトークン取得時に使うスコープは次です。
https://ai.azure.com/.default
また、トークンベース認証には custom subdomain が必要です。地味な要件ですが重要で、リージョナル endpoint のままだとトークン認証が成立しないため、見落とすと原因特定に時間を取られやすい箇所です。
実務的には、Entra ID 認証を成立させる前提は次の 3 点です。
- Foundry resource に custom subdomain がある
- 呼び出し主体に適切なロールが付与されている
-
https://ai.azure.com/.default向けトークンを正しく取得している
Entra ID で使う主体
Entra ID で使える主体は、典型的には次の 4 種類です。
- ユーザー principal
- Service Principal
- System-assigned Managed Identity
- User-assigned Managed Identity
アプリから Foundry を呼ぶなら、運用面では Managed Identity が第一候補 です。シークレットを環境変数に配置する必要が減り、ローテーション作業もほぼ Azure 側に寄せられます。
API キー認証の位置づけ
API キーは依然として使えます。
- 言語や SDK に依存しにくい
- 疎通確認が速い
- すぐに始めやすい
一方で弱点も明確です。
- 利用者単位の識別が難しい
- 権限を細かく分けにくい
- キーが漏れると基本的に resource 単位で広く効く
- 監査上は「そのキーを知っていた誰か」になりやすい
そのため、API キーは初期の導入時には便利だが、本番運用の本命ではない と考えた方がよいです。
使い分けの実務感
ざっくり言うと、次の判断でほぼ困りません。
- まず動かす → API キーでも可
- アプリに組み込む → Entra ID に寄せる
- 社内向け本番 → Entra ID 前提
- 最小権限・監査が必要 → Entra ID 一択
RBAC
まず control plane と data plane を分けて考える
Foundry の権限設計は、control plane と data plane を分けるのが出発点です。
| 区分 | 何をする層か | 例 |
|---|---|---|
| Control plane | リソースや構成を管理する | project 作成、deployment 作成、キー操作、設定変更 |
| Data plane | 実際にモデルを使う | chat completions、embeddings、fine-tuning 実行、content safety 呼び出し |
ここが分かれるので、
- リソース管理者
- モデルを使う開発者
- デプロイを作る人
- 監視だけ見る人
を同一人物にしなくて済みます。
Foundry の built-in ロール
Foundry 側の代表ロールは、Role-based access control for Microsoft Foundry で整理されている次の 4 つです。
| ロール | 主な用途 |
|---|---|
| Azure AI User | 最小権限の利用者ロール。モデル利用や project 内作業の基点 |
| Azure AI Project Manager | project 作成・管理、開発リード向け |
| Azure AI Account Owner | resource 側の高権限管理 |
| Azure AI Owner | control plane / data plane を広く扱う高権限 |
Foundry portal で project を使う、モデルを試す、既存 deployment を使う、といった文脈では Azure AI User が起点 です。
ただし「推論 API を Entra ID で叩くロール」は別軸で見る
ここが少しややこしいのですが、Foundry portal / project のロール と、推論 endpoint に対する keyless access のロール は、実務上は分けて理解した方が安全です。
Foundry Models の Entra ID 認証ドキュメント では、推論 API 呼び出し側の代表ロールは Cognitive Services User とされています。
つまり、モデル利用に関しては次のように読むと分かりやすいです。
| 観点 | 主に見るロール |
|---|---|
| Foundry portal / project 利用 |
Azure AI User などの Foundry ロール |
| モデル推論 endpoint の keyless access | Cognitive Services User |
カスタムロールも作れる
もし Cognitive Services User や Foundry built-in roles が強すぎる場合は、カスタムロールを作れます。
Foundry Models の keyless inference 用 docs では、少なくとも次の dataActions を含む例が示されています。
Microsoft.CognitiveServices/accounts/MaaS/*
このあたりまで来ると、
- モデル推論だけ許可
- 管理変更は禁止
- 特定の resource scope のみ許可
といった設計が現実的になります。
Owner / Contributor では足りないことがある
ここはかなり重要です。
role assignment の実務ポイント
運用面で押さえたいポイントは次です。
- 可能なら Microsoft Entra group に対してロール付与する
- resource scope と project scope を混ぜずに設計する
- role assignment の反映には数分かかることがある
-
Check accessで実際に見える権限を確認する
大人数運用では、個人に直接付与するより グループ単位での運用 の方が管理コストを大きく下げられます。
ロギング
まず「Foundry 単体で見えるもの」と「Azure Monitor で追うもの」を分ける
モデル利用のログは、大きく 2 層で見ると整理しやすいです。
- 推論 API のレスポンスに含まれる情報
- Azure Monitor / 診断ログに送る運用ログ
Agent tracing のような span ベース tracing は現在の docs では主に Agent / Workflow 寄りの説明が中心なので、単純なモデル推論だけを見る場合は、レスポンス metadata と Azure Monitor を主役 と考えるのが自然です。
API レスポンスから見えるもの
Azure OpenAI 系モデルでは、レスポンスに次のような情報が含まれます。
usage.prompt_tokensusage.completion_tokensusage.total_tokens- 一部モデルでは
reasoning_tokens system_fingerprintprompt_filter_resultscontent_filter_results
つまり、少なくとも
- どれだけ token を使ったか
- Content Safety / content filter がどう反応したか
- backend fingerprint が変わったか
はレスポンスから把握できます。
user パラメータの意味
Azure OpenAI 系 API では user フィールドを渡せます。
これは認証そのものではありませんが、エンドユーザー識別子として abuse monitoring を助ける ためのものです。
そのため、
- アプリ利用者 ID
- 社内のユーザー識別子
- セッション連携用の匿名 ID
などを入れる設計は有効です。ただし、直接的な個人情報をそのまま入れるかは社内ポリシー次第です。
Azure Monitor 側のログ
Microsoft の セキュリティ best practices では、Azure OpenAI / Foundry 系利用に対して diagnostic logs を Azure Monitor に送る ことが推奨されています。
追いたい観点は典型的に次です。
- API request
- token usage
- content filtering results
- errors
つまり、アプリ運用としては
- レスポンス usage をアプリ側でも記録
- Azure Monitor 側で診断ログを集約
- 必要に応じて Log Analytics で分析
という二段構えが分かりやすいです。
どこまでが Foundry の built-in か
ここは期待値調整が必要です。
- モデル応答単位の usage / content filter 結果 → built-in でかなり見える
- 長期保存・横断分析・アラート → Azure Monitor 連携が主役
- 細粒度の実行トレース → 現時点では Agent / Workflow 系が中心
そのため、モデル利用だけなら「Foundry 単体で全部が見える」というより、Foundry + Azure Monitor で完成 と理解した方が実態に近いです。
AI コンテンツセーフティーなどの監査
serverless の言語モデルには統合フィルタが入りやすい
Foundry Models overview と Guardrails docs を読むと、serverless API でデプロイした言語モデル には、Azure AI Content Safety ベースの既定フィルタが入る整理です。
対象として代表的に出てくるカテゴリは次です。
- Hate
- Self-harm
- Sexual
- Violence
しかも、入力と出力の両方に対して同期的に評価されます。
既定しきい値
classic docs ですが、Azure 直販モデルの guardrails 説明では次の既定値が示されています。
- テキストモデル: medium 以上でフィルタ
- 画像モデル: low 以上でフィルタ
このへんは「何も設定しないと無防備」ではなく、最初からある程度の安全弁が入っている と見るとよいです。
ただし、全部のモデルで同じではない
ここは重要です。
- embedding models には統合 content filtering がない
- time series models にも統合 content filtering がない
- managed compute では、Azure AI Content Safety を別途使う前提が強い
つまり、Content Safety の入り方はモデル種別とデプロイ方式で変わる ということです。
Content Safety を別サービスとして使える
Azure AI Content Safety 自体は独立した Azure AI サービスなので、Foundry から使う場合でも次の機能を別途組み合わせられます。詳しくは Content moderation features を見ると一覧しやすいです。
- Analyze text API
- Analyze image API
- Prompt Shields
- Protected material text detection
- Groundedness detection(preview)
- Task adherence API
- Custom categories(preview)
特に generative AI 文脈では、次の 2 つが目立ちます。
- Prompt Shields: jailbreak / prompt injection 系の検知
- Protected material: 既知テキストとの一致検知
Azure OpenAI 系のレスポンスではフィルタ結果も返る
Azure OpenAI の REST reference では、次のようなフィルタ結果が返る構造が定義されています。
prompt_filter_resultscontent_filter_resultsjailbreakprofanityprotected_material_textprotected_material_code
また、ポリシー違反時には内部エラーコードとして次が返るケースがあります。
ResponsibleAIPolicyViolation
つまり、安全機能は「裏で動いているだけ」ではなく、API の応答にも反映される ということです。
チューニングや無効化はできるか
Azure 直販モデルの serverless deployment では、docs 上、content filtering を deployment ごとに切り替えられる説明があります。
- 初回デプロイ時に設定
- デプロイ詳細画面で後から変更
ただし、ここはモデルやポータルの世代差分もあるため、「すべてのモデルで自由自在に細かく制御できる」とまで考えない方が安全 です。
また、content filtering は無効化して終わりではなく、無効化した場合は自前で Azure AI Content Safety を組み込まないと、当然ながらリスクは上がります。
監査として何が残るか
安全機能の観点で追えるものは、実質的には次の 3 層です。
- レスポンス中の content filter 結果
- Azure Monitor 側の診断ログ
- Content Safety Studio / Content Safety API の監視情報
そのため、「監査」の意味を広く取るなら、Foundry 側だけで完結するというより、Foundry の推論 + Content Safety + Azure Monitor の合わせ技 で実現するイメージです。
PTU などの設定
「TPU」は、実質 PTU を指すと考えてよい
Foundry / Azure OpenAI の最新 docs では、スループット予約の単位は PTU(Provisioned Throughput Units) です。
ユーザー会話で「TPU」と言われることもありますが、Microsoft Learn 上の正式な用語は PTU です。
deployment type の基本整理
Foundry Models の deployment types には、代表的に次の種類があります。
| 種類 | 課金 | 主な用途 |
|---|---|---|
| Global Standard | Pay-per-token | まず使う標準形 |
| Global Provisioned | Reserved PTU | 高スループット・低ぶれ |
| Global Batch | 割引バッチ | 大量非同期処理 |
| Data Zone Standard | Pay-per-token | US / EU data zone 要件 |
| Data Zone Provisioned | Reserved PTU | data zone + 安定性能 |
| Standard | Pay-per-token | 単一リージョン要件 |
| Regional Provisioned | Reserved PTU | 単一リージョン + 安定性能 |
| Developer | Pay-per-token | fine-tuned model の評価用 |
standard と provisioned の違い
ざっくり言うと次の差です。
| 観点 | Standard | Provisioned |
|---|---|---|
| 課金 | 従量 | PTU 予約 |
| 向く負荷 | バースト・変動 | 継続高負荷 |
| 遅延のぶれ | 比較的大きい | 比較的小さい |
| SLA / 性能の期待 | ベストエフォート寄り | 予測しやすい |
高トラフィックでレイテンシぶれを嫌うなら、Provisioned を検討する価値があります。
PTU の意味
Provisioned 系では、一定量の処理能力を PTU として予約 します。
重要なのは、PTU は単純な「1 PTU = 何 request/sec」の固定値ではないことです。docs でも、
- モデルごと
- バージョンごと
- デプロイ種別ごと
に必要 PTU や得られる throughput が異なると説明されています。
つまり、PTU は CPU コア数のような完全な共通単位ではなく、モデル依存の正規化された容量指標 と考える方が正確です。
data residency と deployment type
デプロイ種別は性能だけでなく、どこで処理されるか にも効きます。
- Global: Azure 全体で柔軟に処理
- Data Zone: US か EU のゾーン内で処理
- Standard / Regional Provisioned: 単一リージョン中心
なので、要件が
- コスト優先
- データ居住要件優先
- レイテンシ安定性優先
のどれかで、選ぶ deployment type が変わります。
すべてのモデルがすべての deployment type を持つわけではない
これはかなり大事です。
- モデルごとに対応 deployment type が違う
- region ごとに availability が違う
- preview / limited access の制約があるモデルもある
そのため、「Global Provisioned で使いたい」と思っても、そのモデルがその region / type に対応しているとは限らない です。
まず model card や region availability 表を見るのが先です。
モデルごとの差異
まず大きくは「Azure OpenAI 系」と「それ以外」で見る
Foundry Models overview では、モデルカタログは大きく次の 2 系統で見られます。
- Azure OpenAI を含む Azure 直販モデル
- partners / community モデル
ここでいう差異を、モデル利用の観点だけでまとめると次のようになります。
| 観点 | Azure OpenAI 系 | その他の Foundry Models |
|---|---|---|
| API surface | かなり整理されている。Chat Completions / Responses / Embeddings / Audio / Images など | モデルごとに差が大きい |
| 認証 | API キー / Entra ID の両方が明確にサポートされる | API キー / Entra ID が基本だが、モデル・提供形態により対応差あり |
| deployment type | Global / Data Zone / Provisioned / Batch など選択肢が多い | provider が deployability を決めるケースが多い |
| built-in content filter | Azure OpenAI の応答仕様まで含めて見えやすい | serverless / managed compute / モデル種別で差が大きい |
| サポート | Microsoft 側の統合度が高い | provider / community 側に寄る部分がある |
Azure OpenAI 系で特に差が出るところ
1. API がモデル系列ごとに違う
Azure OpenAI 系でも、全部が同じ API を使えるわけではありません。
たとえば:
- chat 系 → Chat Completions / Responses API
- embeddings 系 → Embeddings API
- audio 系 →
/audio系 API - image 系 → images generation API
- 一部 codex / reasoning 系 → Responses API 中心
つまり、「Azure OpenAI だから全部同じ呼び方」ではない です。
2. reasoning model はパラメータ差異がある
docs では、たとえば gpt-5.1-chat のような reasoning 系モデルでは、temperature のような従来パラメータがそのまま使えないケースが明記されています。
つまり、モデルを差し替えるときは
- context length
- max output
- 対応 API
- tools / structured outputs 対応
- パラメータ互換性
を確認した方がよいです。
3. embeddings は移行コストがある
embeddings モデルは特に注意が必要です。
Learn でも、text-embedding-ada-002 から text-embedding-3-large へは既存のインデックスやベクトルデータをそのまま移行することはできず、全データを再 embedding する必要がある とされています。
ここは chat モデルより移行コストが見えづらいので要注意です。
4. data_sources など Azure OpenAI 専用機能がある
Azure OpenAI の REST reference では、data_sources は Azure OpenAI にのみ互換 とされています。
つまり、RAG や検索連携の API 形状まで含めると、AOAI 系だけが持つ便利機能 があります。
直販モデルでも provider によって差がある
Foundry Models sold directly by Azure には Azure OpenAI 以外にも、DeepSeek、Meta、Mistral、xAI などの一部モデルが含まれます。
ただし、
- region availability
- deployment type
- preview / GA 状況
- サポート API
- 安全機能の入り方
は一律ではありません。
そのため、「Foundry にある = Azure OpenAI と同じ運用性」ではない と考えるべきです。
モデル選定時に最低限見るべき項目
モデル差異で最低限チェックしたいのは次です。
- 認証方式(API キー / Entra ID)
- 対応 deployment type
- 利用可能 region
- preview か GA か
- Responses API / Chat Completions API の対応
- multimodal 対応
- tools / structured outputs 対応
- content filtering の built-in 有無
- context window / max output
これを見ないで「同じ GPT 系だからたぶん同じ」と進めると、だいたい後で小さく燃えます。
迷ったときのおすすめ構成
もし「Foundry で安全に AI モデルを使いたい」という前提なら、まずは次の形が無難です。
最小構成
- 認証: Microsoft Entra ID
- 権限: Cognitive Services User を基本に必要なら Foundry ロール追加
- アプリ実行主体: Managed Identity
- デプロイ種別: Global Standard または Standard
- ログ: usage をアプリ側で記録 + Azure Monitor 診断ログ
- 安全対策: serverless の built-in filter を前提にしつつ、必要なら Azure AI Content Safety を追加
こういうときは調整する
- 安定スループット重視 → Provisioned / PTU
- US / EU のデータ境界が必要 → Data Zone
- 単一リージョン要件 → Standard / Regional Provisioned
- 独自安全基準が強い → Azure AI Content Safety を別途併用
- Azure OpenAI 固有機能を使いたい → AOAI 系モデルを優先
まとめ
Microsoft Foundry の AI モデル利用を、認証と運用の観点だけに絞ると、重要なのは次の 6 点です。
- 認証は Entra ID と API キーの 2 つだが、本番は Entra ID が基本
- RBAC は Foundry ロールと推論ロールを分けて考えると整理しやすい
- Owner / Contributor でも推論できるとは限らない
- ログは API レスポンス metadata と Azure Monitor の両方で見る
- Content Safety の built-in 具合はモデル種別と deployment type で違う
- 性能設計は PTU と deployment type の選択が本体
特に実務で効くのは、
- 認証を Entra ID に寄せる
- RBAC を最小権限で設計する
- content filtering の入り方をモデルごとに確認する
- PTU が必要な負荷かを早めに判断する
の 4 つです。
「Foundry は何でもできる」ではなく、どのモデルを、どの deployment type で、どの認証方式で、どの安全機能付きで使うのか を先に分解すると、かなり設計しやすくなります。
参考にした公式ドキュメント
-
Authentication and authorization in Microsoft Foundry
https://learn.microsoft.com/en-us/azure/foundry/concepts/authentication-authorization-foundry -
Role-based access control for Microsoft Foundry
https://learn.microsoft.com/en-us/azure/foundry/concepts/rbac-foundry -
Configure keyless authentication with Microsoft Entra ID
https://learn.microsoft.com/en-us/azure/foundry/foundry-models/how-to/configure-entra-id -
Microsoft Foundry Models overview
https://learn.microsoft.com/en-us/azure/foundry/concepts/foundry-models-overview -
Deployment types for Microsoft Foundry Models
https://learn.microsoft.com/en-us/azure/foundry/foundry-models/concepts/deployment-types -
Foundry Models sold directly by Azure
https://learn.microsoft.com/en-us/azure/foundry/foundry-models/concepts/models-sold-directly-by-azure -
Azure OpenAI in Microsoft Foundry Models REST API reference
https://learn.microsoft.com/en-us/azure/foundry/openai/reference -
What is Azure AI Content Safety?
https://learn.microsoft.com/en-us/azure/ai-services/content-safety/overview -
Guardrails & controls for Models Sold Directly by Azure (classic)
https://learn.microsoft.com/en-us/azure/foundry-classic/concepts/model-catalog-content-safety -
Azure AI security best practices
https://learn.microsoft.com/en-us/azure/security/fundamentals/ai-security-best-practices
Discussion