Jak skonfigurować usługę Azure OpenAI przy użyciu uwierzytelniania identyfikatora entra firmy Microsoft
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 usługi Azure 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
Subskrypcja platformy Azure — utwórz bezpłatnie
Interfejs wiersza polecenia platformy Azure — przewodnik instalacji
Następujące biblioteki języka Python: os, requests, json, openai, azure-identity
Przypisywanie roli
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:
- Azure Portal
- Azure PowerShell
- Interfejs wiersza polecenia platformy Azure
- Szablon usługi Azure Resource Manager
- Biblioteki klienta usługi Azure Resource Manager
Aby uzyskać więcej informacji na temat tożsamości zarządzanych, zobacz Tożsamości zarządzane dla zasobów platformy Azure.