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

A autenticação e a autorização no Microsoft Foundry controlam como usuários ou sistemas autenticam sua identidade e obtêm permissão para executar operações. A Foundry divide as operações em plano de controle (gerenciamento de recursos) e plano de dados (uso em tempo de execução), cada uma com sua própria autenticação e superfície de controle de acesso baseado em função.

A Foundry dá suporte a dois métodos de autenticação: Microsoft Entra ID e chaves de API. Microsoft Entra ID 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

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

Pré-requisitos

  • Uma assinatura Azure. Se você não tiver uma, crie uma conta gratuita.
  • Um recurso Microsoft Foundry com um subdomínio custom configurado.
  • Compreensão dos conceitos do Azure RBAC.
  • Para atribuir funções, você precisa da função Proprietário ou da função administrador de acesso do usuário no escopo apropriado.
  • (Opcional) O CLI do Azure ou SDK do Azure para Python instalado para autenticação programática.
  • (Opcional) pacotes do Python para exemplos de código: pip install azure-identity requests

Plano de controle e plano de dados

As operações do Azure se dividem em duas categorias: plano de controle e plano de dados. 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 Azure plano de controle e plano de dados. 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 Azure portal, CLI do Azure, modelos do ARM, Bicep, Terraform ações do RBAC Azure
Plano de dados Executando e usando inferência de modelo, interações do agente, trabalhos de avaliação e chamadas de segurança de conteúdo Conclusões de chat, geração de embeddings, iniciar trabalhos de fine-tuning, enviar mensagens de agentes, operações do analisador e do classificador SDKs, APIs REST, playground do portal Foundry Azure RBAC dataActions

Para todos os exemplos de Bicep, Terraform e SDK, consulte o repositório foundry-samples no GitHub for 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 do host de funcionalidades do Project
  • Implementação de modelo
  • Criação de conexão de conta e projeto

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

  • Compilando agentes
  • 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 a Microsoft Entra ID (baseada em token, sem chave) e chaves de API.

Microsoft Entra ID

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

Use Microsoft Entra ID para:

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

Vantagens: atribuições de função detalhadas, auditoria por usuário, vida útil do token controlável, manutenção automática de segredos 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 Controle de acesso baseado em função para 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 é aceito pelas cargas de trabalho de produção da empresa e não é recomendado por Microsoft.

Para obter mais informações sobre como habilitar a autenticação sem chave, consulte Configure key-less authentication with Microsoft Entra ID.

Autenticar com Microsoft Entra ID (Python)

O exemplo a seguir mostra como autenticar com o Microsoft Entra ID usando a biblioteca azure-identity e fazer uma solicitação para um ponto de extremidade 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; Microsoft Entra ID é recomendado 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. Gire as chaves regularmente e evite emiti-las ao 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 capacidades no Foundry suportam a chave de API versus o Microsoft Entra ID.

Capacidade ou funcionalidade chave de API Microsoft Entra ID Notas
Inferência básica do modelo (chat, incorporações) Sim Sim Totalmente suportado.
Operações de ajuste fino Sim Sim Entra ID adiciona auditoria por entidade de segurança.
Serviço de agentes Não Sim Use Entra ID para acesso à ferramenta de identidade gerenciada.
Avaliações Não Sim Use Entra ID.
Analisar chamadas 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 no portal Sim Sim O playground usa o modo de conexão do projeto.
Isolamento de rede com Link Privado Sim Sim Entra ID adiciona acesso condicional.
Privilégio mínimo com funções internas e personalizadas Não Sim As chaves são 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 papel ou desabilitar principal 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) Entra ID reduz a rotação de senhas.
API de assistentes Sim Sim É recomendável usar Entra ID.
Inferência em lote Sim Sim
Caixa de Ferramentas Não Sim Use Entra ID para acesso à ferramenta de identidade gerenciada.

Tipos de identidade

Azure recursos e aplicativos se autenticam usando diferentes tipos de identidade, cada um projetado para cenários específicos. Principais de usuário representam usuários humanos, principais de serviço representam aplicativos ou processos automatizados, e identidades gerenciadas fornecem uma maneira segura e livre de credenciais para que 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.

Azure dá suporte aos seguintes tipos de identidade.

Tipo de identidade Descrição
Principal 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 integradas 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 que uma função de plano de controle e dados combinados minimize 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 Azure AI Somente uso do plano de dados; nenhuma escrita de gerenciamento.
Gerenciar implantações ou ajustar modelos Gerente de Projeto de IA do Azure Inclui a criação e a atualização da implantação do modelo.
Girar chaves ou gerenciar recurso Azure Responsável pela Conta de IA Privilégio elevado; considere um perfil personalizado para garantir o princípio do menor privilégio.
Gerenciar recursos, gerenciar implantações, construir agentes Azure Responsável de IA 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 se for necessária a observabilidade.
Observabilidade, rastreamento, monitoramento Azure usuário de IA (mínimo) Adicione Azure Monitor Leitor no Application Insights.

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 Microsoft Entra ID

Para obter orientações de alto nível sobre como configurar a autenticação Entra ID na Foundry, consulte Configuraçã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 interna ou personalizada necessária a cada 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 de Azure AI: para desenvolvedores que precisam desenvolver e testar com modelos pré-implantados.
    • Azure AI Project Manager: para líderes de equipe que precisam criar projetos e gerenciar implantações.
    • Azure Proprietário da Conta de IA: para administradores que precisam de gerenciamento completo de recursos e podem atribuir condicionalmente Azure usuário de IA para acesso ao plano de dados.
    • Azure Proprietário de IA: 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 de IA Azure:
    az role assignment create \
      --assignee <principal-id> \
      --role "Azure AI User" \
      --scope /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.CognitiveServices/accounts/<resource-name>
    

    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.

  3. (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.

  4. (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.

  5. 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 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 ausente no RBAC Atribua a função interna apropriada (por exemplo, Azure usuário de IA) 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.