Microsoft's Agent Identity Model Is the Blueprint to Steal Microsoft Foundry's agent identity model, built on Microsoft Entra, provides three permission planes—user-present, autonomous, and approval-gated—to address over-privileged agents, but a publish-time identity swap can break deployments. The model uses OAuth 2.0 token exchange for user-present work, client-credentials flow for background tasks, and a default 'always' approval gate for MCP tools. Microsoft's design is the most complete shipping today, though it carries lock-in risks. Dev Tools https://sourcefeed.dev/c/dev-tools Article Microsoft's Agent Identity Model Is the Blueprint to Steal Three permission planes solve the over-privileged agent problem, but a publish-time identity swap will bite the unprepared. Lenn Voss https://sourcefeed.dev/u/lennart voss Most AI agents running in production right now authenticate like it's 2012: one service principal, an API key in an environment variable, and every permission anyone ever asked for stapled onto it because removing one might break something. That works fine until the agent is the thing making decisions — at which point you've built a textbook confused deputy, with prompt injection as the trigger. A poisoned email or web page convinces the agent to act, and it acts with the full authority of that over-privileged account. Microsoft Foundry https://learn.microsoft.com/en-us/azure/foundry/agents/concepts/agent-identity 's answer to this has been quietly assembled over the past year, and it's the most complete one shipping today: agents get first-class identities in Microsoft Entra https://learn.microsoft.com/en-us/entra/agent-id/what-are-agent-identities , and every action an agent takes is routed through one of three distinct permission planes. It's a genuinely good design — and it comes with a publish-time trap that will break your deployment the first time you hit it, plus lock-in you should price in before adopting. Three planes, not one account The core move is to stop asking "what can the agent do?" and start asking "on whose authority is this specific action happening?" Foundry's model gives you three answers: User-present work runs on-behalf-of the user. When a signed-in human invokes the agent, Foundry uses OAuth 2.0 token exchange: the app passes the user's token to Agent Service, which swaps it for a token carrying both the agent identity and the user's delegated permissions. The agent reading your calendar to prep a meeting can only see calendars you can see, filtered further by the delegated scopes the app requested, admin consent, and Conditional Access. This is the same RFC 8693 https://datatracker.ietf.org/doc/html/rfc8693 machinery enterprises already use for middle-tier APIs, applied to agents — which matters, because your existing audit and consent tooling already understands it. Background work runs on the agent's own identity. Scheduled and autonomous tasks use the client-credentials flow with a dedicated agent identity — a real Entra service principal you assign Azure RBAC roles to, exactly like a managed identity: az role assignment create \ --assignee "