Compartilhar via


Usar o OpenAI do Azure sem chaves

As solicitações de aplicativo para a maioria dos serviços do Azure devem ser autenticadas com chaves ou conexões sem senha. Os desenvolvedores devem ser diligentes para nunca expor as chaves em um local não seguro. Qualquer pessoa que obtenha acesso à chave será capaz de se autenticar no serviço. A autenticação sem chave oferece vantagens de segurança e gerenciamento aprimorados com relação à chave de conta porque não há nenhuma chave (nem cadeia de conexão) para armazenar.

As conexões sem chave estão habilitadas com as seguintes etapas:

  • Configure sua autenticação.
  • Defina as variáveis de ambiente, conforme necessário.
  • Use um tipo de credencial de biblioteca de identidade do Azure para criar um objeto de cliente OpenAI do Azure.

Autenticação

A autenticação na ID do Microsoft Entra é necessária para usar as bibliotecas de cliente do Azure.

A autenticação difere com base no ambiente em que o aplicativo está sendo executado:

Bloco de construção sem chave do OpenAI do Azure

Use o link a seguir para explorar o modelo de IA do Building Block Keyless do OpenAI do Azure. Este modelo provisiona uma conta OpenAI do Azure com sua permissão de função RBAC de conta de usuário para autenticação sem chave (Microsoft Entra) para acessar os SDKs da API OpenAI.

Observação

Este artigo usa um ou mais modelos de aplicativo de IA como base para os exemplos e as diretrizes no artigo. Os modelos de aplicativo de IA fornecem implementações de referência regulares e fáceis de implantar que ajudam a garantir um ponto de partida de alta qualidade para os aplicativos de IA.

Autenticar para o desenvolvimento local

Selecione uma ferramenta para autenticação durante o desenvolvimento local.

Autenticar para ambientes hospedados no Azure

Saiba mais sobre como gerenciar o DefaultAzureCredential para aplicativos implantados no Azure.

Configurar funções para autorização

  1. Localize a função para o uso do Azure OpenAI. Dependendo de como você pretende definir essa função, você precisa do nome ou da ID.

    Nome da função ID de Função
    Para a CLI do Azure ou o Azure PowerShell, você pode usar o nome da função. Para o Bicep, você precisa da ID da função.
  2. Use a tabela a seguir para selecionar uma função e um ID.

    Caso de uso Nome da função ID de Função
    Assistentes Cognitive Services OpenAI Contributor a001fd3d-188f-4b5d-821b-7da978bf7442
    Preenchimentos de chat Cognitive Services OpenAI User 5e0bd9bd-7b93-4f28-af87-19fc36ad61bd
  3. Selecione um tipo identidade para utilizar.

    • Identidade pessoal: essa é sua identidade pessoal vinculada à sua entrada no Azure.
    • Identidade gerenciada: essa é uma identidade gerenciada e criada para uso no Azure. Para identidade gerenciada, crie uma identidade gerenciada atribuída pelo usuário. Ao criar a identidade gerenciada, você precisa do Client ID, também conhecido como app ID.
  4. Para encontrar sua identidade pessoal, use um dos seguintes comandos. Use o ID como o <identity-id> na próxima etapa.

    Para desenvolvimento local, para obter sua própria ID de identidade, use o comando a seguir. Você precisa entrar com az login antes de usar este comando.

    az ad signed-in-user show \
        --query id -o tsv
    
  5. Atribua a função de controle de acesso baseado em função (RBAC) à identidade para o grupo de recursos.

    Para conceder suas permissões de identidade ao recurso por meio do RBAC, atribua uma função usando o comando da CLI do Azure az role assignment create.

    az role assignment create \
        --role "Cognitive Services OpenAI User" \
        --assignee "<identity-id>" \
        --scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>"
    

    Quando aplicável, substitua <identity-id>, <subscription-id> e <resource-group-name> por seus valores reais.

Configurar variáveis de ambiente

Para se conectar ao Azure OpenAI, seu código precisa conhecer o ponto de extremidade do recurso e pode precisar de outras variáveis de ambiente.

  1. Crie uma variável de ambiente para o ponto de extremidade OpenAI do Azure.

    • AZURE_OPENAI_ENDPOINT: essa URL é o ponto de acesso para o recurso OpenAI do Azure.
  2. Crie variáveis de ambiente com base no local em que seu aplicativo é executado:

    Location Identidade Descrição
    Local Pessoal Para tempos de execução locais com sua identidade pessoal, faça login para criar sua credencial com uma ferramenta.
    Nuvem do Azure Identidade gerenciada atribuída pelo usuário Crie uma variável de ambiente AZURE_CLIENT_ID contendo o ID do cliente da identidade gerenciada atribuída pelo usuário para autenticar como.

Instalar a biblioteca de clientes da Identidade do Azure

Use o link a seguir para instalar a biblioteca de clientes do Azure Identity.

Instale a Biblioteca de clientes .NET da Identidade do Azure:

dotnet add package Azure.Identity

Use DefaultAzureCredential

A biblioteca de Identidades do Azure DefaultAzureCredential permite que o cliente execute o mesmo código no ambiente de desenvolvimento local e na Nuvem do Azure.

Para obter mais informações sobre a DefaultAzureCredential para .NET, confira a biblioteca de clientes da Identidade do Azure para .NET.

using Azure;
using Azure.AI.OpenAI;
using Azure.Identity;
using System;
using static System.Environment;

string endpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");

OpenAIClient client = new(new Uri(endpoint), new DefaultAzureCredential());

Recursos