<?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.42 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-asor-wimse-agent-delegation-chain-00" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="Agent Delegation Chain">Verifiable Attenuated Delegation for AI Agent Chains</title>
    <seriesInfo name="Internet-Draft" value="draft-asor-wimse-agent-delegation-chain-00"/>
    <author initials="R." surname="Asor" fullname="Rafael Asor">
      <organization>Attenu</organization>
      <address>
        <email>rafael.asor@gmail.com</email>
        <uri>https://attenu.io/</uri>
      </address>
    </author>
    <date year="2026" month="August" day="27"/>
    <area>Security</area>
    <workgroup>WIMSE</workgroup>
    <keyword>agent</keyword>
    <keyword>delegation</keyword>
    <keyword>attenuation</keyword>
    <keyword>authorization</keyword>
    <keyword>capability</keyword>
    <abstract>
      <?line 50?>

<t>AI agents increasingly delegate tasks to other agents. Each delegation should
convey only a subset of the delegating party's authority, that subset should be
bounded in scope, magnitude, and time, and any enforcement point should be able
to verify -- offline, with no call to an authorization server -- that a token
presented at hop N carries authority no greater than the token at hop N-1, back
to a trusted root. OAuth 2.0 Token Exchange (RFC 8693) models two-party
delegation and records prior actors in a nested "act" claim, but that claim is
informational only and cannot enforce attenuation across a chain of depth two or
more. This document defines the Agent Delegation Chain: a profile of OAuth 2.0
JWT access tokens (RFC 9068) that carries authority as Rich Authorization
Requests (RFC 9396), links each delegation to its parent by a cryptographic
byte-commitment, and specifies a deterministic offline verification algorithm
that enforces monotonic attenuation, bounded depth, and monotonic expiry. It
reuses existing JOSE, proof-of-possession (RFC 9449), and status-list machinery (the OAuth Status List draft) and introduces no new cryptography.</t>
    </abstract>
  </front>
  <middle>
    <?line 67?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>An AI agent that receives a task from a user or another agent frequently
decomposes it and delegates sub-tasks to further agents or tools. In production
deployments this produces delegation chains of depth greater than two. The
security requirement is a single invariant: the authority exercised at any hop
<bcp14>MUST</bcp14> be a subset of the authority granted at the hop that delegated to it, and
this <bcp14>MUST</bcp14> be verifiable by the enforcement point that ultimately honors a tool
call, without that point contacting an authorization server.</t>
      <section anchor="the-gap-in-existing-mechanisms">
        <name>The gap in existing mechanisms</name>
        <t>OAuth 2.0 Token Exchange <xref target="RFC8693"/> defines delegation and impersonation
semantics and a nestable "act" claim. However, <xref target="RFC8693"/> Section 4.1 states
that a recipient considers only the top-level claims and the current (outermost)
actor; the nested chain is history for audit, not enforced authority. Token
Exchange also normally contacts the authorization server at each hop. Neither
property supports offline, enforced, depth &gt;= 2 attenuation.</t>
        <t>Cross-domain identity chaining (see <xref target="I-D.ietf-oauth-identity-chaining"/>) and
transaction tokens address related but distinct problems (crossing trust domains
and propagating immutable context within one domain, respectively) and
explicitly do not provide chained cryptographic attenuation.</t>
        <t>Capability systems that do provide offline attenuation -- macaroons
<xref target="Macaroons"/>, Biscuit <xref target="Biscuit"/> -- either verify with a shared secret
(macaroons: symmetric HMAC, so every verifier holds the minting key) or use a
non-IETF wire format (Biscuit: protocol buffers with an embedded Datalog engine).
The historical standards-track ancestor is SDSI/SPKI <xref target="RFC2693"/>.</t>
        <t>This document fills the gap by reusing the JOSE/OAuth stack and adding only the
chain linkage and the subsumption-enforcing verification algorithm. It is
designed as the attenuation mechanism satisfying requirement R1 of
<xref target="I-D.reece-wimse-cross-org-delegation"/> and as a companion to
<xref target="I-D.klrc-aiagent-auth"/>. It shares its approach with, and is intended to
converge with, <xref target="I-D.niyikiza-oauth-attenuating-agent-tokens"/> and
<xref target="I-D.coetzee-oauth-spt-txn-tokens"/>.</t>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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>
      <?line -18?>

<dl>
        <dt>Delegation Token (DT):</dt>
        <dd>
          <t>An OAuth 2.0 JWT access token <xref target="RFC9068"/> profiled by this document, carrying
the authority granted to one agent at one hop of a chain.</t>
        </dd>
        <dt>Delegation Chain:</dt>
        <dd>
          <t>An ordered sequence of Delegation Tokens DT_0, DT_1, ... DT_n, where DT_0 is
the root, and each DT_i (i &gt; 0) is linked to DT_{i-1} by the mechanism in
<xref target="chain-linkage"/>.</t>
        </dd>
        <dt>Authority:</dt>
        <dd>
          <t>The set of permitted actions carried in the "authorization_details" claim
<xref target="RFC9396"/>, together with the constraints in <xref target="constraints"/>.</t>
        </dd>
        <dt>Attenuation:</dt>
        <dd>
          <t>The construction of a child Delegation Token whose Authority is a subset of
its parent's, per the subsumption rules in <xref target="subsumption"/>.</t>
        </dd>
        <dt>Enforcement Point:</dt>
        <dd>
          <t>The component that verifies a Delegation Chain and permits or denies an action.</t>
        </dd>
      </dl>
    </section>
    <section anchor="token-format">
      <name>Token Format</name>
      <t>A Delegation Token is a JWT <xref target="RFC7519"/> signed with JWS <xref target="RFC7515"/> using a
fully-specified algorithm <xref target="RFC9864"/>. Implementations <bcp14>MUST</bcp14> support Ed25519
<xref target="RFC8032"/> <xref target="RFC8037"/> and <bcp14>MAY</bcp14> support ES256 and, for post-quantum readiness,
ML-DSA <xref target="RFC9964"/>. The token uses the "application/at+jwt" header type of
<xref target="RFC9068"/> and includes its required claims (iss, exp, aud, sub, iat, jti).</t>
      <t>In addition, a Delegation Token contains:</t>
      <dl>
        <dt>authorization_details:</dt>
        <dd>
          <t><bcp14>REQUIRED</bcp14>. An array of authorization detail objects <xref target="RFC9396"/> expressing the
Authority. See <xref target="authority"/>.</t>
        </dd>
        <dt>cnf:</dt>
        <dd>
          <t><bcp14>REQUIRED</bcp14>. A confirmation claim <xref target="RFC7800"/> binding the token to the holder's
key, proven per DPoP <xref target="RFC9449"/>. See <xref target="binding"/>.</t>
        </dd>
        <dt>del_depth:</dt>
        <dd>
          <t><bcp14>REQUIRED</bcp14>. A non-negative integer; the position of this token in the chain.
DT_0 has del_depth 0.</t>
        </dd>
        <dt>del_max_depth:</dt>
        <dd>
          <t><bcp14>REQUIRED</bcp14> in DT_0. A positive integer; the maximum permitted chain length.
<bcp14>MUST NOT</bcp14> be increased by any child (see <xref target="subsumption"/>).</t>
        </dd>
        <dt>par_hash:</dt>
        <dd>
          <t><bcp14>REQUIRED</bcp14> in every DT_i with i &gt; 0; <bcp14>MUST</bcp14> be absent in DT_0. The base64url-encoded
SHA-256 digest of the parent token's JWS Signing Input (<xref target="RFC7515"/> Section 5.1),
i.e. of the exact bytes "ASCII(BASE64URL(parent JOSE Header)) || '.' ||
ASCII(BASE64URL(parent JWS Payload))". This is the byte-commitment that binds a
child to one specific parent and prevents chain splicing.</t>
        </dd>
      </dl>
    </section>
    <section anchor="authority">
      <name>Authority Representation</name>
      <t>Authority is expressed as one or more authorization detail objects <xref target="RFC9396"/>.
Each object's "type" identifies an authority class; its "actions" and "locations"
fields carry the permitted operations and targets. Numeric and enumerated bounds
("ceilings") that <xref target="RFC9396"/> does not standardize are carried in a "constraints"
member defined here.</t>
      <section anchor="constraints">
        <name>Constraint Vocabulary</name>
        <t>The "constraints" member is an object mapping a constraint name to a typed
constraint value. This document defines:</t>
        <ul spacing="normal">
          <li>
            <t>"max" : a number. The value of the associated quantity <bcp14>MUST NOT</bcp14> exceed it.
(e.g. {"max_rows": {"max": 5000}}).</t>
          </li>
          <li>
            <t>"one_of" : an array. The associated value <bcp14>MUST</bcp14> be a member.</t>
          </li>
          <li>
            <t>"not_one_of" : an array. The associated value <bcp14>MUST NOT</bcp14> be a member.</t>
          </li>
          <li>
            <t>"prefix" : a string. The associated value <bcp14>MUST</bcp14> have it as a prefix.</t>
          </li>
          <li>
            <t>"rank" : used for ordered enumerations (e.g. egress none &lt; internal &lt; any);
the value's rank <bcp14>MUST NOT</bcp14> exceed the constraint's.</t>
          </li>
        </ul>
        <t>The registry in <xref target="iana"/> allows new constraint types. A verifier that encounters
an unknown constraint type <bcp14>MUST</bcp14> treat the action as denied (fail-closed), never
as unconstrained.</t>
      </section>
      <section anchor="subsumption">
        <name>Subsumption Rules</name>
        <t>An Authority C is subsumed by an Authority P (written C &lt;= P) if and only if all
