Autenticação e autorização no Microsoft Foundry

A autenticação e a autorização no Microsoft Foundry controlam como as entidades comprovam sua identidade e obtêm permissão para executar operações. O Foundry divide as operações em plano de controle (gerenciamento de recursos) e plano de dados (uso de runtime), cada um com sua própria autenticação e superfície de RBAC (controle de acesso baseado em função).

A Foundry dá suporte a dois métodos de autenticação: ID do Microsoft Entra e chaves de API. A ID do Microsoft Entra permite acesso condicional, identidades gerenciadas e RBAC granular. As chaves de API permanecem disponíveis para criação rápida, mas não têm rastreabilidade por usuário. Este artigo compara esses métodos, mapeia identidades para funções e descreve cenários de privilégios mínimos comuns.

Importante

Use o Microsoft Entra ID para cargas de trabalho de produção a fim de habilitar acesso condicional, identidades gerenciadas e RBAC de privilégios mínimos. As chaves de API são convenientes para avaliação rápida, mas fornecem acesso grosseiro.

Pré-requisitos

Plano de controle e plano de dados

As operações do Azure se dividem em duas categorias: plano de controle e plano de dados. O Azure separa o gerenciamento de recursos (plano de controle) do runtime operacional (plano de dados). Portanto, você usa o plano de controle para gerenciar recursos em sua assinatura e usa o plano de dados para aproveitar as funcionalidades expostas pela instância de um tipo de recurso. Para saber mais sobre o plano de controle e o plano de dados, consulte o plano de controle e o plano de dados do Azure. Na Foundry, há uma clara distinção entre operações de plano de controle versus operações de plano de dados. A tabela a seguir explica a diferença entre os dois, o escopo no Foundry, as operações típicas de um usuário, as ferramentas de exemplo e as funcionalidades, e a superfície de autorização para uso de cada um.

Avião Escopo na Foundry Operações típicas Ferramentas de exemplo Superfície de autorização
Plano de controle Configuração e ajuste de recursos, projetos, rede, criptografia e conexões Criar ou excluir recursos, atribuir funções, girar chaves, configurar Link Privado Portal do Azure, CLI do Azure, modelos do ARM, Bicep, Terraform Ações do RBAC do Azure
Plano de dados Execute e utilize inferência de modelo, interações de agentes, trabalhos de avaliação e chamadas de segurança de conteúdo. Conclusões de chat, geração de inserções, iniciar trabalhos de ajuste fino, enviar mensagens de agente, operações de analisador e classificador SDKs, APIs REST, playground do portal do Foundry DataActions do RBAC do Azure

Para todos os exemplos de Bicep, Terraform e SDK, consulte o repositório foundry-samples no GitHub para o Foundry.

As listas e o diagrama a seguir ilustram a separação entre as ações do plano de controle e do plano de dados em detalhes. As ações do plano de controle no Foundry incluem:

  • Criação de recursos de fundição
  • Criação de projeto de fundimento
  • Criação do Host de Funcionalidade da Conta
  • Criação de host do Project Capability
  • Implementação de modelo
  • Criação de conexão de conta e projeto

As ações do plano de dados no Foundry incluem:

  • Agentes de construção
  • Executando uma avaliação
  • Rastreamento e monitoramento
  • Ajuste fino

O diagrama a seguir ilustra a separação entre o plano de controle e o plano de dados na Foundry, juntamente com as atribuições de RBAC (controle de acesso baseado em função) e quais acessos um usuário pode ter, seja no plano de controle, no plano de dados ou em ambos. Conforme visto no diagrama, as "ações" do RBAC são associadas ao plano de controle, enquanto as "dataActions" do RBAC estão associadas ao plano de dados.

Diagrama que ilustra a separação de operações de plano de controle e plano de dados com superfícies RBAC associadas.

Métodos de autenticação

A Foundry dá suporte à ID do Microsoft Entra (baseada em token, sem chave) e chaves de API.

Microsoft Entra ID

O Microsoft Entra ID usa tokens de portador OAuth 2.0 com escopo para https://ai.azure.com/.default.

