Authentifizierung und Autorisierung in Microsoft Foundry

Die Authentifizierung und Autorisierung in Microsoft Foundry steuern, wie Prinzipale Identität nachweisen und die Berechtigung zum Ausführen von Vorgängen erhalten. Die Gießerei unterteilt Vorgänge in die Steuerungsebene (Ressourcenverwaltung) und die Datenebene (Laufzeitnutzung), die jeweils über eine eigene Authentifizierungs- und rollenbasierte Zugriffssteuerungsoberfläche (RBAC) verfügt.

Foundry unterstützt zwei Authentifizierungsmethoden: Microsoft Entra ID und API-Schlüssel. Microsoft Entra ID ermöglicht bedingten Zugriff, verwaltete Identitäten und granulare RBAC. API-Schlüssel bleiben für die schnelle Prototyperstellung verfügbar, aber es fehlt an der Rückverfolgbarkeit pro Benutzer. In diesem Artikel werden diese Methoden verglichen, Identitäten Rollen zugeordnet und allgemeine Szenarien mit den geringsten Berechtigungen beschrieben.

Wichtig

Verwenden Sie Microsoft Entra ID für Produktionsworkloads, um bedingten Zugriff, verwaltete Identitäten und RBAC mit den geringsten Rechten zu aktivieren. API-Schlüssel sind praktisch für eine schnelle Auswertung, bieten aber grobkörnigen Zugriff.

Voraussetzungen

Steuerungsebene und Datenebene

Azure-Vorgänge teilen sich in zwei Kategorien auf: Steuerebene und Datenebene. Azure trennt die Ressourcenverwaltung (Kontrollebene) von der Betriebslaufzeit (Datenebene). Daher verwenden Sie die Steuerebene zum Verwalten von Ressourcen in Ihrem Abonnement und verwenden die Datenebene, um Funktionen zu verwenden, die von Ihrer Instanz eines Ressourcentyps verfügbar gemacht werden. Weitere Informationen zu Steuerungsebenen und Datenebenen finden Sie unter Azure-Steuerungsebene und -Datenebene. In Foundry gibt es einen klaren Unterschied zwischen Steuerungsebenenvorgängen und Datenebenenvorgängen. Die folgende Tabelle erläutert den Unterschied zwischen den beiden, den Umfang in Foundry, typische Vorgänge eines Benutzers, Beispieltools und Funktionen sowie die Autorisierungsoberfläche zur Nutzung jedes Teils.

Ebene Bereiche in Foundry Typische Vorgänge Beispieltools Autorisierungsoberfläche
Steuerebene Einrichten und Konfigurieren von Ressourcen, Projekten, Netzwerken, Verschlüsselung und Verbindungen Erstellen oder Löschen von Ressourcen, Zuweisen von Rollen, Drehen von Schlüsseln, Einrichten eines privaten Links Azure-Portal, Azure CLI, ARM-Vorlagen, Bicep, Terraform Azure RBAC-Aktionen
Datenebene Ausführen und Verwenden von Modellinferenz, Agentinteraktionen, Evaluierungsaufträgen und Inhaltsicherheitsanfragen Chatvervollständigungen, Einbettungsgenerierung, Starten von Optimierungsaufträgen, Senden von Agent-Nachrichten, Analyse- und Klassifizierungsvorgängen SDKs, REST-APIs, Foundry-Portal-Playground Azure RBAC dataActions

Alle Bicep-, Terraform- und SDK-Beispiele finden Sie im Foundry-Samples-Repository auf GitHub für Foundry.

Die folgenden Listen und Diagramme veranschaulichen die Trennung zwischen Steuerungsebene und Datenebenenaktionen im Detail. Zu den Aktionen der Kontrollebene innerhalb von Foundry gehören:

  • Erstellen von Foundry-Ressourcen
  • Gießerei-Projekterstellung
  • Erstellung eines Account Capability Hosts
  • Erstellung von Project Capability Host
  • Modellbereitstellung
  • Konto- und Projektverbindungserstellung

