How do you extend Zero Trust to AI agents?

Consider the traditional “Zero Trust Architecture (ZTA)” concept. In it, the network is presumed hostile, so we have to decide what requests go through by using authentication and authorization.
An AI agent breaks this pattern in a way we haven’t seen before. Not only is the network still presumed compromised, the request itself can carry a malicious payload by hiding inside a correctly authenticated and scoped agent. In other words, a verified caller with an untrusted call.
What does it mean to extend Zero Trust to agents, then? We need to travel farther up the chain and seek the party accountable. In practical terms, authorization decisions have to move in front of tool invocations, rather than in front of the agent itself. The question stops being "is this agent trusted?" and becomes "should this specific call, with these specific arguments, against this specific data, be allowed right now?"
Now let’s understand how it’s done, and where the failure points are.
The assumption Zero Trust was built on
In August 2020, NIST SP 800-207 defined Zero Trust Architecture, relocating the trust decision from network position to a policy engine that evaluates identity, device, and context, and grants a session with a scope.
Written before the agentic AI era, the document’s approach to Non-Person Entities implies deterministic workloads with requests driven by their own code, and does so inside a section on threats rather than architecture. It also concludes that authentication for such components is “an open issue”.
In a world in which only such entities exist, trusting the entity making the request is trusting the intent of the human who built it. Authentication and authorization come hand in hand, as a single security decision.
With agents, this approach no longer works.
We’re in uncharted territory
It’s not a subject; it’s a chain
Let’s focus on a single tool call:
- A person delegated the task.
- An agent instance is executing it.
- There might be sub-agents spawned by the main agent.
- The platform that hosts the harness adds its own intent.
- An MCP server can be involved, with APIs sitting behind it.
All these subjects have to be evaluated, rather than one subject with a single attribute set, as in traditional ZTA. Not all of it appears in the logs, so it is difficult to determine which agent updated a customer record when the logs show a token or a service account.
OAuth can help, somewhat. Its token exchange lets clients exchange a token for one that’s scoped, restricted, and records who acts on whose behalf. But the “prior actors” part of the act chain is informational, and shouldn’t be used when making access control decisions. In other words, it’s an audit trail, not an authorization primitive.
There are efforts to move OAuth into the agentic era. If you want to see what the future might look like, see OAuth Identity and Authorization Chaining Across Domains, which has already cleared the working group.
A verified identity no longer implies an authorized intent
Prompt injection, poisoned tool descriptions, and memory poisoning are some of the techniques that let an attacker author requests within a credentialed session. The action can even fall inside the agent’s granted scopes. A typical Zero Trust policy engine will evaluate the identity, device, and context of this action, then return “allow”.
OWASP's Top 10 for Agentic Applications, published in December 2025, treats this as ASI01, Agent Goal Hijack. ASI06, Memory and Context Poisoning, is also relevant.
Enforcement runs inside the thing you don't trust
Common agent deployments enforce policies through mechanisms such as tool allowlists in the agent configuration, rules in the system prompt, and confirmation dialogs in the client. In other words, they gate capabilities. And these gates can fail, as evidenced by confused-deputy research where input reasons its way around them.
And while MCPs are somewhat better about enforcement, their authorization spec applies only to HTTP transports. STDIO implementations retrieve credentials from the environment, and hold whatever access the environment gives them.
Pillar by pillar: humans, machines, agents
Token's Zero Trust for machines maps each Zero Trust pillar from its human implementation to its machine equivalent. Agents need a third column.
Tenet by tenet: what transfers, what needs rewriting
The seven tenets in SP 800-207 §2.1 are another prism through which you should review the posture. These are “the ideal goal”, so not all of them will be fully implemented.
Extending Zero Trust
An identity per agent instance
Ideally, each agent wields identities provisioned for them, rather than those provisioned for humans or shared service accounts.
Runtime-attested workload identities are a great option, since SPIFFE (Secure Production Identity Framework For Everyone) and SPIFFE Runtime Environment (SPIRE) do node and workload attestation before issuing an SVID. Do it, and the identity will derive from the workload, with automatic rotation and short default lifetimes.
Preserve the delegation chain
An auditor should be able to understand several things from the credential itself, without any configuration files.
The first is the delegation chain. For this, use tokens issued through token exchange, so each action includes a record of the person who requested it.
Then there’s the resource the credential has access to. Under the MCP spec, clients send a resource parameter naming the server they intend to use the token with, and servers reject tokens not issued for them.
A policy decision point outside the agent
Ideally, there should be a policy engine in front of every tool call, using a gateway or broker. These need to take into account the agent identity, delegation, the tool itself, the arguments, the classification of the data behind these arguments, and the agent’s previous actions. This way, the decisions are made by the policy engine, not an agent that could’ve been talked into misuse.
This way, you’re also defragmenting your policies. Rules scattered across APIs, IAM, agent configs, and more can be consolidated.
Segmentation by tool and record, not by network
An agent's network position tells you nothing. It reaches every system over HTTPS through an API, so that’s the surface that matters. You need to know the agent’s reach in both directions: corporate data and the open web. For example, read access to the DB and an outbound HTTP tool together equal an exfiltration path that won’t be flagged unless both are taken into account.
Containment sized to one instance
Let’s say one agent identity is compromised. What will it reach before anyone notices? This is how you do containment. You need rate and volume caps, as well as revocation that’s granular enough to work on a single instance. And of course, your kill switch has to be tested.