of the following hold:</t>
        <ol spacing="normal" type="1"><li>
            <t>Every authorization detail in C is subsumed by some authorization detail in P
of the same "type": C's "actions" and "locations" are subsets of P's (with
prefix and wildcard semantics as defined by the type), and</t>
          </li>
          <li>
            <t>for every constraint present in P, a corresponding constraint is present in C
whose admissible set is a subset of P's (e.g. C.max &lt;= P.max; C.one_of subset
of P.one_of; C.rank &lt;= P.rank), and</t>
          </li>
          <li>
            <t>a constraint present in P <bcp14>MUST NOT</bcp14> be absent in C (absence means unbounded,
which is not a subset), and</t>
          </li>
          <li>
            <t>C.exp &lt;= P.exp (monotonic expiry), and</t>
          </li>
          <li>
            <t>C.del_max_depth &lt;= P.del_max_depth.</t>
          </li>
        </ol>
        <t>Attenuation is the construction of C as the greatest lower bound (meet) of P and
a request R under these rules. Because the meet can only narrow, C &lt;= P holds by
construction for every R.</t>
      </section>
    </section>
    <section anchor="chain-linkage">
      <name>Chain Linkage</name>
      <t>Each child token commits to its parent by "par_hash" (<xref target="token-format"/>). This
binds the child to the parent's exact serialized bytes, so a child cannot be
re-parented onto a different (e.g. broader) token: doing so changes the parent's
Signing Input and thus its SHA-256 digest, which no longer matches the child's
"par_hash". Canonicalization is not required for "par_hash" because it digests
the already-serialized JWS Signing Input directly; where this document compares
JSON structures (e.g. test vectors), JCS <xref target="RFC8785"/> is used.</t>
    </section>
    <section anchor="verify">
      <name>Offline Verification Algorithm</name>
      <t>An Enforcement Point presented with a Delegation Chain DT_0 ... DT_n and an
attempted action A, and holding the trusted root public key(s), <bcp14>MUST</bcp14> perform the
following, denying on the first failure:</t>
      <ol spacing="normal" type="1"><li>
          <t>Verify the JWS signature of every DT_i using a fully-specified algorithm
<xref target="RFC9864"/>. DT_0 <bcp14>MUST</bcp14> verify under a trusted root key.</t>
        </li>
        <li>
          <t>For each i &gt; 0, compute SHA-256 of DT_{i-1}'s JWS Signing Input and compare,
in constant time, to DT_i's "par_hash". Any mismatch: deny.</t>
        </li>
        <li>
          <t>Check del_depth: DT_0.del_depth == 0; DT_i.del_depth == i; n &lt;
DT_0.del_max_depth. Otherwise deny.</t>
        </li>
        <li>
          <t>For each i &gt; 0, verify DT_i.Authority &lt;= DT_{i-1}.Authority per <xref target="subsumption"/>.
Any violation: deny.</t>
        </li>
        <li>
          <t>Check time: for every i, nbf (if present) &lt;= now &lt;= exp, and exp is monotonic
non-increasing along the chain. Otherwise deny.</t>
        </li>
        <li>
          <t>Verify holder binding: the presenter proves possession of the key in DT_n.cnf
via a valid DPoP proof <xref target="RFC9449"/> bound to this request. Otherwise deny.</t>
        </li>
        <li>
          <t>Check revocation: consult the Token Status List <xref target="I-D.ietf-oauth-status-list"/>
reference in each DT_i (if present) against a cached list; if any is revoked,
deny (and, by local policy, treat the whole subtree as revoked).</t>
        </li>
        <li>
          <t>Authorize A against DT_n.Authority (scope, actions, locations, and every
constraint in <xref target="constraints"/>). Permit only if A is within it.</t>
        </li>
      </ol>
      <t>The algorithm is deterministic, side-effect free, and requires no network call
except the (cacheable, offline-checkable) status list of step 7.</t>
    </section>
    <section anchor="binding">
      <name>Holder Binding</name>
      <t>Every Delegation Token is sender-constrained by a "cnf" claim <xref target="RFC7800"/>
carrying the JWK thumbprint of the holder's key, proven per request with DPoP
<xref target="RFC9449"/>. mTLS-bound tokens <xref target="RFC8705"/> <bcp14>MAY</bcp14> be used where the transport is
controlled end-to-end. A captured token is therefore unusable without its bound
private key, which mitigates replay of intermediate tokens.</t>
    </section>
    <section anchor="revocation">
      <name>Revocation</name>
      <t>Delegation Tokens are <bcp14>RECOMMENDED</bcp14> to be short-lived (seconds to minutes for leaf
and execution tokens), so that expiry is the common revocation path. For earlier
revocation of longer-lived delegations, each token <bcp14>MAY</bcp14> carry a Token Status List
<xref target="I-D.ietf-oauth-status-list"/> reference; revoking a token's status entry, and
by local policy the entries of its descendants, revokes a delegation or a whole
sub-chain while preserving offline verification (the status list is itself
cacheable and offline-checkable). An online revocation endpoint (RFC 7009) <bcp14>MAY</bcp14>
additionally be offered.</t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <section anchor="parent-tokens-remain-valid-after-attenuation">
        <name>Parent tokens remain valid after attenuation</name>
        <t>Attenuation produces a new child token but does not, by itself, invalidate the
