Så här konfigurerar du Azure OpenAI-tjänsten med hanterade identiteter

Mer komplexa säkerhetsscenarier kräver rollbaserad åtkomstkontroll i Azure (Azure RBAC). Det här dokumentet beskriver hur du autentiserar till din OpenAI-resurs med hjälp av Microsoft Entra-ID.

I följande avsnitt använder du Azure CLI för att logga in och hämta en ägartoken för att anropa OpenAI-resursen. Om du fastnar finns länkar i varje avsnitt med alla tillgängliga alternativ för varje kommando i Azure Cloud Shell/Azure CLI.

Förutsättningar

Tilldela dig själv rollen Cognitive Services-användare

Tilldela dig själv rollen Cognitive Services OpenAI-användare eller Cognitive Services OpenAI-deltagare så att du kan använda ditt konto för att göra Azure OpenAI-slutsatsdragnings-API-anrop i stället för att behöva använda nyckelbaserad autentisering. När du har genomfört den här ändringen kan det ta upp till 5 minuter innan ändringen börjar gälla.

Logga in på Azure CLI

Om du vill logga in på Azure CLI kör du följande kommando och slutför inloggningen. Du kan behöva göra det igen om sessionen har varit inaktiv för länge.

az login

Chatten har slutförts

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)

Köra frågor mot Azure OpenAI med kontrollplanets 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))

Auktorisera åtkomst till hanterade identiteter

OpenAI stöder Microsoft Entra-autentisering med hanterade identiteter för Azure-resurser. Hanterade identiteter för Azure-resurser kan auktorisera åtkomst till Azure AI-tjänstresurser med hjälp av Microsoft Entra-autentiseringsuppgifter från program som körs på virtuella Azure-datorer (VM), funktionsappar, vm-skalningsuppsättningar och andra tjänster. Genom att använda hanterade identiteter för Azure-resurser tillsammans med Microsoft Entra-autentisering kan du undvika att lagra autentiseringsuppgifter med dina program som körs i molnet.

Aktivera hanterade identiteter på en virtuell dator

Innan du kan använda hanterade identiteter för Azure-resurser för att auktorisera åtkomst till Azure AI-tjänstresurser från den virtuella datorn måste du aktivera hanterade identiteter för Azure-resurser på den virtuella datorn. Information om hur du aktiverar hanterade identiteter för Azure-resurser finns i:

Mer information om hanterade identiteter finns i Hanterade identiteter för Azure-resurser.