Use o ID do Microsoft Entra para:

  • Cargas de trabalho de produção.
  • Acesso condicional, autenticação multifator (MFA) e acesso just-in-time.
  • Integração de identidade gerenciada e RBAC de privilégio mínimo.

Vantagens: atribuições de funções refinadas, auditoria por entidade de segurança, tempos de vida de token controláveis, higiene de segredos automática e identidades gerenciadas para serviços.

Limitações: maior complexidade de configuração inicial. Requer compreensão do RBAC (controle de acesso baseado em função). Para obter mais informações sobre o RBAC no Foundry, consulte o controle de acesso baseado em função para o Microsoft Foundry.

Chaves de API

As chaves de API são segredos estáticos no escopo de um recurso Foundry.

Use chaves de API para:

  • Prototipagem rápida.
  • Ambientes de teste isolados em que a rotação de segredo único é aceitável.

Vantagens: simples, independente de linguagem e não requer aquisição de token.

Limitações: não é possível expressar a identidade do usuário, é difícil de definir o escopo granularmente e é mais difícil de auditar. Geralmente, não são aceitas por cargas de trabalho de produção corporativa e não são recomendadas pela Microsoft.

Para obter mais informações sobre como habilitar a autenticação sem chave, consulte Configurar autenticação sem chave com a ID do Microsoft Entra.

Autenticar com a ID do Microsoft Entra (Python)

O exemplo a seguir mostra como autenticar com Microsoft Entra ID usando a biblioteca azure-identity e fazer uma solicitação para um endpoint do Foundry:

from azure.identity import DefaultAzureCredential
import requests

# Create a credential object using DefaultAzureCredential
# This automatically uses environment variables, managed identity, or Azure CLI credentials
credential = DefaultAzureCredential()

# Get an access token for the Cognitive Services scope
token = credential.get_token("https://ai.azure.com/.default")

# Use the token in your API request
headers = {
    "Authorization": f"Bearer {token.token}",
    "Content-Type": "application/json"
}

# Replace with your Foundry endpoint
endpoint = "https://<your-resource-name>.cognitiveservices.azure.com"

# Example: List deployments (adjust the path for your specific API)
response = requests.get(f"{endpoint}/openai/deployments?api-version=2024-10-21", headers=headers)
print(response.json())

Saída esperada: uma resposta JSON listando suas implantações de modelo ou um erro de autenticação se as credenciais estiverem ausentes ou a atribuição de função não estiver configurada.

Referência:Biblioteca de identidade do Azure |

Autenticar com uma chave de API (Python)

O exemplo a seguir mostra como autenticar usando uma chave de API. Use essa abordagem somente para protótipos rápidos; A ID do Microsoft Entra é recomendada para produção.

import requests

# Replace with your actual API key and endpoint
api_key = "<your-api-key>"
endpoint = "https://<your-resource-name>.cognitiveservices.azure.com"

headers = {
    "api-key": api_key,
    "Content-Type": "application/json"
}

# Example: List deployments
response = requests.get(f"{endpoint}/openai/deployments?api-version=2024-10-21", headers=headers)
print(response.json())

Aviso

As chaves de API fornecem acesso total ao recurso e não podem ter escopo para usuários ou ações específicos. Alterne as chaves regularmente e evite confirmá-las no controle do código-fonte.

Saída esperada: uma resposta JSON listando suas implantações de modelo ou um erro 401 se a chave de API for inválida.

Referência: Alternar chaves de acesso à API

Matriz de suporte a recursos

Consulte a matriz a seguir para entender quais funcionalidades no Foundry suportam a chave de API em comparação com a ID do Microsoft Entra.

