Agent identity and delegated access: how AI agents act for people
04
Key concepts
8 min read · Chapter 4 of 10
01
Entity and identity
What is the unit of record, and how do we know it is the same one?
Three identities sit behind every agent request: the software (which agent), the person it acts for, and the operator (the company that runs it). They're easy to collapse into one record and expensive to separate later.
The vendors model the agent differently. Microsoft's Entra creates each agent identity from a blueprint (a template that holds credentials and mints tokens for many agents), adds an optional user account for systems that need a mailbox, and assigns a human sponsor who answers for it. Google ties each agent's SPIFFE ID to the resource that hosts it, so redeploying creates a new identity and old grants don't carry over. On the open web the identity is the operator's signing key, and the individual agent is invisible.
In the incidents, the identity that mattered was often the integration: Drift's Salesforce app, Klue's integration, Context.ai's Google OAuth client. Salesforce and Google contained those cases by blocking the app.
Nobody has a reliable count of agent identities: vendor ratios of machine identities to people range from 17 to 109 per person, which mostly shows their definitions differ.
02
State and lifecycle
What states exist, and what moves an entity between them?
An agent goes registered, given an owner, credentialed, active, restricted, disabled and deleted. The state most systems lack is orphaned, an agent whose owner has left, which is why Entra now moves sponsorship automatically. A web agent goes submitted to a gatekeeper's registry, accepted or rejected, verified, and sometimes delisted.
Timers define behaviour: Google's agent certificates last 24 hours, Visa accepts an agent's signature for 8 minutes, and NIST wants access tokens to last an hour or less.
Failures cluster in a few places. Tokens outlive their purpose: Klue's breach began with a credential made for an abandoned prototype and never switched off, and GitGuardian, which sells secret scanning, found 64% of the valid secrets it detected in 2022 still active four years later. Approvals decay into "always allow". And revocation is coarse, so whole integrations get switched off because nobody can pick out the bad tokens.
03
System of record and ledger
Who owns the truth, and how do systems reconcile?
No one record says "Maya asked this agent to do this, here, with this approval". The pieces live apart:
| Fact | Where it lives |
|---|---|
| Which agents exist and who owns them | The identity provider's registry (Entra, Okta, Google's Agent Registry) |
| Which third-party tokens an agent holds | A token vault (Auth0, AgentCore, Google's auth manager, Anthropic's Managed Agents) |
| Whether a web agent is verified | The gatekeeper's bot registry |
| Whether an agent may pay | The card network's directory |
| Whether a call was allowed, and what it did | The API or MCP server's own log |
The standard field for the agent is the act claim in token exchange, and the MCP spec doesn't mention it. Google and Entra each log the agent with its user or sponsor, in their own formats, and token passthrough makes downstream logs show the wrong caller. Gaps can go unannounced: Microsoft 365 Copilot didn't log which files it summarized until about August 2025, according to press reports.
NIST's concept paper asks how to bind each agent action back to a human's authorization. Until someone answers, I'd record for each action: agent ID, person ID, operator, token ID and audience, scope used, tool, a hash of the arguments, the outcome and any approval. For payments only, Google's AP2 mandates and Mastercard's Verifiable Intent come closest to a shared ledger.
04
Rules and policy
What logic decides outcomes, and who can change it?
The rules sit in four places:
- The company's identity provider: Entra ships Conditional Access templates for agents (block high-risk agents; separate rules for agents acting for someone and autonomous ones), Okta applies policy at the Cross App Access exchange, and Google uses org policies and IAM rules.
- The API or MCP server: OAuth scopes are plain strings and coarse. Rich Authorization Requests can describe a single action, and Auth0 uses them with CIBA, but I found no MCP proposal that does. MCP's tool annotations mark tools as read-only or destructive, as hints only, so the real check is the server's own permission rules.
- The agent's maker: Anthropic's browser agent has site permissions and asks before purchases, publishing or sharing personal data; OpenAI's agent asks before sending messages or payments; Supabase added read-only and project-scoped modes for its MCP server.
- The website: robots.txt, Cloudflare's Content Signals, and per-crawler Allow, Charge or Block rules.
No binding rule says how narrow an agent's scope must be or that agent and user must be told apart in logs. After an incident, the yardsticks will be NIST IR 8587, the MCP spec's "must" rules, CISA's joint guidance and OWASP's 2026 list for agentic applications, which ranks identity and privilege abuse third.
05
Effective dating
Which version of the rule applied at that moment?
Dates I'd keep on a calendar as of October 2026:
| Change | Effective | Status (Oct 2026) |
|---|---|---|
| Agent identity products generally available | AWS AgentCore October 2025; Auth0 November 2025; Google April 2026; Microsoft Entra around May 2026; Okta for AI Agents April or May 2026, Agent SSO August 2026 | Live |
| Cloudflare folds signed agents into verified bots | July 1, 2026 | Live |
| Microsoft requires Agent 365 or E7 for agent Conditional Access | July to August 2026 | Live |
| MCP specification deprecates dynamic client registration | July 28, 2026 | Live |
| EU AI Act transparency duties (Article 50) | August 2, 2026 | Live |
| Web Bot Auth's working-group draft | September 1, 2026 | Draft |
| NIST IR 8587 on protecting tokens | September 2026 | Final |
| ID-JAG draft expires unless renewed | November 22, 2026 | Upcoming |
| EU Product Liability Directive transposed | December 9, 2026 | Upcoming |
| EU AI Act high-risk duties | December 2, 2027 | Moved from 2026 |
| PSD3 and the Payment Services Regulation apply | Around 2028 | Provisional |
When a vendor says "MCP support", ask which version: June 2025, November 2025 and July 2026 differ on how clients register, and dynamic registration can't be removed before July 2027 under the project's 12-month rule, by my reading.
06
Interfaces and standards
What format and protocol do counterparties speak?
| Standard | What it does for agents | Status (Oct 2026) |
|---|---|---|
| OAuth 2.1 | The base MCP builds on | Internet-Draft 16 (September 2026); MCP still cites draft 13 |
| Token exchange (RFC 8693) | Acting for someone; the agent in the act claim | Standard since 2020 |
| Rich Authorization Requests (RFC 9396) | Describing one action for consent | Standard since 2023 |
| CIBA Core 1.0 | Approval on the person's phone | OpenID Final, 2021 |
| DPoP (RFC 9449), mutual-TLS tokens (RFC 8705) | Binding a token to its holder | Standards; DPoP in MCP is still a proposal |
| Protected Resource Metadata (RFC 9728) | Pointing an agent to the authorization server | Standard since April 2025; MCP requires it |
| Client ID Metadata Document | A client ID that describes the client | Working-group draft 02 (July 2026) |
| ID-JAG | The assertion behind Cross App Access | Working-group draft 04 (May 21, 2026) |
| HTTP Message Signatures (RFC 9421) | The signature under Web Bot Auth | Standard since 2024 |
| Web Bot Auth | Agents signing requests | Working-group draft dated September 1, 2026 |
| GNAP (RFC 9635) | An alternative to OAuth grants | Standard since 2024; no agent product uses it that I found |
| MCP authorization | OAuth between agent apps and tool servers | Spec version of July 28, 2026; optional |
The underlying standards are old enough to rely on. Everything specific to agents is a draft, and a handful of people at Okta, Ping Identity, AWS, Cloudflare, Google, OpenAI and a small workload-identity startup write most of them. Drafts move: ID-JAG must be renewed by November 22, 2026, and Web Bot Auth is months behind its own charter. An individual draft that would have added an agent field to OAuth requests expired without being adopted, so there's still no standard way to say who really did something.
07
Networks and counterparties
Who sits between us and the outcome, and what do they want?
Agent identity runs on several networks at once. Identity providers and the SaaS apps that trust them decide enterprise access, and Cross App Access moves the consent decision from each app to the provider. Content delivery networks verify agents at the edge for millions of sites. Card networks act as identity directories for agents that pay: Visa publishes keys for agents in its protocol, and Mastercard lets only registered agents transact. The FIDO Alliance started a working group on agentic authentication in April 2026, when Google donated its AP2 payments protocol and Mastercard contributed Verifiable Intent.
The counterparty that shows up most in loss chains is the integration vendor holding other companies' tokens: Salesloft's Drift, Klue, Context.ai. Each was a small tool with standing access to much bigger systems.
08
Regulatory layering
Jurisdiction × activity × entity type: is it a license or a certification?
No law is written about agent identity. The layers that apply:
| Layer | Examples | What it means for an agent product |
|---|---|---|
| Security guidance | NIST IR 8587, NIST's NCCoE project, CISA's joint guidance, OWASP | The yardstick after an incident; voluntary outside US federal systems |
| Protocol specifications | The MCP spec's "must" rules | Quoted as what "reasonable" means |
| AI law | EU AI Act Article 50 | Tell people when they're dealing with AI; the text never mentions agents |
| Product liability | The EU Product Liability Directive; a 2025 California law | Software defects become product claims in the EU; in California, "the AI acted on its own" is no defence |
| Payments | Reg E and Reg Z, PSD2 and PSD3, the UK's 2017 payment regulations | Refund rights for unauthorized payments, written before agents |
| Identity wallets | eIDAS 2.0 | Nothing on agents acting for a wallet holder |
| Contracts and insurance | Vendor terms, policy exclusions, questionnaires | Where loss actually gets allocated |
For a B2B product, the contract and the customer's security questionnaire bite before any law.
09
Exceptions and reversals
What goes wrong, and how is it undone?
| Exception | The way back | Who starts it |
|---|---|---|
| An agent is hijacked mid-task | Revoke its tokens and identity; review what it did | Detection, often an outside researcher |
| An integration vendor is breached | Revoke every token it held; every customer reconnects | The platform (Salesforce, Google) |
| An agent deletes or damages something | Restore from backups the agent couldn't reach | The user |
| An agent buys the wrong thing | A non-fraud dispute, if the card issuer takes it | The user |
| An agent's owner leaves | Move sponsorship or disable the agent | The directory or HR feed |
Revocation is the only remedy that works everywhere, and it comes in bulk: every Drift token, every Asana MCP connection after a June 2025 bug, Klue's whole integration. Undo is often possible but not obvious: when Replit's agent deleted a customer's production database in July 2025, it told the user rollback was impossible, and Replit's CEO later said a one-click restore existed. Payment reversals were designed for payments nobody authorized, which an agent's purchase may not be.
10
Liability allocation
When it fails, who pays?
| Failure | Who absorbs it first | How |
|---|---|---|
| A hijacked agent misuses a user's access | The user or their employer | The agent makers' terms make the user responsible for the agent's actions |
| An integration vendor's token store is stolen | That vendor's customers, in forensics and rotation | Lawsuits aimed at the platform; the vendor's cap limits the rest |
| An agent with write access destroys data | The customer | Terms exclude lost data; refunds are goodwill |
| An agent buys the wrong thing | The consumer or the merchant | Probably counts as authorized; no network rule yet |
| A spoofed agent scrapes a site | The site owner | Bot-defence costs |
In every case I found, the money stayed where the contract put it, on the user. Vendors paid in engineering and reputation: Replit separated development and production databases, and GitHub said it would shorten token lifetimes for package publishing.