<?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.31 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-chen-oauth-scope-agent-extensions-00" category="std" consensus="true" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="extensions for Scope">Structured and Constraint Extensions for OAuth Scopes</title>
    <seriesInfo name="Internet-Draft" value="draft-chen-oauth-scope-agent-extensions-00"/>
    <author initials="J." surname="Chen" fullname="Jia Chen">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <city>BeiJing</city>
          <country>China</country>
        </postal>
        <email>chenjia@chinamobile.com</email>
      </address>
    </author>
    <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="March" day="01"/>
    <area>Security</area>
    <workgroup>oauth</workgroup>
    <keyword>Internet-Draft</keyword>
    <keyword>keyword2</keyword>
    <abstract>
      <?line 47?>

<t>This specification defines an extension to the OAuth 2.0 scope
parameter, as specified in RFC 6749, which is used to express the
permissions granted to an access token. The proposed extension
introduces a structured syntax for <tt>scope</tt> values to enable fine-grained
authorization for the installation and execution of Modular Capability
Units (encapsulated and reusable functional modules such as skills)
within Agent ecosystems. However, current mechanisms for authorizing
such modules generally lack a standardized way to express and obtain
consent for the complex, fine-grained permissions they require during
installation.</t>
      <t>This document addresses this limitation by defining a structured
format for the <tt>scope</tt> parameter. The format extends the simple space-
delimited strings with a colon-separated syntax:
[resource_type]:[action]:[target][:constraints]. This syntax allows
for the precise description of permissions for operations such as
file system access, command-line execution, network access, tool
invocation, and scheduled tasks. These extensions provide a
standardized, machine-readable way to request, convey, and validate
detailed permissions, thereby enhancing users' security control over
their resources while maintaining compatibility with the existing
OAuth token issuance and validation flows.</t>
    </abstract>
  </front>
  <middle>
    <?line 75?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The OAuth 2.0 <tt>scope</tt> parameter <xref target="RFC6749"/> serves as a widely adopted mechanism for expressing permissions, defining the access token's authority. However, in emerging scenarios such as the installation and execution of third-party skills within Agent ecosystems which require the declaration of complex, fine-grained operational permissions its expressive power becomes limited.</t>
      <section anchor="the-need-for-scope-extensions-in-ai-agent-ecosystems">
        <name>The Need for <tt>scope</tt> Extensions in AI Agent Ecosystems</name>
        <t>In current Agent architectures, users typically extend their Agent's
   functionality by installing third-party developed Modular Capability Units.
   These Modular Capability Units  MAY be specifically called "Skills" etc.,</t>
        <t>but their essence is installable components that
   add specific capabilities to an Agent.  However, this installation
   process presents significant security and privacy risks:</t>
        <ul spacing="normal">
          <li>
            <t>Lack of Source Authentication: Users cannot verify the identity
   of the capability module's publisher or the integrity of its
   code.</t>
          </li>
          <li>
            <t>Coarse-Grained or No Permission Control: During installation,
   capability modules either obtain all requested permissions
   (often presented as a broad, unstructured list) or rely entirely
   on user trust, lacking a standardized process for fine-grained,
   interactive authorization confirmation at installation time.</t>
          </li>
          <li>
            <t>Runtime Permission Abuse Risk: Once installed, capability
   modules MAY access local or remote resources with permissions
   exceeding user expectations.  </t>
            <t>