Zu den Aktionen der Datenebene innerhalb von Foundry gehören:

  • Erstellen von Agents
  • Ausführen einer Auswertung
  • Ablaufverfolgung und Überwachung
  • Feinabstimmung

Das folgende Diagramm zeigt die Ansicht der Steuerungsebene im Vergleich zur Datenebenentrennung in Foundry zusammen mit rollenbasierten Zugriffssteuerungszuweisungen (RBAC) und dem Zugriff, über den ein Benutzer in der Steuerungsebene oder in der Datenebene oder in beidem verfügen könnte. Wie im Diagramm dargestellt, werden RBAC-"Aktionen" der Steuerungsebene zugeordnet, während RBAC "dataActions" mit der Datenebene verknüpft sind.

Diagramm zur Veranschaulichung der Trennung von Steuerebenen- und Datenebenenvorgängen mit den zugehörigen RBAC-Oberflächen.

Authentifizierungsmethoden

Foundry unterstützt Microsoft Entra ID (tokenbasierte, schlüssellose) und API-Schlüssel.

Microsoft Entra ID

Microsoft Entra ID verwendet OAuth 2.0-Bearertoken, die auf https://ai.azure.com/.default festgelegt sind.

Verwenden Sie die Microsoft Entra-ID für:

  • Produktionsbelastungen
  • Bedingter Zugriff, mehrstufige Authentifizierung (MFA) und Just-in-Time-Zugriff.
  • RBAC mit geringsten Rechten und Integration verwalteter Identitäten

Vorteile: Differenzierte Rollenzuweisungen, Prinzipalüberwachung, steuerbare Tokenlebensdauern, automatische Geheimnisschutzfunktionen und verwaltete Identitäten für Dienste.

Einschränkungen: Höhere Anfängliche Einrichtungskomplexität. Erfordert Kenntnisse der rollenbasierten Zugriffssteuerung (RBAC). Weitere Informationen zu RBAC in Foundry finden Sie unter Rollenbasierte Zugriffssteuerung für Microsoft Foundry.

API-Schlüssel

API-Schlüssel sind statische Geheimnisse, die auf eine Foundry-Ressource beschränkt sind.

Verwenden von API-Schlüsseln für:

  • Schnelle Prototypisierung.
  • Isolierte Testumgebungen, in denen die Rotation eines einzelnen Geheimnisses akzeptiert werden kann.

Vorteile: Einfach, sprachunabhängig und erfordert keine Tokenbeschaffung.

Einschränkungen: Die Benutzeridentität kann nicht ausgedrückt werden, ist schwer granular abzugrenzen und ist schwieriger zu prüfen. In der Regel nicht von unternehmensinternen Produktionsworkloads akzeptiert und nicht von Microsoft empfohlen.

Weitere Informationen zum Aktivieren der schlüssellosen Authentifizierung finden Sie unter Configure key-less authentication with Microsoft Entra ID.

Authentifizieren mit Microsoft Entra ID (Python)

Das folgende Beispiel zeigt, wie Sie sich mithilfe der azure-identity Bibliothek mit der Microsoft Entra-ID authentifizieren und eine Anforderung an einen Foundry-Endpunkt senden:

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

Erwartete Ausgabe: Eine JSON-Antwort, die Ihre Modellbereitstellungen auflistet, oder ein Authentifizierungsfehler, wenn Anmeldeinformationen fehlen oder die Rollenzuweisung nicht konfiguriert ist.

Referenz: DefaultAzureCredential | Azure-Identity-Bibliothek

Authentifizieren mit einem API-Schlüssel (Python)

Das folgende Beispiel zeigt, wie Sie sich mithilfe eines API-Schlüssels authentifizieren. Verwenden Sie diesen Ansatz nur für schnelle Prototyperstellung; Microsoft Entra-ID wird für die Produktion empfohlen.

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

Warnung

