Anwendungsanforderungen an die meisten Azure-Dienste müssen mit Schlüsseln oder kennwortlosen Verbindungen authentifiziert werden. Entwickler müssen darauf achten, dass die Schlüssel nicht an einem unsicheren Ort offengelegt werden. Jeder Benutzer, der Zugriff auf den Schlüssel erhält, kann sich beim Dienst authentifizieren. Die schlüssellose Authentifizierung bietet verbesserte Verwaltungs- und Sicherheitsvorteile gegenüber dem Kontoschlüssel, da kein Schlüssel (und keine Verbindungszeichenfolge) zum Speichern vorhanden ist.
Schlüssellose Verbindungen werden mit den folgenden Schritten aktiviert:
Konfigurieren Sie die Authentifizierung.
Legen Sie je nach Bedarf die Umgebungsvariablen fest.
Verwenden Sie einen Anmeldeinformationstyp für die Azure Identity-Bibliothek, um ein Azure OpenAI-Clientobjekt zu erstellen.
Authentifizierung
Für die Verwendung der Azure-Clientbibliotheken ist die Authentifizierung an Microsoft Entra-ID erforderlich.
Die Authentifizierung unterscheidet sich je nach Umgebung, in der die App ausgeführt wird:
Verwenden Sie den folgenden Link, um die Ki-Vorlage für Azure OpenAI Keyless Building Block AI zu erkunden. Diese Vorlage stellt ein Azure OpenAI-Konto mit ihrer RBAC-Rollenberechtigung für die Schlüssellose (Microsoft Entra)-Authentifizierung für den Zugriff auf die OpenAI-API-SDKs bereit.
Hinweis
In diesem Artikel wird mindestens eine KI-App-Vorlage als Grundlage für die Beispiele und Anleitungen im Artikel verwendet. KI-App-Vorlagen bieten Ihnen gut gepflegte, einfach bereitzustellende Referenzimplementierungen, die helfen, einen qualitativ hochwertigen Ausgangspunkt für Ihre KI-Apps zu gewährleisten.
Erfahren Sie, wie Sie die DefaultAzureCredential für Anwendungen verwalten, die in Azure bereitgestellt werden.
Erfahren Sie, wie Sie die DefaultAzureCredential für Anwendungen verwalten, die in Azure bereitgestellt werden.
Erfahren Sie, wie Sie die DefaultAzureCredential für Anwendungen verwalten, die in Azure bereitgestellt werden.
Erfahren Sie, wie Sie die DefaultAzureCredential für Anwendungen verwalten, die in Azure bereitgestellt werden.
Erfahren Sie, wie Sie die DefaultAzureCredential für Anwendungen verwalten, die in Azure bereitgestellt werden.
Konfigurieren von Rollen für die Autorisierung
Suchen Sie die Rolle für Ihre Verwendung von Azure OpenAI. Je nachdem, wie Sie diese Rolle festlegen möchten, benötigen Sie entweder den Namen oder die ID.
Rollenname
Rollen-ID
Für die Azure CLI oder Azure PowerShell können Sie den Rollennamen verwenden.
Für Bicep benötigen Sie die Rollen-ID.
Verwenden Sie die folgende Tabelle, um eine Rolle und eine ID auszuwählen.
Anwendungsfall
Rollenname
Rollen-ID
Assistenten
Cognitive Services OpenAI Contributor
a001fd3d-188f-4b5d-821b-7da978bf7442
Chatvervollständigungen
Cognitive Services OpenAI User
5e0bd9bd-7b93-4f28-af87-19fc36ad61bd
Wählen Sie den zu verwendenden Identitätstyp.
Persönliche Identität: Dies ist Ihre persönliche Identität, die an Ihre Anmeldung bei Azure gebunden ist.
Verwaltete Identität: Dies ist eine Identität, die von Azure verwaltet und für die Verwendung erstellt wird. Für die verwaltete Identität erstellen Sie eine Benutzerseitig zugewiesene verwaltete Identität. Wenn Sie die verwaltete Identität erstellen, benötigen Sie die Client ID, auch bekannt als die app ID.
Verwenden Sie einen der folgenden Befehle, um Ihre persönliche Identität zu ermitteln. Verwenden Sie die ID wie <identity-id> im nächsten Schritt.
Verwenden Sie für die lokale Entwicklung den folgenden Befehl, um Ihre eigene Identitäts-ID abzurufen. Sie müssen sich mit az login anmelden, bevor Sie diesen Befehl verwenden.
az ad signed-in-user show \
--query id -o tsv
Verwenden Sie für die lokale Entwicklung den folgenden Befehl, um Ihre eigene Identitäts-ID abzurufen. Sie müssen sich mit Connect-AzAccount anmelden, bevor Sie diesen Befehl verwenden.
Bei Verwendung von Bicep, die mit Azure Developer CLI bereitgestellt wird, wird die Identität der Person oder des Diensts, die die Bereitstellung ausführt, auf den principalId Parameter festgelegt.
Die folgende main.parameters.json Variable wird auf die Identität festgelegt, die den Prozess ausführt.
Geben Sie für die Verwendung in Azure eine vom Benutzer zugewiesene verwaltete Identität als Teil des Bicep-Bereitstellungsprozesses an. Erstellen Sie eine vom Benutzer zugewiesene verwaltete Identität getrennt von der Identität, die den Prozess ausführt.
Um Ihre Identitätsberechtigungen für Ihre Ressource über RBAC zu erteilen, weisen Sie eine Rolle mithilfe des Azure CLI-Befehls az Rollenzuweisung zu.
az role assignment create \
--role "Cognitive Services OpenAI User" \
--assignee "<identity-id>" \
--scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>"
Um Ihre Anwendungsberechtigungen für Ihre Azure OpenAI-Ressource über RBAC zu erteilen, weisen Sie eine Rolle mithilfe des Azure PowerShell-Cmdlets New-AzRoleAssignment zu.
Verwenden Sie die folgende Azure OpenAI Bicep-Vorlage, um die Ressource zu erstellen und die Authentifizierung für identityId festzulegen. Bicep erfordert die Rollen-ID. Der in diesem Bicep-Ausschnitt angezeigte name ist nicht die Azure-Rolle. Er ist spezifisch für die Bicep-Bereitstellung.
Ersetzen Sie gegebenenfalls <identity-id>, <subscription-id> und <resource-group-name> durch Ihre tatsächlichen Werte.
Konfigurieren von Umgebungsvariablen
Um eine Verbindung mit Azure OpenAI herzustellen, muss Ihr Code Ihren Ressourcenendpunkt kennen und er benötigt gegebenenfalls andere Umgebungsvariablen.
Erstellen Sie eine Umgebungsvariable für Ihren Azure OpenAI-Endpunkt.
AZURE_OPENAI_ENDPOINT: Diese URL ist der Zugriffspunkt für Ihre Azure OpenAI-Ressource.
Erstellen Sie Umgebungsvariablen basierend auf dem Speicherort, an dem Ihre App ausgeführt wird:
Location
Identität
Beschreibung
Lokal
Persönlich
Melden Sie sich für lokale Laufzeiten mit Ihrer persönlichen Identitätan, um Ihre Anmeldeinformationen mit einem Tool zu erstellen.
Azure-Cloud
Benutzerseitig zugewiesene verwaltete Identität
Erstellen Sie eine AZURE_CLIENT_ID Umgebungsvariable, die die Client-ID der vom Benutzer zugewiesenen verwalteten Identität zum Authentifizieren enthält.
Installieren der Azure Identity-Clientbibliothek
Verwenden Sie den folgenden Link, um die Azure Identity-Clientbibliothek zu installieren.
Die Azure Identity-Bibliothek DefaultAzureCredential ermöglicht es dem Kunden, denselben Code in der lokalen Entwicklungsumgebung und in der Azure Cloud auszuführen.
Führen Sie eine der folgenden Ansätze aus, um die Client-ID der vom Benutzer zugewiesenen verwalteten Identität festzulegen:
Festlegen der Umgebungsvariable AZURE_CLIENT_ID. Der parameterlose Konstruktor von DefaultAzureCredential verwendet den Wert dieser Umgebungsvariable, sofern vorhanden.
using Azure;
using Azure.AI.OpenAI;
using Azure.Identity;
using System;
using static System.Environment;
string endpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
OpenAIClient client = new(new Uri(endpoint), new DefaultAzureCredential());
using Azure;
using Azure.AI.OpenAI;
using Azure.Identity;
using System;
using static System.Environment;
string endpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
var credential = new DefaultAzureCredential(
new DefaultAzureCredentialOptions
{
ManagedIdentityClientId = "<user_assigned_client_id>"
});
OpenAIClient client = new(new Uri(endpoint), credential);
Führen Sie eine der folgenden Ansätze aus, um die Client-ID der vom Benutzer zugewiesenen verwalteten Identität festzulegen:
Festlegen der Umgebungsvariable AZURE_CLIENT_ID. Der parameterlose Konstruktor von DefaultAzureCredential verwendet den Wert dieser Umgebungsvariable, sofern vorhanden.
Weisen Sie eine bestimmte vom Benutzer zugewiesene verwaltete Identität mit DefaultAzureCredential zu, indem Sie die DefaultAzureCredentialBuilder verwenden, um sie mit einer Client-ID zu konfigurieren:
Führen Sie eine der folgenden Ansätze aus, um die Client-ID der vom Benutzer zugewiesenen verwalteten Identität festzulegen:
Festlegen der Umgebungsvariable AZURE_CLIENT_ID. Der parameterlose Konstruktor von DefaultAzureCredential verwendet den Wert dieser Umgebungsvariable, sofern vorhanden.
Weisen Sie eine bestimmte vom Benutzer zugewiesene verwaltete Identität mit DefaultAzureCredential zu, indem Sie den parameter managedIdentityClientId verwenden, um sie mit einer Client-ID zu konfigurieren:
Führen Sie eine der folgenden Ansätze aus, um die Client-ID der vom Benutzer zugewiesenen verwalteten Identität festzulegen:
Festlegen der Umgebungsvariable AZURE_CLIENT_ID. Der parameterlose Konstruktor von DefaultAzureCredential verwendet den Wert dieser Umgebungsvariable, sofern vorhanden.
Weisen Sie eine bestimmte vom Benutzer zugewiesene verwaltete Identität mit DefaultAzureCredential zu, indem Sie den parameter managed_identity_client_id verwenden, um sie mit einer Client-ID zu konfigurieren: