次の方法で共有


エージェント フレームワークで Microsoft Purview SDK を使用する

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 サブスクリプション。
  • Agent Framework SDK: Agent Framework SDK をインストールするには:
    • Python: pip install agent-framework --preを実行します。
    • .NET: NuGet からインストールします。

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 の統合をテストします。

  1. Entra 登録: エージェントを登録し、必要な Microsoft Graph アクセス許可 (ProtectionScopes.Compute.AllContentActivity.WriteContent.Process.All) をサービス プリンシパルに追加します。 詳細については、「Microsoft Entra ID と dataSecurityAndGovernance リソースの種類にアプリケーションを登録する」を参照してください。 次の手順では、Microsoft Entra アプリ ID が必要です。
  2. Purview ポリシー: Microsoft Entra アプリ ID を使用して Purview ポリシーを構成し、エージェント通信データを Purview にフローできるようにします。 詳細については、「 Microsoft Purview の構成」を参照してください。

リソース