Comment configurer le Azure OpenAI Service avec l'authentification Microsoft Entra ID
Les scénarios de sécurité plus complexes nécessitent un contrôle d’accès en fonction du rôle Azure (Azure RBAC). Ce document explique comment s’authentifier auprès de votre ressource Azure OpenAI à l’aide de Microsoft Entra ID.
Dans les sections suivantes, vous allez utiliser Azure CLI pour vous connecter et obtenir un jeton du porteur pour appeler la ressource OpenAI. Si vous êtes bloqué, des liens sont fournis dans chaque section avec toutes les options disponibles pour chaque commande dans Azure Cloud Shell/Azure CLI.
Prérequis
Un abonnement Azure - En créer un gratuitement
Azure CLI - Guide d’installation
Bibliothèques Python suivantes : os, demandes, json, openai, azure-identity
Attribuer un rôle
Attribuez-vous le rôle utilisateur Cognitive Services OpenAI ou le rôle contributeur Cognitive Services OpenAI pour vous permettre d’utiliser votre compte pour effectuer des appels d’API d’inférence Azure OpenAI plutôt que d’utiliser l’authentification basée sur une clé. Une fois cette modification effectuée, la modification peut prendre jusqu’à 5 minutes avant que la modification ne prenne effet.
Se connecter à l’interface Azure CLI
Pour vous connecter à Azure CLI, exécutez la commande suivante et terminez la connexion. Vous devrez peut-être le faire à nouveau si votre session a été inactive depuis trop longtemps.
az login
Complétions de conversation
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)
Interrogation d’Azure OpenAI avec l’API de plan de contrôle
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))
Autoriser l'accès aux identités managées
OpenAI prend en charge l'authentification Microsoft Entra avec des identités managées pour les ressources Azure. Les identités managées pour les ressources Azure peuvent autoriser l’accès aux ressources des services Azure AI à l’aide des informations d’identification Microsoft Entra à partir d’applications exécutées sur des machines virtuelles (VM) Azure, des applications de fonction, des groupes de machines virtuelles identiques et d’autres services. En utilisant des identités managées pour les ressources Azure avec l'authentification Microsoft Entra, vous pouvez éviter de stocker des informations d'identification avec vos applications qui s'exécutent dans le cloud.
Activer les identités managées sur une machine virtuelle
Avant de pouvoir utiliser les identités managées pour les ressources Azure en vue d’autoriser les ressources Azure AI services depuis votre machine virtuelle, vous devez activer les identités managées pour les ressources Azure sur la machine virtuelle. Pour savoir comment activer des identités managées pour ressources Azure, consultez :
- Azure portal
- Azure PowerShell
- Azure CLI
- Modèle Azure Resource Manager
- Bibliothèques clientes Azure Resource Manager
Pour plus d’informations sur les identités managées, consultez Identités managées pour les ressources Azure.