API-Schlüssel bieten vollzugriff auf die Ressource und können nicht auf bestimmte Benutzer oder Aktionen ausgerichtet werden. Rotieren Sie die Schlüssel regelmäßig, und vermeiden Sie, dass sie in die Quellcodeverwaltung hochgeladen werden.

Erwartete Ausgabe: Eine JSON-Antwort, die Ihre Modellbereitstellungen auflistet, oder ein 401-Fehler, wenn der API-Schlüssel ungültig ist.

Referenz: Rotieren der API-Zugriffsschlüssel

Unterstützungsmatrix für Funktionen

Verweisen Sie auf die folgende Matrix, um zu verstehen, welche Funktionen im Foundry-Support-API-Schlüssel im Vergleich zur Microsoft Entra-ID vorhanden sind.

Fähigkeit oder Funktion API-Schlüssel Microsoft Entra ID Notizen
Basismodell-Inferenz (Chat, Einbettungen) Ja Ja Vollständig unterstützt.
Optimierungsvorgänge Ja Ja Entra ID fügt das Auditing pro Principal hinzu.
Agents-Dienst Nein Ja Verwenden Sie entra-ID für den Zugriff auf verwaltete Identitätstools.
Bewertungen Nein Ja Verwenden Sie entra ID.
Aufrufe zur Inhaltssicherheitsanalyse Ja Ja Verwenden Sie RBAC, um Vorgänge mit hohem Risiko zu begrenzen.
Batch-Analyse-Jobs (Content-Verständnis) Ja Ja Entra ID wird für Skalierung empfohlen.
Nutzung des Portal-Playgrounds Ja Ja Der Playground verwendet den Projektverbindungsmodus.
Netzwerkisolation mit privatem Link Ja Ja Entra-ID fügt bedingten Zugriff hinzu.
Prinzip der geringsten Privilegien mit integrierten und benutzerdefinierten Rollen Nein Ja Schlüssel sind „alles oder nichts“ pro Ressource.
Verwaltete Identität (System oder vom Benutzer zugewiesen) Nein Ja Aktiviert die Authentifizierung ohne Schlüssel.
Benutzerzuweisung pro Anfrage Nein Ja Token enthält Mandanten- und Objekt-IDs.
Widerruf (sofort) Drehtaste Entfernung der Rolle oder Deaktivieren des Prinzipals Eine kurze Token-Lebensdauer wird angewendet.
Unterstützung bei Automatisierungs-Pipelines Ja (geheim) Ja (Service Principal oder Managed Identity) Entra ID reduziert die Geheimnisrotation.
Assistenten-API Ja Ja Empfohlen, Entra ID zu verwenden.
Batch-Inferenz Ja Ja
Werkzeugkasten Nein Ja Verwenden Sie entra-ID für den Zugriff auf verwaltete Identitätstools.

Identitätstypen

Azure-Ressourcen und -Anwendungen authentifizieren sich mithilfe verschiedener Identitätstypen, die jeweils für bestimmte Szenarien entwickelt wurden. Benutzerprinzipale stellen menschliche Benutzer dar, Dienstprinzipale stellen Anwendungen oder automatisierte Prozesse dar, und verwaltete Identitäten bieten eine sichere, anmeldeinformationsfreie Möglichkeit für Azure-Ressourcen, auf andere Dienste zuzugreifen. Wenn Sie diese Unterscheidungen verstehen, können Sie die richtige Identität für interaktive Anmeldungen, App-zu-App-Kommunikation oder Workloadautomatisierung auswählen.

Azure unterstützt die folgenden Identitätstypen.

Identitätstyp Beschreibung
Benutzerprinzipal Einzelner Benutzer in Microsoft Entra-ID
Service Principal (App Registrierung) Anwendungsidentität, die einen geheimen Clientschlüssel oder ein Zertifikat verwendet
Verwaltete Identität (vom System zugewiesen) Azure ressourcen-gebundene Identität wird automatisch von der Plattform verwaltet.
Verwaltete Identität (vom Benutzer zugewiesen) Eigenständige Identität, die mehreren Ressourcen zugeordnet ist.

