Agent Identity, Authorization & Payments

Agent Identity, Authorization & Payments

The trust / permission / value layer for autonomous AI agents acting with delegated authority. When an agent can browse, call tools, move data, and spend money on a user’s behalf, three questions must be answered before it acts: Who is this agent? (identity), What is it allowed to do, for whom, and for how long? (authorization), and How does it pay, within what bounds, with what audit trail? (payments). This skill is the agent-specific answer to all three. It is current to mid-2026 and is explicit about what is a ratified standard, a draft, a vendor GA, or an announcement — this area is moving fast and much of it is nascent.

When to use / Skip

Use this skill when you are: giving an agent its own identity distinct from the user’s; wiring OAuth 2.1 on-behalf-of / token-exchange delegation; issuing scoped least-privilege short-lived tokens; figuring out how an agent gets authorized to call MCP servers; evaluating non-human / agentic identity vendors; standing up a token vault / credential broker; adding human-in-the-loop approval; or letting an agent transact with spend caps, mandates, and an audit trail.

Skip / defer:

Why agents need their own identity

An agent is neither a human nor a classic service: it is an intermediary that acts on a human’s behalf yet is not that human. Today’s identity systems offer two bad defaults, both of which misidentify the agent:

  1. Impersonation (agent borrows the user’s token/session). Trivial to ship — just pass the user’s token — but the agent inherits every permission the user holds, the audit trail collapses into a single human identity across all downstream hops, and a prompt injection becomes a confused-deputy attack: an attacker who controls part of the agent’s context (an email, ticket, PDF, webpage) can redirect the agent’s standing authority to exfiltrate data. The token authenticates correctly the entire way.
  2. Shared / static service account (long-lived API key). Individual agent behavior becomes unattributable — logs show which account acted, not which agent or which user delegated — and revoking one misbehaving agent revokes access for every agent on that account.

Both are the same root failure: overscoped, long-lived, shared credentials. The consensus fix (CyberArk, Red Hat, Descope, Microsoft, AWS, multiple 2025-26 arXiv papers) is dedicated agentic identity: each agent gets short-lived, scoped credentials bound to a specific user + agent + task, so blast radius is bounded and an agent can be revoked without touching the human. A separate identity does not stop prompt injection, but narrow agent-specific scopes sharply reduce what a confused deputy can do.

The community term is non-human identity (NHI) / agentic identity — treated as a first-class identity type alongside humans and services. Cryptographic foundations being adopted: workload identity (SPIFFE/SPIRE X.509 / JWT-SVIDs, optionally bound to a measured workload via remote attestation on TDX / SEV-SNP / Nitro Enclaves), and DIDs + Verifiable Credentials for cross-org “agent passports.”

Agent authorization & delegation

Delegation primitives (the standards)

Scoped, least-privilege, short-lived tokens (the discipline)

MCP authorization (agent -> MCP server) — spec rev 2025-06-18

This is the MCP client / agent side of MCP auth. (Authoring the server -> mcp-builder.) The MCP authorization spec selects a subset of OAuth 2.1 + four RFCs:

Token vaulting / credential brokering

So agents and tools never see raw secrets, a broker stores and refreshes downstream credentials and hands the agent only scoped, short-lived tokens at call time. Implementations: Auth0 Token Vault, AWS Bedrock AgentCore Identity token vault (2-legged M2M + 3-legged OBO), Descope Agentic Identity Hub credential vault.

Vendor landscape (identity) — maturity-flagged

Vendor / product What it gives agents Maturity (mid-2026)
Descope Agentic Identity Hub 2.0 Dedicated agent/MCP IdP: OAuth 2.1+PKCE, DCR + CIMD, per-agent/per-tool scopes, consent flows, credential vault; layers on Okta/Entra GA (Jan 2026)
Auth0 “Auth for GenAI” / for AI Agents Agent identities, Token Vault, async (human-in-the-loop) authz, FGA for RAG, MCP-server auth, Cross-App Access GA-ish, 2025-2026
Okta Cross-App Access (CAA) Open protocol extending OAuth; IdP-mediated agent/app consent (Okta + Auth0 are one company) Emerging protocol
Microsoft Entra Agent ID Agent identity = special service principal w/ no own creds; created from an agent identity blueprint that holds federated creds + acquires tokens via OBO; Conditional Access templates; tenant-bound GA (2025)
WorkOS Agent identity + OBO flows; provisions Entra Agent Identities GA; Entra partner (Nov 2025)
AWS Bedrock AgentCore Identity NHI service: token vault, 2-/3-legged OAuth, prebuilt providers, integrates Okta/Entra/Cognito; Gateway does MCP inbound/outbound auth Launched Aug 15 2025
Stytch Connected Apps Turn your app into an OAuth/OIDC auth server for agents; MCP-ready (DCR, scoped), token lifecycle + revocation GA
Clerk App-developer OAuth + scoped tokens + MCP auth GA
SPIFFE/SPIRE (+ attestation) Workload identity floor: X.509/JWT-SVIDs, bind token issuance to a measured workload Mature (workload), emerging for agents

