<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.30 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-chen-agent-decoupled-authorization-model-00" category="info" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="AI Agent Authorization">A Decoupled Authorization Model for Agent2Agent</title>
    <seriesInfo name="Internet-Draft" value="draft-chen-agent-decoupled-authorization-model-00"/>
    <author initials="M." surname="Chen" fullname="Meiling Chen">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <city>BeiJing</city>
          <country>China</country>
        </postal>
        <email>chenmeiling@chinamobile.com</email>
      </address>
    </author>
    <author initials="L." surname="Su" fullname="Li Su">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <city>BeiJing</city>
          <country>China</country>
        </postal>
        <email>suli@chinamobile.com</email>
      </address>
    </author>
    <date year="2026" month="February" day="14"/>
    <area>Security</area>
    <workgroup>Internet Engineering Task Force</workgroup>
    <keyword>Internet-Draft</keyword>
    <keyword>keyword2</keyword>
    <abstract>
      <?line 37?>

<t>This document proposes a framework for dynamic, intent-based authorization for AI Agents. The primary goal is to enable fine-grained, Just-in-Time (JIT) permissions based on an agent's specific intent and behavioral trustworthiness, rather than a long-lived identity or role, achieve decoupling of authorization policies from business operations.</t>
    </abstract>
  </front>
  <middle>
    <?line 41?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>AI Agents, hereafter "agents" represent a significant evolution from traditional scripts or services. They possess the ability to reason, plan, and execute multi-step tasks to achieve a high-level goal. This autonomy, however, creates a significant attack surface. An agent granted broad permissions, if compromised via mechanisms like prompt injection, can cause widespread damage.</t>
      <t>Existing authorization models are ill-suited for this dynamic environment. They typically bind permissions to stable, long-lived identities. Agents, by contrast, are often ephemeral, created in large numbers for specific, short-lived tasks.</t>
      <t>This document proposes a model that decouples authorization decisions from the services themselves. It leverages a Authorization Decision Point (ADP) that makes real-time, context-rich decisions for every action an agent attempts to take. The core of this draft is a standardized "Input Contract" -- a structured data format that a Authorization Execution Point (AEP) MUST provide to the ADP to enable fine-grained, intent-based authorization.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174].</t>
      <ul spacing="normal">
        <li>
          <t>AI Agent (Agent): An autonomous or semi-autonomous software entity that perceives its environment and takes actions to achieve goals.</t>
        </li>
        <li>
          <t>Intent: A declaration of the specific goal or task an agent intends to accomplish. This is typically more granular than a broad scope.</t>
        </li>
        <li>
          <t>Ephemeral Identity: A short-lived, single-purpose identity assigned to an agent for the duration of its task.</t>
        </li>
        <li>
          <t>Authorization Decision Point (ADP): The logical component that evaluates policies and makes authorization decisions (e.g., Permit/Deny).</t>
        </li>
        <li>
          <t>Authorization Execution Point (AEP): The logical component that intercepts an agent's action, requests a decision from the ADP, and enforces that decision.</t>
        </li>
      </ul>
    </section>
    <section anchor="problem-statement">
      <name>Problem Statement</name>
      <t>Traditional authorization mechanisms, often designed for human-to-machine interactions, are ill-suited for the dynamic and large-scale nature of agent-to-agent communication. The key challenges are categorized as follows. Traditional authorization mechanisms fail to address the unique characteristics of AI Agents in several key areas.</t>
      <t>Scale and Complexity Explosion: In a system with N agents and M resources, the number of potential authorization rules can grow combinatorially. Managing these rules through static methods like Access Control Lists (ACLs) becomes untenable.</t>
      <t>Static Permissions vs Dynamic Intent: Assigning static roles or scopes (e.g., read:all, write:all) is overly permissive. An agent's authority should be scoped precisely to its immediate intent (e.g., "query flight from XX to XX under $500"), and this authority should be granted just-in-time.</t>
      <t>Identity Lifecycle Mismatch: The high cost and administrative overhead of managing traditional identities (e.g., user accounts, service accounts) are incompatible with the massive scale and ephemeral nature of agents.</t>
      <t>One-Time Trust vs Continuous Risk: An agent's behavior can be subverted at any point in its lifecycle. A successful authentication at the beginning of a session provides no guarantee of trustworthy behavior throughout. A continuous attestation of behavioral patterns is required.</t>
      <t>Flat vs Hierarchical Authority: Agents often delegate tasks to sub-agents. A robust framework must support hierarchical delegation of authority, ensuring a sub-agent's permissions are a strict subset of its parent's, and providing a clear chain of accountability.</t>
      <t>Governance and Auditability: When an undesirable action occurs, tracing the root cause across a chain of agent interactions is a formidable challenge.</t>
    </section>
    <section anchor="analysis-of-oauth-for-agent-to-agent-authorization">
      <name>Analysis of Oauth for Agent-to-Agent Authorization</name>
      <t>The OAuth 2.0 Authorization Framework <xref target="RFC6749"/> and its related RFCs provide a strong foundation for secure, delegated access.</t>
      <section anchor="what-oauth20-can-do">
        <name>What OAuth2.0 can do</name>
        <t>OAuth 2.0 effectively addresses the foundational aspects of secure delegation and credential management. It provides:</t>
        <ul spacing="normal">
          <li>
            <t>A standard mechanism for Delegated Authorization, allowing agents to act on behalf of a user.</t>
          </li>
          <li>
            <t>A standard for Credential Passing (Tokens) crucial for interoperability.</t>
          </li>
          <li>
            <t>A grant type for Machine-to-Machine Authentication (Client Credentials).</t>
          </li>
          <li>
            <t>A mechanism for Limited-Scope and Time-Bound Access via scopes and token expiration.</t>
          </li>
        </ul>
      </section>
      <section anchor="remaining-challenges-and-open-issues">
        <name>Remaining Challenges and Open Issues</name>
        <t>While indispensable, OAuth 2.0 is primarily a framework for delegation and token issuance. However, there are still some issues that need to be addressed on the AI agent internet.</t>
        <t>Fine-Grained Policy Decision: The parameter "scope" in OAuth 2.0 is often too coarse for complex authorization logic. A resource server agent receiving a token with a read:data scope still needs to answer more detailed, context-specific questions (e.g., "Which specific record?", "Under what conditions?").</t>
        <t>Unified Policy Language and Governance: OAuth 2.0 does not define a language for expressing authorization policies or a methodology for managing them. The interpretation of a scope is left to each agent's implementation. This makes it difficult to centrally manage, audit, or reason about the authorization policies across the entire system.</t>
      </section>
    </section>
    <section anchor="decoupled-authorization-model">
      <name>Decoupled Authorization Model</name>
      <t>To address the open issues, this document proposes a Decoupled Authorization Model. This model complements OAuth 2.0 by externalizing the fine-grained policy decision logic from the agent's service-specific business logic.</t>
      <section anchor="architecture-overview">
        <name>Architecture overview</name>
        <t>The model is based on the separation of the Authorization Decision Point (ADP) from the Authorization Execution Point (AEP). This decouples the "what" (the business logic) from the "if" (the authorization logic).</t>
        <artwork><![CDATA[
                   +---------------------+                           
                   |Resource Agent       |                           
                   |                     |                           
                   | +-------------+     |                           
                   | |Authorization|     |                           
+------+           | | Execution   |     |                           
|      |1.Request  | |  Point(AEP) |     |                           
|  AI  |---------->| |             | 3.Authorization +-------------+
| Agent|with Token | | 2.Intercept |    Query        |Authorization|
|      |           | | &Construct  +-----+---------->|Decision     |
|      |5.Response | |   Query     |<----+-----------+Point        |
|      |<----------+ +------+------+  4.Decision     +-------------+
+------+Allow/Deny |        |            |                           
                   | +------+-----------+|                           
                   | |Agent's Core Logic||                           
                   | +------------------+|                           
                   +---------------------+                           
                                                         
      Figure 1: Decoupled Authorization Model Interaction Flow
]]></artwork>
      </section>
      <section anchor="authorization-execution-pointaep">
        <name>Authorization Execution Point(AEP)</name>
        <t>The AEP is a logical gateway protecting an agent's capabilities, responsible for constructing the complete context for the decision:</t>
        <ul spacing="normal">
          <li>
            <t>Intercept an incoming request (Step 2).</t>
          </li>
          <li>
            <t>Perform initial validation of credentials (e.g., a JWT access token).</t>
          </li>
          <li>
            <t>Assemble a query for the ADP, containing all relevant context (e.g., token claims, request details).</t>
          </li>
          <li>
            <t>Send the query to the ADP (Step 3) and receive a simple Allow or Deny decision (Step 4).</t>
          </li>
          <li>
            <t>Enforce the decision by either forwarding the request to the agent's core logic or rejecting it (Step 5).</t>
          </li>
        </ul>
      </section>
      <section anchor="authorization-decision-pointadp">
        <name>Authorization Decision Point(ADP)</name>
        <t>The ADP is the authorization "brain", responsible for evaluating the context against a set of policies:                     <br/>
- Receive authorization queries from the AEP.
- Maintain a current set of authorization policies written in an expressive, declarative language.
- Evaluate the query against the policies and data to produce a definitive decision.
- The ADP SHOULD be deployable in a decentralized manner to ensure low latency and high availability.</t>
      </section>
      <section anchor="input">
        <name>Input</name>
        <t>TBD</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TBD</t>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <t>TBD</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-informative-references">
      <name>Informative References</name>
      <reference anchor="RFC6749">
        <front>
          <title>The OAuth 2.0 Authorization Framework</title>
          <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
          <date month="October" year="2012"/>
          <abstract>
            <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6749"/>
        <seriesInfo name="DOI" value="10.17487/RFC6749"/>
      </reference>
    </references>
    <?line 165?>



  </back>
  <!-- ##markdown-source:
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
xFzTV6Tkz/8Ck2tlpmYlAAA=

-->

</rfc>
