Como configurar o Serviço OpenAI do Azure com a autenticação do Microsoft Entra ID
Cenários de segurança mais complexos exigem controle de acesso baseado em função do Azure (Azure RBAC). Este documento aborda como autenticar em seu recurso do Azure OpenAI usando a ID do Microsoft Entra.
Nas seções a seguir, você usará a CLI do Azure para entrar e obter um token de portador para chamar o recurso OpenAI. Se você ficar preso, os links são fornecidos em cada seção com todas as opções disponíveis para cada comando no Azure Cloud Shell/CLI do Azure.
Pré-requisitos
Uma assinatura do Azure - Crie uma gratuitamente
CLI do Azure - Guia de Instalação
As seguintes bibliotecas Python: os, requests, json, openai, azure-identity
Atribuir função
Atribua a si mesmo a função de Usuário do OpenAI dos Serviços Cognitivos ou de Colaborador do OpenAI dos Serviços Cognitivos para permitir que você use sua conta para fazer chamadas de API de inferência do Azure OpenAI em vez de ter que usar a autenticação baseada em chave. Depois de fazer essa alteração, pode levar até 5 minutos até que a alteração entre em vigor.
Entrar na CLI do Azure
Para entrar na CLI do Azure, execute o seguinte comando e conclua a entrada. Poderá ter de o fazer novamente se a sua sessão tiver estado inativa durante demasiado tempo.
az login
Conclusão do bate-papo
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)
Consultando o Azure OpenAI com a API do plano de controle
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))
Autorizar o acesso a identidades gerenciadas
O OpenAI suporta a autenticação Microsoft Entra com identidades gerenciadas para recursos do Azure. As identidades gerenciadas para recursos do Azure podem autorizar o acesso aos recursos dos serviços de IA do Azure usando credenciais do Microsoft Entra de aplicativos em execução em máquinas virtuais (VMs) do Azure, aplicativos de função, conjuntos de dimensionamento de máquinas virtuais e outros serviços. Usando identidades gerenciadas para recursos do Azure junto com a autenticação do Microsoft Entra, você pode evitar armazenar credenciais com seus aplicativos executados na nuvem.
Habilitar identidades gerenciadas em uma VM
Antes de poder usar identidades gerenciadas para recursos do Azure para autorizar o acesso aos recursos de serviços de IA do Azure a partir de sua VM, você deve habilitar identidades gerenciadas para recursos do Azure na VM. Para saber como habilitar identidades gerenciadas para Recursos do Azure, consulte:
- Portal do Azure
- Azure PowerShell
- CLI do Azure
- Modelo Azure Resource Manager
- Bibliotecas de cliente do Azure Resource Manager
Para obter mais informações sobre identidades gerenciadas, consulte Identidades gerenciadas para recursos do Azure.