Agentic payments & commerce

Cross-cutting model: a user grants bounded spending authority (spend caps, allowances, mandates); the agent transacts; every step is logged; tokenization keeps raw card data away from agents/merchants; disputes/fraud are handled via mandates-as-evidence, “know your agent” verification, and real-time network signals.

Google AP2 (Agent Payments Protocol) — open spec, v0.2 (DRAFT)

A security layer that composes into a commerce protocol (designed for the Universal Commerce Protocol + A2A), expressing intent/payment as Verifiable Digital Credentials (VDCs) secured as SD-JWTs.

Terminology in transition — present honestly. The canonical core spec (ap2-protocol.org, v0.2, Google) now defines two mandates: a Checkout Mandate (secures what is bought; merchant-built, user-signed) and a Payment Mandate (proves to the Credential Provider/Network/issuer the agent is authorized to pay), across five roles (Shopping Agent, Credential Provider, Merchant, Merchant Payment Processor, Network). The earlier GitHub specification.md + A2A-extension docs use a three-mandate framing — Intent + Cart + Payment — where “Cart” is being renamed to “Checkout.”

Coinbase x402 — HTTP-native stablecoin payments (spec v2, 2025-12-09)

Revives HTTP 402 Payment Required for instant USDC settlement over HTTP, for humans and agents, with no accounts/sessions. Launched May 6 2025.

Flow: client requests a resource -> server returns 402 with a PAYMENT-REQUIRED header -> client returns a PAYMENT-SIGNATURE header carrying a signed PaymentPayload -> server verifies/settles locally or via a facilitator (/verify, /settle) -> PAYMENT-RESPONSE header on success.

Agentic Commerce Protocol (ACP) — OpenAI + Stripe (+ Meta), open, BETA

Launched Sept 29 2025 (“Buy it in ChatGPT” / Instant Checkout). Apache-2.0, jointly governed by OpenAI + Stripe. The merchant stays merchant of record; ChatGPT relays order details, the merchant accepts/declines and charges via its own PSP. Building blocks: Agentic Checkout, Cart & Feed, Delegate Payment, Delegate Authentication (OAuth 2.0), Orders & Webhooks.

Card-network programs (ANNOUNCEMENTS / pilots, Apr 2025+)

Agent-native / crypto startups

Integration patterns

1. Agent calls a protected MCP server (client side):

agent -> MCP server: request (no token)
MCP server -> agent: 401 + WWW-Authenticate: resource_metadata=".../.well-known/oauth-protected-resource"
agent: GET that metadata -> read authorization_servers -> GET /.well-known/oauth-authorization-server
agent: OAuth 2.1 + PKCE; send resource=<canonical MCP URI> on BOTH /authorize and /token  (RFC 8707)
auth server -> agent: access token (audience = that MCP server)
agent -> MCP server: request + Authorization: Bearer <token>   (header, never query string)

2. Multi-hop delegation (orchestrator -> sub-agent/tool), RFC 8693:

hold: delegated token (sub=user, act={sub:agent})
per downstream D: token-exchange -> new token scoped to D's scopes + audience=D
                 (act chain preserved; original credential never forwarded)

3. Autonomous AP2 purchase (human-not-present), conceptual:

user signs Intent Mandate {merchants allow-list, sku/refund constraints, intent_expiry}
  -> open Payment/Checkout mandates carry agent public key in cnf, minimal exp
shopping agent assembles closed Checkout + Payment Mandate, signs with agent_sk, links via hash(checkout_jwt)
credential provider verifies mandates -> issues scoped payment token
merchant verifies mandate vs cart + constraints -> charges token; receipts -> dispute evidence

4. ACP delegated payment (allowance-bounded):

buyer saves method in ChatGPT
OpenAI -> merchant PSP: POST /agentic_commerce/delegate_payment
  Allowance{reason:one_time, max_amount, currency, checkout_session_id, merchant_id, expires_at}
