Delen via


Microsoft Purview SDK gebruiken met Agent Framework

Microsoft Purview biedt geavanceerde mogelijkheden voor gegevensbeveiliging, naleving en governance voor AI-toepassingen. Door Purview-API's binnen de Agent Framework SDK te integreren, kunnen ontwikkelaars intelligente agents bouwen die standaard zijn beveiligd, terwijl gevoelige gegevens in prompts en antwoorden worden beveiligd en voldoen aan het organisatiebeleid.

Waarom Purview integreren met Agent Framework?

  • Lekken van gevoelige gegevens voorkomen: inline blokkeren van gevoelige inhoud op basis van DLP-beleid (Preventie van gegevensverlies).
  • Governance inschakelen: AI-interacties vastleggen in Purview voor controle, communicatiecompatibiliteit, intern risicobeheer, eDiscovery en gegevenslevenscyclusbeheer.
  • Acceptatie versnellen: Enterprise-klanten vereisen naleving voor AI-apps. De Purview-integratie deblokkert de implementatie.

Vereiste voorwaarden

Voordat u begint, moet u ervoor zorgen dat u het volgende hebt:

  • Microsoft Azure-abonnement met Microsoft Purview geconfigureerd.
  • Microsoft 365-abonnement met een E5-licentie en pay-as-you-go-facturering.
  • Agent Framework SDK: Om de Agent Framework SDK te installeren:
    • Python: Voer uit pip install agent-framework --pre.
    • .NET: Installeren vanuit NuGet.

Microsoft Purview integreren in uw agent

In de middleware-pijplijn voor werkstromen van uw agent kunt u de Microsoft Purview-beleidsmiddleware toevoegen om prompts en antwoorden te onderscheppen en te bepalen of ze voldoen aan het beleid dat is ingesteld in Microsoft Purview. De Agent Framework SDK kan chatclientprompts en -antwoorden van agents naar agent of eindgebruiker onderscheppen.

In het volgende codevoorbeeld ziet u hoe u de Middleware van het Microsoft Purview-beleid toevoegt aan uw agentcode. Zie Een agent maken en uitvoeren met Agent Framework als u nieuw bent bij 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);

Waarschuwing

DefaultAzureCredential is handig voor ontwikkeling, maar vereist zorgvuldige overwegingen in de productieomgeving. Overweeg in productie een specifieke referentie te gebruiken (bijvoorbeeld ManagedIdentityCredential) om latentieproblemen, onbedoelde referentieprobing en potentiële beveiligingsrisico's van terugvalmechanismen te voorkomen.

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())

Volgende stappen

Nu u de bovenstaande code aan uw agent hebt toegevoegd, voert u de volgende stappen uit om de integratie van Microsoft Purview in uw code te testen:

  1. Entra-registratie: Registreer uw agent en voeg de vereiste Microsoft Graph-machtigingen (ProtectionScopes.Compute.All, ContentActivity.Write, Content.Process.All) toe aan de service-principal. Zie Een toepassing registreren in Microsoft Entra ID en dataSecurityAndGovernance-resourcetype voor meer informatie. In de volgende stap hebt u de app-id van Microsoft Entra nodig.
  2. Purview-beleid: Purview-beleid configureren met behulp van de Microsoft Entra-app-id om communicatiegegevens van agents naar Purview te laten stromen. Zie Microsoft Purview configureren voor meer informatie.

Resources