Autentisering och auktorisering i Microsoft Foundry

Autentisering och auktorisering i Microsoft Foundry styr hur huvudnamn bevisar identitet och får behörighet att utföra åtgärder. Foundry delar in åtgärder i kontrollplan (resurshantering) och dataplan (körningsanvändning), var och en med sin egen autentiserings- och rollbaserad åtkomstkontroll (RBAC).

Foundry stöder två autentiseringsmetoder: Microsoft Entra ID och API-nycklar. Microsoft Entra ID möjliggör villkorlig åtkomst, hanterade identiteter och detaljerad RBAC. API-nycklar är fortfarande tillgängliga för snabba prototyper men saknar spårning per användare. Den här artikeln jämför dessa metoder, mappar identiteter till roller och beskriver vanliga scenarier med minsta möjliga behörighet.

Viktigt

Använd Microsoft Entra ID för produktionsarbetsbelastningar för att aktivera villkorlig åtkomst, hanterade identiteter och RBAC med minsta behörighet. API-nycklar är praktiska för snabb utvärdering men ger grov åtkomst.

Förutsättningar

Kontrollplan och dataplan

Azure åtgärder delas in i två kategorier: kontrollplan och dataplan. Azure separerar resurshantering (kontrollplan) från driftkörning (dataplan). Därför använder du kontrollplanet för att hantera resurser i din prenumeration och använder dataplanet för att utnyttja funktioner som tillhandahålls av din instans av en resurstyp. Mer information om kontrollplan och dataplan finns i Azure kontrollplan och dataplan. I Foundry finns det en tydlig skillnad mellan kontrollplansåtgärder och dataplansåtgärder. I följande tabell förklaras skillnaden mellan de två, omfånget i Foundry, typiska åtgärder för en användare, exempelverktyg och funktioner samt auktoriseringsytan för att använda var och en.

Plan Omfattning i Foundry Vanliga åtgärder Exempelverktyg Auktoriseringsyta
Kontrollplan Konfigurera resurser, projekt, nätverk, kryptering och anslutningar Skapa eller ta bort resurser, tilldela roller, rotera nycklar, konfigurera Private Link Azure portal, Azure CLI, ARM-mallar, Bicep, Terraform Azure RBAC-åtgärder
Dataplan Köra och använda modellinferens, agentinteraktioner, utvärderingsjobb och innehållssäkerhetsanrop Chattkompletteringar, inbäddningsgenerering, starta finjusteringsjobb, skicka meddelanden från agent, analyzer och klassificera operationer SDK:er, REST-API:er, Foundry portal-lekplats Azure RBAC-dataActions

Alla Bicep-, Terraform- och SDK-exempel finns i lagringsplatsen foundry-samples på GitHub för Foundry.

Följande listor och diagram illustrerar separationen mellan kontrollplans- och dataplansåtgärder i detalj. Åtgärder för kontrollplanet i Foundry inkluderar:

  • Skapande av gjuteri-resurs
  • Skapande av foundry-projekt
  • Skapa kontofunktionsvärd
  • skapa Project-kapacitetsvärd
  • Modellimplementering
  • Skapa konto- och projektanslutning

Åtgärder på dataplan inom Foundry inkluderar:

  • Byggagenter
  • Köra en utvärdering
  • Spårning och övervakning
  • Finjusterande

Följande diagram visar vyn av kontrollplanet jämfört med dataplanets separation i Foundry tillsammans med rollbaserade åtkomstkontrolltilldelningar (RBAC) och vilken åtkomst en användare kan ha i antingen kontrollplanet eller dataplanet eller både och. Som du ser i diagrammet associeras RBAC "actions" med kontrollplanet medan RBAC-"dataActions" är associerade med dataplanet.

Diagram som illustrerar separation av kontrollplansoperationer och dataplansoperationer med tillhörande RBAC-ytor.

Autentiseringsmetoder

Foundry stöder Microsoft Entra ID (tokenbaserade, nyckellösa) och API-nycklar.

Microsoft Entra ID

Microsoft Entra ID använder OAuth 2.0-ägartoken som är begränsade till https://ai.azure.com/.default.

Använd Microsoft Entra ID för:

  • Produktionsarbetsbelastningar.
  • Villkorlig åtkomst, multifaktorautentisering (MFA) och just-in-time-åtkomst.
  • RBAC med minsta möjliga behörighet och integrering av hanterad identitet.

Fördelar: Detaljerade rolltilldelningar, granskning per huvudnamn, kontrollbara tokenlivslängder, automatisk hemlighetshygien och hanterade identiteter för tjänster.

Begränsningar: Högre inledande konfigurationskomplexitet. Kräver förståelse för rollbaserad åtkomstkontroll (RBAC). Mer information om RBAC i Foundry finns i Role-baserad åtkomstkontroll för Microsoft Foundry.

API-nycklar

API-nycklar är statiska hemligheter som är begränsade till en Foundry-resurs.

Använd API-nycklar för:

  • Snabba prototyper.
  • Isolerade testmiljöer där rotation med en hemlighet är acceptabel.

Fördelar: Enkel, språkoberoende och kräver inte tokenförvärv.

