Microsoft Purview は、AI アプリケーション用のエンタープライズ レベルのデータ セキュリティ、コンプライアンス、ガバナンス機能を提供します。 Agent Framework SDK 内に Purview API を統合することで、開発者は、プロンプトと応答の機密データが保護され、組織のポリシーに準拠していることを確認しながら、設計によってセキュリティで保護されたインテリジェントなエージェントを構築できます。
Purview と Agent Framework を統合する理由
- 機密データ 漏洩の防止: データ損失防止 (DLP) ポリシーに基づく機密コンテンツのインライン ブロック。
- ガバナンスを有効にする: 監査、コミュニケーション コンプライアンス、Insider Risk Management、電子情報開示、データ ライフサイクル管理のために Purview で AI の対話をログに記録します。
- 導入を加速する: エンタープライズのお客様は、AI アプリのコンプライアンスを必要とします。 Purview 統合によってデプロイのブロックが解除されます。
[前提条件]
開始する前に、次のことを確認します。
- Microsoft Purview が構成された Microsoft Azure サブスクリプション。
- E5 ライセンスと従量課金制のセットアップを使用した Microsoft 365 サブスクリプション。
- テストには、Microsoft 365 Developer Program テナントを使用できます。 詳細については、「 Microsoft 365 開発者プログラムに参加する」を参照してください。
- Agent Framework SDK: Agent Framework SDK をインストールするには:
- Python:
pip install agent-framework --preを実行します。 - .NET: NuGet からインストールします。
- Python:
Microsoft Purview をエージェントに統合する方法
エージェントのワークフロー ミドルウェア パイプラインでは、Microsoft Purview ポリシー ミドルウェアを追加して、プロンプトと応答をインターセプトして、Microsoft Purview で設定されたポリシーを満たしているかどうかを判断できます。 Agent Framework SDK は、エージェント間またはエンドユーザーのチャット クライアントのプロンプトと応答をインターセプトできます。
次のコード サンプルは、Microsoft Purview ポリシー ミドルウェアをエージェント コードに追加する方法を示しています。 Agent Framework を初めて使用する場合は、「エージェント フレームワーク を使用したエージェントの作成と実行」を参照してください。
using Azure.AI.OpenAI;
using Azure.Core;
using Azure.Identity;
using Microsoft.Agents.AI;
using Microsoft.Agents.AI.Purview;
using Microsoft.Extensions.AI;
using OpenAI;
string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? throw new InvalidOperationException("AZURE_OPENAI_ENDPOINT is not set.");
string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME") ?? "gpt-4o-mini";
string purviewClientAppId = Environment.GetEnvironmentVariable("PURVIEW_CLIENT_APP_ID") ?? throw new InvalidOperationException("PURVIEW_CLIENT_APP_ID is not set.");
TokenCredential browserCredential = new InteractiveBrowserCredential(
new InteractiveBrowserCredentialOptions
{
ClientId = purviewClientAppId
});
AIAgent agent = new AzureOpenAIClient(
new Uri(endpoint),
new DefaultAzureCredential())
.GetChatClient(deploymentName)
.AsAIAgent("You are a secure assistant.")
.AsBuilder()
.WithPurview(browserCredential, new PurviewSettings("My Secure Agent"))
.Build();
AgentResponse response = await agent.RunAsync("Summarize zero trust in one sentence.").ConfigureAwait(false);
Console.WriteLine(response);
Warnung
DefaultAzureCredential は開発には便利ですが、運用環境では慎重に考慮する必要があります。 運用環境では、待機時間の問題、意図しない資格情報のプローブ、フォールバック メカニズムによる潜在的なセキュリティ リスクを回避するために、特定の資格情報 ( ManagedIdentityCredential など) を使用することを検討してください。
import asyncio
import os
from agent_framework import Agent, Message, Role
from agent_framework.azure import AzureOpenAIChatClient
from agent_framework.microsoft import PurviewPolicyMiddleware, PurviewSettings
from azure.identity import AzureCliCredential, InteractiveBrowserCredential
# Set default environment variables if not already set
os.environ.setdefault("AZURE_OPENAI_ENDPOINT", "<azureOpenAIEndpoint>")
os.environ.setdefault("AZURE_OPENAI_CHAT_DEPLOYMENT_NAME", "<azureOpenAIChatDeploymentName>")
async def main():
chat_client = AzureOpenAIChatClient(credential=AzureCliCredential())
purview_middleware = PurviewPolicyMiddleware(
credential=InteractiveBrowserCredential(
client_id="<clientId>",
),
settings=PurviewSettings(app_name="My Secure Agent")
)
agent = Agent(
chat_client=chat_client,
instructions="You are a secure assistant.",
middleware=[purview_middleware]
)
response = await agent.run(Message(role='user', contents=["Summarize zero trust in one sentence."]))
print(response)
if __name__ == "__main__":
asyncio.run(main())
次のステップ
上記のコードをエージェントに追加したら、次の手順を実行して、コードへの Microsoft Purview の統合をテストします。
- Entra 登録: エージェントを登録し、必要な Microsoft Graph アクセス許可 (ProtectionScopes.Compute.All、 ContentActivity.Write、 Content.Process.All) をサービス プリンシパルに追加します。 詳細については、「Microsoft Entra ID と dataSecurityAndGovernance リソースの種類にアプリケーションを登録する」を参照してください。 次の手順では、Microsoft Entra アプリ ID が必要です。
- Purview ポリシー: Microsoft Entra アプリ ID を使用して Purview ポリシーを構成し、エージェント通信データを Purview にフローできるようにします。 詳細については、「 Microsoft Purview の構成」を参照してください。
リソース
- Nuget: Microsoft.Agents.AI.Purview
- Github: Microsoft.Agents.AI.Purview
- サンプル: AgentWithPurview