Capacidade ou funcionalidade chave de API Microsoft Entra ID Notas
Inferência básica do modelo (chat, incorporações) Sim Sim Totalmente com suporte.
Operações de ajuste fino Sim Sim O Entra ID adiciona auditoria por entidade de segurança.
Serviço de agentes Não Sim Use a ID do Entra para acesso à ferramenta de identidade gerenciada.
Avaliações Não Sim Use o ID do Entra.
Chamadas de análise de segurança de conteúdo Sim Sim Use RBAC para limitar operações de alto risco.
Tarefas de análise em lote (Interpretação de Conteúdo) Sim Sim Entra ID recomendado para escala.
Uso do playground do portal Sim Sim O playground usa o modo de conexão do projeto.
Isolamento de rede com Link Privado Sim Sim A ID do Entra adiciona acesso condicional.
Privilégio mínimo com funções internas e personalizadas Não Sim As chaves são do tipo "tudo ou nada" por recurso.
Identidade gerenciada (sistema ou atribuído pelo usuário) Não Sim Habilita a autenticação sem segredo.
Atribuição de usuário por solicitação Não Sim O token contém os IDs de tenant e objeto.
Revogação (imediata) Girar a chave Remover função ou desabilitar entidade Aplica-se um tempo de vida curto para o token.
Suporte em pipelines de automação Sim (segredo) Sim (entidade de serviço ou identidade gerenciada) O Entra ID facilita a rotação de segredos.
API de assistentes Sim Sim Recomenda-se usar o ID do Entra.
Inferência em lote Sim Sim
Caixa de Ferramentas Não Sim Use a ID do Entra para acesso à ferramenta de identidade gerenciada.

Tipos de identidade

Os recursos e os aplicativos do Azure são autenticados usando diferentes tipos de identidade, cada um projetado para cenários específicos. As principais de usuário representam usuários humanos, as principais de serviço representam aplicativos ou processos automatizados e as identidades gerenciadas fornecem uma maneira segura e sem credenciais para que os recursos do Azure acessem outros serviços. Entender essas distinções ajuda você a escolher a identidade certa para entradas interativas, comunicação entre aplicativos ou automação de carga de trabalho.

O Azure dá suporte aos seguintes tipos de identidade.

Tipo de identidade Descrição
Entidade de usuário Usuário individual no Microsoft Entra ID
Service Principal (registro de app) Identidade do aplicativo que usa um segredo ou certificado do cliente
Identidade gerenciada (atribuída pelo sistema) Identidade associada a recursos do Azure gerenciada automaticamente pela plataforma.
Identidade gerenciada (atribuída pelo usuário) Identidade autônoma que é anexada a vários recursos.

Visão geral das funções integradas

No Foundry, use as funções internas para separar as ações permitidas para um usuário. A maioria das empresas deseja uma separação de ações de controle e plano de dados para suas funções internas. Outros esperam uma função combinada de plano de dados e controle para minimizar o número de atribuições de função necessárias. A tabela a seguir lista os cenários e as funções internas do Foundry correspondentes que adequam-se melhor a cada cenário.

Cenário Funções típicas predefinidas Notas
Criar agentes com modelos pré-desenvolvidos Usuário do Foundry Somente uso do plano de dados; nenhuma escrita de gerenciamento.
Gerenciar implantações ou ajustar modelos Gerenciador de Projetos Foundry Inclui a criação e a atualização da implantação do modelo.
Girar chaves ou gerenciar recursos Proprietário da conta do Foundry Privilégio alto; considere a função personalizada para privilégios mínimos.
Gerenciar recursos, gerenciar implantações, construir agentes Proprietário da fundiária Função de autoatendimento altamente privilegiada para usuários que precisam de acesso ao plano de controle e ao plano de dados. Combine com o Azure Monitor Reader caso a observabilidade seja necessária.
Observabilidade, rastreamento, monitoramento Usuário do Foundry (mínimo) Adicione o Leitor do Azure Monitor no Application Insights.

Importante

As funções RBAC do Foundry foram renomeadas recentemente. Foundry User, Foundry Owner, Foundry Account Owner e Foundry Project Manager eram anteriormente chamados de Usuário do Azure AI, Proprietário do Azure AI, Proprietário da conta do Azure AI e Gerente de Projeto do Azure AI. Você ainda pode ver os nomes anteriores em alguns lugares enquanto essa mudança de nome está sendo implementada. Os IDs das funções e as permissões principais não são alterados com a mudança de nome.