Übersicht über integrierte Rollen

Verwenden Sie in Foundry die integrierten Rollen, um die zulässigen Aktionen für einen Benutzer zu trennen. Die meisten Unternehmen möchten eine Trennung von Steuerungs- und Datenebenenaktionen für ihre integrierten Rollen. Andere erwarten eine kombinierte Daten- und Steuerebenenrolle, um die Anzahl der erforderlichen Rollenzuweisungen zu minimieren. In der folgenden Tabelle sind Szenarien und die entsprechenden integrierten Foundry-Rollen aufgeführt, die für jedes Szenario am besten geeignet sind.

Szenario Typische integrierte Rollen Notizen
Erstellen von Agenten mit vorab bereitgestellten Modellen Foundry-Benutzer Nur Datenebenennutzung; keine Verwaltungsschreibvorgänge.
Verwalten von Bereitstellungen oder Feinabstimmung von Modellen Foundry Project Manager Es umfasst die Erstellung und Aktualisierung des Modellbereitstellungsprozesses.
Schlüsselrotation oder Ressourcenverwaltung Besitzer des Foundry-Kontos Umfassende Berechtigungen, benutzerdefinierte Rolle für das Prinzip der geringsten Berechtigungen in Erwägung ziehen
Verwalten von Ressourcen, Verwalten von Bereitstellungen, Erstellen von Agents Gießereibesitzer Self-Service-Rolle mit hohen Privilegien für Benutzer, die Zugriff auf die Steuerungsebene und die Datenebene benötigen. Kombinieren Sie Azure Monitor Reader, falls Überwachbarkeit erforderlich ist.
Beobachtbarkeit, Nachverfolgung, Überwachung Foundry-Benutzer (mindestens) Fügen Sie Azure Monitor Reader zu Application Insights hinzu.

Wichtig

Die Foundry-RBAC-Rollen wurden kürzlich umbenannt. Foundry User, Foundry Owner, Foundry Account Owner und Foundry Project Manager wurden zuvor Azure KI-Benutzer, Azure KI-Besitzer, Azure KI-Kontobesitzer und Azure AI Project Manager benannt. Möglicherweise werden die vorherigen Namen an einigen Stellen weiterhin angezeigt, während der Umbenennungsrollout ausgeführt wird. Die Rollen-IDs und Kernberechtigungen bleiben durch die Umbenennung unverändert.

Um die Aufschlüsselung der integrierten Rollen und der Steuerungs- und Datenebenenaktionen zu verstehen, lesen Sie das folgende Diagramm.

Diagramm zur Zuordnung integrierter Rollen zu Steuerungsebenenaktionen und Datenebenenaktionen in Foundry.

Tipp

Erstellen Sie eine benutzerdefinierte Rolle, wenn eine integrierte Rolle übermäßige Berechtigungen für Ihren Anwendungsfall gewährt.

Einrichten der Microsoft Entra-ID