parent. A party holding the parent still holds the parent's (broader) authority.
This is mitigated by three mechanisms that <bcp14>MUST</bcp14> be considered together: (a)
tokens are short-lived and holder-bound (<xref target="binding"/>), so a leaked parent is both
time-boxed and non-replayable without its key; (b) the "par_hash" byte-commitment
(<xref target="chain-linkage"/>) prevents splicing a child onto a different parent; and (c)
status-list revocation (<xref target="revocation"/>) allows early invalidation of a parent and
its subtree. Deployments that require immediate parent invalidation on delegation
<bcp14>MUST</bcp14> use short TTLs and status lists accordingly.</t>
      </section>
      <section anchor="chain-splicing">
        <name>Chain splicing</name>
        <t>Without the byte-commitment, an attacker could present a valid child together
with a broader token as its purported parent. Step 2 of <xref target="verify"/> prevents this:
the child's "par_hash" digests the parent's exact Signing Input, so only the
intended parent verifies.</t>
      </section>
      <section anchor="confused-deputy-and-over-broad-delegation">
        <name>Confused deputy and over-broad delegation</name>
        <t>Because each hop's authority is the meet of parent and request (<xref target="subsumption"/>),
a child cannot be induced (e.g. by prompt injection) to exercise authority the
parent lacked. Tool audiences ("aud", "locations") are pinned, so a token minted
for one resource cannot be replayed at another.</t>
      </section>
      <section anchor="unbounded-depth-and-fan-out">
        <name>Unbounded depth and fan-out</name>
        <t>"del_max_depth" (checked in step 3) bounds chain length; deployments <bcp14>SHOULD</bcp14> set
it low (e.g. 5). Fan-out (a parent delegating to many children) is not limited by
the token format and <bcp14>MUST</bcp14> be bounded by the issuing infrastructure if required.</t>
      </section>
      <section anchor="offline-verification-vs-revocation-latency">
        <name>Offline verification vs. revocation latency</name>
        <t>Offline verification means an enforcement point may honor a token that has been
revoked but whose status-list update it has not yet fetched. Deployments trade
this window against TTL: shorter TTLs bound the exposure. This is the standard
status-list trade-off and <bcp14>MUST</bcp14> be documented for each deployment.</t>
      </section>
      <section anchor="why-not-macaroons-algorithm-agility">
        <name>Why not macaroons; algorithm agility</name>
        <t>Macaroons <xref target="Macaroons"/> verify with the root secret, precluding public offline
verification at an untrusted edge; this document uses public-key signatures.
Algorithms are fully specified <xref target="RFC9864"/> and agile via the JOSE "alg" registry,
with a migration path to ML-DSA <xref target="RFC9964"/>.</t>
      </section>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document requests registration, in the JSON Web Token Claims registry, of:
