Come configurare il servizio Azure OpenAI con identità gestite
Gli scenari di sicurezza più complessi richiedono il controllo degli accessi in base al ruolo di Azure. Questo documento illustra come eseguire l'autenticazione alla risorsa OpenAI usando Microsoft Entra ID.
Nelle sezioni seguenti si userà l'interfaccia della riga di comando di Azure per accedere e ottenere un token di connessione per chiamare la risorsa OpenAI. Se ci si blocca, i collegamenti vengono forniti in ogni sezione con tutte le opzioni disponibili per ogni comando in Azure Cloud Shell/interfaccia della riga di comando di Azure.
Prerequisiti
Una sottoscrizione di Azure: creare un account gratuitamente
Accesso concesso al servizio Azure OpenAI nella sottoscrizione di Azure desiderata
Attualmente, l'accesso a questo servizio viene concesso solo dall'applicazione. È possibile richiedere l'accesso ad Azure OpenAI completando il modulo Richiedi accesso al servizio OpenAI di Azure. Apri un problema in questo repository per contattare Microsoft in caso di problemi.
Interfaccia della riga di comando di Azure - Guida all'installazione
Le librerie Python seguenti: os, requests, json, openai, azure-identity
Assegnare se stessi al ruolo utente di Servizi cognitivi
Assegnare a se stessi il ruolo Di collaboratore OpenAI Di Servizi cognitivi o OpenAI di Servizi cognitivi per consentire di usare l'account per effettuare chiamate API di inferenza OpenAI di Azure invece di dover usare l'autenticazione basata su chiave. Dopo aver apportato questa modifica, possono essere necessari fino a 5 minuti prima che la modifica venga applicata.
Accedere all'interfaccia della riga di comando di Azure
Per accedere all'interfaccia della riga di comando di Azure, eseguire il comando seguente e completare l'accesso. Potrebbe essere necessario eseguire di nuovo questa operazione se la sessione è stata inattiva per troppo tempo.
az login
Completamento chat
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)
Esecuzione di query su OpenAI di Azure con l'API del piano di controllo
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))
Autorizzare l'accesso alle identità gestite
OpenAI supporta l'autenticazione di Microsoft Entra con identità gestite per le risorse di Azure. Le identità gestite per le risorse di Azure possono autorizzare l'accesso alle risorse dei servizi di intelligenza artificiale di Azure usando le credenziali di Microsoft Entra dalle applicazioni in esecuzione in macchine virtuali di Azure, app per le funzioni, set di scalabilità di macchine virtuali e altri servizi. Usando le identità gestite per le risorse di Azure insieme all'autenticazione Microsoft Entra, è possibile evitare di archiviare le credenziali con le applicazioni eseguite nel cloud.
Abilitare le identità gestite su una macchina virtuale
Prima di poter usare le identità gestite per le risorse di Azure per autorizzare l'accesso alle risorse dei servizi di intelligenza artificiale di Azure dalla macchina virtuale, è necessario abilitare le identità gestite per le risorse di Azure nella macchina virtuale. Per informazioni su come abilitare le identità gestite per le risorse di Azure, vedere:
- Azure portal
- Azure PowerShell
- Interfaccia della riga di comando di Azure
- Modello di Azure Resource Manager
- Librerie client di Azure Resource Manager
Per altre informazioni sulle identità gestite, vedere Identità gestite per le risorse di Azure.