PSP -> scoped single-use token (outside PCI scope)
OpenAI -> forwards token at complete-checkout; merchant (merchant of record) charges via its PSP

Anti-patterns & failure modes

2025-2026 frontier & maturity flags

Sources

  1. MCP Authorization spec (2025-06-18): https://modelcontextprotocol.io/specification/2025-06-18/basic/authorization
  2. RFC 9728 Protected Resource Metadata: https://datatracker.ietf.org/doc/html/rfc9728
  3. RFC 8693 OAuth 2.0 Token Exchange: https://rfc-editor.org/rfc/rfc8693
  4. IETF draft-oauth-ai-agents-on-behalf-of-user-02: https://datatracker.ietf.org/doc/html/draft-oauth-ai-agents-on-behalf-of-user-02
  5. WorkOS — OAuth On-Behalf-Of for AI agents: https://workos.com/blog/oauth-on-behalf-of-ai-agents
  6. WorkOS — MCP Authorization in 5 OAuth specs: https://workos.com/blog/mcp-authorization-in-5-easy-oauth-specs
  7. Descope — MCP Auth Spec / Token Exchange / Agentic Identity Hub: https://www.descope.com/blog/post/mcp-auth-spec , /learn/post/oauth-token-exchange , /blog/post/agentic-identity-hub
  8. Auth0 — Auth for AI Agents: https://auth0.com/ai , https://auth0.com/docs/get-started/auth0-for-ai-agents
  9. Microsoft Entra Agent ID + OBO flow: https://learn.microsoft.com/en-us/entra/agent-id/agent-identities , /identity-platform/agent-on-behalf-of-oauth-flow
  10. AWS Bedrock AgentCore Identity: https://aws.amazon.com/blogs/machine-learning/introducing-amazon-bedrock-agentcore-identity-securing-agentic-ai-at-scale/ , https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/identity-overview.html
  11. Stytch — AI agents & Connected Apps: https://stytch.com/docs/get-started/guides/ai-agents-and-apps
  12. Red Hat — Zero trust for AI agents (delegation vs impersonation): https://next.redhat.com/2026/05/21/zero-trust-for-ai-agents-why-delegation-beats-impersonation/
  13. CyberArk — Zero Trust for AI Agents: https://developer.cyberark.com/blog/zero-trust-for-ai-agents-delegation-identity-and-access-control/
  14. AP2 canonical spec v0.2 (Google): https://ap2-protocol.org/ap2/specification/ + GitHub https://github.com/google-agentic-commerce/AP2/blob/main/docs/specification.md
  15. a2a-x402 spec v0.2: https://github.com/google-agentic-commerce/a2a-x402/blob/main/spec/v0.2/spec.md
  16. Coinbase x402 spec v2 (2025-12-09) + CDP: https://github.com/coinbase/x402/blob/main/specs/x402-specification-v2.md , https://docs.cdp.coinbase.com/x402/welcome
  17. OpenAI — Buy it in ChatGPT + Delegated Payment Spec: https://openai.com/index/buy-it-in-chatgpt/ , https://developers.openai.com/commerce/specs/payment
  18. Stripe — Agentic Commerce Protocol + Shared Payment Token: https://docs.stripe.com/agentic-commerce/acp , https://stripe.com/blog/developing-an-open-standard-for-agentic-commerce
  19. Visa Intelligent Commerce (Apr 30 2025): https://investor.visa.com/news/news-details/2025/Find-and-Buy-with-AI-Visa-Unveils-New-Era-of-Commerce/
  20. Mastercard Agent Pay (Apr 29 2025): https://www.mastercard.com/us/en/news-and-trends/press/2025/april/mastercard-unveils-agent-pay
  21. Skyfire (KYA, KYAPay): https://skyfire.xyz/skyfire-launches-identity-and-payments-for-autonomous-ai-agents/
  22. Catena Labs: https://catena.com/about ; Nekuda SDK: https://docs.nekuda.ai/system-overview
  23. arXiv 2505.19301 — Zero-Trust Identity Framework for Agentic AI (DIDs/VCs): https://arxiv.org/html/2505.19301

Boundary note: human/workforce/workload IAM + the Okta identity platform defer to okta-expert; MCP server authoring defers to mcp-builder (this covers only the agent/client side of MCP auth). Identity is ratified-standard-anchored; payments are mostly draft/beta/announcement — every payment claim is maturity-flagged and date-stamped.