Jak skonfigurować usługę Azure OpenAI Przy użyciu tożsamości zarządzanych

Bardziej złożone scenariusze zabezpieczeń wymagają kontroli dostępu opartej na rolach (RBAC) platformy Azure. W tym dokumencie opisano sposób uwierzytelniania w zasobie OpenAI przy użyciu identyfikatora Entra firmy Microsoft.

W poniższych sekcjach użyjesz interfejsu wiersza polecenia platformy Azure do zalogowania się i uzyskasz token elementu nośnego w celu wywołania zasobu OpenAI. Jeśli utkniesz, linki są udostępniane w każdej sekcji z wszystkimi dostępnymi opcjami dla każdego polecenia w usłudze Azure Cloud Shell/interfejsie wiersza polecenia platformy Azure.

Wymagania wstępne

Przypisywanie się do roli użytkownika usług Cognitive Services

Przypisz sobie rolę Współautor interfejsu OpenAI usług Cognitive Services lub OpenAI usług Cognitive Services, aby umożliwić korzystanie z konta w celu tworzenia wywołań interfejsu API wnioskowania usługi Azure OpenAI zamiast używania uwierzytelniania opartego na kluczach. Po wprowadzeniu tej zmiany może upłynąć do 5 minut przed wprowadzeniem zmiany.

Zaloguj się do interfejsu wiersza polecenia platformy Azure

Aby zalogować się do interfejsu wiersza polecenia platformy Azure, uruchom następujące polecenie i ukończ logowanie. Może być konieczne ponowne zrobienie tego, jeśli sesja była bezczynna zbyt długo.

az login

Ukończenie czatu

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)

Wykonywanie zapytań względem usługi Azure OpenAI przy użyciu interfejsu API płaszczyzny sterowania

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

Autoryzowanie dostępu do tożsamości zarządzanych

Interfejs OpenAI obsługuje uwierzytelnianie w usłudze Microsoft Entra z tożsamościami zarządzanymi dla zasobów platformy Azure. Tożsamości zarządzane dla zasobów platformy Azure mogą autoryzować dostęp do zasobów usług azure AI przy użyciu poświadczeń firmy Microsoft z aplikacji działających na maszynach wirtualnych platformy Azure, aplikacjach funkcji, zestawach skalowania maszyn wirtualnych i innych usługach. Korzystając z tożsamości zarządzanych dla zasobów platformy Azure wraz z uwierzytelnianiem firmy Microsoft Entra, można uniknąć przechowywania poświadczeń z aplikacjami uruchomionymi w chmurze.

Włączanie tożsamości zarządzanych na maszynie wirtualnej

Aby można było użyć tożsamości zarządzanych dla zasobów platformy Azure w celu autoryzowania dostępu do zasobów usług azure AI z maszyny wirtualnej, musisz włączyć tożsamości zarządzane dla zasobów platformy Azure na maszynie wirtualnej. Aby dowiedzieć się, jak włączyć tożsamości zarządzane dla zasobów platformy Azure, zobacz:

Aby uzyskać więcej informacji na temat tożsamości zarządzanych, zobacz Tożsamości zarządzane dla zasobów platformy Azure.