"del_depth", "del_max_depth", and "par_hash" (with the semantics in
<xref target="token-format"/>). It requests a new "Agent Delegation Constraint Types" registry
(initial entries: "max", "one_of", "not_one_of", "prefix", "rank"; registration
policy Specification Required; unknown types fail closed per <xref target="constraints"/>). It
requests an "authorization_details" type value for delegated agent authority,
coordinated with <xref target="I-D.niyikiza-oauth-attenuating-agent-tokens"/> to avoid
divergence.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <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="RFC7515">
          <front>
            <title>JSON Web Signature (JWS)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7515"/>
          <seriesInfo name="DOI" value="10.17487/RFC7515"/>
        </reference>
        <reference anchor="RFC7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7519"/>
          <seriesInfo name="DOI" value="10.17487/RFC7519"/>
        </reference>
        <reference anchor="RFC7800">
          <front>
            <title>Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="April" year="2016"/>
            <abstract>
              <t>This specification describes how to declare in a JSON Web Token (JWT) that the presenter of the JWT possesses a particular proof-of- possession key and how the recipient can cryptographically confirm proof of possession of the key by the presenter. Being able to prove possession of a key is also sometimes described as the presenter being a holder-of-key.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7800"/>
          <seriesInfo name="DOI" value="10.17487/RFC7800"/>
        </reference>
        <reference anchor="RFC8032">
          <front>
            <title>Edwards-Curve Digital Signature Algorithm (EdDSA)</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes elliptic curve signature scheme Edwards-curve Digital Signature Algorithm (EdDSA). The algorithm is instantiated with recommended parameters for the edwards25519 and edwards448 curves. An example implementation and test vectors are provided.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8032"/>
          <seriesInfo name="DOI" value="10.17487/RFC8032"/>
        </reference>
        <reference anchor="RFC8037">
          <front>
            <title>CFRG Elliptic Curve Diffie-Hellman (ECDH) and Signatures in JSON Object Signing and Encryption (JOSE)</title>
            <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document defines how to use the Diffie-Hellman algorithms "X25519" and "X448" as well as the signature algorithms "Ed25519" and "Ed448" from the IRTF CFRG elliptic curves work in JSON Object Signing and Encryption (JOSE).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8037"/>
          <seriesInfo name="DOI" value="10.17487/RFC8037"/>
        </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>
        <reference anchor="RFC8785">
          <front>
            <title>JSON Canonicalization Scheme (JCS)</title>
            <author fullname="A. Rundgren" initials="A." surname="Rundgren"/>
            <author fullname="B. Jordan" initials="B." surname="Jordan"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>Cryptographic operations like hashing and signing need the data to be expressed in an invariant format so that the operations are reliably repeatable. One way to address this is to create a canonical representation of the data. Canonicalization also permits data to be exchanged in its original form on the "wire" while cryptographic operations performed on the canonicalized counterpart of the data in the producer and consumer endpoints generate consistent results.</t>
              <t>This document describes the JSON Canonicalization Scheme (JCS). This specification defines how to create a canonical representation of JSON data by building on the strict serialization methods for JSON primitives defined by ECMAScript, constraining JSON data to the Internet JSON (I-JSON) subset, and by using deterministic property sorting.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8785"/>
          <seriesInfo name="DOI" value="10.17487/RFC8785"/>
        </reference>
        <reference anchor="RFC9068">
          <front>
            <title>JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens</title>
            <author fullname="V. Bertocci" initials="V." surname="Bertocci"/>
            <date month="October" year="2021"/>
            <abstract>
              <t>This specification defines a profile for issuing OAuth 2.0 access tokens in JSON Web Token (JWT) format. Authorization servers and resource servers from different vendors can leverage this profile to issue and consume access tokens in an interoperable manner.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9068"/>
          <seriesInfo name="DOI" value="10.17487/RFC9068"/>
        </reference>
        <reference anchor="RFC9396">
          <front>
            <title>OAuth 2.0 Rich Authorization Requests</title>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <author fullname="J. Richer" initials="J." surname="Richer"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <date month="May" year="2023"/>
            <abstract>
              <t>This document specifies a new parameter authorization_details that is used to carry fine-grained authorization data in OAuth messages.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9396"/>
          <seriesInfo name="DOI" value="10.17487/RFC9396"/>
        </reference>
        <reference anchor="RFC9449">
          <front>
            <title>OAuth 2.0 Demonstrating Proof of Possession (DPoP)</title>
            <author fullname="D. Fett" initials="D." surname="Fett"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="D. Waite" initials="D." surname="Waite"/>
            <date month="September" year="2023"/>
            <abstract>
              <t>This document describes a mechanism for sender-constraining OAuth 2.0 tokens via a proof-of-possession mechanism on the application level. This mechanism allows for the detection of replay attacks with access and refresh tokens.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9449"/>
          <seriesInfo name="DOI" value="10.17487/RFC9449"/>
        </reference>
        <reference anchor="RFC9864">
          <front>
            <title>Fully-Specified Algorithms for JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE)</title>
            <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <date month="October" year="2025"/>
            <abstract>
              <t>This specification refers to cryptographic algorithm identifiers that fully specify the cryptographic operations to be performed, including any curve, key derivation function (KDF), and hash functions, as being "fully specified". It refers to cryptographic algorithm identifiers that require additional information beyond the algorithm identifier to determine the cryptographic operations to be performed as being "polymorphic". This specification creates fully-specified algorithm identifiers for registered JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE) polymorphic algorithm identifiers, enabling applications to use only fully-specified algorithm identifiers. It deprecates those polymorphic algorithm identifiers.</t>
              <t>This specification updates RFCs 7518, 8037, and 9053. It deprecates polymorphic algorithms defined by RFCs 8037 and 9053 and provides fully-specified replacements for them. It adds to the instructions to designated experts in RFCs 7518 and 9053.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9864"/>
          <seriesInfo name="DOI" value="10.17487/RFC9864"/>
        </reference>
        <reference anchor="I-D.ietf-oauth-status-list">
          <front>
            <title>Token Status List (TSL)</title>
            <author fullname="Tobias Looker" initials="T." surname="Looker">
              <organization>MATTR</organization>
            </author>
            <author fullname="Paul Bastian" initials="P." surname="Bastian">
              <organization>Bundesdruckerei</organization>
            </author>
            <author fullname="Christian Bormann" initials="C." surname="Bormann">
              <organization>SPRIND</organization>
            </author>
            <date day="21" month="June" year="2026"/>
            <abstract>
              <t>   This specification defines a status mechanism called Token Status
   List (TSL), data structures and processing rules for representing the
   status of tokens secured by JSON Object Signing and Encryption (JOSE)
   or CBOR Object Signing and Encryption (COSE), such as JWT, SD-JWT,
   CBOR Web Token, and ISO mdoc.  It also defines an extension point and
   a registry for future status mechanisms.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-status-list-21"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC2693">
          <front>
            <title>SPKI Certificate Theory</title>
            <author fullname="C. Ellison" initials="C." surname="Ellison"/>
            <author fullname="B. Frantz" initials="B." surname="Frantz"/>
            <author fullname="B. Lampson" initials="B." surname="Lampson"/>
            <author fullname="R. Rivest" initials="R." surname="Rivest"/>
            <author fullname="B. Thomas" initials="B." surname="Thomas"/>
            <author fullname="T. Ylonen" initials="T." surname="Ylonen"/>
            <date month="September" year="1999"/>
            <abstract>
              <t>This document gives the theory behind SPKI certificates and ACLs without going into technical detail about those structures or their uses. This memo defines an Experimental Protocol for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2693"/>
          <seriesInfo name="DOI" value="10.17487/RFC2693"/>
        </reference>
        <reference anchor="RFC8693">
          <front>
            <title>OAuth 2.0 Token Exchange</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="A. Nadalin" initials="A." surname="Nadalin"/>
            <author fullname="B. Campbell" initials="B." role="editor" surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
            <date month="January" year="2020"/>
            <abstract>
              <t>This specification defines a protocol for an HTTP- and JSON-based Security Token Service (STS) by defining how to request and obtain security tokens from OAuth 2.0 authorization servers, including security tokens employing impersonation and delegation.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8693"/>
          <seriesInfo name="DOI" value="10.17487/RFC8693"/>
        </reference>
        <reference anchor="RFC8705">
          <front>
            <title>OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens</title>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document describes OAuth client authentication and certificate-bound access and refresh tokens using mutual Transport Layer Security (TLS) authentication with X.509 certificates. OAuth clients are provided a mechanism for authentication to the authorization server using mutual TLS, based on either self-signed certificates or public key infrastructure (PKI). OAuth authorization servers are provided a mechanism for binding access tokens to a client's mutual-TLS certificate, and OAuth protected resources are provided a method for ensuring that such an access token presented to it was issued to the client presenting the token.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8705"/>
          <seriesInfo name="DOI" value="10.17487/RFC8705"/>
        </reference>
        <reference anchor="RFC9964">
          <front>
            <title>ML-DSA for JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE)</title>
            <author fullname="M. Prorock" initials="M." surname="Prorock"/>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <date month="May" year="2026"/>
            <abstract>
              <t>This document specifies JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE) serializations for the Module-Lattice-Based Digital Signature Standard (ML-DSA), a Post-Quantum Cryptography (PQC) digital signature scheme defined in US NIST FIPS 204.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9964"/>
          <seriesInfo name="DOI" value="10.17487/RFC9964"/>
        </reference>
        <reference anchor="I-D.ietf-oauth-identity-chaining">
          <front>
            <title>OAuth Identity and Authorization Chaining Across Domains</title>
            <author fullname="Arndt Schwenkschuster" initials="A." surname="Schwenkschuster">
              <organization>Defakto Security</organization>
            </author>
            <author fullname="Pieter Kasselman" initials="P." surname="Kasselman">
              <organization>Defakto Security</organization>
            </author>
            <author fullname="Kelley Burgin" initials="K." surname="Burgin">
              <organization>MITRE</organization>
            </author>
            <author fullname="Michael J. Jenkins" initials="M. J." surname="Jenkins">
              <organization>NSA-CCSS</organization>
            </author>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <author fullname="Aaron Parecki" initials="A." surname="Parecki">
              <organization>Okta</organization>
            </author>
            <date day="19" month="July" year="2026"/>
            <abstract>
              <t>   This specification describes a mechanism for preserving identity and
   authorization information across trust domains that use the OAuth 2.0
   Framework.  A JSON Web Token (JWT) authorization grant, obtained
   through an intra-domain OAuth 2.0 Token Exchange, facilitates the
   cross-domain acquisition of an access token.  The relevant identity
   and authorization information is chained throughout the flow by being
   conveyed in the respective artifacts exchanged at each step of the
   process.  Chaining across multiple domains is achieved by using the
   same protocol every time a trust domain boundary is crossed.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-identity-chaining-17"/>
        </reference>
        <reference anchor="I-D.reece-wimse-cross-org-delegation">
          <front>
            <title>Cross-Organizational Delegation for Workload and Agent Identity: Problem Statement and Requirements</title>
            <author fullname="Morgan Reece" initials="M." surname="Reece">
              <organization>TowerGuardian Consulting</organization>
            </author>
            <date day="30" month="July" year="2026"/>
            <abstract>
              <t>   Autonomous software agents increasingly act on behalf of human
   principals by invoking tools, services, and other agents, frequently
   across organizational boundaries.  Existing workload and token-based
   authorization mechanisms were designed for a single trust domain and
   a small number of delegation hops.  They do not adequately express,
   constrain, or verify authority that is delegated recursively among
   agents and that crosses the boundary between independently
   administered organizations.  This document describes the problem of
   cross-organizational agent delegation, identifies the gaps in current
   mechanisms, and enumerates requirements that any solution within the
   scope of the Workload Identity in Multi-System Environments (WIMSE)
   working group should satisfy.  It does not specify a solution.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-reece-wimse-cross-org-delegation-01"/>
        </reference>
        <reference anchor="I-D.klrc-aiagent-auth">
          <front>
            <title>AI Agent Authentication and Authorization</title>
            <author fullname="Pieter Kasselman" initials="P." surname="Kasselman">
              <organization>Defakto Security</organization>
            </author>
            <author fullname="Jeff Lombardo" initials="J." surname="Lombardo">
              <organization>AWS</organization>
            </author>
            <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
              <organization>Zscaler</organization>
            </author>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <author fullname="Nick Steele" initials="N." surname="Steele">
              <organization>OpenAI</organization>
            </author>
            <author fullname="Aaron Parecki" initials="A." surname="Parecki">
              <organization>Okta</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   This document proposes best practices for authentication and
   authorization of AI agent interactions.  It leverages existing
   standards such as the Workload Identity in Multi-System Environments
   (WIMSE) architecture and OAuth 2.0 family of specifications.  Rather
   than defining new protocols, this document describes how existing and
   widely deployed standards can be applied or extended to establish
   agent authentication and authorization.  By doing so, it aims to
   provide a framework within which to use existing standards, identify
   gaps and guide future standardization efforts for agent
   authentication and authorization.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-klrc-aiagent-auth-03"/>
        </reference>
        <reference anchor="I-D.niyikiza-oauth-attenuating-agent-tokens">
          <front>
            <title>Attenuating Authorization Tokens for Agentic Delegation Chains</title>
            <author fullname="Niki Aimable" initials="N." surname="Aimable">
              <organization>Tenuo</organization>
            </author>
            <date day="15" month="June" year="2026"/>
            <abstract>
              <t>   This document defines Attenuating Authorization Tokens (AATs), a
   signed credential format for task-scoped delegation in AI agent
   systems.  An AAT encodes the tools an agent may invoke and the
   argument constraints that apply to those invocations.  A token holder
   authorized to delegate can derive a token offline with equal or
   narrower authority, subject to the parent token's depth and lifetime
   limits.  The resulting delegation chain is verifiable offline by any
   enforcement point that has the root issuer's trust anchor key.

   This specification profiles the OAuth Rich Authorization Requests
   format (RFC 9396) for tool-level capability claims, adds delegation-
   chain claims, and defines a core constraint vocabulary for argument
   restrictions.  The chain verification algorithm authenticates each
   delegation step and enforces monotonic attenuation without network
   contact with the root issuer.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-niyikiza-oauth-attenuating-agent-tokens-01"/>
        </reference>
        <reference anchor="I-D.coetzee-oauth-spt-txn-tokens">
          <front>
            <title>Transaction-Bound Authorization Tokens for Software and AI Agents (SPT-Txn)</title>
            <author fullname="Rudolf Jacobus Coetzee" initials="R. J." surname="Coetzee">
              <organization>Violet Sky Security SEZC</organization>
            </author>
            <date day="19" month="July" year="2026"/>
            <abstract>
              <t>   Current authorization is role-scoped: an actor is granted a role
   whose authority persists across every action it takes.  This fails
   exactly when actors fail -- under compromise, prompt injection, or
   goal hijacking -- because a compromised actor retains full role
   authority.  This document specifies SPT-Txn, a family of transaction-
   bound authorization tokens in which authority exists only inside a
   short-lived token bound to one declared action, on one resource,
   under one jurisdictional policy, verified against how the requesting
   workload was attested.  Delegation across agents and tools is
   expressed as a cryptographically sealed chain that can only narrow
   authority and is verifiable offline.  Each authorization decision
   emits a signed, tamper-evident receipt as a byproduct of enforcement.
   This document specifies normative intent binding, transaction
   receipts and their transparency log, attested issuance via OAuth 2.0
   Token Exchange, per-token status-list revocation, and cryptographic
   algorithm agility including hybrid post-quantum signing.  It also
   hardens attested issuance in response to an adversarial security
   review of the reference implementation: it makes an audience and a
   verifiable expiry mandatory on the presented attestation, requires
   the issuer to bound the delegated depth it grants, and clamps a
   token's lifetime to the attestation it was minted on.  The issuer-
   side requested-versus-permitted scope intersection is retained; the
   enforcement point re-checks the chain independently.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-coetzee-oauth-spt-txn-tokens-03"/>
        </reference>
        <reference anchor="Macaroons">
          <front>
            <title>Macaroons: Cookies with Contextual Caveats for Decentralized Authorization in the Cloud</title>
            <author>
              <organization/>
            </author>
            <date year="2014"/>
          </front>
          <seriesInfo name="NDSS 2014" value=""/>
        </reference>
        <reference anchor="Biscuit" target="https://doc.biscuitsec.org/reference/specifications.html">
          <front>
            <title>Biscuit Authorization Token Specification, v3</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 342?>