Begränsningar: Det går inte att uttrycka användaridentitet, är svår att omfångsbegränsa detaljerat och är svårare att granska. Accepteras vanligtvis inte av företagets produktionsarbetsbelastningar och rekommenderas inte av Microsoft.

Mer information om hur du aktiverar nyckellös autentisering finns i Konfigurera nyckellös autentisering med Microsoft Entra ID.

Autentisera med Microsoft Entra ID (Python)

I följande exempel visas hur du autentiserar med Microsoft Entra ID med hjälp av biblioteket azure-identity och skickar en begäran till en Foundry-slutpunkt:

from azure.identity import DefaultAzureCredential
import requests

# Create a credential object using DefaultAzureCredential
# This automatically uses environment variables, managed identity, or Azure CLI credentials
credential = DefaultAzureCredential()

# Get an access token for the Cognitive Services scope
token = credential.get_token("https://ai.azure.com/.default")

# Use the token in your API request
headers = {
    "Authorization": f"Bearer {token.token}",
    "Content-Type": "application/json"
}

# Replace with your Foundry endpoint
endpoint = "https://<your-resource-name>.cognitiveservices.azure.com"

# Example: List deployments (adjust the path for your specific API)
response = requests.get(f"{endpoint}/openai/deployments?api-version=2024-10-21", headers=headers)
print(response.json())

Förväntade utdata: Ett JSON-svar som visar dina modelldistributioner eller ett autentiseringsfel om autentiseringsuppgifter saknas eller om rolltilldelningen inte har konfigurerats.

Referens: DefaultAzureCredential | azure-identity bibliotek

Autentisera med en API-nyckel (Python)

I följande exempel visas hur du autentiserar med hjälp av en API-nyckel. Använd den här metoden endast för snabb prototyper. Microsoft Entra ID rekommenderas för produktion.

import requests

# Replace with your actual API key and endpoint
api_key = "<your-api-key>"
endpoint = "https://<your-resource-name>.cognitiveservices.azure.com"

headers = {
    "api-key": api_key,
    "Content-Type": "application/json"
}

# Example: List deployments
response = requests.get(f"{endpoint}/openai/deployments?api-version=2024-10-21", headers=headers)
print(response.json())

Varning

API-nycklar ger fullständig åtkomst till resursen och kan inte begränsas till specifika användare eller åtgärder. Rotera nycklar regelbundet och undvik att lägga till dem i versionskontrollsystemet.

Förväntade utdata: Ett JSON-svar som visar dina modelldistributioner eller ett 401-fel om API-nyckeln är ogiltig.

Referens: Rotera API-åtkomstnycklar

Funktionsstödmatris

Referera till följande matris för att förstå vilka funktioner i Foundry som stöder API-nyckel jämfört med Microsoft Entra ID.

Kapabilitet eller funktion API-nyckel Microsoft Entra ID Anteckningar
Grundläggande modellinferens (chatt, inbäddningar) Ja Ja Stöds fullt ut.
Finjusteringsåtgärder Ja Ja Entra ID lägger till granskning per användarkonto.
Agenttjänst Nej Ja Använd Entra ID för åtkomst till hanterade identitetsverktyg.
Recensioner Nej Ja Använd Entra ID.
Anrop för innehållssäkerhetsanalys Ja Ja Använd RBAC för att begränsa högriskåtgärder.
Batch-analysjobb (Innehållsförståelse) Ja Ja Entra ID rekommenderas för skalning.
Användning av portallekplats Ja Ja Playground använder projektanslutningsläge.
Nätverksisolering med Private Link Ja Ja Entra ID lägger till villkorlig åtkomst.
Minsta privilegier med inbyggda och anpassade roller Nej Ja Nycklar är allt eller inget för varje resurs.
Hanterad identitet (system eller användartilldelad) Nej Ja Aktiverar hemlighetslös autentisering.
Användarattribution per begäran Nej Ja Token innehåller klient- och objekt-ID:t.
Återkallande (omedelbart) Rotera nyckel Ta bort roll eller inaktivera huvudnamn Tokenets korta livslängd gäller.
Stöd i automationspipelines Ja (hemlighet) Ja (tjänstens huvudnamn eller hanterade identitet) Entra ID minskar hemlighetsrotationen.
API för assistenter Ja Ja Rekommenderas att använda Entra ID.
Batch-slutsatsdragning Ja Ja
Verktygslådan Nej Ja Använd Entra ID för åtkomst till hanterade identitetsverktyg.

Identitetstyper

Azure resurser och program autentiseras med hjälp av olika identitetstyper, var och en utformad för specifika scenarier. Användarhuvudnamn representerar mänskliga användare, tjänstens huvudnamn representerar program eller automatiserade processer, och hanterade identiteter ger ett säkert, autentiseringsfritt sätt för Azure resurser att få åtkomst till andra tjänster. Genom att förstå dessa skillnader kan du välja rätt identitet för interaktiva inloggningar, kommunikation från app till app eller automatisering av arbetsbelastningar.

Azure stöder följande identitetstyper.

