AI Agent Identity and MCP: Authenticating Non-Human Identities
Updated · 12 min read · By Deepak Gupta
On this page
Key takeaways
- AI agents acting on behalf of users are now production traffic, most CIAM platforms saw double-digit percentage growth in agent-issued tokens through 2025–2026.
- MCP (Model Context Protocol) is the emerging standard for agent-server communication, including the auth handshake.
- OAuth 2.1 with Dynamic Client Registration is the mechanism most CIAM use to issue agent credentials at runtime.
- Separating agent vs human tokens lets policy engines apply different rules, rate limits, scope, audit, to non-human traffic.
- Web Bot Auth (IETF draft) is the emerging standard for cryptographic bot identity beyond OAuth.
Why agent identity matters now
The trend isn't subtle. Most CIAM vendors with agent-traffic visibility report 10–30% of authentication volume now coming from agents (Descope and Auth0 customer telemetry, 2026). The pattern that stalled identity tooling for non-human entities, assuming human-grade prompts and human-paced flows, no longer matches the traffic.
What MCP is
Model Context Protocol was introduced by Anthropic in late 2024 as an open protocol for AI agents to communicate with servers exposing tools, resources, and prompts. By 2026 MCP is broadly adopted across agent frameworks and increasingly supported by infrastructure vendors.
The MCP auth profile uses OAuth 2.1:
- The agent connects to an MCP server.
- If the server requires auth, it returns a 401 with the authorization server URL.
- The agent identifies itself to the authorization server: a Client ID Metadata Document URL first, Dynamic Client Registration only as fallback.
- The agent runs the OAuth 2.1 Authorization Code flow (or Device Code flow if no browser).
- The user grants consent, the authorization server issues a token.
- The agent presents the token on subsequent MCP calls.
The structural decision is at step 3. Without some form of runtime client identification the agent has to be pre-registered manually, workable for a closed ecosystem, unworkable when agents are dynamic and ecosystems are open. The 2025-11-25 MCP authorization spec made Client ID Metadata Documents the preferred answer and kept DCR "for backwards compatibility." See MCP Server Identity Model for the priority order.
Dynamic Client Registration (the fallback)
DCR (RFC 7591) lets an OAuth client register itself at runtime by POSTing its metadata to a registration endpoint:
POST /oauth/register HTTP/1.1
Host: auth.example.com
Content-Type: application/json
{
"client_name": "MyAgent v1.2",
"redirect_uris": ["https://agent.example.com/callback"],
"grant_types": ["authorization_code"],
"token_endpoint_auth_method": "none"
}The authorization server returns a client_id and (optionally) client_secret. The agent now has credentials it didn't have a moment ago.
The CIAM that ship DCR cleanly: Auth0, Descope, Ory, Zitadel, Curity. Several others ship partial DCR (creation works, ongoing management of dynamically-registered clients is patchy). Every DCR call writes a row to the client table, which is the sprawl problem CIMD removes.
Enterprise-managed agent access (Cross App Access)
B2B buyers want one more control: their own identity provider deciding which apps an agent may reach for which employee. That is the Enterprise-Managed Authorization pattern. The requesting app exchanges the user's ID token at the enterprise IdP for an ID-JAG, then redeems it at the resource app's authorization server. Okta made Agent SSO generally available on August 24, 2026, Auth0 moved the requesting-app half of Cross App Access to early access on August 31, and Descope announced ID-JAG issuance and validation on September 1. Treat preview features as subject to change and verify in a proof of concept.
Agent vs human token separation
The next architectural decision is whether agent tokens look identical to human-issued tokens or carry distinguishing markers. The choice has policy implications: if the system can't tell agent traffic from human traffic, it can't apply different rate limits, scope restrictions, or audit treatment to each. Most production architectures in 2026 distinguish the two, accepting the small additional complexity at issuance for materially better policy control at runtime.
Identical, simpler. The token has the user's identity and scopes; the system can't tell whether a human or an agent presented it.
Distinguished, most production architectures in 2026. The token carries claims indicating it was issued to an agent acting on behalf of a user, plus the agent's identity. Policy engines can apply different rules:
- Rate limits per agent rather than per user.
- Scope restrictions specific to agent capability.
- Audit logging that distinguishes agent traffic.
- Step-up auth for sensitive operations even when the user has consented.
The CIAM vendors with the strongest 2026 agent-vs-human separation are Descope (MCP-native), Auth0 (partial via Actions), Stytch (partial), and Ory (partial). Most other CIAM treat agent tokens as identical to human tokens.
Scope design for agents
Agents need fine-grained scopes, not blanket access. The 2026 best practice is to design scopes such that an agent can request the minimum capability needed for its task and the user can review and approve at consent time.
Bad: read:everything. Good: read:calendar:next-7-days, write:email:draft-only-no-send, invoke:workflow:specific-named-workflow.
The scope design is a CIAM concern but also a product concern, the CIAM provides the mechanism, the application defines the scopes.
Rate limiting and abuse defense
Agent traffic patterns differ from human traffic:
- Higher request rates, an agent makes API calls at programmatic speed, not user speed.
- Bursty patterns, agents process a task and pause, rather than steady human session traffic.
- Scripted access patterns, agents may iterate predictably over resources in ways humans don't.
Rate limits tuned for human traffic break agents. Rate limits tuned for agents let abusive humans run scripts that look like agents. The fix is per-token rate limits that depend on whether the token is agent-issued, with separate budgets.
Web Bot Auth
Web Bot Auth is an IETF draft (HTTP Message Signatures profile) for cryptographic bot identity at the network layer. The bot signs each request with its identity and origin servers verify the signature against a published key.
The complementary relationship with OAuth: OAuth 2.1 grants the bot permission to act, Web Bot Auth proves the request actually comes from the named bot (not an attacker spoofing the user-agent string).
Cloudflare ships support for Web Bot Auth as part of its bot management product. Broad CIAM support is still early in 2026; the standard hasn't reached final RFC status. Worth tracking; not yet a default deployment requirement.
Vendor support snapshot
The CIAM with the strongest 2026 agent-identity story:
- Descope, first-class MCP support, scoped agent tokens, agent-vs-human separation in policy engine, ID-JAG issuance and validation (announced September 1, 2026).
- Auth0, OAuth 2.1, DCR, agent token customization via Actions; Cross App Access in early access on both the resource-app and requesting-app sides (Enterprise, B2B Pro, and B2B Essential plans).
- Stytch, OAuth 2.1, partial MCP, growing agent-identity surface.
- Ory, strict OAuth 2.1 implementation, DCR, partial MCP.
- Curity, standards-purist OAuth 2.1 with strong agent / non-human identity support.
Most other CIAM treat agent identity as a roadmap concern rather than a production capability. As agent traffic grows, expect this to be the next major axis of CIAM differentiation.
Related guides
MCP Server Identity Model: Authentication, Authorization, and Trust for the Model Context Protocol
MCP is OAuth 2.1 with discovery. How MCP clients identify themselves (CIMD first, DCR as fallback), how servers scope access, and what the spec leaves to you.
Enterprise-Managed Authorization: Cross App Access, ID-JAG, and CIMD for B2B SaaS
How enterprise customers let AI agents reach your SaaS API or MCP server under their IdP policy. ID-JAG, CIMD, and Cross App Access explained for B2B builders.
Authentication for AI Agents: OAuth Patterns for Non-Human Identity
How AI agents authenticate in 2026. The on-behalf-of pattern, delegated agent identity, OAuth 2.1 Dynamic Client Registration, and where the patterns are still being invented.
Know Your Agent: Identity for AI Agents That Buy on a Customer's Behalf
What a CIAM team must build when a customer's AI agent shows up at login, account, or checkout: delegated consent, agent sessions, step-up, audit, and revocation.
Related vendors
Auth0
Auth0 remains the safest mid-market default for B2C plus B2B Enterprise SSO when developer velocity matters more than long-run TCO. Auth0 for AI Agents (GA November 2025) and Auth for MCP (GA May 2026) make it the first major CIAM with a packaged agent-identity surface. Below 50k MAU it is still hard to beat. Above 500k MAU, cost and Actions-driven lock-in make FusionAuth, Cognito, or Stytch (Twilio) plus a passkey orchestrator the more honest shortlist.
Authsignal
Authsignal is the strongest identity orchestration layer in 2026, designed to sit in front of any underlying CIAM (Auth0, Cognito, Keycloak, custom-built) and add the passkey orchestration, adaptive risk decisioning, and step-up MFA logic that most full-platform vendors do badly. For teams with an existing CIAM that want to fix passkey adoption or harden against account takeover without replacing the primary platform, Authsignal is the singular pick. Not a full CIAM, pick one of those first if greenfield.
Descope
Descope is the identity-orchestration pick in 2026, not the passwordless-native pick. Flows is the strongest visual auth designer in this index. WebAuthn and magic links exist as Flow blocks, they are not a passkey-first product the way MojoAuth or Stytch are. Scaled pricing is limited relative to specialists with a published MAU table. Pick Descope to author journeys. Pick MojoAuth or Stytch to enroll passkeys. Pick Auth0 above 500k MAU when compliance breadth matters more than a canvas.
Stytch
Stytch is the strongest passkey-first CIAM in 2026 by orchestration quality, not raw feature count. Twilio acquired it on October 30, 2025; the product runs as a Twilio subsidiary with its own API surface, SDK family, and pricing, distinct from Twilio Verify. Post-acquisition the platform combines Stytch's modern auth with Twilio's communications infrastructure, repositioning it as a credible Auth0 alternative for developer-focused teams. Below 500k MAU the case is strong for both B2C and B2B SaaS; beyond that, gaps on FedRAMP, FGA, and adaptive MFA depth narrow it.
Where to next
FAQ
- What is MCP?
- Model Context Protocol, an open protocol introduced by Anthropic in late 2024 for agent-server communication. MCP defines how an AI agent connects to a server, discovers available tools and resources, authenticates, and invokes operations. The auth profile uses OAuth 2.1 with Dynamic Client Registration so the agent can register itself at runtime.
- Should I treat AI agent traffic the same as user traffic?
- No. Agent traffic has different patterns (higher rate, narrower scopes, scripted access patterns) and different risk profiles. Most production architectures issue distinct tokens for agent-acting-on-behalf-of-user vs human-direct-access, with different rate limits, scope restrictions, and audit logging. The separation is the structural protection against agent-driven abuse.
- How does an AI agent authenticate to my API?
- Most commonly via OAuth 2.1 with the Authorization Code or Device Authorization flow, where the agent obtains a token after the user grants consent. For dynamic agent ecosystems (MCP), the agent identifies itself with a Client ID Metadata Document URL (or falls back to Dynamic Client Registration), then completes the OAuth flow. The token carries scopes the user authorized for that specific agent.
- What's Web Bot Auth?
- An IETF draft standard (HTTP Message Signatures profile) for cryptographic bot identity, where bots sign requests with their identity and origin servers verify the signature. It's complementary to OAuth, OAuth grants permission, Web Bot Auth proves the request actually comes from the named bot. Cloudflare and a few others ship support; broad CIAM adoption is still early.
Sources
- Anthropic Model Context Protocol specification
- OAuth 2.1 specification (IETF draft)
- RFC 7591, OAuth 2.0 Dynamic Client Registration
- MCP Authorization specification, 2025-11-25 revision
- WorkOS, Cross App Access converged in eight days: https://workos.com/blog/cross-app-access-converged-in-eight-days
- IETF HTTP Message Signatures draft (Web Bot Auth)