<section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This work builds directly on, and seeks convergence with,
<xref target="I-D.niyikiza-oauth-attenuating-agent-tokens"/>,
<xref target="I-D.coetzee-oauth-spt-txn-tokens"/>, <xref target="I-D.klrc-aiagent-auth"/>, and the
requirements of <xref target="I-D.reece-wimse-cross-org-delegation"/>. The capability-token
lineage of <xref target="Macaroons"/>, <xref target="Biscuit"/>, and <xref target="RFC2693"/> is gratefully
acknowledged.</t>
    </section>
    <section anchor="reference-implementation-and-test-vectors">
      <name>Reference Implementation and Test Vectors</name>
      <t>A permissively licensed reference implementation (the "attenu-guard" library)
and a set of offline-verification test vectors (chains that <bcp14>MUST</bcp14> verify and
adversarial chains that <bcp14>MUST</bcp14> be rejected: widened scope, exceeded ceiling,
spliced parent, exceeded depth, non-monotonic expiry, revoked entry, replayed
token) accompany this draft and are intended for interoperability testing across
independent implementations.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA5Vb63YbN5L+j6fA0j9M7pK0JMs3KsmsItkTZXzRSkpy5syZ
4wN2gxSiZjen0S2Z0ehd9ln2yfarKqAvpJzJ/EhM9QUoFKq++qpQPZlMVOWq
zM704GdbuoUz88zq46qyeW0qm+pTm9mlqVyR60VR6uMzfby0eaVPro3L/UCZ
+by0t3hdLnce5ycGKi2S3KwwQVqaRTUxvignd27l7cTQG5O0eWOS0BuTvT2V
YOplUW5m2lepcutypquy9tXB3t6bvQNlSmtm+tImdemqjboryptlWdTrmf7l
7MPlW3VjN7iWzvTfeIqxbucYaxPWJn/U1XVRut/Cn4lZm7nLMOjfla9Mnn42
WZFD9o31au0wYFUkY40lVKVdePzarOjH35UMNFNaT/Cf1tDNTF9M9TGe5Qui
gwuzMDZrrxbl0uRh+llQO9+wK+OymS75+Skp7b+XdGmaFCt+AEuf6euqWvvZ
s2eypqkrnqm8KFcY7taSLBfvTg7299+En69e7L+Yaf1E//jLZXPlTbhyFa68
3tvjK+fFuU7yhVx9vff8gK++TU8vj5trr/jaybuLP2tsxa31WLb+8RN2QJ7Y
f3UYpn796nWY+iRM/Wbv5es4tTZJYr2fVMWNzfW6LBYus+Gx529e8mMXLrnW
x93t0hf2H7X1lQ9PHh7KWk4herj0+uUhX3pXZ9lm4tc2gYXDqE0G63LV9Yre
PZucTp2tFpOCNnGCfa9qP8mcr2bK5Yttfb5885zHvDy9PHt2ef6Xs7DCeP2K
F/H2C4w5X9q4/D1Z/urq/eVkXtR5qnmxUfY3QdAP7ydQMHsa6fHZiShzS0SX
wqphpOIwLl/OwjOltYkN3pWUBVQKA+t4WHzuJiuTiXHigDRkvJG7jbuBfsNE
ja/ky+CtInV8PCls9Zu1UXNr3P+Sd575YBJTFoX8oXVEmvayPimKGwfDucNu
4I+8sl+q2mT6xNxaU3nWxCkWlVelydxv2Lu+DcDgqmurT7KiTgc8SQrsmOmD
vf1D/tMD1aynfZzpj6eXl/HO984ntav6goWLW3PIjl6K9SQBKm6fy3SVKZe2
al0RcDedyzDeJlPo/xkQwpY2T+wz3x3DT6+rVaYmk4k2c4/1JZVSwFdWNLlS
ApiD5MtsEwHMYjp/42E7usCyy/DsVL818I52n7W/LuosVUmR39qNLnIMYbSv
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
+n+ZHevLfEAAAA==

-->

</rfc>