Identitetstyp Beskrivning
Användarens huvudnamn Enskild användare i Microsoft Entra ID
Tjänstens huvudnamn (appregistrering) Programidentitet som använder en klienthemlighet eller ett certifikat
Hanterad identitet (systemtilldelad) Azure resursbunden identitet som hanteras automatiskt av plattformen.
Hanterad identitet (användartilldelad) Fristående identitet som kopplas till flera resurser.

Översikt över inbyggda roller

I Foundry använder du de inbyggda rollerna för att separera tillåtna åtgärder för en användare. De flesta företag vill ha en uppdelning av kontroll- och dataplansåtgärder för sina inbyggda roller. Andra förväntar sig att en kombinerad data- och kontrollplansroll minimerar antalet rolltilldelningar som krävs. I följande tabell visas scenarier och motsvarande inbyggda Foundry-roller som passar bäst för varje scenario.

Scenario Vanliga inbyggda roller Anteckningar
Skapa agenter med förinstallerade modeller Azure AI-användare Endast användning av dataplanet. Inga hanteringsskrivningar.
Hantera distributioner eller finjustera modeller Azure AI Projektledare Innehåller skapande och uppdatering av modelldistribution.
Rotera nycklar eller hantera resurs Azure AI-kontoägare Hög behörighet; överväg anpassad roll för minsta möjliga behörighet.
Hantera resurser, hantera distributioner, skapa agenter Azure AI-ägare Mycket privilegierad självbetjäningsroll för användare som behöver åtkomst till både kontrollplan och dataplan. Kombinera med Azure Monitor Läsare om observerbarhet krävs.
Observerbarhet, spårning, övervakning Azure AI-användare (minimum) Lägg till Azure Monitor Läsare på Application Insights.

Om du vill förstå uppdelningen av inbyggda roller och kontroll- och dataplansåtgärder kan du läsa följande diagram.

Diagram som mappar inbyggda roller för att styra planåtgärder och dataplansåtgärder i Foundry.

Tips

Skapa en anpassad roll om en inbyggd roll ger överdrivna behörigheter för ditt användningsfall.

Konfigurera Microsoft Entra ID

Mer information om hur du konfigurerar Entra ID autentisering i Foundry finns i Konfigurera nyckellös autentisering.

  1. Kontrollera att din Microsoft Foundry-resurs har en anpassad underdomän konfigurerad. Se Anpassade underdomäner. En anpassad underdomän krävs för tokenbaserad autentisering.

  2. Tilldela varje huvudman den nödvändiga inbyggda eller anpassade rollen. Du behöver rollen Ägare eller Administratör för användaråtkomst i målomfånget för att tilldela roller. Vanliga rolltilldelningar:

    • Azure AI-användare: För utvecklare som behöver skapa och testa med fördistribuerade modeller.
    • Azure AI Project Manager: För teamledare som behöver skapa projekt och hantera distributioner.
    • Azure AI-kontoägare: För administratörer som behöver fullständig resurshantering och villkorligt kan tilldela Azure AI-användare för dataplansåtkomst.
    • Azure AI-ägare: För användare som behöver både fullständig resurshantering och åtkomst till dataplanen. Exempel på CLI-kommando för att tilldela Azure AI-användarroll:
    az role assignment create \
      --assignee <principal-id> \
      --role "Azure AI User" \
      --scope /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.CognitiveServices/accounts/<resource-name>
    

    Kontrollera rolltilldelningen genom att köra az role assignment list --assignee <principal-id> --scope <resource-scope> och bekräfta att rollen visas i utdata.

  3. (Valfritt) För en tjänstprincipal skapar du en appregistrering, lägger till en klienthemlighet eller ett certifikat och noterar hyresgäst-ID, klient-ID och hemligheten eller certifikatet.

  4. (Valfritt) För en hanterad identitet aktiverar du den systemtilldelade identiteten för den anropande tjänsten eller kopplar en användartilldelad identitet och tilldelar sedan en roll till den på Foundry-resursen.

  5. Ta bort nyckelbaserad autentisering när alla anropare använder tokenautentisering. Du kan också inaktivera lokal autentisering i distributionsmallar.

Reference: Tilldela Azure-roller | Role-baserad åtkomstkontroll för Foundry

Felsöka vanliga autentiseringsfel

Fel Orsak Upplösning
401 Ej auktoriserad Token saknas eller har upphört att gälla. ogiltig API-nyckel Kontrollera att tokenanskaffningsomfånget är https://ai.azure.com/.default. Återskapa API-nyckeln om du använder nyckelbaserad autentisering.
403 Förbjudet RBAC-rolltilldelning saknas Tilldela lämplig inbyggd roll (till exempel Azure AI-användare) i resurs- eller projektomfånget.
AADSTS700016 Programmet hittades inte i klientorganisationen Kontrollera att appregistreringen finns i rätt klientorganisation och att klient-ID:t är korrekt.
Anpassad underdomän krävs Resursen använder en regional slutpunkt i stället för en anpassad underdomän Konfigurera en anpassad underdomän för Foundry-resursen. Tokenbaserad autentisering kräver en anpassad underdomän.