Partilhar via


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

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:

Para obter mais informações sobre identidades gerenciadas, consulte Identidades gerenciadas para recursos do Azure.