Partilhar via


Usar o Azure OpenAI 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 pode autenticar-se no serviço. A autenticação sem chave oferece benefícios aprimorados de gerenciamento e segurança em relação à chave da conta, pois não há nenhuma chave (ou cadeia de conexão) para armazenar.

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

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

Autenticação

A autenticação para o Microsoft Entra ID é 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 Azure OpenAI

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

Nota

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

Explore o modelo .NET End to end do Azure OpenAI Keyless Authentication Building Block AI.

Autenticar para desenvolvimento local

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

Autenticar para ambientes hospedados no Azure

Saiba como gerenciar o DefaultAzureCredential para aplicativos implantados no Azure.

Configurar funções para autorização

  1. Encontre a função para seu 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 da função
    Para a CLI do Azure ou o Azure PowerShell, você pode usar o nome da função. Para o Bicep, você precisa do ID da função.
  2. Use a tabela a seguir para selecionar uma função e um ID.

    Caso de utilização Nome da função ID da função
    Assistants Cognitive Services OpenAI Contributor a001fd3d-188f-4b5d-821b-7da978bf7442
    Conclusão do chat Cognitive Services OpenAI User 5e0bd9bd-7b93-4f28-af87-19fc36ad61bd
  3. Selecione um tipo de identidade a ser usado.

    • Identidade pessoal: esta é a sua identidade pessoal associada ao seu início de sessão 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 o desenvolvimento local, para obter seu próprio ID de identidade, use o seguinte comando. 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 RBAC (controle de acesso baseado em função) à identidade do grupo de recursos.

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

    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> pelos seus valores reais.

Configurar variáveis de ambiente

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

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

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

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

Instalar a biblioteca de cliente do Azure Identity

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

Instale a biblioteca de cliente do .NET Azure Identity:

dotnet add package Azure.Identity

Usar DefaultAzureCredential

A biblioteca de Identidade do DefaultAzureCredential Azure 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 DefaultAzureCredential o .NET, consulte Biblioteca de cliente do Azure Identity 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