13-02-03 — Entra Agent ID GA: Identidade Dedicada para Agentes
TL;DR
Microsoft Entra Agent ID (GA em 2025) resolve um problema fundamental: agentes de IA antes rodavam com identidade de service principal genérico ou, pior, com credenciais de usuário real. Agora cada agente tem sua própria identidade no Entra ID, com Conditional Access, RBAC granular, auditoria separada e ciclo de vida controlado. Governança real para sistemas agentic.
O Problema que Existia Antes
Antes do Agent ID, agentes de IA eram implantados de formas problemáticas:
- App Registration genérico: Um service principal para todos os agentes — sem distinção de qual agente fez o quê nos logs
- Credenciais de usuário: "Cria um usuário bot@empresa.com com permissões admin" — violação direta do princípio de menor privilégio
- Managed Identity compartilhada: Vários agentes compartilhando a mesma identidade — compromisso de um afeta todos
O que é Entra Agent ID
É um tipo de identidade workload no Microsoft Entra ID, especificamente projetado para agentes de IA. Funciona como um "passaporte" do agente no ecossistema Microsoft:
- Identidade única por agente (não por deployment)
- Aparece no Entra ID como objeto distinguível de usuários e service principals normais
- Suporta Conditional Access policies específicas
- Logs de auditoria separados no Microsoft Purview Audit
- Integração com Copilot Studio e Azure AI Foundry nativamente
Criando um Agent ID
// Usando Microsoft Graph SDK para criar Agent ID
using Microsoft.Graph;
using Microsoft.Graph.Models;
var graphClient = new GraphServiceClient(credential);
// Agent ID é criado como Application com tag especial
var application = new Application
{
DisplayName = "Agente-Juridico-Contratos",
Description = "Agente de análise de contratos - equipe jurídica",
Tags = new List<string> { "AIAgent", "Legal", "Production" },
RequiredResourceAccess = new List<RequiredResourceAccess>
{
new RequiredResourceAccess
{
ResourceAppId = "00000003-0000-0000-c000-000000000000", // Graph
ResourceAccess = new List<ResourceAccess>
{
new ResourceAccess
{
Id = Guid.Parse("df021288-bdef-4463-88db-98f22de89214"), // User.Read.All
Type = "Role"
}
}
}
}
};
var result = await graphClient.Applications.PostAsync(application);
Console.WriteLine($"Agent ID criado: {result.AppId}");
Controles de Governança com Agent ID
Conditional Access para Agentes
Políticas que se aplicam especificamente a agentes:
- Agentes só podem autenticar de IPs/VNets específicas (ex: Azure region)
- Exigir certificado de identidade gerenciado (Managed Identity) ao invés de segredo
- Bloquear autenticação fora do horário comercial para agentes não críticos
- MFA não se aplica — mas device compliance (ex: Azure Arc-enabled server) pode
RBAC com Menor Privilégio
Cada Agent ID recebe exatamente as permissões que precisa:
- Agente de leitura de contratos: Files.Read no SharePoint site específico, não em toda a organização
- Agente de criação de tarefas: Tasks.ReadWrite apenas no Planner do projeto, não em todos os grupos
- Agente de envio de email: Mail.Send apenas via mailbox dedicado, não com acesso a todas as mailboxes
Auditoria Separada
Todas as ações do agente aparecem nos logs com o Agent ID como ator — não misturado com atividade humana. Isso permite:
- Relatórios de "o que cada agente fez hoje"
- Alertas de anomalia por agente específico
- Evidências de compliance auditáveis separadamente
Ciclo de Vida
Agent ID suporta access reviews periódicas — o mesmo processo usado para usuários. A cada 90 dias, owners do agente confirmam que ainda precisa dos acessos. Se não confirmar → acesso revogado automaticamente. Encerramento de projeto = desativar Agent ID = zero permissões residuais.