Eine allgemeine Anleitung zum Einrichten der Entra-ID-Authentifizierung in Foundry finden Sie unter Konfigurieren der Authentifizierung ohne Schlüssel.

  1. Stellen Sie sicher, dass Ihre Microsoft Foundry-Ressource eine benutzerdefinierte Unterdomäne konfiguriert hat. Siehe benutzerdefinierte Unterdomänen. Für die tokenbasierte Authentifizierung ist eine benutzerdefinierte Unterdomäne erforderlich.

  2. Weisen Sie jedem Prinzipal die notwendige integrierte oder benutzerdefinierte Rolle zu. Sie benötigen die Rolle "Besitzer" oder " Benutzerzugriffsadministrator " im Zielbereich, um Rollen zuzuweisen. Allgemeine Rollenzuweisungen:

    • Foundry User: Für Entwickler, die mit vorab bereitgestellten Modellen entwickeln und testen müssen.
    • Foundry Project Manager: Für Teamleiter, die Projekte erstellen und Bereitstellungen verwalten müssen.
    • Foundry-Kontobesitzer: Für Administratoren, die eine vollständige Ressourcenverwaltung benötigen und unter bestimmten Bedingungen die Rolle „Foundry User“ für den Zugriff auf die Datenebene zuweisen können.
    • Gießereibesitzer: Für Benutzer, die sowohl vollständigen Ressourcenverwaltungs- als auch Datenebenenzugriff benötigen. Beispiel-CLI-Befehl zum Zuweisen der Rolle "Foundry User":
    az role assignment create \
      --assignee <principal-id> \
      --role "53ca6127-db72-4b80-b1b0-d745d6d5456d" \
      --scope /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.CognitiveServices/accounts/<resource-name>
    

Note

Da die Rollen "Foundry RBAC" kürzlich umbenannt wurden, verwenden Sie die Rollendefinitions-ID (GUID) anstelle des Rollennamens in Ihrem Code, um Probleme während des Umbenennungsrollouts zu vermeiden:

  • Foundry User: 53ca6127-db72-4b80-b1b0-d745d6d5456d
  • Eigentümer der Gießerei: c883944f-8b7b-4483-af10-35834be79c4a
  • Besitzer des Foundry-Kontos: e47c6f54-e4a2-4754-9501-8e0985b135e1
  • Foundry Project Manager: eadc314b-1a2d-4efa-be10-5d325db5065e

Um die Rollenzuweisung zu überprüfen, führen Sie az role assignment list --assignee <principal-id> --scope <resource-scope> aus und bestätigen Sie, dass die Rolle in der Ausgabe erscheint.

  1. (Optional) Erstellen Sie für einen Dienstprinzipal eine App-Registrierung, fügen Sie einen geheimen Clientschlüssel oder ein Zertifikat hinzu, und notieren Sie sich die Mandanten-ID, die Client-ID und den geheimen Schlüssel oder das Zertifikat.
  2. (Optional) Aktivieren Sie für eine verwaltete Identität die vom System zugewiesene Identität für den aufrufenden Dienst, oder fügen Sie eine vom Benutzer zugewiesene Identität an, und weisen Sie ihr dann eine Rolle in der Foundry-Ressource zu.
  3. Entfernen Sie die schlüsselbasierte Authentifizierung, nachdem alle Aufrufer die Tokenauthentifizierung verwenden. Deaktivieren Sie optional die lokale Authentifizierung in Bereitstellungsvorlagen.

Referenz: Azure-Rollen zuweisen | Rollenbasierte Zugriffssteuerung für Gießerei

Fehlerbehebung bei häufigen Authentifizierungsfehlern

Fehler Ursache Auflösung
401 Nicht autorisiert Fehlendes oder abgelaufenes Token; Ungültiger API-Schlüssel Überprüfen Sie, ob der Bereich des Tokenerwerbs https://ai.azure.com/.default ist. Generieren Sie den API-Schlüssel neu, wenn Sie eine schlüsselbasierte Authentifizierung verwenden.
403 Verboten Fehlende RBAC-Rollenzuweisung Weisen Sie die entsprechende integrierte Rolle (z. B. Foundry User) auf Ressourcen- oder Projektebene zu.
AADSTS700016 Die Anwendung wurde im Mandanten nicht gefunden. Überprüfen Sie, ob die App-Registrierung im richtigen Mandanten vorhanden ist und die Client-ID korrekt ist.
Benutzerdefinierte Unterdomäne erforderlich Ressource verwendet einen regionalen Endpunkt anstelle einer benutzerdefinierten Unterdomäne. Konfigurieren Sie eine benutzerdefinierte Unterdomäne für die Foundry-Ressource. Für die tokenbasierte Authentifizierung ist eine benutzerdefinierte Unterdomäne erforderlich.