OAuth Authorization for AI Agents: What the Four Major Extensions Cover and What Gaps Remain

Four OAuth extensions each bind differently, but agent authorization still has three key gaps.
The article analyzes the shortcomings of traditional OAuth in AI agent scenarios: tokens are bound to "user + client application" rather than "user + agent instance + specific task." The author examines the binding capabilities of four OAuth extensions—RAR refines authorization scope, DPoP binds tokens to holders, CIMD enables verifiable client identity, and Transaction Tokens come closest to task-level authorization but lack ecosystem maturity. Combined, they still leave three gaps: cross-agent delegation chains cannot be traced, consistency between authorization intent and actual behavior lacks protocol-layer verification, and there is no unified solution for token lifecycle management in long-running tasks. In developer practice, the RAR+DPoP combination is more pragmatic, but task orchestration, audit logs, and cross-domain trust still require application-layer design.
Why AI Agents Need Dedicated OAuth Extensions
When AI agents access third-party APIs on behalf of users, the traditional OAuth flow exposes a fundamental problem: authorization tokens are typically bound to "user + client application," not "user + specific agent instance + the specific task it is executing." This means an agent granted broad permissions may invoke far more resources than expected without the user's knowledge.
The four OAuth extensions frequently cited in the industry—RAR (Rich Authorization Requests), DPoP (Demonstrating Proof of Possession), CIMD (Client ID Metadata Document), and Transaction Tokens—are seen as candidate solutions to fill this gap. But understanding what each of them actually "binds" is more valuable than vaguely saying "we'll solve it with OAuth."
OAuth 2.0 is the most widely used authorization framework in the industry. Its core idea is to let users grant access tokens to third-party clients through an authorization server without sharing passwords. Standard OAuth authorization granularity is typically expressed as scope strings, and tokens are bound to the "user + client application" pair. This design works well in traditional web applications because client behavior boundaries are relatively fixed and can be pre-audited. But AI agent behavior is dynamic and autonomous—the same client may execute multiple tasks on behalf of different users, and standard OAuth's coarse-grained binding cannot express "what this authorization is specifically for." It is against this backdrop that the IETF community has proposed several OAuth extension drafts attempting to inject finer-grained contextual information into tokens.
What Each of the Four Extensions Binds
RAR: Writing Authorization Scope More Precisely
RAR allows clients to carry structured authorization_details in authorization requests, using JSON to describe the specific operations to be performed rather than just providing a coarse-grained scope string. For AI agents, this means declaring "read a user's calendar events within a one-week range" instead of a vague "calendar.read."
RAR's value lies in making authorization intent reviewable and restrictable. But it does not itself verify the requester's identity, nor does it prevent token misappropriation—it merely writes down "what is to be done" clearly.
DPoP: Binding Tokens to Holders
DPoP binds access tokens to a specific key pair by having clients prove possession of a private key. Even if a token is intercepted, an attacker without the corresponding private key cannot use it. For agents running in untrusted environments, this reduces the risk of abuse after token leakage.
However, DPoP binds "who holds the token," not "on whose behalf and for what task the token holder is acting." An agent legitimately holding a DPoP key can still do anything within the authorization scope.
Bearer Tokens are the default token type in OAuth 2.0, characterized by "whoever holds it can use it," without verifying the requester's identity. Once a token leaks—whether through logs, man-in-the-middle attacks, or untrusted runtime environments—attackers can directly impersonate the holder. DPoP is a sender-constrained token mechanism: clients must attach a JWT proof signed with a private key during both token requests and resource requests. The authorization server embeds the public key fingerprint into the access token, and the resource server verifies that the requester indeed holds the corresponding private key. A similar approach is mTLS certificate binding, but DPoP does not rely on mutual TLS, has a lower deployment barrier, and is therefore better suited for agents running in cloud-native or edge environments.
CIMD: Making Client Identity Discoverable and Verifiable
CIMD describes client identity using metadata documents hosted on HTTPS, replacing static client_secret. This allows authorization servers to dynamically obtain client declaration information and facilitates identity management for agent frameworks in large-scale deployments.
Its contribution lies in verifiability at the identity level, but it likewise does not address contextual constraints for individual tasks.
Traditional OAuth client registration relies on static client_id and client_secret, where keys must be pre-configured and safeguarded—easily becoming an operational burden and leakage risk point in large-scale deployments. CIMD's approach is to publish client identity as an HTTPS-hosted metadata document. Authorization servers dynamically obtain the client's name, redirect URIs, supported grant types, and other information by parsing the document, thereby reducing dependence on pre-shared keys. This mechanism complements existing Dynamic Client Registration (DCR) and client assertions (private_key_jwt) in the OAuth ecosystem, but CIMD emphasizes identity discoverability and verifiability, making it suitable for unified client identity management in multi-tenant, multi-instance agent framework scenarios.
Transaction Tokens: Issuing Credentials for Individual Transactions
Transaction Tokens take the approach of issuing short-lived tokens for a specific transaction, binding together user identity, transaction content, and requester. This is the mechanism closest to "task-level authorization" among the four solutions, but it relies on additional coordination between the transaction initiator and the authorizing party, and ecosystem support is not yet mature.
Three Unresolved Problems
According to the original analysis, these four extensions combined still leave three gaps:
First, traceability of cross-agent delegation chains. When one agent hands off a task to another, existing extensions have no standardized way to express "which intermediaries the original user authorization passed through." DPoP proves the current holder but cannot reconstruct the delegation chain.
Second, consistency verification between authorization intent and actual behavior. RAR clearly states intent, but resource servers lack a general mechanism to compare whether "the operation declared in the token" matches "the operation actually requested." This requires resource servers to proactively implement verification logic rather than relying on protocol-layer guarantees.
Third, token lifecycle management for long-running tasks. Tasks executed by AI agents may last hours or longer, while short-lived tokens require constant refresh. Scenarios such as permission downgrade during refresh and task interruption recovery have no unified answer across the four extensions.
Practical Implications for Developers
If your system is integrating AI agents, combining RAR and DPoP is currently the more pragmatic choice: the former constrains authorization scope, while the latter reduces token leakage risk. CIMD suits scenarios with a large number of clients requiring dynamic management. Transaction Tokens are better suited for high-value single operations such as finance, but be prepared to supplement coordination logic yourself.
It is important to recognize clearly that these four extensions address the "binding" problem at the OAuth layer, while the complete chain of agent authorization also involves task orchestration, audit logs, and cross-domain trust—all of which still require application-layer design.
One-line Summary
Each of the four OAuth extensions has its own binding focus, but agent authorization still has three key gaps.
Paragraph Summary
The article analyzes the shortcomings of traditional OAuth in AI agent scenarios: tokens are bound to "user + client application" rather than "user + agent instance + specific task." The author examines the binding capabilities of four OAuth extensions one by one—RAR refines authorization scope, DPoP binds tokens to holders, CIMD enables verifiable client identity, and Transaction Tokens come closest to task-level authorization but lack ecosystem maturity. Combined, they still leave three gaps: cross-agent delegation chains cannot be traced, consistency between authorization intent and actual behavior lacks protocol-layer verification, and there is no unified solution for token lifecycle management in long-running tasks. In developer practice, the RAR+DPoP combination is more pragmatic, but task orchestration, audit logs, and cross-domain trust still require application-layer design.
Related articles

Cursor AI Programming in Practice: Build a Student Management System from Scratch in 30 Minutes
A Bilibili creator demonstrates Cursor AI programming: generating a student management system in 30 minutes with natural language. Details on Agent mode, Claude selection, prompt techniques, and thresholds.

Top 20 AI Coding Tools Ranking: From Rock-Solid to Lackluster, a Scored Matrix
Bilibili creator releases top 20 AI coding tools ranking, tiered T0–T4 from rock-solid to lackluster, with Claude Code and Codex tied at T0. This article details the scoring dimensions (capability, reliability, robustness, durability, cost, domestic availability) and tool performances to help developers choose the right AI coding assistant.

Vibe Coding Systematic Tutorial: Master AI-Assisted Programming from Zero
A three-month Vibe Coding tutorial from a Bilibili creator covering Codex, ClaudeCode, and Cursor, from core logic to commercial project practice for beginners.