Konfigurieren von Azure OpenAI Service mit Microsoft Entra ID-Authentifizierung

Komplexere Sicherheitsszenarien erfordern die rollenbasierte Zugriffssteuerung von Azure (Azure Role-Based Access Control, Azure RBAC). In diesem Dokument wird erläutert, wie Sie sich mit Microsoft Entra ID bei Ihrer Azure OpenAI-Ressource authentifizieren.

In den folgenden Abschnitten verwenden Sie die Azure CLI, um sich anzumelden und ein Bearertoken zum Aufrufen der OpenAI-Ressource abzurufen. Falls Sie einmal nicht weiterkommen, finden Sie in jedem Abschnitt Links mit sämtlichen verfügbaren Optionen für jeden Befehl in der Azure Cloud Shell bzw. Azure CLI.

Voraussetzungen

Zuweisen einer Rolle

Weisen Sie sich selbst entweder die Rolle Cognitive Services OpenAI-Benutzer oder Cognitive Services OpenAI Mitwirkende zu, damit Sie Ihr Konto verwenden können, um Azure OpenAI Rückschluss-API-Aufrufe zu tätigen, anstatt die schlüsselbasierte Authentifizierung verwenden zu müssen. Nachdem Sie diese Änderung vorgenommen haben, kann es bis zu 5 Minuten dauern, bis die Änderung wirksam wird.

Anmelden bei der Azure CLI

Um sich bei der Azure CLI anzumelden, führen Sie den folgenden Befehl aus, und schließen Sie die Anmeldung ab. Möglicherweise müssen Sie den Vorgang wiederholen, wenn Ihre Sitzung zu lange inaktiv war.

az login

Chatvervollständigungen

from azure.identity import DefaultAzureCredential, get_bearer_token_provider
from openai import AzureOpenAI

token_provider = get_bearer_token_provider(
    DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"
)

client = AzureOpenAI(
    api_version="2024-02-15-preview",
    azure_endpoint="https://{your-custom-endpoint}.openai.azure.com/",
    azure_ad_token_provider=token_provider
)

response = client.chat.completions.create(
    model="gpt-35-turbo-0125", # model = "deployment_name".
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},
        {"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},
        {"role": "user", "content": "Do other Azure AI services support this too?"}
    ]
)

print(response.choices[0].message.content)

Abfragen von Azure OpenAI mit der Steuerungsebenen-API

import requests
import json
from azure.identity import DefaultAzureCredential

region = "eastus"
token_credential = DefaultAzureCredential()
subscriptionId = "{YOUR-SUBSCRIPTION-ID}" 


token = token_credential.get_token('https://management.azure.com/.default')
headers = {'Authorization': 'Bearer ' + token.token}

url = f"https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.CognitiveServices/locations/{region}/models?api-version=2023-05-01"

response = requests.get(url, headers=headers)

data = json.loads(response.text)

print(json.dumps(data, indent=4))

Autorisieren des Zugriffs auf verwaltete Identitäten

OpenAI unterstützt die Microsoft Entra-Authentifizierung mit verwalteten Identitäten für Azure-Ressourcen. Sie können verwaltete Identitäten für Azure-Ressourcen verwenden, um den Zugriff auf Azure AI Service-Ressourcen mithilfe von Microsoft Entra-Anmeldeinformationen über Anwendungen zu autorisieren, die auf Azure-VMs, in Funktionsapps, in VM-Skalierungsgruppen und anderen Diensten ausgeführt werden. Durch Verwendung von verwalteten Identitäten für Azure-Ressourcen zusammen mit der Microsoft Entra-Authentifizierung können Sie vermeiden, dass Anmeldeinformationen mit den in der Cloud ausgeführten Anwendungen gespeichert werden.

Aktivieren von verwalteten Identitäten auf einem virtuellen Computer

Damit Sie verwaltete Identitäten für Azure-Ressourcen zum Autorisieren des Zugriffs auf Azure KI Services-Ressourcen über Ihren virtuellen Computer verwenden können, müssen Sie verwaltete Identitäten für Azure-Ressourcen auf dem virtuellen Computer aktivieren. Informationen zum Aktivieren von verwalteten Identitäten für Azure-Ressourcen finden Sie unter:

Weitere Informationen zu verwalteten Identitäten finden Sie unter Was sind verwaltete Identitäten für Azure-Ressourcen?.