Como configurar o Serviço OpenAI do Azure com a autenticação do Microsoft Entra ID
Cenários de segurança mais complexos exigem o RBAC (controle de acesso baseado em função) do Azure. Esse documento aborda como autenticar em seu recurso do OpenAI do Azure usando o Microsoft Entra ID.
Nas seções a seguir, você usará a CLI do Azure para entrar e para obter um token de portador para chamar o recurso do OpenAI. Se você ficar paralisado, 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 do Python: sistema operacional, solicitações, json, openai, azure-identity
Atribuir função
Atribua a si mesmo a função de Usuário do OpenAI de Serviços Cognitivos ou Colaborador de OpenAI dos Serviços Cognitivos para permitir que você use sua conta para fazer chamadas à API de inferência de OpenAI do Azure em vez de ter que usar autenticação baseada em chave. Depois de fazer essa alteração, a alteração pode levar até 5 minutos para entrar em vigor.
Entrar na CLI do Azure
Para entrar na CLI do Azure, execute o comando a seguir e conclua a entrada. Pode ser necessário fazer isso novamente, caso a sessão tenha ficado ociosa por muito tempo.
az login
Preenchimentos de 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)
Consultando a OpenAI do Azure com a API do painel 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 dá suporte à autenticação do 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 VMs (máquinas virtuais) do Azure, aplicativos de funções, 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 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:
- Azure portal
- PowerShell do Azure
- CLI do Azure
- Modelo do Azure Resource Manager
- Bibliotecas de cliente do Azure Resource Manager
Para saber mais sobre identidades gerenciadas, confira identidades gerenciadas para recursos do Azure.