The OAuth 2.0 framework <xref target="RFC6749"/> provides a
standardized mechanism for delegated authorization.  This proposal
applies this framework to the Agent skill authorization model and,
crucially, extends the OAuth <tt>scope</tt> parameter to support the
expression of fine-grained permissions required by Modular Capability Units such as skills.
This allows the installation and execution of a skill to be modeled
as a process where a client obtains user consent for a specific set
of structured permissions (<tt>scope</tt>), which are then executed during
resource access.</t>
          </li>
        </ul>
      </section>
      <section anchor="role-mapping-for-the-skill-installation-and-authorization-context">
        <name>Role Mapping for the Skill Installation and Authorization Context</name>
        <t>This proposal applies the OAuth framework to a specific interaction pattern within Agent ecosystems: the installation and subsequent execution of Modular Capability Units (such as skills). To provide context for how the extended scopeparameter is used within this pattern, the entities involved are mapped to standard OAuth 2.0 roles as follows:</t>
        <t>Resource Owner (RO):  The end-user, who grants permissions.</t>
        <t>Client:  The personal Agent. It initiates skill installation and
      execution requests on behalf of the user.</t>
        <t>Authorization Server (AS):  A trusted entity responsible for
      verifying the skill's source/integrity, managing <tt>scope</tt> policies,
      authenticating the user, and issuing access tokens containing the
      granted <tt>scope</tt>.</t>
        <t>Resource Server (RS):   (1) a Modular Capability Unit Management Server that hosts the unit repository and performs installation upon valid token presentation, and (2) a User Resource Server that controls access to the user's specific resources (e.g., file system, network, tools) during a unit's execution.</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 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in 
all capitals, as shown here.</t>
        <t>This document uses the terms "Authorization Server" (AS), "Client",
   "Resource Server" (RS), and "Access Token" as defined in The OAuth
   2.0 Authorization Framework <xref target="RFC6749"/>.</t>
      </section>
    </section>
    <section anchor="authorization-flow-illustrating-scope-negotiation">
      <name>Authorization Flow Illustrating <tt>scope</tt> Negotiation</name>
      <t>The following abstract flow illustrates how the extended <tt>scope</tt>
   parameter is negotiated and used within a modified OAuth
   Authorization Code flow:</t>
      <artwork type="ascii-art"><![CDATA[
      +--------+                                +---------------+
      |        |--(A)-------------------------->|               |
      |        |                                |               |
      |        |<-(B)---------------------------|               |
      |        |                                |               |
      |        |                                |    Resource   |
      |        |        +--------------+        |      Owner    |
      | Client |        |Authorization |--(D)-->|               |
      |        |--(C)-->|    Server    |        |               |
      |        |<-(F)---|              |<-(E)---|               |
      |        |        +--------------+        |               |
      |        |                                |               |
      |        |                                +---------------+
      |        |                                +---------------+
      |        |--(G)-------------------------->|    Resource   |
      |        |                                |     Server    |
      |        |<-(H)---------------------------|               |
      +--------+                                +---------------+
]]></artwork>
      <t><strong>Figure 1: Skill Installation and Authorization Flow</strong></t>
      <t>(A) Client Requests Installation from Resource Owner.</t>
      <t>(B) Resource Owner Initiates Authorization.</t>
      <t>(C) Client Initiates Authorization Request to AS.</t>
      <t>(D) AS Verifies Module and Negotiates Permissions:
The Authorization Server performs the following sub-steps
(omitting the AS's authentication of the Resource Owner):</t>
      <ul spacing="normal">
        <li>
          <t>Fetches and verifies the capability module's metadata
  (including its requested initial permission list
  <tt>scope_initial</tt>) and its source and integrity (e.g.,
  verifying publisher signature).</t>
        </li>
        <li>
          <t>Based on internal permission <tt>scope</tt> policies, maps or
  tailors <tt>scope_initial</tt> to a set of permissions
  <tt>scope_request</tt> (<tt>scope_request</tt> subset of <tt>scope_initial</tt>)
  that can be requested from the Resource Owner.</t>
        </li>
        <li>
          <t>Generates authorization consent interface information,
  presenting <tt>scope_request</tt> clearly to the Resource Owner.
(E) Resource Owner Authorizes and Provides Consent:
The Resource Owner reviews the authorization consent
interface, can choose to accept, reject, or further adjust
the authorization scope, forming the final consented
permission set <tt>scope_granted</tt> (<tt>scope_granted</tt> subset of
<tt>scope_request</tt>). After the Resource Owner confirms
authorization, this authorization result (i.e., the
authorization grant) is returned to the Client via interface
interaction.</t>
        </li>
      </ul>
      <t>(F) AS Issues Authorization Code to Client.</t>
      <t>(G) Client Requests Access Token.</t>
      <t>(H) AS Issues Access Token.</t>
      <t>(H) AS Issues Access Token:The AS issues an access token whose <tt>scope</tt> parameter value is set to <tt>scope_granted</tt>.</t>
      <t>RS Validates Token and Scope:During skill execution, the RS validates the token and ensures the operation is within the token's <tt>scope_granted</tt>.</t>
    </section>
    <section anchor="structured-scope-format-extension">
      <name>Structured <tt>scope</tt> Format Extension</name>
      <t>To meet the needs of Agent skills for describing complex, fine-
grained operation permissions, this specification defines a
structured extension to the OAuth <tt>scope</tt> parameter value syntax,
building upon the ABNF defined in <xref target="RFC6749"/> :</t>
      <t>The value of the <tt>scope</tt> parameter is expressed as a list of
space-delimited, case-sensitive <strong>structured <tt>scope</tt> tokens</strong>.
The syntax for a structured <tt>scope</tt> token is defined as:</t>
      <artwork><![CDATA[
structured-scope-token = resource-type 
                         ":" action 
                         ":" target
                         [ ":" constraints ]
                         [ ":" reserve ]


resource-type  = 1*( %x21-2F    ; visible chars except ":" and ";"
                 / %x30-3A
                 / %x3C-7E
                 )

action         = 1*( %x21-2F / %x30-3A / %x3C-7E )
target         = 1*( %x21-2F / %x30-3A / %x3C-7E )

constraints    = constraint *( ":" constraint )
constraint     = 1*( %x21-2F    ; often key=value pairs
                 / %x30-3A
                 / %x3C-7E
                 )

]]></artwork>
      <ul spacing="normal">
        <li>
          <t><tt>resource-type</tt>: Identifier for the type of resource. This field is REQUIRED. New
 types introduced by this extension include:
          </t>
          <ul spacing="normal">
            <li>
              <t><tt>fs</tt>: File system operations.</t>
            </li>
            <li>
              <t><tt>cmd</tt>: Command-line execution.</t>
            </li>
            <li>
              <t><tt>net</tt>: Network access.</t>
            </li>
            <li>
              <t><tt>tool</tt>: Tool/API invocation.</t>
            </li>
            <li>
              <t><tt>scheduler</tt>: Scheduled tasks.</t>
            </li>
            <li>
              <t><tt>othertype</tt>: Other resource types are reserved for resource types not defined in this specification. the specific semantics of other resource types are defined by the <tt>target</tt> component and/or through agreement between the AS and RS.</t>
            </li>
          </ul>
        </li>
        <li>
          <t><tt>action</tt>: The operation permitted on the specific resource
 type. This field is REQUIRED. For example:
          </t>
          <ul spacing="normal">
            <li>
              <t>For <tt>fs</tt>: <tt>read</tt>, <tt>write</tt>, <tt>list</tt>, <tt>delete</tt>.</t>
            </li>
            <li>
              <t>For <tt>cmd</tt>: <tt>execute</tt>.</t>
            </li>
            <li>
              <t>For <tt>net</tt>: <tt>connect</tt>, <tt>send</tt>, <tt>receive</tt>.</t>
            </li>
            <li>
              <t>For <tt>tool</tt>: <tt>invoke</tt>.</t>
            </li>
            <li>
              <t>For <tt>scheduler</tt>: <tt>create</tt>, <tt>read</tt>, <tt>update</tt>, <tt>delete</tt>.</t>
            </li>
            <li>
              <t>For all <tt>resource-type</tt>: <tt>otheraction</tt> (Other operations. The precise operation is defined by the combination of resource-type and target. Implementations MUST be prepared to handle unknown action values for a given resource-type`.)</t>
            </li>
          </ul>
        </li>
        <li>
          <t><tt>target</tt>: Identifier for the target of the operation. This field is REQUIRED. Its
 syntax and meaning depend on <tt>resource-type</tt> and <tt>action</tt>.
 For example:
          </t>
          <ul spacing="normal">
            <li>
              <t>File path: <tt>/home/user/documents/*</tt></t>
            </li>
            <li>
              <t>Command line: <tt>/usr/bin/git</tt></t>
            </li>
            <li>
              <t>Network endpoint: <tt>api.example.com:443</tt></t>
            </li>
            <li>
              <t>Tool ID: <tt>weather_forecast</tt></t>
            </li>
            <li>
              <t>Scheduled task ID: <tt>daily_backup</tt></t>
            </li>
            <li>
              <t>When resource-type is <tt>othertype</tt> or action is <tt>otheraction</tt>, the target field MAY contain an implementation-specific or a more complex structured identifier (e.g., a URI or a name spaced string.</t>
            </li>
          </ul>
        </li>
        <li>
          <t><tt>constraints</tt> (Optional): Additional constraints on the
 authorization, in the form of <tt>key=value</tt> pairs. This field is OPTIONAL. Multiple
 constraints are separated by <tt>:</tt>. For example:
          </t>
          <ul spacing="normal">
            <li>
              <t>Time constraints: <tt>expires=2026-12-31T23:59:59Z</tt>,
<tt>duration=PT2H</tt> (2 hours).</t>
            </li>
            <li>
              <t>Logical constraints: <tt>if_condition=user_consented</tt>.</t>
            </li>
            <li>
              <t>Regex constraints:
<tt>path_regex=^/home/user/[^/]+/\.config$</tt>.</t>
            </li>
            <li>
              <t>Recursion and depth limits:
<tt>recursive=true:max_depth=5</tt>.</t>
            </li>
            <li>
              <t>Authorization and resource servers SHOULD ignore any constraint key they do not understand.</t>
            </li>
          </ul>
        </li>
        <li>
          <t><tt>reserve</tt> (Optional): A reserved field for future extensibility. This field is OPTIONAL. This field contains an opaque string whose syntax and semantics are defined by a future specification. Implementations that do not understand the content of the reserve field MUST ignore it. This provides a standardized location for future extensions without breaking existing parsers.</t>
        </li>
      </ul>
      <section anchor="forward-compatibility-principle">
        <name>Forward Compatibility Principle:</name>
        <t>This structured extension itself is optional to implement. When parsing the <tt>scope</tt> value, the authorization server and resource server SHOULD first verify if a token's format conforms to the structured syntax defined in this specification. A token is interpreted and processed as a structured <tt>scope</tt> only if the format is strictly compliant; otherwise, it MUST be treated as a plain (non-extended) <tt>scope</tt> token.</t>
        <t>Clients, AS, and RS implementing this specification SHOULD be designed to tolerate unknown values in the resource-type, action, and constraint keyfields. The preferred behavior upon encountering an unknown component is to treat that specific structured <tt>scope</tt> token as not granting the requested permission, rather than failing the entire request or token validation, unless a policy explicitly mandates strict validation of all components.</t>
      </section>
      <section anchor="example-scope-parameter-values">
        <name>Example <tt>scope</tt> parameter values</name>
        <t>Example <tt>scope</tt> parameter values (each line represents one possible
space-delimited token within a <tt>scope</tt> string):</t>
        <artwork><![CDATA[
fs:read:/home/user/documents/:recursive=true:max_depth=5

cmd:execute:/usr/bin/git

net:connect:api.example.com:443

tool:invoke:weather_forecast

scheduler:create::interval=P1D (create a daily task)
]]></artwork>
        <t>The authorization server MAY fully or partially ignore the scope
requested by the client, based on the authorization server policy or
the resource owner's instructions.  If the issued access token scope
is different from the one requested by the client, the authorization
server MUST include the "scope" response parameter to inform the
client of the actual <tt>scope</tt> granted, as per <xref target="RFC6749"/>.</t>
      </section>
      <section anchor="security-considerations">
        <name>Security Considerations</name>
        <ul spacing="normal">
          <li>
            <t><tt>scope</tt> Validation and Least Privilege: Authorization Servers and
 Resource Servers MUST strictly enforce validation of the
 structured <tt>scope</tt>.  The granted permissions <tt>scope_granted</tt>
 MUST be a subset explicitly consented to by the user.  When
 processing requests, the Resource Server MUST verify that the
 token's <tt>scope</tt> contains a structured token that precisely
 matches the requested operation, including <tt>resource-type</tt>,
 <tt>action</tt>, <tt>target</tt>, and any <tt>constraints</tt>.</t>
          </li>
          <li>
            <t>Skill Metadata Integrity: The Authorization Server's
 authentication of the skill's source and integrity (Step D) is
 critical. Strong cryptographic signatures (e.g., code signing
 certificates) SHOULD be used to prevent injection or tampering
 with malicious skills, especially their advertised
 <tt>scope_initial</tt>.</t>
          </li>
          <li>
            <t>User Consent Interface: The authorization consent interface
(Step E) MUST clearly and unambiguously present the specific
meaning of the structured <tt>scope_request</tt> tokens to the user,
avoiding situations where users over-authorize due to
misunderstanding.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="error-response">
      <name>Error Response</name>
      <t>When a request is denied due to a failure in validating the structured scope(e.g., malformed syntax, unsupported resource-typeor action), the AS returns an error response with the following error code:</t>
      <t>Error Code: scope_validation_failed</t>
      <t>Description: The requested structured <tt>scope</tt> is invalid, malformed, or contains unsupported values.</t>
      <t>The AS SHOULD include an error_description parameter to provide developers with more specific diagnostic information (e.g., "Unrecognized resource-type: 'custom_db'", "Malformed constraints segment").</t>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <section anchor="oauth-authorization-server-metadata">
        <name>OAuth Authorization Server Metadata</name>
        <t>This specification requests the registration of the following values in the <tt>OAuth Authorization Server Metadata</tt> registry established by <xref target="RFC8414"/> :
- structured_scope_resource_types_supported:</t>
        <t>OPTIONAL. JSON array containing a list of the resource-typevalues (e.g., fs, cmd, net, tool, scheduler) that this authorization server supports and can process within structured <tt>scope</tt> tokens.</t>
        <ul spacing="normal">
          <li>
            <t>structured_scope_actions_supported:</t>
          </li>
        </ul>
        <t>OPTIONAL. JSON array containing a list of the actionvalues (e.g., read, write, execute, connect) that this authorization server supports and can process within structured <tt>scope</tt> tokens.</t>
      </section>
      <section anchor="oauth-extensions-error-registry">
        <name>OAuth Extensions Error Registry</name>
        <t>This specification requests the registration of the following error code in the <tt>OAuth Extensions Error Registry</tt>:</t>
        <ul spacing="normal">
          <li>
            <t>Error Code: scope_validation_failed</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>This document based on RFC6749</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8414">
        <front>
          <title>OAuth 2.0 Authorization Server Metadata</title>
          <author fullname="M. Jones" initials="M." surname="Jones"/>
          <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
          <author fullname="J. Bradley" initials="J." surname="Bradley"/>
          <date month="June" year="2018"/>
          <abstract>
            <t>This specification defines a metadata format that an OAuth 2.0 client can use to obtain the information needed to interact with an OAuth 2.0 authorization server, including its endpoint locations and authorization server capabilities.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8414"/>
        <seriesInfo name="DOI" value="10.17487/RFC8414"/>
      </reference>
      <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>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
    </references>
    <?line 435?>



  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