Para entender a divisão de funções internas e as ações de controle e plano de dados, examine o diagrama a seguir.

Diagrama mapeando funções internas para controlar ações de plano e ações do plano de dados na Foundry.

Dica

Crie uma função personalizada se uma função interna conceder permissões em excesso para seu caso de uso.

Configurar a ID do Microsoft Entra

Para obter orientações de alto nível sobre como configurar a autenticação de ID do Entra no Foundry, consulte Configurar autenticação sem chave.

  1. Verifique se o recurso Microsoft Foundry tem um subdomínio personalizado configurado. Consulte subdomínios personalizados. Um subdomínio personalizado é necessário para autenticação baseada em token.

  2. Atribua a função integrada ou personalizada necessária a cada entidade principal. Você precisa da função proprietário ou administrador de acesso de usuário no escopo de destino para atribuir funções. Atribuições de função comuns:

    • Usuário do Foundry: para desenvolvedores que precisam criar e testar com modelos pré-implantados.
    • Foundry Project Manager: Para líderes de equipe que precisam criar projetos e gerenciar implantações.
    • Proprietário da conta do Foundry: para administradores que precisam do gerenciamento completo de recursos e podem atribuir condicionalmente o Usuário do Foundry para acesso ao plano de dados.
    • Proprietário do Foundry: para usuários que precisam de gerenciamento completo de recursos e acesso ao plano de dados. Exemplo de comando da CLI para atribuir a função De usuário do Foundry:
    az role assignment create \
      --assignee <principal-id> \
      --role "53ca6127-db72-4b80-b1b0-d745d6d5456d" \
      --scope /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.CognitiveServices/accounts/<resource-name>
    

Note

Como as funções do RBAC da Foundry foram renomeadas recentemente, use o identificador de definição da função (GUID) em vez do nome da função no seu código para evitar problemas durante a implantação da renomeação:

  • Usuário do Foundry: 53ca6127-db72-4b80-b1b0-d745d6d5456d
  • Proprietário da fundiária: c883944f-8b7b-4483-af10-35834be79c4a
  • Proprietário da conta do Foundry: e47c6f54-e4a2-4754-9501-8e0985b135e1
  • Foundry Project Manager: eadc314b-1a2d-4efa-be10-5d325db5065e

Para verificar a atribuição de função, execute az role assignment list --assignee <principal-id> --scope <resource-scope> e confirme se a função aparece na saída.

  1. (Opcional) Para uma entidade de serviço, crie um registro de aplicativo, adicione um segredo ou certificado do cliente e anote a ID do locatário, a ID do cliente e o segredo ou certificado.
  2. (Opcional) Para uma identidade gerenciada, habilite a identidade atribuída pelo sistema no serviço de chamada ou anexe uma identidade atribuída pelo usuário e atribua uma função a ela no recurso Foundry.
  3. Remova a autenticação baseada em chave depois que todos os chamadores usarem a autenticação de token. Opcionalmente, desabilite a autenticação local em modelos de implantação.

Referência: Atribuir funções do Azure | Controle de acesso baseado em função para o Foundry

Solucionar problemas de erros comuns de autenticação

Erro Causa Resolução
401 Não autorizado Token ausente ou expirado; chave de API inválida Verifique se o escopo de aquisição de token é https://ai.azure.com/.default. Regenerar a chave de API se você usar autenticação baseada em chave.
403 Proibido Atribuição de função RBAC ausente Atribua a função interna apropriada (por exemplo, Usuário do Foundry) no escopo do recurso ou do projeto.
AADSTS700016 Aplicativo não encontrado no locatário Verifique se o registro do aplicativo existe no locatário correto e se a ID do cliente está correta.
Subdomínio personalizado necessário O recurso usa um ponto de extremidade regional em vez de um subdomínio personalizado Configure um subdomínio personalizado no recurso Foundry. A autenticação baseada em token requer um subdomínio personalizado.