<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.34 (Ruby 3.3.10) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

<!ENTITY RFC3986 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3986.xml">
<!ENTITY RFC7515 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7515.xml">
<!ENTITY RFC7517 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7517.xml">
<!ENTITY RFC7519 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7519.xml">
<!ENTITY RFC7638 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7638.xml">
<!ENTITY RFC7800 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7800.xml">
<!ENTITY RFC8032 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8032.xml">
<!ENTITY RFC8785 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8785.xml">
<!ENTITY RFC9278 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9278.xml">
<!ENTITY RFC8949 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8949.xml">
<!ENTITY RFC9396 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9396.xml">
<!ENTITY RFC9562 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9562.xml">
<!ENTITY RFC6749 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6749.xml">
<!ENTITY RFC2119 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC8174 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC8414 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8414.xml">
<!ENTITY RFC8126 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml">
<!ENTITY RFC8392 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8392.xml">
<!ENTITY RFC8693 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8693.xml">
<!ENTITY RFC9052 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9052.xml">
<!ENTITY RFC9449 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9449.xml">
]>


<rfc ipr="trust200902" docName="draft-niyikiza-oauth-attenuating-agent-tokens-00" category="std" consensus="true" submissionType="IETF">
  <front>
    <title abbrev="Attenuating Agent Tokens">Attenuating Authorization Tokens for Agentic Delegation Chains</title>

    <author fullname="Niki Aimable Niyikiza">
      <organization>Tenuo</organization>
      <address>
        <email>niki@tenuo.ai</email>
      </address>
    </author>

    <date year="2026" month="March" day="16"/>

    <area>Security</area>
    <workgroup>Web Authorization Protocol (OAuth)</workgroup>
    

    <abstract>
<t>This document defines Attenuating Authorization Tokens (AATs), a
JWT-based credential format for secure delegation in AI agent systems.
An AAT encodes which tools an agent may invoke and with what
argument constraints. Any holder can derive a more restrictive token
offline that narrows or maintains scope but cannot expand it. This
invariant is cryptographically enforced and verifiable offline by
any party holding the root token's trust anchor key.</t>
<t>This specification extends the Rich Authorization Requests format
(RFC 9396) with delegation-chain semantics and defines a typed
constraint vocabulary for tool-level argument restrictions. The
accompanying chain verification algorithm enforces the monotonic
attenuation invariant at each delegation step and requires no network
contact with the root issuer.</t>
    </abstract>



  </front>

  <middle>


<?line 171?>

<section anchor="introduction"><name>Introduction</name>

<t>AI agent systems increasingly delegate tasks to chains of autonomous
agents, each invoking tools on behalf of a user or service. Today,
the tokens that authorize these invocations are typically scoped to
the principal — the user or service account — not to the task the
agent is performing. Even when an OAuth scope narrows the token to a
subset of APIs, it does not express which tools, with which argument
values, a particular agent should use for a particular task. The
token that checks flight availability also authorizes completing a
purchase and charging a corporate card. A prompt injection attack, a
model hallucination, or a compromised sub-agent can exploit this
gap, exercising authority the agent should never have needed. This
is the confused deputy problem <xref target="HARDY88"/> applied to agentic
delegation.</t>

<t>This problem is compounded by a gap in existing infrastructure. The
WIMSE architecture <xref target="WIMSE-ARCH"/> provides mechanisms for
establishing workload identity and propagating it across service
boundaries. OAuth 2.0 <xref target="RFC6749"/> provides token issuance and
scoping. Neither provides a mechanism for a token holder to derive a
narrower token and pass it downstream. Without delegation-aware
semantics, the only options are to trust every agent in the chain
with the full token or to require each delegation step to contact
the authorization server. The latter is impractical for agentic
workflows that execute tool invocations in rapid succession, operate
across trust boundaries, or run in environments with intermittent
connectivity.</t>

<t>Capability-based systems <xref target="DENNIS66"/> solve both problems. Authority
is carried by unforgeable tokens scoped to specific operations; a
holder can attenuate a capability before passing it on, but cannot
amplify it <xref target="SALTZER75"/>. This document defines such a mechanism for
OAuth-based agent systems, complementing WIMSE's identity layer with
a delegation and attenuation layer.</t>

<t>The following diagram shows the delegation flow this specification
enables:</t>

<figure><artwork><![CDATA[
Root Issuer
       |
       | issues root AAT (Section 3.7)
       v
Orchestrating Agent
       |
       | derives AAT (Section 6)
       v
Planning Agent
       |
       | derives AAT (Section 6)
       v
Tool-Invoking Agent
       |
       | presents AAT with PoP JWT (Section 5)
       v
Enforcement Point
  (verifies chain offline, Section 7)
]]></artwork></figure>

<t>At each derivation step, the derived token's scope is a subset of
the parent's: scope can only narrow or stay the same, never widen. The
enforcement point verifies the complete chain using only the root
token's trust anchor key; no network calls are required. How token
chains are carried to enforcement points is deployment-specific; this
document does
not define a transport binding.</t>

<section anchor="limitations-of-existing-oauth-mechanisms-for-agentic-delegation"><name>Limitations of Existing OAuth Mechanisms for Agentic Delegation</name>

<t>OAuth 2.0 Token Exchange <xref target="RFC8693"/> enables a principal to obtain a new
token with reduced scope by contacting the authorization server. The
server enforces the scope reduction. This requires a synchronous
round-trip to the authorization server at each delegation hop. In
multi-agent chains, this makes the authorization server a participant in
every delegation decision, coupling the delegation topology to
authorization server (AS) availability. <xref target="RFC8693"/> supports
representing prior delegation actors via nested <spanx style="verb">act</spanx> claims, but those
claims are informational for access control decisions rather than a
cryptographically self-verifiable attenuation chain. The AS mediates
each grant independently, and no mechanism ensures that downstream
delegation intent remains consistent with the original authorization
scope.</t>

<t>Rich Authorization Requests (RAR) <xref target="RFC9396"/> extend OAuth tokens with
structured authorization detail objects, enabling expressive capability
descriptions. RAR addresses the expressiveness problem. It does not
define how a token holder can produce a narrower token, or how a
chain of such derivations can be verified.</t>

<t>Proposals to extend the authorization code flow with explicit agent
consent, such as introducing a <spanx style="verb">requested_actor</spanx> parameter at the
authorization endpoint, address who the agent is and whether the
user approved the delegation. They do not constrain which tools the
agent may invoke or with what argument values. AATs are
complementary: they scope authority to specific tools and arguments
after identity and consent have been established.</t>

<t>To the author's knowledge, no existing OAuth standard defines a
delegation chain protocol with a cryptographically enforced attenuation
invariant and offline chain verification.</t>

</section>
<section anchor="design-goals"><name>Design Goals</name>

<t><list style="numbers" type="1">
  <t><strong>Least privilege at the invocation boundary.</strong> An agent's
authorization token encodes which tools it may call and with what
argument constraints, scoped to the task, not to the full authority
of the calling principal.</t>
  <t><strong>Offline derivation.</strong> A token holder can derive a more restrictive
token without contacting the root issuer.</t>
  <t><strong>Independent chain verification.</strong> Any enforcement point holding
the trust anchor can verify the complete delegation chain without
network calls.</t>
  <t><strong>Cryptographically enforced attenuation.</strong> A derived token cannot
grant broader authority than its parent.</t>
  <t><strong>JWT interoperability.</strong> Tokens are representable as signed JWTs
<xref target="RFC7519"/>, allowing deployments to verify chains using existing
JSON Object Signing and Encryption (JOSE) infrastructure without
new cryptographic dependencies.</t>
</list></t>

</section>
<section anchor="relationship-to-prior-work"><name>Relationship to Prior Work</name>

<t>Macaroons <xref target="MACAROONS"/> introduced the concept of attenuating tokens
with contextual caveats. Macaroons use HMAC chaining, which provides
attenuation but not proof of possession, and express caveats as
free-form predicates evaluated at the target service at runtime. This
specification adds asymmetric proof of possession, structured
tool-level capability claims, and a typed constraint vocabulary.
It defines a normative subsumption relation, enabling any party
holding the chain to verify monotonicity structurally, without
predicate evaluation at a central service.</t>

<t>Biscuit <xref target="BISCUIT"/> extends the Macaroons model with asymmetric public
key signatures and offline attenuation, addressing the
proof-of-possession gap. Biscuit expresses authorization policies in a
Datalog variant, requiring a logic engine at verification time. This
specification uses structured constraint types decidable by structural
analysis and defines a typed delegation-chain model with explicit token
roles and chain-position claims. A detailed comparison appears in
Appendix A.</t>

<t>The capability-based security model underlying AATs draws on
<xref target="DENNIS66"/>, which introduced capabilities as unforgeable tokens of
authority, and <xref target="MILLER06"/>, which formalized the principle of least
authority (POLA) and the attenuation property in object-capability
systems. AATs apply these principles at the protocol layer: each token
is a capability scoped to specific tools and arguments, and derivation
can only attenuate, never amplify, the authority it carries.</t>

<t><xref target="DEEPMIND26"/> argues that safe multi-agent delegation requires explicit
transfer of authority, responsibility, and trust at each delegation
step, with bounded operational scope. <xref target="CAMEL25"/> shows that
capability-based controls enforced at the tool boundary can provide
provable security properties in an agentic framework. These results
motivate a protocol-layer mechanism that encodes delegation scope in
verifiable credential artifacts enforced independently of model
behavior. AATs realize one protocol-layer approach to that goal.</t>

</section>
</section>
<section anchor="terminology"><name>Terminology</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?>

<t><strong>Attenuating Authorization Token (AAT):</strong> A signed JWT as defined in
this document. An AAT encodes tool-level capability claims and supports
offline derivation of derived tokens with authority equal to or narrower
than the parent's.</t>

<t><strong>Root Token:</strong> An AAT with no parent token, <spanx style="verb">del_depth: 0</spanx>, and
<spanx style="verb">par_hash</spanx> absent. A root token may carry either <spanx style="verb">aat_type:
"delegation"</spanx> or <spanx style="verb">aat_type: "execution"</spanx>: a root issuer may mint an
execution token directly when an agent requires immediate tool
invocation authority without an intermediate delegation step. A root
token is signed by the private key corresponding to a trust anchor and
establishes the authority ceiling for all derived tokens. A root token
is a positional role, not a distinct <spanx style="verb">aat_type</spanx> value: the two
<spanx style="verb">aat_type</spanx> values are <spanx style="verb">"delegation"</spanx> and <spanx style="verb">"execution"</spanx>.</t>

<t><strong>Root Issuer:</strong> The entity that mints root tokens. The root issuer
holds the private key corresponding to a trust anchor and is responsible
for verifying agent identity and requested authority before issuance.</t>

<t><strong>Token Holder:</strong> The entity that possesses an AAT and the private key
corresponding to its <spanx style="verb">cnf.jwk</spanx> claim. The token holder is the party
authorized to present the token, derive further tokens from it, or both,
depending on the token's <spanx style="verb">aat_type</spanx>.</t>

<t><strong>Derived Token:</strong> An AAT produced by a token holder from a parent AAT,
also referred to as a child token. A derived token's authority is a
subset of its parent's authority (equal or narrower). Derivation does
not require a round-trip to the root issuer.</t>

<t><strong>Delegation Token:</strong> An AAT that authorizes its holder to derive
further tokens for a specified set of tools. The name reflects what the holder
is authorized to do, not who issued the token. A delegation token does
not authorize tool invocation. A delegation token may itself be derived
from a parent token; it is not necessarily produced by the root issuer.</t>

<t><strong>Execution Token:</strong> An AAT that authorizes its holder to invoke a
specific set of tools subject to argument constraints. An execution
token holder may derive tokens with authority equal to or narrower
than their own, subject to the depth limit of the chain.</t>

<t><strong>Tool:</strong> An addressable function or API operation that an agent may
invoke. A tool is identified by a string identifier. Tool identifiers
<bcp14>SHOULD</bcp14> be URIs (<xref target="RFC3986"/>); see Section 3.3.1 for requirements. Tool
identifiers <bcp14>MUST NOT</bcp14> contain characters that are subject to Unicode
normalization (such as combining characters or characters with multiple
canonical forms), as normalization-sensitive identifiers can produce
inconsistent matching behavior across implementations.</t>

<t><strong>Argument Constraint:</strong> A predicate over a tool argument value that the
argument <bcp14>MUST</bcp14> satisfy for the invocation to be authorized. Constraints
are evaluated at the enforcement point before invocation.</t>

<t><strong>Capability Claim:</strong> The set of (tool, argument constraints) pairs
encoded in an AAT's <spanx style="verb">authorization_details</spanx> claim.</t>

<t><strong>Attenuation:</strong> The process of deriving a token with a capability
claim that is a subset of the parent token's capability claim.
Attenuation is the only permitted direction of derivation.</t>

<t><strong>Chain:</strong> An ordered sequence of AATs from root to leaf, where each
token was derived from its predecessor.</t>

<t><strong>Leaf Token:</strong> The last token in a chain. The leaf token is the one
presented to the enforcement point for authorization. A leaf token <bcp14>MUST</bcp14>
have <spanx style="verb">aat_type: "execution"</spanx>. The PoP JWT is signed by the private key
corresponding to the leaf token's <spanx style="verb">cnf.jwk</spanx>.</t>

<t><strong>Enforcement Point:</strong> The component that receives a tool
invocation request, verifies the presented token chain, evaluates
argument constraints, and permits or denies execution.</t>

<t><strong>Trust Anchor:</strong> A public key that enforcement points are configured to
trust as the root of a delegation chain. Root tokens are signed by the
private key corresponding to a trust anchor.</t>

<t><strong>Proof of Possession (PoP):</strong> A cryptographic demonstration that the
presenter of a token controls the private key corresponding to the
public key bound in the token's <spanx style="verb">cnf</spanx> claim. In this specification, the
token holder presents the chain and signs the PoP JWT using the same
private key.</t>

</section>
<section anchor="token-types-and-structure"><name>Token Types and Structure</name>

<section anchor="token-types"><name>Token Types</name>

<t>This specification defines two token types, distinguished by the
<spanx style="verb">aat_type</spanx> claim.</t>

<t><strong>Delegation Tokens</strong> (<spanx style="verb">aat_type: "delegation"</spanx>) enumerate the tools for
which the holder may derive further tokens; they do not authorize tool
invocation. A delegation token holder <bcp14>MUST NOT</bcp14> present a delegation
token to an enforcement point to invoke a tool. Root delegation tokens
are typically issued by a root issuer to orchestrating agents, but
delegation tokens may also appear at intermediate hops in a chain,
derived from a parent delegation token with narrower scope. A derived
token from a delegation token <bcp14>MUST NOT</bcp14> authorize tools absent
from the delegation token's <spanx style="verb">authorization_details</spanx>. The capability
monotonicity invariant (I4, Section 4.5) applies at every delegation
step: derived tokens can only narrow the authorized tool set and
argument constraints relative to the delegation token.</t>

<t><strong>Execution Tokens</strong> (<spanx style="verb">aat_type: "execution"</spanx>) authorize tool
invocation. They enumerate specific tools and the argument constraints
that apply to each. Execution tokens are presented to enforcement points
at tool invocation boundaries.</t>

<t>The separation between delegation and execution authority is a
structural property of the token, not a policy decision left to
enforcement points. This moves the authorization boundary from something
an enforcement point must judge to something any enforcement point
can read directly from the chain, and enables type-transition key
separation (Section 8.12) to be structurally enforced rather than
left to convention.</t>

<t>Any type transition is permitted, provided <spanx style="verb">del_depth &lt; del_max_depth</spanx>
in the parent token. A holder of either token type may derive a token
of either type, narrowing or maintaining the authorized tool set
and argument constraints. The capability monotonicity invariant (I4,
Section 4.5) applies at every derivation step regardless of the type
transition.</t>

<t>A derived token whose <spanx style="verb">aat_type</spanx> differs from its parent's <spanx style="verb">aat_type</spanx>
<bcp14>MUST</bcp14> have a <spanx style="verb">cnf.jwk</spanx> whose JWK Thumbprint (<xref target="RFC7638"/>) differs from
the parent's <spanx style="verb">cnf.jwk</spanx> thumbprint. This ensures structural separation
between planning authority and invocation authority: an entity that
delegates cannot use the same key to invoke, and an entity that invokes
cannot use the same key to delegate. When <spanx style="verb">aat_type</spanx> is preserved across
a derivation step, same-key derivation is permitted. The security
rationale for type-transition key separation is discussed in Section
8.12.</t>

<t>A root issuer <bcp14>MAY</bcp14> issue an execution token directly, bypassing the
delegation step, when an agent requires immediate tool invocation
authority without intermediate planning authority.</t>

</section>
<section anchor="common-claims"><name>Common Claims</name>

<t>The following claims appear in both token types. All claims listed as
<bcp14>REQUIRED</bcp14> <bcp14>MUST</bcp14> be present. Claims listed as <bcp14>OPTIONAL</bcp14> <bcp14>MAY</bcp14> be omitted;
their absence carries the semantics described in the table.</t>

<texttable>
      <ttcol align='left'>Claim</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Required</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c><spanx style="verb">jti</spanx></c>
      <c>string</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>Unique token identifier. <bcp14>SHOULD</bcp14> be a UUIDv7 value. When a UUID is used, it <bcp14>MUST</bcp14> be encoded as a lowercase hyphenated string in the form <spanx style="verb">xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</spanx> per <xref target="RFC9562"/>.</c>
      <c><spanx style="verb">iss</spanx></c>
      <c>string</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>Identifier of the entity that signed this token. For root tokens, <bcp14>MUST</bcp14> be a URI identifying the root issuer. For derived tokens, <bcp14>MUST</bcp14> be a JWK Thumbprint URI as defined in <xref target="RFC9278"/>, using the SHA-256 hash algorithm: <spanx style="verb">urn:ietf:params:oauth:jwk-thumbprint:sha-256:&lt;thumbprint&gt;</spanx>, where <spanx style="verb">&lt;thumbprint&gt;</spanx> is computed per <xref target="RFC7638"/>.</c>
      <c><spanx style="verb">iat</spanx></c>
      <c>NumericDate</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>Time at which the token was issued. <bcp14>MUST NOT</bcp14> be more than MAX_IAT_SKEW in the future relative to the enforcement point's clock (see Section 4.4). In a chain, a derived token's <spanx style="verb">iat</spanx> <bcp14>MUST NOT</bcp14> be earlier than its parent's <spanx style="verb">iat</spanx>.</c>
      <c><spanx style="verb">exp</spanx></c>
      <c>NumericDate</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>Time at which the token expires. <bcp14>MUST</bcp14> be greater than <spanx style="verb">iat</spanx>. <bcp14>MUST NOT</bcp14> exceed <spanx style="verb">iat</spanx> plus MAX_TOKEN_LIFETIME (see Section 4.4).</c>
      <c><spanx style="verb">cnf</spanx></c>
      <c>object</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>Confirmation claim <xref target="RFC7800"/>. <bcp14>MUST</bcp14> contain <spanx style="verb">jwk</spanx> with the holder's public key. The <spanx style="verb">jwk</spanx> value <bcp14>MUST</bcp14> be a public key; private key material <bcp14>MUST NOT</bcp14> appear in this field.</c>
      <c><spanx style="verb">aat_type</spanx></c>
      <c>string</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>Token type. <bcp14>MUST</bcp14> be <spanx style="verb">"delegation"</spanx> or <spanx style="verb">"execution"</spanx>.</c>
      <c><spanx style="verb">del_depth</spanx></c>
      <c>integer</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>Delegation depth. 0 for root tokens. Incremented by exactly 1 at each derivation step (see Section 4.3).</c>
      <c><spanx style="verb">del_max_depth</spanx></c>
      <c>integer</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>Maximum delegation depth permitted in this chain. <bcp14>MUST</bcp14> be a non-negative integer not exceeding the implementation's MAX_DELEGATION_DEPTH (Section 4.3).</c>
      <c><spanx style="verb">par_hash</spanx></c>
      <c>string</c>
      <c><bcp14>MUST</bcp14> (derived) / <bcp14>MUST NOT</bcp14> (root)</c>
      <c>Base64url-encoded SHA-256 digest of the parent token's JWS Signing Input, using base64url encoding without padding as defined in <xref target="RFC7515"/> Appendix C. <bcp14>MUST</bcp14> be absent in root tokens. <bcp14>MUST</bcp14> be present in all derived tokens.</c>
      <c><spanx style="verb">authorization_details</spanx></c>
      <c>array</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c>Tool capability claims. Format defined in Section 3.3.</c>
</texttable>

<t>Implementations <bcp14>MUST</bcp14> support Ed25519 <xref target="RFC8032"/> for token signing and
verification. Implementations <bcp14>MAY</bcp14> support additional algorithms.</t>

<t>In both root and derived tokens, <spanx style="verb">iss</spanx> is a URI. For root tokens,
<spanx style="verb">iss</spanx> is a URI identifying the root issuer, consistent with
conventional OAuth usage. For derived tokens, <spanx style="verb">iss</spanx> is a JWK
Thumbprint URI <xref target="RFC9278"/> that encodes the SHA-256 thumbprint of
the signing key. This makes I1 verifiable offline: the enforcement
point can confirm that the thumbprint embedded in <spanx style="verb">derived.iss</spanx>
matches <spanx style="verb">parent.cnf.jwk</spanx> without any external lookup.</t>

<t>This specification intentionally omits the <spanx style="verb">sub</spanx> claim. In conventional
OAuth tokens, <spanx style="verb">sub</spanx> identifies the resource owner or principal on whose
behalf the token is issued. In an AAT chain, the holder's identity is
fully determined by <spanx style="verb">cnf.jwk</spanx>: the entity presenting the token proves
possession of the private key corresponding to <spanx style="verb">cnf.jwk</spanx>. Including a
<spanx style="verb">sub</spanx> claim would introduce an additional identity binding that is not
cryptographically enforced by this specification and could be set
arbitrarily by any delegating party. Implementations that require a
human-readable subject identifier <bcp14>MAY</bcp14> convey one in additional JWT
claims outside this specification (see Appendix B.7).</t>

</section>
<section anchor="capability-claims-via-authorizationdetails"><name>Capability Claims via <spanx style="verb">authorization_details</spanx></name>

<t>This specification profiles <xref target="RFC9396"/> for tool-level capability
claims. Each entry in the <spanx style="verb">authorization_details</spanx> array <bcp14>MUST</bcp14> have <spanx style="verb">type</spanx>
set to <spanx style="verb">"attenuating_agent_token"</spanx>. The entry <bcp14>MUST</bcp14> include a <spanx style="verb">tools</spanx>
member that maps tool names to argument constraint sets.</t>

<figure><sourcecode type="json"><![CDATA[
{
  "authorization_details": [
    {
      "type": "attenuating_agent_token",
      "tools": {
        "read_file": {
          "path": {
            "constraint_type": "pattern", "value": "/data/*"
          }
        },
        "search_index": {
          "query": {
            "constraint_type": "pattern", "value": "*public*"
          },
          "limit": { "constraint_type": "range", "max": 100 }
        }
      }
    }
  ]
}
]]></sourcecode></figure>

<t>A tool entry with an empty constraint map <spanx style="verb">{}</spanx> is valid and indicates
that the tool is authorized without argument restrictions.</t>

<t>When a tool entry contains one or more argument constraints, the
enforcement point operates in closed-world mode for that tool
invocation: any argument not named in the constraint map <bcp14>MUST</bcp14> be
rejected. A constrained argument that is absent from the invocation <bcp14>MUST</bcp14>
also be rejected. The presence of a constraint asserts that the
issuer has reasoned about that argument. An invocation that omits
it has not been validated against that reasoning. This is a
security property, not a configuration option.</t>

<t>Issuers who wish to permit an argument to be omitted <bcp14>MUST NOT</bcp14> include a
constraint for it in the constraint map. There is no "optional
constraint" mechanism; the constraint map is a closed specification of
the required invocation shape. To authorize an argument without
restricting its value, use a <spanx style="verb">wildcard</spanx> constraint (see below).</t>

<t>A token issuer that wishes to allow unconstrained arguments alongside
constrained ones <bcp14>MUST</bcp14> explicitly include a <spanx style="verb">wildcard</spanx> constraint for
each argument that should be unrestricted. A <spanx style="verb">wildcard</spanx> constraint
satisfies closed-world mode while permitting any value for that argument
(see Section 3.4). Enforcement points <bcp14>MUST</bcp14> enforce closed-world mode and
<bcp14>MUST NOT</bcp14> permit unconstrained arguments when any constraint is present
for the tool (see Section 7, step 6b).</t>

<t>The <spanx style="verb">authorization_details</spanx> array <bcp14>MAY</bcp14> contain entries of other types
alongside <spanx style="verb">attenuating_agent_token</spanx> entries, consistent with the
extensibility model of <xref target="RFC9396"/>. Enforcement points implementing this
specification process only entries with <spanx style="verb">type</spanx> set to
<spanx style="verb">attenuating_agent_token</spanx> and <bcp14>MUST</bcp14> ignore entries of other types. An
<spanx style="verb">authorization_details</spanx> array containing multiple entries with <spanx style="verb">type:
"attenuating_agent_token"</spanx> is invalid; the tools map in a single entry
provides sufficient structure for all tool-level capability claims.</t>

<section anchor="tool-identifier-requirements"><name>Tool Identifier Requirements</name>

<t>Tool identifiers are the keys of the <spanx style="verb">tools</spanx> map in an
<spanx style="verb">authorization_details</spanx> entry. The following requirements apply.</t>

<t>Tool identifiers <bcp14>MUST</bcp14> be unique within the <spanx style="verb">tools</spanx> map of a single
token. An <spanx style="verb">authorization_details</spanx> entry containing duplicate tool
identifier keys is malformed and <bcp14>MUST</bcp14> be rejected.</t>

<t>Tool identifiers <bcp14>SHOULD</bcp14> be URIs (<xref target="RFC3986"/>). URI-format identifiers
provide namespace isolation across agents and prevent semantic collision
when multiple agents in a deployment expose tools with identical local
names.</t>

<t>When URI-format identifiers are used, the URI <bcp14>SHOULD</bcp14> be scoped to the
authority of the agent that exposes the tool. The authority component
<bcp14>SHOULD</bcp14> correspond to the agent's workload identity or a domain
controlled by the agent's operator. The URI <bcp14>SHOULD</bcp14> include a version
component or content hash to ensure that all parties in the chain reason
about the same tool schema. For example:</t>

<figure><artwork><![CDATA[
https://billing-agent.example.com/tools/charge/v2
]]></artwork></figure>

<t>Tool identifiers that are not URIs <bcp14>MAY</bcp14> be used in single-agent
deployments where namespace collision is not a concern. Deployments
spanning multiple agents or trust domains <bcp14>SHOULD</bcp14> use URI-format
identifiers.</t>

<t>A tool identifier carries no inherent authorization semantics beyond
naming a capability. The root issuer is responsible for verifying that
the tool identifier is meaningful and that the requesting agent is
authorized to claim identifiers under the tool URI's authority component
before minting a root token (Section 3.7.3).</t>

</section>
</section>
<section anchor="argument-constraints"><name>Argument Constraints</name>

<t>Each argument constraint is an object with a <spanx style="verb">constraint_type</spanx> member
and type-specific members. The following constraint types are defined
normatively. The <spanx style="verb">check</spanx> predicate and <spanx style="verb">subsumes</spanx> relation for each type
are normative: two independent implementations <bcp14>MUST</bcp14> produce identical
results when evaluating either predicate against the same inputs.</t>

<t>For constraint types where this specification does not define a general
containment algorithm (specifically <spanx style="verb">pattern</spanx>, <spanx style="verb">regex</spanx>, <spanx style="verb">cel</spanx>, <spanx style="verb">not</spanx>,
and <spanx style="verb">any</spanx>), this specification prescribes a conservative syntactic
strategy. The strategy is sound: it never incorrectly accepts a
non-subsuming constraint. It is conservative: it may reject constraints
that are semantically subsuming but cannot be proven so syntactically.
Deployments requiring richer policy expressiveness with full subsumption
support <bcp14>SHOULD</bcp14> use a registered extension constraint type built on a
language with a decidable containment algorithm (see Section 3.5 and
Appendix C).</t>

<texttable>
      <ttcol align='left'>constraint_type</ttcol>
      <ttcol align='left'>Additional Members</ttcol>
      <ttcol align='left'>Semantics</ttcol>
      <c><spanx style="verb">exact</spanx></c>
      <c><spanx style="verb">value</spanx> (any scalar)</c>
      <c>Argument <bcp14>MUST</bcp14> equal <spanx style="verb">value</spanx> exactly.</c>
      <c><spanx style="verb">pattern</spanx></c>
      <c><spanx style="verb">value</spanx> (string)</c>
      <c>Argument <bcp14>MUST</bcp14> match the glob pattern. See below for syntax.</c>
      <c><spanx style="verb">range</spanx></c>
      <c><spanx style="verb">min</spanx> (number, optional), <spanx style="verb">max</spanx> (number, optional), <spanx style="verb">min_inclusive</spanx> (boolean, optional, default true), <spanx style="verb">max_inclusive</spanx> (boolean, optional, default true)</c>
      <c>Argument <bcp14>MUST</bcp14> be a number satisfying the specified bounds. Both bounds are optional. <spanx style="verb">min_inclusive</spanx> and <spanx style="verb">max_inclusive</spanx> control whether the respective bound is included in the valid range; both default to true (closed interval).</c>
      <c><spanx style="verb">one_of</spanx></c>
      <c><spanx style="verb">values</spanx> (array)</c>
      <c>Argument <bcp14>MUST</bcp14> be a member of <spanx style="verb">values</spanx>.</c>
      <c><spanx style="verb">not_one_of</spanx></c>
      <c><spanx style="verb">excluded</spanx> (array)</c>
      <c>Argument <bcp14>MUST NOT</bcp14> be a member of <spanx style="verb">excluded</spanx>.</c>
      <c><spanx style="verb">contains</spanx></c>
      <c><spanx style="verb">required</spanx> (array)</c>
      <c>Argument, which <bcp14>MUST</bcp14> be an array, <bcp14>MUST</bcp14> contain every element listed in <spanx style="verb">required</spanx>.</c>
      <c><spanx style="verb">subset</spanx></c>
      <c><spanx style="verb">allowed</spanx> (array)</c>
      <c>Argument, which <bcp14>MUST</bcp14> be an array, <bcp14>MUST</bcp14> be a subset of <spanx style="verb">allowed</spanx>.</c>
      <c><spanx style="verb">regex</spanx></c>
      <c><spanx style="verb">pattern</spanx> (string)</c>
      <c>Argument <bcp14>MUST</bcp14> match the regular expression. See below for dialect and subsumption notes.</c>
      <c><spanx style="verb">cel</spanx></c>
      <c><spanx style="verb">expression</spanx> (string)</c>
      <c>Argument <bcp14>MUST</bcp14> satisfy the Common Expression Language (CEL) expression, which <bcp14>MUST</bcp14> return a boolean. See below for subsumption rules.</c>
      <c><spanx style="verb">wildcard</spanx></c>
      <c>(none)</c>
      <c>Any value is accepted.</c>
      <c><spanx style="verb">all</spanx></c>
      <c><spanx style="verb">constraints</spanx> (array)</c>
      <c>Logical AND of nested constraints. See Section 4.5 for subsumption rules.</c>
      <c><spanx style="verb">any</spanx></c>
      <c><spanx style="verb">constraints</spanx> (array)</c>
      <c>Logical OR of nested constraints. See Section 4.5 for subsumption rules.</c>
      <c><spanx style="verb">not</spanx></c>
      <c><spanx style="verb">constraint</spanx> (object)</c>
      <c>Logical negation of a nested constraint. See Section 4.5 for subsumption rules.</c>
</texttable>

<t><strong>Pattern glob syntax.</strong> The <spanx style="verb">pattern</spanx> constraint uses the following
glob syntax. <spanx style="verb">*</spanx> matches any sequence of characters not containing a
path separator. <spanx style="verb">?</spanx> matches any single character. <spanx style="verb">[abc]</spanx> matches any
single character in the set. <spanx style="verb">[!abc]</spanx> matches any single character not
in the set. The token <spanx style="verb">**</spanx> (double-star) has no defined semantics in
this specification and <bcp14>MUST NOT</bcp14> appear in pattern values. Brace
alternation (e.g., <spanx style="verb">{a,b}</spanx>) has no defined semantics in this
specification and <bcp14>MUST NOT</bcp14> appear in pattern values; deployments
requiring alternation <bcp14>SHOULD</bcp14> use <spanx style="verb">any</spanx> with multiple <spanx style="verb">pattern</spanx>
constraints. See Section 4.5 for subsumption rules.</t>

<t><strong>Regex dialect and subsumption.</strong> The <spanx style="verb">regex</spanx> constraint does not
standardize a dialect; implementations <bcp14>MUST</bcp14> document the dialect they
support. This specification does not define a portable containment
algorithm for regular expressions; equality of pattern strings is the
normative conservative subsumption strategy. See Section 4.5.</t>

<t><strong>CEL check predicate.</strong> The <spanx style="verb">cel</spanx> expression <bcp14>MUST</bcp14> evaluate to a
boolean. The subsumption strategy for <spanx style="verb">cel</spanx> uses balanced-parentheses
conjunction; see Section 4.5 for the normative rules and Section 8.13
for the security rationale.</t>

<t>Enforcement points <bcp14>MUST</bcp14> reject invocations where any argument violates
its associated constraint. Enforcement points <bcp14>MUST</bcp14> deny authorization if
they encounter a <spanx style="verb">constraint_type</spanx> they do not recognize (fail-closed
behavior). This fail-closed rule applies only to constraint types within
<spanx style="verb">authorization_details</spanx>. Enforcement points <bcp14>MUST</bcp14> ignore unrecognized
top-level JWT claims; a token <bcp14>MUST NOT</bcp14> be rejected solely because it
contains claims outside those defined in this specification.</t>

<t>Composite constraint types (<spanx style="verb">all</spanx>, <spanx style="verb">any</spanx>, <spanx style="verb">not</spanx>) are recursive.
MAX_CONSTRAINT_DEPTH is an implementation-defined finite integer
specifying the maximum nesting depth of a constraint tree.
Implementations <bcp14>MUST</bcp14> enforce a finite MAX_CONSTRAINT_DEPTH to prevent
resource exhaustion from pathologically deep constraint trees. A value
of 32 is <bcp14>RECOMMENDED</bcp14>. Enforcement points <bcp14>MUST</bcp14> reject any constraint tree
whose nesting depth exceeds MAX_CONSTRAINT_DEPTH.</t>

<t>Domain-specific constraint types such as path containment, URL safety,
or IP range matching may be registered in the extension registry
(Section 3.5).</t>

</section>
<section anchor="extension-constraint-registry"><name>Extension Constraint Registry</name>

<t>Implementations <bcp14>MAY</bcp14> define extension constraint types beyond those
listed in Section 3.4. Extension constraint types <bcp14>MUST</bcp14> be registered in
the IANA AAT Constraint Type Registry defined in Section 9.3. The
registry exists to preserve security and interoperability in the
presence of domain-specific constraints; it is not a requirement that
all implementations support arbitrary extensions. An enforcement point
that does not recognize a registered extension type <bcp14>MUST</bcp14> deny
authorization (Section 3.5.2), but it is not required to implement that
type.</t>

<section anchor="attenuation-compliance-requirement"><name>Attenuation Compliance Requirement</name>

<t>The capability monotonicity invariant (I4, Section 4.5) applies to
extension constraint types without exception. An extension constraint
type <bcp14>MUST NOT</bcp14> be registered unless its registration defines all of the
following.</t>

<t><strong>A subsumption verification procedure.</strong> The registration <bcp14>MUST</bcp14> provide
a complete, formal definition of what it means for one instance of the
constraint to be at least as restrictive as another instance of the same
constraint type. This procedure <bcp14>MUST</bcp14> satisfy three properties:</t>

<t><list style="numbers" type="1">
  <t><strong>Decidable.</strong> The procedure <bcp14>MUST</bcp14> terminate in finite time for
all inputs. It <bcp14>MUST NOT</bcp14> require solving problems that are
undecidable or computationally intractable in the general
case. If the constraint language used by the type is not
closed under decidable containment analysis, the registration
<bcp14>MUST</bcp14> prescribe a conservative syntactic strategy and <bcp14>MUST</bcp14>
formally justify that the strategy is sound (never accepts
a non-subsuming pair).</t>
  <t><strong>Sound.</strong> The procedure <bcp14>MUST NOT</bcp14> return true unless the
semantic subsumption relation holds. That is, if the procedure
returns true for (C_parent, C_child), then for all argument
values v: C_child.check(v) implies C_parent.check(v). The
procedure <bcp14>MAY</bcp14> be conservative: it <bcp14>MAY</bcp14> return false for
semantically subsuming pairs that it cannot verify, but it
<bcp14>MUST NOT</bcp14> return true for non-subsuming pairs.</t>
  <t><strong>Deterministic.</strong> Two independent implementations of the
procedure <bcp14>MUST</bcp14> produce identical results for the same inputs.
The procedure <bcp14>MUST</bcp14> be specified precisely enough to ensure
this. Ambiguity in the specification of the procedure is
grounds for rejection of the registration.</t>
</list></t>

<t>This specification does not prescribe the internal mechanism of the
subsumption verification procedure. Registrations <bcp14>MAY</bcp14> use structural
comparison of token claims, formal type-checking, proof-carrying tokens,
or any other mechanism that satisfies the three properties above. See
Appendix C for non-normative guidance on policy languages with decidable
containment algorithms.</t>

<t><strong>Cross-type subsumption rules.</strong> For each core constraint type
defined in Section 3.4, the registration <bcp14>MUST</bcp14> specify whether a
derived token may substitute an extension type instance for a
parent constraint of that core type (or vice versa). If
substitution is permitted, the registration <bcp14>MUST</bcp14> state the
conditions. Any (parent type, child type) pair not explicitly declared
valid <bcp14>MUST</bcp14> be treated as invalid by enforcement points.</t>

</section>
<section anchor="enforcement-point-obligations"><name>Enforcement Point Obligations</name>

<t>When an enforcement point encounters an extension constraint type during
chain verification, it <bcp14>MUST</bcp14>:</t>

<t><list style="numbers" type="1">
  <t>Locate the registered subsumption verification procedure for
that type. If no registration exists, the enforcement point <bcp14>MUST</bcp14>
reject the chain (fail-closed).</t>
  <t>Evaluate the subsumption relation at every chain link where
the constraint appears, as part of the I4 check. A chain link
where the derived constraint does not subsume the parent
constraint <bcp14>MUST</bcp14> be rejected.</t>
  <t>Evaluate the constraint's <spanx style="verb">check</spanx> predicate against the
presented argument value during authorization. If the predicate
returns false, the invocation <bcp14>MUST</bcp14> be denied.</t>
</list></t>

<t>An enforcement point that does not implement a registered extension
constraint type <bcp14>MUST</bcp14> deny authorization rather than skip the constraint.
The presence of an unrecognized constraint type in a token represents a
restriction the issuer intended to enforce. Silently omitting that check
would violate the attenuation guarantee.</t>

</section>
<section anchor="example-registration-path-containment"><name>Example Registration: Path Containment</name>

<t>The following is an illustrative example of a conforming extension
constraint registration. It is not defined normatively in this document.</t>

<t><strong>Type name:</strong> <spanx style="verb">path_containment</spanx></t>

<t><strong>Additional members:</strong> <spanx style="verb">root</spanx> (string, required). An absolute path
prefix.</t>

<t><strong><spanx style="verb">check</spanx> predicate:</strong> The argument, after resolving all <spanx style="verb">.</spanx> and <spanx style="verb">..</spanx>
components and removing redundant separators, must begin with <spanx style="verb">root</spanx>.
The normalization step is part of the predicate; implementations that
compare raw argument strings without normalization do not conform to
this registration.</t>

<t><strong><spanx style="verb">subsumes</spanx> relation:</strong> <spanx style="verb">subsumes(C_parent, C_child)</spanx> is true if and
only if <spanx style="verb">C_child.root</spanx> is <spanx style="verb">C_parent.root</spanx> or a descendant of
<spanx style="verb">C_parent.root</spanx> under the normalized path ordering.</t>

<t><strong>Cross-type subsumption:</strong> A derived <spanx style="verb">exact</spanx> constraint subsumes a
parent <spanx style="verb">path_containment</spanx> constraint if and only if the exact value,
after normalization, begins with the parent's <spanx style="verb">root</spanx>. All other
cross-type pairs involving <spanx style="verb">path_containment</spanx> are invalid.</t>

<t>The following additional examples illustrate conforming extension
registrations for network-oriented constraint types. Neither is defined
normatively in this document.</t>

<t><strong>Type name:</strong> <spanx style="verb">cidr</spanx></t>

<t><strong>Additional members:</strong> <spanx style="verb">network</spanx> (string, required). An IPv4 or IPv6
network in CIDR notation.</t>

<t><strong><spanx style="verb">check</spanx> predicate:</strong> The argument must be a valid IPv4 or IPv6 address
string that falls within <spanx style="verb">network</spanx> after normalization of IPv6-mapped
IPv4 addresses, octal notation, and URL-encoded hostnames.
Implementations must normalize address representations before comparison
to prevent encoding bypasses.</t>

<t><strong><spanx style="verb">subsumes</spanx> relation:</strong> <spanx style="verb">subsumes(C_parent, C_child)</spanx> is true if and
only if <spanx style="verb">C_child.network</spanx> is a subnet of <spanx style="verb">C_parent.network</spanx>.</t>

<t><strong>Cross-type subsumption:</strong> A derived <spanx style="verb">exact</spanx> constraint subsumes a
parent <spanx style="verb">cidr</spanx> constraint if and only if the exact value, after
normalization, is an address within the parent's network. All other
cross-type pairs involving <spanx style="verb">cidr</spanx> are invalid.</t>

<t><strong>Type name:</strong> <spanx style="verb">url_safe</spanx></t>

<t><strong>Additional members:</strong> <spanx style="verb">allow_schemes</spanx> (array of strings, optional,
default <spanx style="verb">["http", "https"]</spanx>); <spanx style="verb">allow_domains</spanx> (array of strings,
optional); <spanx style="verb">deny_domains</spanx> (array of strings, optional); <spanx style="verb">block_private</spanx>
(boolean, optional, default true); <spanx style="verb">block_loopback</spanx> (boolean, optional,
default true); <spanx style="verb">block_metadata</spanx> (boolean, optional, default true).</t>

<t><strong><spanx style="verb">check</spanx> predicate:</strong> The argument must be a URL whose scheme appears
in <spanx style="verb">allow_schemes</spanx>. If <spanx style="verb">block_private</spanx>, <spanx style="verb">block_loopback</spanx>, or
<spanx style="verb">block_metadata</spanx> are true, the resolved host must not be a private,
loopback, or cloud metadata address respectively, after normalization of
all known IP encoding forms (decimal, hex, octal, IPv6-mapped,
URL-encoded). If <spanx style="verb">allow_domains</spanx> is non-empty, the host must match at
least one entry. If <spanx style="verb">deny_domains</spanx> is non-empty, the host must not match
any entry. <spanx style="verb">deny_domains</spanx> takes precedence over <spanx style="verb">allow_domains</spanx> on
overlap.</t>

<t><strong><spanx style="verb">subsumes</spanx> relation:</strong> <spanx style="verb">subsumes(C_parent, C_child)</spanx> is true if and
only if <spanx style="verb">C_child</spanx> is at least as restrictive as <spanx style="verb">C_parent</spanx> on every
field: <spanx style="verb">allow_schemes</spanx> is a subset of parent's; <spanx style="verb">block_private</spanx>,
<spanx style="verb">block_loopback</spanx>, and <spanx style="verb">block_metadata</spanx> are each equal to or more
restrictive than the parent's corresponding flag; <spanx style="verb">allow_domains</spanx> is a
subset of parent's (or parent has none); <spanx style="verb">deny_domains</spanx> is a superset of
parent's.</t>

<t><strong>Cross-type subsumption:</strong> A derived <spanx style="verb">exact</spanx> constraint subsumes a
parent <spanx style="verb">url_safe</spanx> constraint if and only if the exact value passes the
parent's <spanx style="verb">check</spanx> predicate. All other cross-type pairs involving
<spanx style="verb">url_safe</spanx> are invalid.</t>

</section>
</section>
<section anchor="examples"><name>Examples</name>

<section anchor="root-delegation-token"><name>Root Delegation Token</name>

<figure><sourcecode type="json"><![CDATA[
{
  "jti": "01957a3f-4e23-7b01-a9d1-0050569c2e4f",
  "iss": "https://auth.example.com",
  "iat": 1741600000,
  "exp": 1741603600,
  "aat_type": "delegation",
  "del_depth": 0,
  "del_max_depth": 3,
  "cnf": {
    "jwk": {
      "kty": "OKP",
      "crv": "Ed25519",
      "x": "11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo"
    }
  },
  "authorization_details": [
    {
      "type": "attenuating_agent_token",
      "tools": {
        "read_file": {
          "path": {
            "constraint_type": "pattern", "value": "/data/*"
          }
        },
        "search_index": {}
      }
    }
  ]
}
]]></sourcecode></figure>

</section>
<section anchor="derived-execution-token"><name>Derived Execution Token</name>

<figure><sourcecode type="json"><![CDATA[
{
  "jti": "01957a41-0081-7c20-bf3a-00a0c91e1234",
  "iss": "urn:ietf:params:oauth:jwk-thumbprint:sha-256:KAKnRDlMQVIKCfS5JhHlABCHjAFLdyEVVHdpnGnLLg8",
  "iat": 1741600120,
  "exp": 1741601920,
  "aat_type": "execution",
  "del_depth": 1,
  "del_max_depth": 3,
  "par_hash": "sha256_base64url_of_parent_jws_signing_input",
  "cnf": {
    "jwk": {
      "kty": "OKP",
      "crv": "Ed25519",
      "x": "rAl9xvTDAeUADPnIWlGpFHtGg4Y8OqcQE5N4XYNdLPs"
    }
  },
  "authorization_details": [
    {
      "type": "attenuating_agent_token",
      "tools": {
        "read_file": {
          "path": {
            "constraint_type": "exact",
            "value": "/data/q3-report.pdf"
          }
        }
      }
    }
  ]
}
]]></sourcecode></figure>

<t>Note that the derived token:</t>

<t><list style="symbols">
  <t>Carries a <spanx style="verb">par_hash</spanx> linking it to its parent.</t>
  <t>Has <spanx style="verb">del_depth</spanx> incremented to 1.</t>
  <t>Restricts <spanx style="verb">read_file</spanx> to a single file rather than the full
<spanx style="verb">/data</spanx> subtree.</t>
  <t>Omits <spanx style="verb">search_index</spanx>, which the parent permitted. Tool omission
is valid attenuation.</t>
  <t>Expires 1800s after its own issuance, versus the parent's 3600s
window.</t>
</list></t>

</section>
</section>
<section anchor="root-issuer-support-and-root-token-issuance"><name>Root Issuer Support and Root Token Issuance</name>

<section anchor="root-issuer-discovery"><name>Root Issuer Discovery</name>

<t>A root issuer that supports AAT issuance <bcp14>SHOULD</bcp14> advertise this
capability using the following metadata parameter in its
authorization server metadata document <xref target="RFC8414"/>, if supported.</t>

<texttable>
      <ttcol align='left'>Metadata Parameter</ttcol>
      <ttcol align='left'>Value</ttcol>
      <c><spanx style="verb">aat_issuer</spanx></c>
      <c>Boolean. <spanx style="verb">true</spanx> if the AS can issue AAT root tokens.</c>
</texttable>

<t>This document requests registration of <spanx style="verb">aat_issuer</spanx> in the IANA OAuth
Authorization Server Metadata registry (Section 9.4).</t>

</section>
<section anchor="agent-token-request"><name>Agent Token Request</name>

<t>An agent requesting a root AAT <bcp14>MUST</bcp14> include a <spanx style="verb">cnf</spanx> parameter in its
token endpoint request (in the OAuth 2.0 sense, the agent acts as the
client for this request). This specification treats <spanx style="verb">cnf</spanx> as a profiled
use of the key confirmation object structure defined in <xref target="RFC7800"/>
Section 3.1; its semantics are fully specified by that document. This
document requests registration of <spanx style="verb">cnf</spanx> as an OAuth token endpoint
request parameter (Section 9.6). The value <bcp14>MUST</bcp14> be a JSON object
containing a <spanx style="verb">jwk</spanx> member with the agent's public key in JWK format
<xref target="RFC7517"/>. This is the key that the root issuer will bind into the
root token's <spanx style="verb">cnf.jwk</spanx> claim.</t>

<figure><artwork><![CDATA[
POST /token HTTP/1.1
Host: as.example.com
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials
&authorization_details=%5B%7B%22type%22%3A%22attenuating_agent_
  token%22%2C...%7D%5D
&cnf=%7B%22jwk%22%3A%7B%22kty%22%3A%22OKP%22%2C...%7D%7D
]]></artwork></figure>

<t>The request <bcp14>MUST</bcp14> also include <spanx style="verb">authorization_details</spanx> in RAR format
<xref target="RFC9396"/> with <spanx style="verb">type</spanx> set to <spanx style="verb">attenuating_agent_token</spanx>, enumerating
the tools and argument constraints the agent is requesting authority to
invoke or delegate.</t>

</section>
<section anchor="root-token-issuance"><name>Root Token Issuance</name>

<t>Upon a valid request, the AS constructs and returns a root AAT. The AS:</t>

<t><list style="numbers" type="1">
  <t>Sets <spanx style="verb">iss</spanx> to the AS's own URI.</t>
  <t>Sets <spanx style="verb">jti</spanx> to a unique token identifier, <bcp14>RECOMMENDED</bcp14> to be
a UUIDv7 value per <xref target="RFC9562"/>.</t>
  <t>Sets <spanx style="verb">iat</spanx> to the current time and <spanx style="verb">exp</spanx> to the token's
expiry time, subject to the constraints in Section 4.4.</t>
  <t>Sets <spanx style="verb">aat_type</spanx> to <spanx style="verb">"delegation"</spanx> or <spanx style="verb">"execution"</spanx> as
appropriate for the grant.</t>
  <t>Sets <spanx style="verb">del_depth</spanx> to 0, <spanx style="verb">del_max_depth</spanx> to the maximum
delegation depth permitted for this grant, and <spanx style="verb">par_hash</spanx>
to absent.</t>
  <t>Sets <spanx style="verb">cnf.jwk</spanx> to the public key submitted in the agent's
<spanx style="verb">cnf</spanx> request parameter. The root issuer <bcp14>MUST</bcp14> validate that
the submitted key is well-formed and is a public key. The
root issuer <bcp14>SHOULD</bcp14> require the agent to demonstrate
possession of the corresponding private key, for example via
a signed proof-of-possession assertion in the token request.</t>
  <t>Sets <spanx style="verb">authorization_details</spanx> to the capability claims
granted, which <bcp14>MAY</bcp14> be a subset of what the agent requested.</t>
  <t>For each URI-format tool identifier in the requested
<spanx style="verb">authorization_details</spanx>, the root issuer <bcp14>SHOULD</bcp14> verify that
the requesting agent's identity, as established by the
agent's client authentication credentials, corresponds to
the authority component of each claimed tool URI. If this
verification fails, the root issuer <bcp14>MUST</bcp14> reject the request.
The mechanism by which agent identity is mapped to tool URI
authority is deployment-specific and outside the scope of
this specification.</t>
  <t>Signs the token with the AS's own private key.</t>
</list></t>

<t>The AS returns the token in a standard OAuth 2.0 token endpoint response
(<xref target="RFC6749"/> Section 5.1) with the following field values:</t>

<figure><artwork><![CDATA[
{
  "access_token": "<compact-serialized AAT JWT>",
  "token_type": "aat",
  "expires_in": <seconds until exp>
}
]]></artwork></figure>

<t>The <spanx style="verb">token_type</spanx> value <spanx style="verb">"aat"</spanx> is registered in Section 9.5. Clients
<bcp14>MUST NOT</bcp14> treat the returned token as a bearer token for use with
arbitrary resource servers. Its only valid use is as the root of an AAT
delegation chain presented to an enforcement point per Section 7.</t>

<t>Note: this specification defines token endpoint issuance for
interoperability with existing OAuth 2.0 deployments. Unlike bearer
tokens, an AAT carries its own holder key binding and is not usable as a
credential for HTTP resource access. Alternative issuance profiles are
outside the scope of this document.</t>

<t>The AS does not need to store or track derived tokens issued downstream
by the initial token holder. Chain verification is performed by
enforcement points using only the root token's public key as a trust
anchor.</t>

</section>
</section>
</section>
<section anchor="attenuation-invariants"><name>Attenuation Invariants</name>

<t>Every derived token in a chain <bcp14>MUST</bcp14> satisfy all of the following
invariants. The verification algorithm in Section 7 enforces these
invariants; enforcement points <bcp14>MUST</bcp14> reject any chain that violates
any invariant.</t>

<section anchor="capability-lattice-model-non-normative"><name>Capability Lattice Model (Non-Normative)</name>

<t>The attenuation invariants in this section are instances of a single
abstract structure: a capability lattice. This subsection states that
structure informally to give readers a mental model for interpreting the
normative rules that follow.</t>

<t>For a token <spanx style="verb">T</spanx>, define its capability set <spanx style="verb">C(T)</spanx> as the set of <spanx style="verb">(tool,
args)</spanx> pairs that <spanx style="verb">T</spanx> authorizes (that is, the pairs for which <spanx style="verb">T</spanx> would
permit invocation). The core security property of this protocol is:</t>

<figure><artwork><![CDATA[
C(child) ⊆ C(parent)
]]></artwork></figure>

<t>Every delegation step moves down or stays at the same position in this
partial order. A derived token can only authorize a subset of what its
parent authorized. It cannot add tools, loosen argument constraints, or
extend the chain's authority in any dimension.</t>

<t>The <spanx style="verb">⊆</spanx> relation is not defined by enumerating <spanx style="verb">(tool, args)</spanx> pairs
(argument spaces are typically infinite) but by the structural
subsumption rules in Section 4.5. At the tool level, the derived
token's tool set must be a subset of the parent's. At the argument
level, when the parent's constraint map is non-empty, the derived
token must preserve the parent's key set exactly (Section 4.5
explains why closed-world semantics require this).</t>

<t>When the parent's map is empty, the derived token may introduce
keys, transitioning from open-world to closed-world. Each per-key
constraint must be at least as restrictive. A derived constraint
<spanx style="verb">c_child</spanx> subsumes a parent constraint <spanx style="verb">c_parent</spanx> (written
<spanx style="verb">c_child ⊑ c_parent</spanx>) if every argument value that satisfies
<spanx style="verb">c_child</spanx> also satisfies <spanx style="verb">c_parent</spanx>.</t>

<t>Two boundary cases complete the structure. The empty capability set
<spanx style="verb">∅</spanx> is the bottom element: a token with no tools authorized is a
valid but useless terminal token. The root token's capability set is the ceiling
for the entire chain: no derived token at any depth can exceed what the
root authorized.</t>

<t>Token lifetime (I3) is a mandatory attenuation dimension orthogonal to
the capability lattice. A derived token with <spanx style="verb">C(child) == C(parent)</spanx> is
still strictly more constrained if its <spanx style="verb">exp</spanx> is earlier than its
parent's. Time-to-live (TTL) bounds are enforced independently of
capability monotonicity. Both must hold for a chain to be valid.</t>

<t>Invariants I1 through I6 are the normative enforcement mechanism for
this property. I4 (Section 4.5) directly enforces <spanx style="verb">C(child) ⊆
C(parent)</spanx>. The remaining invariants enforce the conditions under which
that comparison is meaningful: that the chain is cryptographically
linked (I1, I5), that depth and time bounds are respected (I2, I3), and
that the presenter holds the key (I6).</t>

</section>
<section anchor="i1-delegation-authority"><name>I1: Delegation Authority</name>

<figure><artwork><![CDATA[
derived.iss == jwk_thumbprint_uri(parent.cnf.jwk)
]]></artwork></figure>

<t>where <spanx style="verb">jwk_thumbprint_uri</spanx> constructs the <xref target="RFC9278"/> URI from the
key's SHA-256 thumbprint. The entity that signed the derived token
<bcp14>MUST</bcp14> be the holder of the parent token. Authority flows from parent
holder to derived token issuer. This invariant establishes an
unambiguous audit trail: each link
in the chain was signed by the party that held the preceding token.</t>

</section>
<section anchor="i2-depth-monotonicity"><name>I2: Depth Monotonicity</name>

<figure><artwork><![CDATA[
derived.del_depth == parent.del_depth + 1
derived.del_depth <= parent.del_max_depth
derived.del_depth <= derived.del_max_depth
derived.del_depth <= MAX_DELEGATION_DEPTH
derived.del_max_depth <= parent.del_max_depth
]]></artwork></figure>

<t>Delegation depth increments exactly by one at each link. The chain
cannot skip depths, branch, or exceed the maximum depth established in
the root token. <spanx style="verb">del_max_depth</spanx> is an absolute ceiling, not a remaining
count. A token is terminal (its holder cannot derive further tokens)
when <spanx style="verb">del_depth == del_max_depth</spanx>. A root token with <spanx style="verb">del_max_depth: 0</spanx>
is therefore immediately terminal and cannot produce any derived tokens.</t>

<t>The <spanx style="verb">del_max_depth</spanx> claim serves two related purposes. First, it is a
security boundary: each delegation hop is a trust extension, delegating
authority through another agent whose key, runtime, and behavior must be
trusted to maintain the attenuation invariant. Unbounded chains mean
unbounded trust extensions; the depth limit constrains how far authority
can propagate before it must be reissued from the root. Second, it is a
policy expression by the root issuer: a root delegation token with
<spanx style="verb">del_max_depth: 2</spanx> asserts that this grant of authority should pass
through no more than two intermediate agents, regardless of what those
agents might prefer. Intermediate token holders can only lower
<spanx style="verb">del_max_depth</spanx>, never raise it (I2), so the root issuer's topology
constraint is cryptographically enforced across the entire chain.</t>

<t>MAX_DELEGATION_DEPTH is an implementation-defined finite integer
specifying the maximum permitted delegation chain depth. Implementations
<bcp14>MUST</bcp14> enforce a finite maximum delegation depth to prevent resource
exhaustion from pathologically deep chains. The appropriate value
depends on the deployment topology; swarm architectures with deep
fan-out may require significantly larger values than linear delegation
chains. See Appendix B.5 for guidance.</t>

<t>The <spanx style="verb">del_max_depth</spanx> claim in any token in the chain <bcp14>MUST NOT</bcp14> exceed the
implementation's MAX_DELEGATION_DEPTH.</t>

<section anchor="implementation-resource-limits"><name>Implementation Resource Limits</name>

<t>MAX_TOKEN_SIZE is an implementation-defined finite integer specifying
the maximum encoded size of a single token in bytes. Implementations
<bcp14>MUST</bcp14> enforce this limit to prevent memory exhaustion from pathologically
large tokens. A value of 65536 bytes (64 KiB) is <bcp14>RECOMMENDED</bcp14>.</t>

<t>MAX_STACK_SIZE is an implementation-defined finite integer specifying
the maximum total encoded size of a chain in bytes. Implementations <bcp14>MUST</bcp14>
enforce this limit. A value of 262144 bytes (256 KiB) is <bcp14>RECOMMENDED</bcp14>.</t>

</section>
</section>
<section anchor="i3-ttl-monotonicity"><name>I3: TTL Monotonicity</name>

<figure><artwork><![CDATA[
derived.exp  <= parent.exp
derived.exp  >  now
derived.exp  >  derived.iat
derived.iat  >= parent.iat
derived.iat  <= now + MAX_IAT_SKEW
derived.exp  <= derived.iat + MAX_TOKEN_LIFETIME
]]></artwork></figure>

<t>MAX_IAT_SKEW is an implementation-defined finite integer specifying the
maximum number of seconds a token's <spanx style="verb">iat</spanx> may be in the future relative
to the enforcement point's clock. Implementations <bcp14>MUST</bcp14> enforce a finite
MAX_IAT_SKEW. A value of 30 seconds is <bcp14>RECOMMENDED</bcp14>.</t>

<t>MAX_TOKEN_LIFETIME is an implementation-defined finite integer
specifying the maximum permitted duration in seconds between a token's
<spanx style="verb">iat</spanx> and <spanx style="verb">exp</spanx>. Implementations <bcp14>MUST</bcp14> enforce a finite
MAX_TOKEN_LIFETIME. A value of 90 days is <bcp14>RECOMMENDED</bcp14> as an upper bound;
deployments <bcp14>SHOULD</bcp14> use significantly shorter lifetimes in practice (see
Appendix B.8).</t>

<t>A derived token cannot outlive its parent. Authority cannot extend
beyond the lifetime of the token that granted it. A derived token's
issuance time <bcp14>MUST NOT</bcp14> precede its parent's issuance time. A token with
an earlier <spanx style="verb">iat</spanx> indicates clock manipulation or chain forgery. Tokens
with <spanx style="verb">iat</spanx> more than MAX_IAT_SKEW in the future relative to the
enforcement point's clock <bcp14>MUST</bcp14> be rejected. A token's lifetime
<bcp14>MUST NOT</bcp14> exceed MAX_TOKEN_LIFETIME.</t>

</section>
<section anchor="i4-capability-monotonicity"><name>I4: Capability Monotonicity</name>

<figure><artwork><![CDATA[
tools(derived) ⊆ tools(parent)
∀ tool ∈ tools(derived):
  constraints(derived, tool) ⊑ constraints(parent, tool)
]]></artwork></figure>

<t>A derived token <bcp14>MUST NOT</bcp14> authorize tools that the parent did not
authorize. For each tool that appears in both parent and derived token:</t>

<t><list style="symbols">
  <t>If the parent's constraint map for that tool is non-empty, the
derived token's constraint map <bcp14>MUST</bcp14> contain exactly the same set
of argument keys. Under closed-world semantics (Section 3.3),
the constraint map keys define the required invocation shape:
any argument not named is forbidden, and any named argument must
be present. Adding a key would produce invocations that the
parent's closed-world check rejects (the extra argument is
unknown). Dropping a key would produce invocations that omit a
parent-required argument. In both cases the derived invocation
set is disjoint from the parent's, not a subset.</t>
  <t>If the parent's constraint map is empty (open-world), the derived
token <bcp14>MAY</bcp14> introduce constraint keys, transitioning to
closed-world. Any closed-world constraint set is a subset of the
unrestricted open-world set.</t>
</list></t>

<t>For each argument constraint key present in both parent and derived
token, the derived constraint <bcp14>MUST</bcp14> be at least as restrictive as the
parent's constraint.</t>

<t>Constraint subsumption is defined per constraint type. The normative
rules are:</t>

<t><list style="symbols">
  <t><strong>exact:</strong> A derived <spanx style="verb">exact</spanx> constraint subsumes a parent
constraint of the same or different type as follows: it subsumes
a parent <spanx style="verb">exact</spanx> if the values are identical; it subsumes a
parent <spanx style="verb">pattern</spanx> if the exact value matches the parent
pattern; it subsumes a parent <spanx style="verb">range</spanx> if the exact value
falls within the parent range; it subsumes a parent <spanx style="verb">one_of</spanx>
if the exact value is a member of the parent set; it subsumes
a parent <spanx style="verb">regex</spanx> if the exact value matches the parent regex
pattern; it subsumes a parent <spanx style="verb">wildcard</spanx> unconditionally.
All other parent types are invalid cross-type targets for
a derived <spanx style="verb">exact</spanx> constraint.</t>
  <t><strong>pattern:</strong> This specification does not define a general
containment algorithm for glob patterns; therefore it uses a
conservative syntactic strategy. Enforcement points <bcp14>MUST</bcp14> apply
the following rules, in order:  <list style="numbers" type="1">
      <t>A derived <spanx style="verb">exact</spanx> constraint subsumes a parent <spanx style="verb">pattern</spanx> if
the exact value matches the parent pattern.</t>
      <t>If the parent pattern ends with a single <spanx style="verb">*</spanx> wildcard (a
terminal wildcard), a derived <spanx style="verb">pattern</spanx> subsumes it if the
derived pattern also ends with a single <spanx style="verb">*</spanx> wildcard and
the derived pattern's fixed prefix (the portion before the
terminal <spanx style="verb">*</spanx>) is equal to or longer than the parent's fixed
prefix, and the derived prefix begins with the parent
prefix. For example, a derived pattern <spanx style="verb">/data/reports/*</spanx>
subsumes a parent pattern <spanx style="verb">/data/*</spanx> because <spanx style="verb">/data/reports/</spanx>
begins with <spanx style="verb">/data/</spanx> and is longer.</t>
      <t>In all other cases, a derived <spanx style="verb">pattern</spanx> subsumes a parent
<spanx style="verb">pattern</spanx> if and only if the pattern strings are identical.</t>
    </list>
This strategy applies to patterns containing character classes
(<spanx style="verb">[abc]</spanx>, <spanx style="verb">[!abc]</spanx>) without exception: a derived pattern with a
different character class than its parent <bcp14>MUST</bcp14> be treated as
non-subsuming even if semantically narrower. Enforcement
points <bcp14>MUST NOT</bcp14> attempt semantic evaluation to determine
pattern subsumption.
Deployments requiring richer containment analysis <bcp14>SHOULD</bcp14> use a
registered extension constraint type (see Appendix C).</t>
  <t><strong>range:</strong> A derived <spanx style="verb">range</spanx> constraint is valid only if its
bounds are at least as restrictive as the parent's
(derived <spanx style="verb">min &gt;= parent min</spanx>, derived <spanx style="verb">max &lt;= parent max</spanx>).
A missing bound on the parent is treated as unbounded; a
missing bound on the derived constraint is only valid if the parent
bound is also missing. A derived bound's inclusivity may only become
more restrictive: a derived <spanx style="verb">min_inclusive: false</spanx> is valid when the
parent has <spanx style="verb">min_inclusive: true</spanx> at the same <spanx style="verb">min</spanx> value (exclusive is
strictly tighter), but the reverse is not. The same applies to
<spanx style="verb">max_inclusive</spanx>.</t>
  <t><strong>one_of:</strong> A derived <spanx style="verb">one_of</spanx> constraint is valid only if
its value set is a subset of the parent's value set.
Cross-type pairs involving a derived <spanx style="verb">not_one_of</spanx> against a
parent <spanx style="verb">one_of</spanx> are invalid: a <spanx style="verb">not_one_of</spanx> constraint
accepts values outside the parent's permitted set and
cannot be verified as subsuming a <spanx style="verb">one_of</spanx> without domain knowledge.
Enforcement points <bcp14>MUST</bcp14> reject this cross-type pair.</t>
  <t><strong>not_one_of:</strong> A derived <spanx style="verb">not_one_of</spanx> constraint is valid
only if its excluded set is a superset of the parent's excluded
set (can only add exclusions, never remove them).</t>
  <t><strong>regex:</strong> This specification does not standardize a regex
dialect or portable containment algorithm; equality of pattern
strings is the normative conservative subsumption strategy.
A derived <spanx style="verb">regex</spanx> constraint is valid attenuation of a
parent <spanx style="verb">regex</spanx> constraint if and only if the pattern strings
are identical. A derived <spanx style="verb">exact</spanx> constraint subsumes a
parent <spanx style="verb">regex</spanx> constraint if and only if the exact value matches the
parent regex pattern. All other cross-type pairs involving <spanx style="verb">regex</spanx> are
invalid. Deployments requiring richer containment analysis <bcp14>SHOULD</bcp14> use
a registered extension constraint type.</t>
  <t><strong>cel:</strong> This specification does not define a general semantic
containment algorithm for CEL expressions. The normative
subsumption strategy requires balanced-parentheses
conjunction: a derived <spanx style="verb">cel</spanx> constraint subsumes a parent
<spanx style="verb">cel</spanx> constraint if and only if the derived expression
string is exactly <spanx style="verb">(parent_expression) &amp;&amp;
(additional_clause)</spanx>. The parent expression <bcp14>MUST</bcp14> appear
verbatim inside the leading parentheses. Each additional
clause <bcp14>MUST</bcp14> be individually wrapped in balanced
parentheses. Multiple additional
clauses are permitted: <spanx style="verb">(parent) &amp;&amp; (clause1) &amp;&amp; (clause2)</spanx>. No other
form is considered subsuming.  <vspace blankLines='1'/>
This requirement is a security invariant, not a style guideline. CEL's
<spanx style="verb">&amp;&amp;</spanx> operator binds tighter than <spanx style="verb">||</spanx>. Without balanced parentheses
around the additional clause, an attacker can append <spanx style="verb">||
evil_predicate</spanx> after the conjunction, which CEL parses as <spanx style="verb">(parent &amp;&amp;
clause) || evil_predicate</spanx>, a top-level disjunction that widens rather
than narrows authority. Wrapping each additional clause in balanced
parentheses ensures that any <spanx style="verb">||</spanx> inside the clause is contained
within the conjunction and cannot widen authority.  <vspace blankLines='1'/>
Enforcement points <bcp14>MUST</bcp14> verify balanced parentheses by bracket
counting, not by semantic evaluation. Enforcement points <bcp14>MUST NOT</bcp14>
attempt semantic evaluation to determine subsumption.  <vspace blankLines='1'/>
Issuers constructing a derived <spanx style="verb">cel</spanx> constraint <bcp14>MUST</bcp14> copy the parent
expression string verbatim inside the leading parentheses and <bcp14>MUST</bcp14>
wrap each additional clause in balanced parentheses. If the issuer
requires a structurally different expression that is semantically
narrower, it <bcp14>MUST</bcp14> request a new root token from the root issuer rather
than attempting to rewrite the parent clause.  <vspace blankLines='1'/>
Deployments requiring richer policy expressiveness with full
subsumption support <bcp14>SHOULD</bcp14> use a registered extension type built on a
language with a decidable containment algorithm (see Appendix C).</t>
  <t><strong>wildcard:</strong> A derived <spanx style="verb">wildcard</spanx> is valid only if the parent
is also <spanx style="verb">wildcard</spanx>. Any other constraint type subsumes a
parent <spanx style="verb">wildcard</spanx>.</t>
  <t><strong>all:</strong> A derived <spanx style="verb">all</spanx> constraint is valid attenuation of a
parent <spanx style="verb">all</spanx> if the derived constraint contains all clauses
present in the parent (none may be dropped) and each
corresponding clause satisfies the subsumption relation.
The derived constraint <bcp14>MAY</bcp14> add additional clauses at any
position, which only further restrict the accepted
value set. Dropping any parent clause from the derived <spanx style="verb">all</spanx> would
expand authority and <bcp14>MUST</bcp14> be rejected.  <vspace blankLines='1'/>
Clause matching for <spanx style="verb">all</spanx> is subsumption-keyed: for each clause C_p in
the parent array, the enforcement point <bcp14>MUST</bcp14> find at least one clause
C_d in the derived array with the same <spanx style="verb">constraint_type</spanx> such that C_d
subsumes C_p per this section. Each parent clause <bcp14>MUST</bcp14> be matched to a
distinct derived clause (one-to-one assignment); a single derived
clause <bcp14>MUST NOT</bcp14> be used to satisfy more than one parent clause. If any
parent clause cannot be matched, the check <bcp14>MUST</bcp14> fail. Unmatched
additional clauses in the derived array are permitted.  <vspace blankLines='1'/>
The following pseudocode describes the matching algorithm.
Because the one-to-one assignment requirement is order-
sensitive when multiple clauses share the same
<spanx style="verb">constraint_type</spanx>, the algorithm backtracks when a greedy
match leads to a dead end. (When each <spanx style="verb">constraint_type</spanx>
appears at most once in the parent, no backtracking occurs
and the algorithm reduces to a linear scan.)  <vspace blankLines='1'/>
    <figure><artwork><![CDATA[
function check_all_subsumption(parent_clauses, derived_clauses):
  used = set()
  return match(parent_clauses, 0, derived_clauses, used)

function match(parents, idx, derived, used):
  if idx == len(parents):
    return PASS
  C_p = parents[idx]
  for i, C_d in enumerate(derived):
    if i not in used and
       C_d.constraint_type == C_p.constraint_type and
       subsumes(C_d, C_p):
      used.add(i)
      if match(parents, idx + 1, derived, used) == PASS:
        return PASS
      used.remove(i)    // backtrack
  return FAIL
]]></artwork></figure>
  <vspace blankLines='1'/>
The search space is bounded by the number of clauses
sharing a <spanx style="verb">constraint_type</spanx>. In typical usage each type
appears at most once, giving O(n) behavior. Implementations
<bcp14>MAY</bcp14> employ Hopcroft-Karp or similar maximum matching
algorithms for the general case.</t>
  <t><strong>any:</strong> A derived <spanx style="verb">any</spanx> constraint subsumes a parent <spanx style="verb">any</spanx>
constraint if every clause in the derived constraint is
subsumed by at least one clause in the parent constraint,
using the per-type subsumption rules defined in this section.
Formally: for each <spanx style="verb">clause_d</spanx> in
<spanx style="verb">derived.any.constraints</spanx>, there <bcp14>MUST</bcp14> exist a <spanx style="verb">clause_p</spanx> in
<spanx style="verb">parent.any.constraints</spanx> such that <spanx style="verb">clause_d ⊑ clause_p</spanx>.
Removing clauses is valid (it narrows the accepted set).
Adding clauses is invalid (it widens it). The derived <spanx style="verb">any</spanx>
<bcp14>MUST</bcp14> contain at least one clause. Cross-type subsumption
between clauses is permitted: for example, a derived clause
of <spanx style="verb">exact("pdf")</spanx> is subsumed by a parent clause of
<spanx style="verb">pattern("*.pdf")</spanx> under the cross-type rules in this
section.  <vspace blankLines='1'/>
Example: a parent token carries
<spanx style="verb">any([exact("pdf"), exact("csv"), exact("xlsx")])</spanx>. A derived
token <bcp14>MAY</bcp14> carry <spanx style="verb">any([exact("pdf"), exact("csv")])</spanx> because
each derived clause is subsumed by a parent clause. A derived
token <bcp14>MUST NOT</bcp14> carry <spanx style="verb">any([exact("pdf"), exact("docx")])</spanx>
because <spanx style="verb">exact("docx")</spanx> is not subsumed by any parent
clause.</t>
  <t><strong>not:</strong> This specification prescribes a conservative strategy
for <spanx style="verb">not → not</spanx> attenuation. A derived <spanx style="verb">not</spanx> constraint is
valid attenuation of a parent <spanx style="verb">not</spanx> constraint if and only
if the two constraints are structurally identical, compared
as JCS-canonical JSON (<xref target="RFC8785"/>). Although widening the
inner constraint semantically narrows the negation and
restricts authority, verifying this direction requires
recursive subsumption in reverse, which introduces significant
implementation complexity and risk of divergence.
Implementations <bcp14>MUST NOT</bcp14> attempt semantic evaluation to
determine <spanx style="verb">not → not</spanx> subsumption. Issuers that need to
tighten a <spanx style="verb">not</spanx> constraint <bcp14>SHOULD</bcp14> re-issue from the root
issuer or use a registered extension type with defined
negation semantics. Cross-type pairs involving <spanx style="verb">not</spanx> (for
example, <spanx style="verb">exact → not(X)</spanx> or <spanx style="verb">not(X) → exact</spanx>) are not
valid attenuations and <bcp14>MUST</bcp14> be rejected.  <vspace blankLines='1'/>
Example: a parent token carries <spanx style="verb">not(one_of(["a", "b"]))</spanx>,
meaning the argument must not be "a" or "b". A derived token
<bcp14>MAY</bcp14> carry an identical <spanx style="verb">not(one_of(["a", "b"]))</spanx> constraint
(identity is valid).  <vspace blankLines='1'/>
A derived token <bcp14>MUST NOT</bcp14> carry <spanx style="verb">not(one_of(["a"]))</spanx>. That
inner set is narrower, so the negation is wider: the derived
token accepts "b", which the parent denies. This is a
privilege escalation and the JCS-identity check rejects it
because the two constraints are not structurally identical.  <vspace blankLines='1'/>
Conversely, a derived token <bcp14>MUST NOT</bcp14> carry
<spanx style="verb">not(one_of(["a", "b", "c"]))</spanx>. That inner set is wider,
so the negation is narrower: the derived token is genuinely more
restrictive (it additionally denies "c"). However, verifying
this direction requires reversing the subsumption check on
the inner constraint, which introduces implementation
complexity and risk of divergence. Implementations <bcp14>MUST NOT</bcp14>
attempt semantic evaluation to determine <spanx style="verb">not → not</spanx>
subsumption. The issuer <bcp14>MUST</bcp14> re-issue from root.</t>
  <t><strong>contains:</strong> A derived <spanx style="verb">contains</spanx> constraint is valid
attenuation of a parent <spanx style="verb">contains</spanx> if the derived <spanx style="verb">required</spanx> set
is a superset of the parent's <spanx style="verb">required</spanx> set. Requiring
additional elements is a restriction; removing required
elements would expand the set of accepted argument
arrays and <bcp14>MUST</bcp14> be rejected.</t>
  <t><strong>subset:</strong> A derived <spanx style="verb">subset</spanx> constraint is valid attenuation
of a parent <spanx style="verb">subset</spanx> if the derived <spanx style="verb">allowed</spanx> set is a subset
of the parent's <spanx style="verb">allowed</spanx> set. Shrinking the allowed set is
a restriction; adding allowed elements would expand the set
of accepted argument arrays and <bcp14>MUST</bcp14> be rejected.</t>
</list></t>

<t>Any (parent constraint type, derived constraint type) pair not
explicitly permitted by the above rules, or by a registered extension
constraint's cross-type subsumption declaration (Section 3.5.1), <bcp14>MUST</bcp14> be
rejected.</t>

</section>
<section anchor="i5-cryptographic-linkage"><name>I5: Cryptographic Linkage</name>

<figure><artwork><![CDATA[
derived.par_hash ==
  base64url-nopad(SHA-256(parent JWS Signing Input))
]]></artwork></figure>

<t>Each derived token is cryptographically bound to its parent by including
the SHA-256 digest of the parent token's JWS Signing Input in the
<spanx style="verb">par_hash</spanx> claim. The JWS Signing Input is the ASCII string
<spanx style="verb">BASE64URL(JWS Protected Header) || '.' || BASE64URL(JWS Payload)</spanx> as
defined in <xref target="RFC7515"/> Section 5.1.</t>

<t>This binding prevents chain splicing: an attacker cannot substitute a
different parent token to weaken the attenuation constraints visible at
a given depth.</t>

</section>
<section anchor="i6-proof-of-possession"><name>I6: Proof of Possession</name>

<figure><artwork><![CDATA[
pop_signature verifies under derived.cnf.jwk
]]></artwork></figure>

<t>The presenter of a token chain <bcp14>MUST</bcp14> demonstrate control of the private
key corresponding to the leaf token's <spanx style="verb">cnf.jwk</spanx>. Proof of Possession is
defined in Section 5.</t>

</section>
</section>
<section anchor="proof-of-possession"><name>Proof of Possession</name>

<section anchor="rationale"><name>Rationale</name>

<t>A token without proof of possession can be replayed by any party that
obtains a copy of the token. In agent systems, tokens flow through
model context, tool invocation results, and inter-agent message
channels, all of which are observable by other components. PoP
binds a specific invocation to the private key of the leaf
token's holder.</t>

</section>
<section anchor="pop-token-structure"><name>PoP Token Structure</name>

<t>The holder of the leaf execution token produces a PoP JWT for each tool
invocation. The PoP JWT is a compact serialization signed with the
holder's private key. It <bcp14>MUST</bcp14> contain the following claims.</t>

<texttable>
      <ttcol align='left'>Claim</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c><spanx style="verb">jti</spanx></c>
      <c>string</c>
      <c>Fresh random identifier. Issuers <bcp14>MUST NOT</bcp14> generate the same <spanx style="verb">jti</spanx> value for two different PoP JWTs. When a UUID is used, it <bcp14>MUST</bcp14> be encoded as a lowercase hyphenated string per <xref target="RFC9562"/>. Whether an enforcement point can detect reuse depends on whether stateful <spanx style="verb">jti</spanx> tracking is deployed (see Section 8.6).</c>
      <c><spanx style="verb">iat</spanx></c>
      <c>NumericDate</c>
      <c>Time of PoP creation. <bcp14>MUST</bcp14> reflect the actual time of creation. Enforcement points validate this against a clock tolerance window (see Section 5.3).</c>
      <c><spanx style="verb">aat_id</spanx></c>
      <c>string</c>
      <c>The <spanx style="verb">jti</spanx> of the execution token being presented.</c>
      <c><spanx style="verb">aat_tool</spanx></c>
      <c>string</c>
      <c>The tool identifier being invoked. <bcp14>MUST</bcp14> exactly match a key in the <spanx style="verb">tools</spanx> map of the leaf token's <spanx style="verb">authorization_details</spanx>. Tool identifiers are compared as byte strings; no Unicode normalization is applied.</c>
      <c><spanx style="verb">hta</spanx></c>
      <c>object</c>
      <c>The tool arguments for this invocation. Keys are argument names; values are argument values.</c>
</texttable>

<t>The PoP JWT payload <bcp14>MUST</bcp14> be serialized as JCS-canonical JSON
(<xref target="RFC8785"/>) before JWS signing. This is a whole-payload requirement,
not specific to the <spanx style="verb">hta</spanx> member. The JWS signing input is therefore
<spanx style="verb">BASE64URL(JWS Protected Header) || '.' || BASE64URL(JCS(PoP claims))</spanx>.
Whole-payload JCS canonicalization ensures a deterministic byte
representation; in particular, it gives <spanx style="verb">hta</spanx> stable equality semantics
so that argument map comparison is unambiguous across implementations
and languages regardless of JSON serialization choices.</t>

<t>The PoP JWT <bcp14>MUST</bcp14> be signed using the private key corresponding to the
leaf execution token's <spanx style="verb">cnf.jwk</spanx>. The enforcement point verifies the PoP
JWT signature against the leaf token's <spanx style="verb">cnf.jwk</spanx>.</t>

<figure><sourcecode type="json"><![CDATA[
{
  "jti": "c980f2a1-4a37-4e88-bb3c-9defd37c1a45",
  "iat": 1741600300,
  "aat_id": "01957a41-0081-7c20-bf3a-00a0c91e1234",
  "aat_tool": "read_file",
  "hta": { "path": "/data/q3-report.pdf" }
}
]]></sourcecode></figure>

</section>
<section anchor="verification"><name>Verification</name>

<t>PoP verification is only meaningful against a leaf token whose chain has
been fully verified per Section 7. An enforcement point <bcp14>MUST</bcp14> complete
chain verification (Section 7, steps 1-6) before evaluating the PoP JWT.
A valid PoP JWT against an unverified or invalid chain <bcp14>MUST NOT</bcp14> result
in authorization.</t>

<t>The enforcement point <bcp14>MUST</bcp14> reject a PoP JWT that:</t>

<t><list style="numbers" type="1">
  <t>Has a signature that does not verify under the leaf token's
<spanx style="verb">cnf.jwk</spanx>.</t>
  <t>References an <spanx style="verb">aat_id</spanx> that does not match the <spanx style="verb">jti</spanx> of the
presented leaf token.</t>
  <t>Names a tool in <spanx style="verb">aat_tool</spanx> that is not authorized by the leaf
token.</t>
  <t>Presents arguments in <spanx style="verb">hta</spanx> that violate constraints in the
leaf token, per the verification algorithm in Section 7
(step 6b).</t>
  <t>Has <spanx style="verb">iat</spanx> that is outside the enforcement point's accepted
clock tolerance window (<bcp14>RECOMMENDED</bcp14>: ±30 seconds).</t>
</list></t>

<t>The PoP JWT <spanx style="verb">iat</spanx> timestamp and clock tolerance window bound the replay
surface to a short interval. Implementations that wish to avoid shared
state <bcp14>MAY</bcp14> use fixed-width time buckets (for example, accepting PoP JWTs
whose <spanx style="verb">iat</spanx> falls within the current or immediately preceding 30-second
bucket) to simplify enforcement point implementation.</t>

<t>Note: The time bucket approach is stateless but probabilistic: a PoP JWT
captured early in a bucket remains usable until the end of the following
bucket. This approach <bcp14>MUST NOT</bcp14> be used for tool invocations that have
side effects or are not idempotent. For any tool invocation where
duplicate execution causes unintended side effects, stateful
<spanx style="verb">jti</spanx> tracking <bcp14>MUST</bcp14> be used.</t>

<t>Full replay prevention — guaranteeing that a given PoP JWT is accepted
at most once — requires stateful tracking of presented <spanx style="verb">jti</spanx> values
across all enforcement points in a deployment. The mechanism for that
state (shared cache, database, token-binding infrastructure) is
deployment-specific and outside the scope of this specification.
Deployments with strong replay prevention requirements <bcp14>SHOULD</bcp14> consult
the security considerations in Section 8.6.</t>

</section>
</section>
<section anchor="token-derivation"><name>Token Derivation</name>

<t>A holder of any AAT whose <spanx style="verb">del_depth</spanx> is strictly less than
<spanx style="verb">del_max_depth</spanx> <bcp14>MAY</bcp14> derive a child token as follows.</t>

<t><list style="numbers" type="1">
  <t>Set <spanx style="verb">jti</spanx> to a fresh unique token identifier, <bcp14>RECOMMENDED</bcp14> to
be a UUIDv7 value per <xref target="RFC9562"/>.</t>
  <t>Set <spanx style="verb">iat</spanx> to the current time. Set <spanx style="verb">exp</spanx> to any value &lt;=
<spanx style="verb">parent.exp</spanx>, subject to the constraints in Section 4.4.
Token lifetime is a mandatory attenuation dimension. Every
derived token is temporally bounded by its parent regardless
of capability scope. TTL is the primary revocation mechanism
in this specification; see Appendix B.8 for deployment guidance.</t>
  <t>Select the <spanx style="verb">aat_type</spanx> of the child token. The permitted
transitions are defined in Section 3.1. If the child's
<spanx style="verb">aat_type</spanx> differs from the parent's, the child <bcp14>MUST</bcp14> use a
different <spanx style="verb">cnf.jwk</spanx> than the parent (type-transition key
separation).</t>
  <t>Select the set of tools to authorize. This set <bcp14>MUST</bcp14> be a
subset of the tools authorized by the parent token.</t>
  <t>For each tool, construct a constraint map with the same
argument keys as the parent's constraint map for that tool
(Section 4.5). For each key, select a constraint that is at
least as restrictive as the parent's, per the subsumption
rules in Section 4.5. If the parent's constraint map is
empty, the derived token <bcp14>MAY</bcp14> introduce constraint keys.</t>
  <t>Set <spanx style="verb">del_depth</spanx> to <spanx style="verb">parent.del_depth + 1</spanx>.</t>
  <t>Set <spanx style="verb">del_max_depth</spanx> to any integer value greater than or equal
to <spanx style="verb">child.del_depth</spanx> and less than or equal to
<spanx style="verb">parent.del_max_depth</spanx>. Setting <spanx style="verb">del_max_depth</spanx> equal to
<spanx style="verb">child.del_depth</spanx> produces a terminal token that cannot be
further delegated; higher values permit further delegation up
to the parent's ceiling. Both bounds are inclusive; the upper
bound enforces I2.</t>
  <t>Set <spanx style="verb">par_hash</spanx> to <spanx style="verb">base64url(SHA-256(parent JWS Signing
Input))</spanx>, using base64url encoding without padding
(<xref target="RFC7515"/> Appendix C).</t>
  <t>Set <spanx style="verb">cnf.jwk</spanx> to the intended holder's public key. The
value <bcp14>MUST</bcp14> be a public key; private key material <bcp14>MUST NOT</bcp14>
appear in this field.</t>
  <t>Sign the token with the private key corresponding to the
parent token's <spanx style="verb">cnf.jwk</spanx>. The <spanx style="verb">iss</spanx> claim <bcp14>MUST</bcp14> be set to the
JWK Thumbprint URI <xref target="RFC9278"/> of that signing key, using the
SHA-256 hash algorithm.</t>
</list></t>

<t>Derivation is performed locally by the token holder. No authorization
server communication is required.</t>

<t>A derivation in which none of the above dimensions is strictly
narrowed (the tool set is identical, all constraints are unchanged,
<spanx style="verb">del_max_depth</spanx> is unchanged, and <spanx style="verb">exp</spanx> is unchanged) is technically
valid by the invariants. However, it produces a child token with
authority identical to its parent, while consuming one delegation
depth. Such derivations serve no purpose from a least-privilege
standpoint and <bcp14>SHOULD NOT</bcp14> be issued. Enforcement points
<bcp14>MAY</bcp14> log same-scope derivations as anomalous.</t>

</section>
<section anchor="chain-verification-algorithm"><name>Chain Verification Algorithm</name>

<t>The enforcement point receives a chain of tokens ordered from root to
leaf and <bcp14>MUST</bcp14> execute the following algorithm. Any failure <bcp14>MUST</bcp14> result
in denial.</t>

<t>Verification requires only the token chain and the trust anchor public
key. No network calls or authorization server availability are required.
Chain verification itself is fully offline. Strong replay protection for
side-effecting tool invocations may additionally require stateful <spanx style="verb">jti</spanx>
tracking as described in Section 8.6; that state is outside the inputs
of this algorithm.</t>

<figure><artwork><![CDATA[
Inputs:
  chain:         ordered array of signed JWTs, [root, ..., leaf]
  trust_anchors: set of public keys trusted as root issuers
  tool:          the tool being invoked
  args:          the arguments being passed to the tool
  pop_jwt:       the PoP JWT presented by the agent

Algorithm:

1. If chain is empty, DENY.

2. Verify chain size limits:
   a. Verify the encoded size of each token does not exceed
      MAX_TOKEN_SIZE. If any token exceeds this limit, DENY.
   b. Verify the total encoded size of the chain does not exceed
      MAX_STACK_SIZE. If the chain exceeds this limit, DENY.
   c. For each token, decode the base64url payload segment and
      extract only the `jti` field using minimal JSON parsing.
      If the payload is not valid JSON or does not contain a
      string-valued `jti` field, DENY. Collect all extracted
      `jti` values; if any value appears more than once in the
      chain, DENY (cycle detection). This limited extraction
      prior to signature verification is permitted and required
      for this structural check; it does not constitute the
      application-layer claim deserialization prohibited by the
      post-algorithm note. The extracted `jti` values MUST be
      treated as untrusted until each token's signature is
      verified. Full claim parsing MUST still be deferred until
      after signature verification succeeds for each token.

3. Verify root token:
   a. Verify the root token's JWS alg header is on the
      implementation's permitted algorithm allowlist and is
      consistent with the verifying trust anchor key's kty and
      crv parameters. If alg is "none", not on the allowlist,
      or inconsistent with the key type, DENY.       [Sec 8.14]
   b. Verify the root token signature against a key in
      trust_anchors. After signature verification succeeds,
      parse the root token's claims. All subsequent root
      checks (3c through 3n) operate on parsed claims.
   c. Verify root.aat_type is "delegation" or "execution".
      If any other value, DENY.
   d. Verify root.del_depth == 0.
   e. Verify root.par_hash is absent.
   f. Verify root.exp > now.
   g. Verify root.iat <= now + MAX_IAT_SKEW.
   h. Verify root.exp > root.iat.
   i. Verify root.exp <= root.iat + MAX_TOKEN_LIFETIME.
   j. Verify root.del_max_depth is a non-negative integer not
      exceeding MAX_DELEGATION_DEPTH. If absent or invalid, DENY.
   k. Verify root.jti is present and is a non-empty string.
      If absent or not a string, DENY.
   l. Verify root.iss is present and is a URI. If absent or
      not a URI-formatted string, DENY.
   m. Verify root.cnf is present, contains a `jwk` member, and
      that the `jwk` encodes a public key (MUST NOT contain a
      private key parameter such as `d` for EC/OKP keys or
      `p`, `q` for RSA keys). If absent or invalid, DENY.
   n. Verify root.authorization_details is present and is a
      non-empty array containing at most one entry with type
      "attenuating_agent_token". If absent, empty, or more
      than one such entry is present, DENY.
      Note: for single-token chains where root is also the
      leaf, steps 3 and 6 are the only validation applied.
      Steps 3k through 3n ensure that required claims are
      present before step 6 depends on them, closing the
      bypass window that exists when step 4 does not run.

4. For each adjacent pair (parent, child) in chain:
   a. Verify child token's JWS alg header is on the
      implementation's permitted algorithm allowlist and is
      consistent with parent.cnf.jwk's kty and crv parameters.
      If alg is "none", not on the allowlist, or inconsistent
      with the key type, DENY.                       [Sec 8.14]
   b. Verify child signature under the key in parent.cnf.jwk. [I1]
      After signature verification, verify required claims are
      present:
      b1. Verify child.jti is present and is a non-empty
          string. If absent or not a string, DENY.
      b2. Verify child.cnf is present, contains a `jwk`
          member, and that the `jwk` encodes a public key
          (MUST NOT contain a private key parameter such as
          `d` for EC/OKP keys or `p`, `q` for RSA keys). If
          absent or invalid, DENY.
      b3. Verify child.authorization_details is present and
          is a non-empty array. If absent or empty, DENY.
      b4. Verify child.del_depth and child.del_max_depth are
          both present and are non-negative integers. If
          absent or not integers, DENY.
      b5. Verify child.iss, child.iat, child.exp, child.aat_type,
          and child.par_hash are all present. If any is absent, DENY.
   c. Verify child.iss equals jwk_thumbprint_uri(parent.cnf.jwk). [I1]
   d. Verify child.aat_type is "delegation" or "execution".
      If any other value, DENY.
   e. Verify child.del_depth == parent.del_depth + 1.    [I2]
   f. Verify child.del_depth <= parent.del_max_depth.    [I2]
   g. Verify child.del_depth <= MAX_DELEGATION_DEPTH.    [I2]
   h. Verify child.del_max_depth <= parent.del_max_depth.[I2]
      Note: the requirement that every token's
      del_max_depth <= MAX_DELEGATION_DEPTH is transitively
      satisfied: step 3j verifies this for the root, and
      step 4h at each link ensures the value can only
      decrease. Implementations MAY add this check
      explicitly as defense in depth.
   i. Verify child.exp <= parent.exp.                    [I3]
   j. Verify child.exp > now.                            [I3]
   k. Verify child.iat >= parent.iat.                    [I3]
   l. Verify child.iat <= now + MAX_IAT_SKEW.            [I3]
   m. Verify child.exp > child.iat.                      [I3]
      Note: the requirement child.exp <= child.iat +
      MAX_TOKEN_LIFETIME is transitively satisfied: by
      induction, child.exp <= root.exp (step 4i at each
      link), root.exp <= root.iat + MAX_TOKEN_LIFETIME
      (step 3i), and child.iat >= root.iat (step 4k at
      each link), therefore child.exp <= root.iat +
      MAX_TOKEN_LIFETIME <= child.iat + MAX_TOKEN_LIFETIME.
      Implementations MAY add this check explicitly as
      defense in depth.
   n. Verify child.del_depth <= child.del_max_depth.     [I2]
   o. Verify child.authorization_details contains at most
      one entry with type "attenuating_agent_token". If
      more than one such entry is present, DENY. Note: zero
      entries of this type is permitted for non-leaf tokens
      and represents an empty capability set. Step 4q will
      verify this is a valid attenuation of the parent
      (an empty tool set is always a subset).
   p. For each constraint in child.authorization_details,
      verify the constraint tree depth does not exceed
      MAX_CONSTRAINT_DEPTH. If any constraint tree exceeds
      this limit, DENY.
   q. Verify capability monotonicity (Section 4.5):   [I4]
      q1. Verify every tool in child's authorization_details
          is also present in parent's authorization_details.
          If any child tool is absent from the parent, DENY.
      q2. For each tool present in both parent and child: if
          the parent's constraint map is non-empty, verify the
          child's constraint map contains exactly the same set
          of argument keys. If any key is added or removed, DENY.
      q3. For each tool present in both parent and child: if
          the parent's constraint map is empty, the child's
          constraint map MAY contain any set of keys.
      q4. For each argument key present in both parent and
          child constraint maps, verify the child's constraint
          subsumes the parent's per the per-type rules in
          Section 4.5. If any constraint fails subsumption,
          DENY.
   r. Verify child.par_hash equals base64url-nopad(      [I5]
      SHA-256(parent JWS Signing Input)), where
      base64url-nopad denotes base64url encoding without
      padding per {{RFC7515}} Appendix C.
   s. If child.aat_type differs from parent.aat_type, verify
      that the JWK Thumbprint ({{RFC7638}}) of child.cnf.jwk
      differs from the JWK Thumbprint of parent.cnf.jwk
      (type-transition key separation). Implementations MUST
      compare thumbprints, not raw JWK objects, to prevent
      bypasses through key serialization variance.

5. (Defense in depth) Verify len(chain) equals
   leaf.del_depth + 1. A mismatch indicates a malformed
   or spliced chain assembly.

6. Verify leaf token:
   a. Verify leaf.authorization_details contains exactly one
      entry with type "attenuating_agent_token". If zero or
      more than one such entry is present, DENY.
   b. If leaf.aat_type is "execution", verify tool is present
      in leaf.authorization_details. Then, for each argument
      in args: if the tool's constraint map is non-empty and
      the argument name is not present in the constraint map,
      DENY (closed-world mode). For each argument name present
      in the constraint map, if that argument is absent from
      args, DENY (constrained argument MUST be present). For
      each argument name present in both the constraint map
      and args, verify the argument value satisfies the
      constraint.
   c. If leaf.aat_type is "delegation", DENY (delegation
      tokens do not authorize direct tool invocation).

7. Verify PoP JWT:
   a. Verify pop_jwt signature under leaf.cnf.jwk.       [I6]
   b. Verify pop_jwt.aat_id == leaf.jti.
   c. Verify pop_jwt.aat_tool == tool.
   d. Verify pop_jwt.hta, when JCS-canonicalized
      ({{RFC8785}}), equals the JCS-canonical form of the
      args map for this invocation. If the canonical byte
      sequences differ, DENY.
   e. Verify pop_jwt.iat is within the clock tolerance
      window. If outside the window, DENY.

8. PERMIT.
]]></artwork></figure>

<t>Enforcement points <bcp14>MUST</bcp14> verify the JWS signature of each token before
deserializing its payload claims into application-layer data structures.
Signature verification operates on the raw encoded header and payload
bytes (the JWS Signing Input) and does not require claim parsing. Full
claim parsing <bcp14>MUST NOT</bcp14> occur until after signature verification succeeds
for that token. This ordering prevents parser-based denial-of-service
attacks on maliciously crafted payloads. The sole exception is step 2c:
extracting only the <spanx style="verb">jti</spanx> string field for cycle detection prior to
signature verification is permitted, provided the implementation treats
the extracted value as untrusted until the corresponding signature is
verified. Enforcement points <bcp14>MUST</bcp14> reject any token whose JWS <spanx style="verb">alg</spanx>
header is <spanx style="verb">"none"</spanx>. The <spanx style="verb">"none"</spanx> algorithm provides no cryptographic
protection and <bcp14>MUST NOT</bcp14> be used in any AAT or PoP JWT.</t>

<t>The <spanx style="verb">hta</spanx> comparison in step 7d requires both the enforcement point and
the PoP JWT issuer to use JCS canonicalization (<xref target="RFC8785"/>). The
enforcement point <bcp14>MUST</bcp14> canonicalize the <spanx style="verb">args</spanx> map independently and
compare the resulting byte sequence against the canonical form committed
to by the PoP JWT signature. Implementations <bcp14>MUST NOT</bcp14> compare raw JSON
strings; surface differences such as key ordering or numeric
representation (e.g., 1.0 vs 1) are resolved by canonicalization before
comparison.</t>

<t>The JWS <spanx style="verb">alg</spanx> header value <bcp14>MUST</bcp14> be consistent with the key type of the
key used to verify the signature: the trust anchor public key for root
tokens, and the <spanx style="verb">cnf.jwk</spanx> of the parent token for derived tokens.
Enforcement points <bcp14>MUST</bcp14> reject any token where the declared <spanx style="verb">alg</spanx> is not
compatible with the verifying key's <spanx style="verb">kty</spanx> and <spanx style="verb">crv</spanx> parameters. For
example, a token whose <spanx style="verb">alg</spanx> is <spanx style="verb">"EdDSA"</spanx> <bcp14>MUST</bcp14> be verified against an
OKP key with <spanx style="verb">"crv": "Ed25519"</spanx> or <spanx style="verb">"crv": "Ed448"</spanx>. A mismatch between
the declared algorithm and the verifying key type <bcp14>MUST</bcp14> result in denial,
regardless of whether the signature bytes would verify under an
alternate interpretation.</t>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<section anchor="threat-model"><name>Threat Model</name>

<t>This section characterizes the threats that AATs mitigate and the
threats that are outside the scope of this mechanism. Implementations
<bcp14>SHOULD</bcp14> use this characterization to evaluate whether AATs are sufficient
for their threat environment and to identify what complementary controls
are required.</t>

<section anchor="threats-mitigated"><name>Threats Mitigated</name>

<t><strong>Prompt injection leading to unauthorized tool invocation.</strong> An
attacker who injects instructions into an agent's input cannot cause the
agent to invoke tools outside the scope encoded in its token. The
enforcement point rejects any invocation of an unauthorized tool
regardless of the agent's stated rationale.</t>

<t><strong>Hallucinated tool invocations with out-of-scope arguments.</strong> Even
when an agent invokes an authorized tool, argument constraints in the
leaf token
restrict the argument values the enforcement point will accept. An agent
that hallucinates an argument value outside the authorized range is
denied at the enforcement point before the tool executes.</t>

<t><strong>Confused deputy attacks.</strong> A sub-agent that receives a derived token
cannot exercise authority beyond what its token encodes, even if it is
invoked by a trusted orchestrator. The token carries its own
authorization ceiling. There is no ambient authority to confuse.</t>

<t><strong>Privilege escalation across delegation hops.</strong> The capability
monotonicity invariant (I4) ensures that authority can only narrow at
each delegation step. A derived token cannot authorize tools or
argument values absent from its parent token. An agent that attempts
to mint a derived token with
broader scope will produce a token that fails chain verification at the
enforcement point.</t>

<t><strong>Compromised sub-agents.</strong> If a sub-agent is compromised, the blast
radius is bounded by the scope of the token it holds. The attacker
cannot use the compromised agent to escalate to broader authority,
invoke tools outside the token's scope, or derive tokens with wider
permissions than the compromised token encodes.</t>

<t><strong>Chain splicing.</strong> The <spanx style="verb">par_hash</spanx> claim (I5) binds each derived token
to the specific bytes of its parent token. An attacker cannot substitute
a different parent token into the chain to change the authority ceiling
without invalidating the <spanx style="verb">par_hash</spanx> verification at the enforcement
point.</t>

<t><strong>Token replay for irreversible operations.</strong> For irreversible or
side-effecting tool invocations, stateful <spanx style="verb">jti</spanx> tracking at the
enforcement point enables prevention of PoP JWT replay. See Section 8.6
for the distinction between stateful and probabilistic replay controls
and the deployment requirements for each.</t>

</section>
<section anchor="threats-not-mitigated"><name>Threats Not Mitigated</name>

<t><strong>Malicious or compromised root issuer.</strong> The security of all chains
depends on the integrity of the trust anchor key. A root issuer that
mints tokens with overly broad scopes, or whose signing key is
compromised, undermines the authorization guarantees of every chain it
anchors. AATs provide no mechanism to detect or constrain a malicious
root issuer. Key management, rotation procedures, and root issuer
accountability are deployment concerns outside the scope of this
specification.</t>

<t><strong>Compromised enforcement point.</strong> An enforcement point that skips chain
verification, ignores constraint evaluation, or accepts forged tokens
provides no security guarantee regardless of the token format. AATs
assume enforcement points are honest and implement the verification
algorithm in Section 7 correctly. Enforcement point integrity is a
deployment concern.</t>

<t><strong>Actions within authorized argument constraints.</strong> AATs restrict which
tools an agent may invoke and what argument values are permitted. They
do not restrict which authorized invocations an agent chooses to make,
in what order, or how many times. An agent that makes excessive or
unintended use of its authorized tools within the bounds of its token is
not detectable at the enforcement point. Rate limiting, audit logging,
and behavioral monitoring are complementary controls for this threat.</t>

<t><strong>Compromised holder key.</strong> If an agent's private key is stolen, the
attacker can exercise the full authority encoded in that agent's token
until the token expires. The blast radius is bounded by the token scope,
but within that scope the attacker has full authorization. Short token
lifetimes (Section 8.4) limit the exposure window.</t>

<t><strong>Model exfiltration and side-channel attacks.</strong> An attacker who
extracts an agent's model weights, system prompt, or in-context state
may be able to predict or manipulate the agent's behavior independently
of its token constraints. AATs operate at the authorization layer and
have no visibility into the model layer.</t>

<t><strong>Social engineering of the root issuer.</strong> An attacker who convinces the
root issuer to mint a root delegation token with broad scope obtains
broad authority through legitimate token issuance. This is not
detectable by chain verification.</t>

</section>
</section>
<section anchor="attenuation-as-the-security-invariant"><name>Attenuation as the Security Invariant</name>

<t>The security guarantee of this specification rests entirely on the
enforcement of the capability monotonicity invariant (I4). An
enforcement point that fails to check I4, or that checks it
incorrectly, provides no blast radius containment. Implementers
<bcp14>MUST</bcp14> test I4 enforcement against the full constraint attenuation
matrix in Section 4.5, including all (parent
type, child type) pairs, and <bcp14>MUST</bcp14> reject all pairs not explicitly
permitted.</t>

<t>The other invariants (I1, I2, I3, I5, I6) rely on well-established
cryptographic primitives and validation patterns with substantial prior
art in deployed systems. I4 is novel. Formal verification of the I4
subsumption rules is in progress, using bounded model checking
(<xref target="ALLOY"/>) for set-theoretic constraint types and SMT solving (<xref target="Z3"/>)
for domain-specific types requiring arithmetic or string reasoning. For
the remaining constraint types, which use conservative syntactic
strategies (Section 4.5), model-level verification is ongoing.
Implementers are encouraged to treat the subsumption logic for those
types with corresponding caution and to publish independent analyses.</t>

<t>The reference implementation includes a test suite covering monotonicity
of the attenuation invariants under arbitrary sequences, normalization
idempotence across encode/decode round-trips, and enforcement agreement
between in-memory and deserialized constraint evaluation. See
Appendix E for implementation status.</t>

</section>
<section anchor="root-key-compromise"><name>Root Key Compromise</name>

<t>A compromised trust anchor key allows an attacker to issue arbitrary
root tokens. This breaks the security guarantees of all chains anchored
to that key. Deployments <bcp14>SHOULD</bcp14> implement key rotation procedures and
revocation mechanisms appropriate to their risk model. The specific
mechanism for root key revocation, including revocation list formats,
distribution protocols, and enforcement point update procedures, is
outside the scope of this specification.</t>

</section>
<section anchor="holder-key-compromise"><name>Holder Key Compromise</name>

<t>A compromised holder key allows an attacker to present existing tokens
issued to that holder. The attacker cannot derive tokens with broader
scope than the compromised token grants. Mitigation is revocation of
tokens bound to the compromised key, or expiry-based recovery for
short-lived tokens.</t>

</section>
<section anchor="chain-splicing"><name>Chain Splicing</name>

<t>The <spanx style="verb">par_hash</spanx> invariant (I5) is the primary defense against chain
splicing, as described in Section 8.1.1. Enforcement points <bcp14>MUST</bcp14> verify
<spanx style="verb">par_hash</spanx> at every chain link per step 4r of the verification algorithm
(Section 7).</t>

</section>
<section anchor="replay-attacks"><name>Replay Attacks</name>

<t>The PoP JWT binds a specific invocation to a nonce, a timestamp, the
target tool, and the presented arguments. The timestamp window limits
the interval during which a captured PoP JWT remains usable to
approximately twice the clock tolerance (<bcp14>RECOMMENDED</bcp14>: ±30 seconds,
giving a window of roughly 60 seconds). This provides probabilistic
replay resistance and is appropriate only for idempotent, read-only tool
invocations where duplicate execution is harmless.</t>

<t>For tool invocations that are irreversible or have significant side
effects, including financial transactions, data deletion, writes to
external systems, and any operation that cannot be undone: enforcement
points <bcp14>MUST</bcp14> implement stateful <spanx style="verb">jti</spanx> tracking for PoP JWTs and <bcp14>MUST NOT</bcp14>
rely solely on the timestamp window for replay protection.</t>

<t>This specification requires stateful <spanx style="verb">jti</spanx> tracking for irreversible
operations but does not define the storage backend, consistency model,
or distribution protocol for that state. The required consistency
properties depend on the deployment topology and the risk tolerance of
the application. Deployments <bcp14>SHOULD</bcp14> treat the time-windowed PoP as a
probabilistic control and layer additional idempotency mechanisms at the
application level for high-value operations.</t>

</section>
<section anchor="constraint-evaluation"><name>Constraint Evaluation</name>

<t>Several constraint types introduce potential for denial-of-service
through expensive evaluation. <spanx style="verb">regex</spanx> patterns can cause catastrophic
backtracking. <spanx style="verb">cel</spanx> expressions execute arbitrary logic at argument
check time. Enforcement points <bcp14>SHOULD</bcp14> impose evaluation timeouts on any
constraint type whose check predicate is not O(n) in the length of the
argument value.</t>

<t>The subsumption check for <spanx style="verb">cel</spanx> constraints (the balanced-parentheses
bracket counting described in Section 4.5) is O(n) in expression length
and does not evaluate the expression. Only the runtime <spanx style="verb">check</spanx>
predicate, which evaluates the CEL expression against actual argument
values at invocation time, carries unbounded cost. These are distinct
operations; implementations <bcp14>MUST NOT</bcp14> conflate them.</t>

<t>Extension constraint types registered under Section 3.5 <bcp14>MUST</bcp14> document
their computational complexity and any resource limits implementations
<bcp14>SHOULD</bcp14> enforce.</t>

</section>
<section anchor="depth-limit"><name>Depth Limit</name>

<t>Enforcement points <bcp14>MUST</bcp14> enforce a finite MAX_DELEGATION_DEPTH to prevent
resource exhaustion from artificially deep chains. The appropriate value
is deployment-specific: linear orchestration chains require far fewer
hops than swarm architectures with deep fan-out delegation.
Implementations <bcp14>SHOULD</bcp14> choose a value that reflects the maximum chain
depth their deployment topology requires, without imposing an artificial
ceiling on legitimate use cases. See Appendix B.5 for guidance on
selecting an appropriate value.</t>

<t>The security rationale for depth limiting goes beyond resource
exhaustion. Each delegation hop introduces an additional agent into the
trust chain: the enforcement point necessarily trusts not only that the
leaf token holder is honest, but that every intermediate holder made
sound attenuation decisions. A compromised or misdirected intermediate
agent can narrow constraints in ways that serve an attacker's goals
while remaining within the invariants. The depth limit bounds the number
of such trust extensions that a single root grant can produce.</t>

<t>The <spanx style="verb">del_max_depth</spanx> claim in the root token is the root issuer's
explicit policy on chain topology. An implementation that ignores
<spanx style="verb">del_max_depth</spanx> or enforces only a global implementation limit without
checking per-token values violates this policy. Enforcement points <bcp14>MUST</bcp14>
check both the per-token <spanx style="verb">del_max_depth</spanx> value (step 4f of Section 7)
and the global MAX_DELEGATION_DEPTH (step 4g of Section 7). Neither
check alone is sufficient.</t>

</section>
<section anchor="unknown-constraint-types"><name>Unknown Constraint Types</name>

<t>Enforcement points <bcp14>MUST</bcp14> deny authorization when they encounter an
unknown constraint type. Permitting invocation in the presence of an
unrecognized constraint would silently remove a restriction the issuer
intended to enforce.</t>

</section>
<section anchor="token-revocation"><name>Token Revocation</name>

<t>Revocation of individual AATs, including derived tokens, is outside the
scope of this specification. The offline delegation model trades
per-token revocation granularity for verifiability without authorization
server availability. This is a deliberate design choice, not an
oversight.</t>

<t>Deployments <bcp14>SHOULD</bcp14> use short token lifetimes as the primary recovery
mechanism. A short-lived execution token provides a bounded damage
window that is operationally equivalent to revocation for most threat
models, without the availability and consistency requirements that a
revocation list imposes. Root tokens <bcp14>SHOULD</bcp14> be issued with the shortest
lifetime compatible with the intended delegation chain depth.</t>

<t>Root trust anchor rotation (replacing the trust anchor signing key and
re-issuing root tokens) is the appropriate response to a root key
compromise. Enforcement points <bcp14>SHOULD</bcp14> support configurable trust anchor
sets to enable rotation without downtime.</t>

<t>Revocation list distribution, token status list integration, and
per-token introspection mechanisms are deferred to a companion document.</t>

</section>
<section anchor="clock-skew"><name>Clock Skew</name>

<t>This specification uses clock-based checks in two distinct contexts with
different semantics. MAX_IAT_SKEW (Section 4.4, <bcp14>RECOMMENDED</bcp14>: 30 seconds)
is a one-sided future-dating tolerance applied to token <spanx style="verb">iat</spanx> values: it
prevents a token issued slightly in the future from being rejected due
to minor clock drift between issuer and enforcement point. The PoP
JWT timestamp window (Section 5.3, <bcp14>RECOMMENDED</bcp14>: ±30 seconds) is a
bilateral replay
window applied to PoP JWT <spanx style="verb">iat</spanx> values: it bounds how long a captured
PoP JWT remains usable. These are independent parameters enforced at
different points in the verification algorithm and <bcp14>SHOULD</bcp14> be configured
separately.</t>

<t>PoP JWT timestamp verification requires synchronized clocks. The
<bcp14>RECOMMENDED</bcp14> tolerance window is ±30 seconds, which accommodates typical
Network Time Protocol (NTP) synchronized deployments with generous
margin. Deployments running on cloud infrastructure with guaranteed NTP
synchronization <bcp14>SHOULD</bcp14> target ±5 to ±10 seconds. Deployments with
stricter security requirements <bcp14>MAY</bcp14> reduce this window further.</t>

<t>Implementations <bcp14>MUST</bcp14> enforce a finite maximum tolerance window. Values
beyond ±60 seconds provide negligible additional clock skew tolerance
while meaningfully expanding the PoP replay window and are <bcp14>NOT
RECOMMENDED</bcp14>. A value of ±30 seconds is the conservative baseline; the
±60 second ceiling is intended only for heterogeneous environments such
as embedded systems or degraded connectivity scenarios.</t>

</section>
<section anchor="type-transition-key-separation"><name>Type-Transition Key Separation</name>

<t>The requirement that any type transition use a distinct key (Section
3.1) is not an architectural preference; it closes specific escalation
paths. In traditional capability systems, same-key self-issuance across
authority types is often benign because the principal model is static
and the runtime is trusted. Agentic systems have neither property:
agents operate autonomously across untrusted environments, may be
subject to prompt injection or context manipulation, and act on behalf
of humans without per-action confirmation.</t>

<t>If a single key can move between planning authority and tool invocation
authority, the delegation/execution boundary collapses under any
compromise. The restriction ensures that a compromised orchestrator
holding a delegation token cannot directly invoke tools without
involving a distinct execution-bound key, and that a compromised
executor cannot create new delegation branches under the same identity.
This preserves the accountability boundary between authority types and
ensures that key separation is enforced structurally rather than by
policy.</t>

</section>
<section anchor="cel-conjunction-privilege-escalation"><name>CEL Conjunction Privilege Escalation</name>

<t>The <spanx style="verb">cel</spanx> constraint subsumption strategy (Section 4.5) requires that
additional clauses in a derived expression be individually wrapped in
balanced parentheses: <spanx style="verb">(parent) &amp;&amp; (clause)</spanx>. This requirement is a
security invariant.</t>

<t>Without balanced parentheses, an attacker constructing a derived <spanx style="verb">cel</spanx>
constraint can append a top-level disjunction to widen authority. For
example, given a parent expression <spanx style="verb">amount &lt; 10000</spanx>, the derived
expression <spanx style="verb">(amount &lt; 10000) &amp;&amp; true || amount &lt; 1000000</spanx> passes a naive
prefix check but CEL parses it as <spanx style="verb">((amount &lt; 10000) &amp;&amp; true) || (amount
&lt; 1000000)</spanx>, which simplifies to <spanx style="verb">amount &lt; 1000000</spanx>, a 100x privilege
escalation.</t>

<t>Enforcement points <bcp14>MUST</bcp14> implement the subsumption check using
balanced-parentheses bracket counting as specified in Section 4.5.
Implementations <bcp14>MUST</bcp14> reject any derived <spanx style="verb">cel</spanx> expression where the
additional clause is not wrapped in balanced parentheses, regardless of
whether the expression appears semantically narrower. Implementations
<bcp14>MUST NOT</bcp14> attempt semantic evaluation to determine subsumption.</t>

</section>
<section anchor="algorithm-confusion"><name>Algorithm Confusion</name>

<t>AATs are signed JWTs. Implementations are subject to the full class of
JWT algorithm confusion attacks, including <spanx style="verb">alg: "none"</spanx> acceptance,
symmetric/asymmetric key confusion (RS256/HS256 key reuse), and
algorithm substitution across tokens in the same chain.</t>

<t>Enforcement points <bcp14>MUST</bcp14> maintain an explicit allowlist of permitted
signature algorithms and <bcp14>MUST</bcp14> reject any token whose <spanx style="verb">alg</spanx> header value
is not on that list. Implementations <bcp14>MUST</bcp14> reject tokens with <spanx style="verb">alg:
"none"</spanx> unconditionally and <bcp14>MUST NOT</bcp14> treat the absence of an <spanx style="verb">alg</spanx>
header as equivalent to any permitted algorithm.</t>

<t>In chains where multiple token types are verified, implementations <bcp14>MUST</bcp14>
apply the algorithm allowlist independently to each token. Accepting a
weaker algorithm on an intermediate token because the leaf token used a
strong algorithm is a verification failure.</t>

<t>The <bcp14>RECOMMENDED</bcp14> algorithm set is the same as for DPoP <xref target="RFC9449"/>:
ES256, ES384, ES512, RS256, RS384, RS512, PS256, PS384, PS512, EdDSA.
Symmetric algorithms (HS256, HS384, HS512) <bcp14>MUST NOT</bcp14> be used for AAT
signatures; symmetric keys cannot provide the per-holder key binding
that PoP requires.</t>

</section>
<section anchor="token-content-visibility"><name>Token Content Visibility</name>

<t>AAT payloads are integrity-protected but not encrypted. Token
contents, including tool identifiers, argument constraints, and
delegation chain structure, are visible to any party that observes
the token in transit or at rest. Deployments <bcp14>SHOULD</bcp14> transmit AAT
chains over encrypted transport (e.g., TLS) and <bcp14>SHOULD</bcp14> treat stored
tokens as sensitive material. Token encryption is outside the scope
of this specification.</t>

</section>
</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<section anchor="jwt-claims-registry"><name>JWT Claims Registry</name>

<t>This document requests registration of the following claims in the IANA
JSON Web Token Claims Registry <xref target="RFC7519"/>.</t>

<t><strong>AAT claims:</strong></t>

<texttable>
      <ttcol align='left'>Claim Name</ttcol>
      <ttcol align='left'>Claim Description</ttcol>
      <ttcol align='left'>Change Controller</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">aat_type</spanx></c>
      <c>Attenuating Authorization Token type</c>
      <c>IETF</c>
      <c>This document</c>
      <c><spanx style="verb">del_depth</spanx></c>
      <c>Delegation chain depth</c>
      <c>IETF</c>
      <c>This document</c>
      <c><spanx style="verb">del_max_depth</spanx></c>
      <c>Maximum delegation chain depth</c>
      <c>IETF</c>
      <c>This document</c>
      <c><spanx style="verb">par_hash</spanx></c>
      <c>Parent token JWS Signing Input hash</c>
      <c>IETF</c>
      <c>This document</c>
</texttable>

<t>The <spanx style="verb">tools</spanx> map is not a top-level JWT claim; it is a member nested
inside the <spanx style="verb">authorization_details</spanx> array entry with <spanx style="verb">type:
"attenuating_agent_token"</spanx>, as defined in Section 3.3. Its structure and
semantics are governed by the AAT Constraint Type Registry (Section 9.3)
and the RAR profile defined in this document, not by the JWT Claims
Registry.</t>

<t><strong>PoP JWT claims:</strong></t>

<texttable>
      <ttcol align='left'>Claim Name</ttcol>
      <ttcol align='left'>Claim Description</ttcol>
      <ttcol align='left'>Change Controller</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">aat_id</spanx></c>
      <c>AAT <spanx style="verb">jti</spanx> being presented</c>
      <c>IETF</c>
      <c>This document</c>
      <c><spanx style="verb">aat_tool</spanx></c>
      <c>Tool identifier for PoP binding</c>
      <c>IETF</c>
      <c>This document</c>
      <c><spanx style="verb">hta</spanx></c>
      <c>Tool arguments for PoP binding</c>
      <c>IETF</c>
      <c>This document</c>
</texttable>

</section>
<section anchor="oauth-authorization-details-types-registry"><name>OAuth Authorization Details Types Registry</name>

<t>This document requests registration of the following type in the IANA
OAuth Authorization Details Types Registry established by <xref target="RFC9396"/>.</t>

<texttable>
      <ttcol align='left'>Type Name</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">attenuating_agent_token</spanx></c>
      <c>This document</c>
</texttable>

</section>
<section anchor="aat-constraint-type-registry"><name>AAT Constraint Type Registry</name>

<t>This document requests IANA create the "Attenuating Authorization Token
Constraint Types" registry. The registration policy for this registry is
Specification Required <xref target="RFC8126"/>.</t>

<section anchor="designated-expert-instructions"><name>Designated Expert Instructions</name>

<t>Designated experts <bcp14>MUST</bcp14> verify that each submitted registration
satisfies all of the following criteria before approving it:</t>

<t><list style="numbers" type="1">
  <t>The type name is a lowercase string containing only letters,
digits, and underscores, and does not conflict with an
existing registered type name.</t>
  <t>The <spanx style="verb">check</spanx> predicate is fully specified: given any argument
value, an independent implementer can determine without
ambiguity whether the predicate returns true or false.</t>
  <t>The <spanx style="verb">subsumes</spanx> verification procedure satisfies the decidable,
sound, and deterministic properties defined in Section 3.5.1.
If the constraint language does not support a general
containment algorithm, the registration prescribes a
conservative syntactic strategy and formally justifies
its soundness.</t>
  <t>The cross-type subsumption rules enumerate every (parent
type, child type) pair involving both the new type and
all existing core types that the registration declares
valid, with explicit conditions. Unlisted
pairs are implicitly invalid; the registration <bcp14>MUST NOT</bcp14> rely on the
catch-all rejection rule to handle pairs that deserve explicit
treatment.</t>
  <t>The reference is a stable, publicly accessible document.
Internet-Drafts that have not yet been published as RFCs
are not acceptable as stable references.</t>
</list></t>

<t>Designated experts <bcp14>SHOULD</bcp14> request clarification when cross-type rules
are incomplete, when the subsumption procedure's soundness is not
formally justified, or when the check predicate leaves ambiguous cases
unresolved.</t>

</section>
<section anchor="registration-template"><name>Registration Template</name>

<t>Registration requests <bcp14>MUST</bcp14> use the following template:</t>

<figure><artwork><![CDATA[
Type name:
  (A lowercase string. Example: "path_containment")

Additional members:
  (List each JSON member name, its JSON type, whether it is required
  or optional, its default value if optional, and its semantics.
  Example: "root (string, required): An absolute path prefix.")

check predicate:
  (A complete, unambiguous specification of the boolean predicate
  evaluated against an argument value at invocation time. Must
  cover all edge cases including null, empty, and out-of-range
  inputs.)

subsumes verification procedure:
  (A complete formal definition of what it means for one instance
  of this constraint type to be at least as restrictive as another.
  Must state whether the procedure is conservative and, if so, which
  semantically subsuming pairs it rejects. Must include a soundness
  argument: if the procedure returns true for (C_parent, C_child),
  then for all values v: C_child.check(v) implies C_parent.check(v).)

cross-type subsumption rules:
  (An explicit enumeration of every (parent type, child type) pair
  involving this type that is a valid attenuation, and the conditions
  under which it is valid. List both directions: this type as parent
  and this type as child. All unlisted pairs are implicitly invalid.
  Example:
    - (exact, this_type): valid if the exact value satisfies this
      type's check predicate.
    - (this_type, exact): invalid.
    - (this_type, this_type): valid if [condition].)

security considerations:
  (Any security properties, limitations, or attack surfaces specific
  to this constraint type, including known cases where the check
  predicate or subsumption procedure can be bypassed or confused.)

reference:
  (A stable, publicly accessible document defining all of the above.)
]]></artwork></figure>

</section>
<section anchor="initial-registry-entries"><name>Initial Registry Entries</name>

<t>The core constraint types defined in Section 3.4 of this document
constitute the initial registry entries. For each type, the check
predicate and additional members are defined in Section 3.4, and the
subsumption rules and cross-type pairs are defined in Section 4.5.</t>

<texttable>
      <ttcol align='left'>Type Name</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">exact</spanx></c>
      <c>This document (Sections 3.4, 4.5)</c>
      <c><spanx style="verb">pattern</spanx></c>
      <c>This document (Sections 3.4, 4.5)</c>
      <c><spanx style="verb">range</spanx></c>
      <c>This document (Sections 3.4, 4.5)</c>
      <c><spanx style="verb">one_of</spanx></c>
      <c>This document (Sections 3.4, 4.5)</c>
      <c><spanx style="verb">not_one_of</spanx></c>
      <c>This document (Sections 3.4, 4.5)</c>
      <c><spanx style="verb">contains</spanx></c>
      <c>This document (Sections 3.4, 4.5)</c>
      <c><spanx style="verb">subset</spanx></c>
      <c>This document (Sections 3.4, 4.5)</c>
      <c><spanx style="verb">regex</spanx></c>
      <c>This document (Sections 3.4, 4.5)</c>
      <c><spanx style="verb">cel</spanx></c>
      <c>This document (Sections 3.4, 4.5)</c>
      <c><spanx style="verb">wildcard</spanx></c>
      <c>This document (Sections 3.4, 4.5)</c>
      <c><spanx style="verb">all</spanx></c>
      <c>This document (Sections 3.4, 4.5)</c>
      <c><spanx style="verb">any</spanx></c>
      <c>This document (Sections 3.4, 4.5)</c>
      <c><spanx style="verb">not</spanx></c>
      <c>This document (Sections 3.4, 4.5)</c>
</texttable>

</section>
</section>
<section anchor="oauth-authorization-server-metadata-registry"><name>OAuth Authorization Server Metadata Registry</name>

<t>This document requests registration of the following parameter in the
IANA OAuth Authorization Server Metadata registry established by
<xref target="RFC8414"/>.</t>

<texttable>
      <ttcol align='left'>Metadata Parameter</ttcol>
      <ttcol align='left'>Metadata Description</ttcol>
      <ttcol align='left'>Change Controller</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">aat_issuer</spanx></c>
      <c>Indicates root AAT issuance support</c>
      <c>IETF</c>
      <c>This document</c>
</texttable>

<t><spanx style="verb">aat_issuer</spanx> is a boolean value. When present and <spanx style="verb">true</spanx>, it indicates
that the root issuer supports issuance of AAT root tokens as described
in Section 3.7. When absent, the AS is assumed not to support AAT
issuance.</t>

</section>
<section anchor="oauth-token-type-registration"><name>OAuth Token Type Registration</name>

<t>This document requests registration of the following token type in the
OAuth Token Type Registry (<xref target="RFC6749"/> Section 11.1):</t>

<t><list style="symbols">
  <t>Type name: <spanx style="verb">aat</spanx></t>
  <t>Additional Token Endpoint Response Parameters: (none)</t>
  <t>HTTP Authentication Scheme(s): (none; not a bearer token)</t>
  <t>Change controller: IETF</t>
  <t>Specification document(s): This document</t>
</list></t>

</section>
<section anchor="oauth-token-endpoint-parameters-registry"><name>OAuth Token Endpoint Parameters Registry</name>

<t>This document requests registration of the following parameter in the
OAuth Parameters Registry established by <xref target="RFC6749"/> Section 11.2:</t>

<t><list style="symbols">
  <t>Parameter name: <spanx style="verb">cnf</spanx></t>
  <t>Parameter usage location: token request</t>
  <t>Change controller: IETF</t>
  <t>Specification document(s): This document, <xref target="RFC7800"/> Section 3.1</t>
</list></t>

<t>The <spanx style="verb">cnf</spanx> parameter carries a key confirmation object as defined in
<xref target="RFC7800"/>. When used at the token endpoint, its value <bcp14>MUST</bcp14> be a JSON
object containing a <spanx style="verb">jwk</spanx> member with the requesting agent's public key.
The authorization server binds this key into the issued AAT's <spanx style="verb">cnf.jwk</spanx>
claim. The semantics of the <spanx style="verb">cnf</spanx> object are defined by <xref target="RFC7800"/>;
this registration documents its use at the OAuth token endpoint for AAT
issuance.</t>

</section>
</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">

&RFC3986;
&RFC7515;
&RFC7517;
&RFC7519;
&RFC7638;
&RFC7800;
&RFC8032;
&RFC8785;
&RFC9278;
&RFC8949;
&RFC9396;
&RFC9562;
&RFC6749;
&RFC2119;
&RFC8174;


    </references>

    <references title='Informative References' anchor="sec-informative-references">

&RFC8414;
&RFC8126;
&RFC8392;
&RFC8693;
&RFC9052;
&RFC9449;
<reference anchor="BISCUIT" target="https://doc.biscuitsec.org/reference/specifications.html">
  <front>
    <title>Biscuit: Distributed Authorization Tokens</title>
    <author >
      <organization>Eclipse Foundation</organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="MACAROONS" target="https://research.google/pubs/pub41892/">
  <front>
    <title>Macaroons: Cookies with Contextual Caveats for Decentralized Authorization in the Cloud</title>
    <author initials="A." surname="Birgisson" fullname="Arnar Birgisson">
      <organization></organization>
    </author>
    <author initials="J. G." surname="Politz" fullname="Joe Gibbs Politz">
      <organization></organization>
    </author>
    <author initials="U." surname="Erlingsson" fullname="Ulfar Erlingsson">
      <organization></organization>
    </author>
    <author initials="A." surname="Taly" fullname="Ankur Taly">
      <organization></organization>
    </author>
    <author initials="M." surname="Vrable" fullname="Michael Vrable">
      <organization></organization>
    </author>
    <author initials="M." surname="Lentczner" fullname="Mark Lentczner">
      <organization></organization>
    </author>
    <date year="2014"/>
  </front>
  <seriesInfo name="NDSS" value="2014"/>
</reference>
<reference anchor="SALTZER75" target="https://doi.org/10.1109/PROC.1975.9939">
  <front>
    <title>The Protection of Information in Computer Systems</title>
    <author initials="J. H." surname="Saltzer" fullname="Jerome H. Saltzer">
      <organization></organization>
    </author>
    <author initials="M. D." surname="Schroeder" fullname="Michael D. Schroeder">
      <organization></organization>
    </author>
    <date year="1975"/>
  </front>
  <seriesInfo name="Proceedings of the IEEE" value="Vol. 63, No. 9"/>
</reference>
<reference anchor="HARDY88" target="https://dl.acm.org/doi/10.1145/54289.871709">
  <front>
    <title>The Confused Deputy (or why capabilities might have been invented)</title>
    <author initials="N." surname="Hardy" fullname="Norm Hardy">
      <organization></organization>
    </author>
    <date year="1988"/>
  </front>
  <seriesInfo name="ACM SIGOPS Operating Systems Review" value="Vol. 22, No. 4"/>
</reference>
<reference anchor="CAMEL25" target="https://arxiv.org/abs/2503.18813">
  <front>
    <title>Defeating Prompt Injections by Design</title>
    <author initials="E." surname="Debenedetti" fullname="Edoardo Debenedetti">
      <organization></organization>
    </author>
    <author initials="I." surname="Shumailov" fullname="Ilia Shumailov">
      <organization></organization>
    </author>
    <author initials="T." surname="Fan" fullname="Tianqi Fan">
      <organization></organization>
    </author>
    <author initials="J." surname="Hayes" fullname="Jamie Hayes">
      <organization></organization>
    </author>
    <author initials="N." surname="Carlini" fullname="Nicholas Carlini">
      <organization></organization>
    </author>
    <author initials="D." surname="Fabian" fullname="Daniel Fabian">
      <organization></organization>
    </author>
    <author initials="C." surname="Kern" fullname="Christoph Kern">
      <organization></organization>
    </author>
    <author initials="C." surname="Shi" fullname="Chongyang Shi">
      <organization></organization>
    </author>
    <author initials="A." surname="Terzis" fullname="Andreas Terzis">
      <organization></organization>
    </author>
    <author initials="F." surname="Tramèr" fullname="Florian Tramèr">
      <organization></organization>
    </author>
    <date year="2025"/>
  </front>
</reference>
<reference anchor="DEEPMIND26" target="https://arxiv.org/abs/2602.11865">
  <front>
    <title>Intelligent AI Delegation</title>
    <author initials="N." surname="Tomašev" fullname="Nenad Tomašev">
      <organization></organization>
    </author>
    <author initials="M." surname="Franklin" fullname="Matija Franklin">
      <organization></organization>
    </author>
    <author initials="S." surname="Osindero" fullname="Simon Osindero">
      <organization></organization>
    </author>
    <date year="2026"/>
  </front>
</reference>
<reference anchor="WIMSE-ARCH" target="https://datatracker.ietf.org/doc/draft-ietf-wimse-arch/">
  <front>
    <title>Workload Identity in a Multi System Environment (WIMSE) Architecture</title>
    <author initials="J." surname="Salowey" fullname="Joe Salowey">
      <organization></organization>
    </author>
    <author initials="Y." surname="Rosomakho" fullname="Yaroslav Rosomakho">
      <organization></organization>
    </author>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization></organization>
    </author>
    <date year="2026" month="March"/>
  </front>
</reference>
<reference anchor="WIMSE-S2S" target="https://datatracker.ietf.org/doc/draft-ietf-wimse-s2s-protocol/">
  <front>
    <title>WIMSE Workload-to-Workload Authentication</title>
    <author initials="B." surname="Campbell" fullname="Brian Campbell">
      <organization></organization>
    </author>
    <author initials="J. A." surname="Salowey" fullname="Joseph A. Salowey">
      <organization></organization>
    </author>
    <author initials="A." surname="Schwenkschuster" fullname="Arndt Schwenkschuster">
      <organization></organization>
    </author>
    <author initials="Y." surname="Sheffer" fullname="Yaron Sheffer">
      <organization></organization>
    </author>
    <date year="2025" month="October"/>
  </front>
</reference>
<reference anchor="DENNIS66" target="https://doi.org/10.1145/365230.365252">
  <front>
    <title>Programming Semantics for Multiprogrammed Computations</title>
    <author initials="J. B." surname="Dennis" fullname="Jack B. Dennis">
      <organization></organization>
    </author>
    <author initials="E. C." surname="Van Horn" fullname="Earl C. Van Horn">
      <organization></organization>
    </author>
    <date year="1966"/>
  </front>
  <seriesInfo name="Communications of the ACM" value="Vol. 9, No. 3"/>
</reference>
<reference anchor="MILLER06" target="http://www.erights.org/talks/thesis/">
  <front>
    <title>Robust Composition: Towards a Unified Approach to Access Control and Concurrency Control</title>
    <author initials="M. S." surname="Miller" fullname="Mark S. Miller">
      <organization></organization>
    </author>
    <date year="2006"/>
  </front>
  <seriesInfo name="PhD Dissertation" value="Johns Hopkins University"/>
</reference>
<reference anchor="ALLOY" target="https://doi.org/10.1145/505145.505149">
  <front>
    <title>Alloy: A Lightweight Object Modelling Notation</title>
    <author initials="D." surname="Jackson" fullname="Daniel Jackson">
      <organization></organization>
    </author>
    <date year="2002"/>
  </front>
  <seriesInfo name="ACM Transactions on Software Engineering and Methodology" value="Vol. 11, No. 2"/>
</reference>
<reference anchor="Z3" target="https://github.com/Z3Prover/z3">
  <front>
    <title>Z3: An Efficient SMT Solver</title>
    <author initials="L." surname="de Moura" fullname="Leonardo de Moura">
      <organization></organization>
    </author>
    <author initials="N." surname="Bjørner" fullname="Nikolaj Bjørner">
      <organization></organization>
    </author>
    <date year="2008"/>
  </front>
  <seriesInfo name="TACAS 2008, LNCS" value="4963"/>
</reference>


    </references>

</references>


<?line 2484?>

<section anchor="comparison-with-related-oauth-mechanisms-non-normative"><name>Comparison with Related OAuth Mechanisms (Non-Normative)</name>

<section anchor="token-exchange-rfc-8693"><name>Token Exchange (RFC 8693)</name>

<t>RFC 8693 allows a client to exchange one token for another, potentially
with reduced scope, by contacting the authorization server. The server
enforces scope reduction. This requires network connectivity to the
authorization server at each delegation hop and cannot be performed
offline.</t>

<t>This specification allows a token holder to derive a new token
locally, without contacting the authorization server. The attenuation
invariant is enforced by the chain verification algorithm, not by a
server-side policy check.</t>

</section>
<section anchor="rich-authorization-requests-rfc-9396"><name>Rich Authorization Requests (RFC 9396)</name>

<t>RFC 9396 defines a structured format for expressing fine-grained
authorization details in OAuth tokens. This specification uses the
<spanx style="verb">authorization_details</spanx> claim format from RFC 9396 and extends it with:
(1) a delegation chain model that links tokens via cryptographic hashes,
(2) monotonic attenuation invariants that constrain what derived tokens
may express, and (3) proof-of-possession binding that ties invocations
to specific key holders.</t>

</section>
<section anchor="dpop-rfc-9449"><name>DPoP (RFC 9449)</name>

<t>DPoP (<xref target="RFC9449"/>) is a token theft prevention mechanism that binds an
existing OAuth access token to a holder key, ensuring that a stolen
token cannot be presented without the corresponding private key. DPoP
does not change what the access token authorizes; the token's
authorization claims are unchanged. The resource server grants whatever
the access token permits; DPoP adds a cryptographic proof that the
presenter holds the bound key.</t>

<t>AATs encode the authorization itself. The token specifies which tools
may be invoked, with what argument constraints, and by which key holder.
Holders can derive tokens with authority equal to or narrower than
their own, without contacting the authorization server. The PoP JWT in
Section 5 serves a similar cryptographic role to a DPoP proof, binding a
specific invocation to the leaf token's holder key, but operates in a
different context. Everything else in this specification (the chain
model, the attenuation invariants, the constraint type registry, the
subsumption matrix) addresses questions outside DPoP's scope.</t>

<t>Structurally, DPoP is a two-party protocol between a client and a
resource server. There is no delegation model, no parent-child chain,
and no attenuation invariant. The chain model of this specification
(<spanx style="verb">del_depth</spanx>, <spanx style="verb">par_hash</spanx>, <spanx style="verb">del_max_depth</spanx>, and the six attenuation
invariants) has no DPoP analog.</t>

<t>At the proof level, DPoP binds to an HTTP method (<spanx style="verb">htm</spanx>) and URI
(<spanx style="verb">htu</spanx>). AAT PoP JWTs bind to a tool name (<spanx style="verb">aat_tool</spanx>) and a structured
argument map (<spanx style="verb">hta</spanx>). Tool invocations are function calls, not HTTP
requests, and a URI alone carries insufficient information for
argument-level constraint evaluation. This is why <spanx style="verb">aat_tool</spanx> and <spanx style="verb">hta</spanx>
differ structurally from <spanx style="verb">htm</spanx> and <spanx style="verb">htu</spanx>: (1) <spanx style="verb">hta</spanx> carries the full
argument map required for constraint evaluation at the enforcement
point; (2) <spanx style="verb">aat_id</spanx> binds the proof to a specific leaf token <spanx style="verb">jti</spanx> and
chain position, for which DPoP has no equivalent.</t>

<t>The cryptographic mechanism is the same: an asymmetric key in <spanx style="verb">cnf.jwk</spanx>,
compact JWT serialization, verified against the leaf token's bound key.
DPoP could in principle be layered alongside AATs as a transport-level
binding for chain delivery, but that combination is outside the scope of
this specification.</t>

</section>
<section anchor="biscuit"><name>Biscuit</name>

<t>Biscuit <xref target="BISCUIT"/> is a capability-based authorization token format
that combines asymmetric public key signatures with offline attenuation,
building on the Macaroons model. Like AATs, Biscuit tokens support
offline derivation and monotonic attenuation: a holder can produce a
more restricted token without contacting the original issuer, and the
resulting token cannot exceed the authority of its parent.</t>

<t>The primary structural difference is the policy language. Biscuit
encodes authorization logic in a Datalog variant that is evaluated at
verification time, requiring a logic engine at the enforcement point.
This enables expressive relational policies but introduces a runtime
dependency and non-trivial computational bounds to manage.</t>

<t>AATs encode authorization as a structured capability map with typed
argument constraints. The core constraint types are decidable by
structural analysis, requiring no logic engine. For cases where
structural constraints are insufficient, CEL expressions provide a
bounded escape hatch, and a registered extension type mechanism supports
domain-specific constraint types. This tradeoff favors simplicity and
predictability at the enforcement point, at the cost of the relational
expressiveness Datalog provides.</t>

<t>A second difference is scope. Biscuit is a general-purpose authorization
token format. It does not natively encode token roles such as delegation
versus execution authority, depth-limit claims, or explicit chain
position declarations. This specification defines a typed
delegation-chain structure with those properties in the token model
itself, making the chain independently verifiable as a delegation
protocol rather than as a sequence of policy blocks.</t>

</section>
</section>
<section anchor="implementation-notes-non-normative"><name>Implementation Notes (Non-Normative)</name>

<section anchor="algorithm-recommendations"><name>Algorithm Recommendations</name>

<t><list style="symbols">
  <t><strong>Signing algorithm:</strong> Ed25519 <xref target="RFC8032"/>. The normative requirement
is in Section 3.2. EdDSA provides compact 64-byte signatures suitable
for constrained agent environments. The JWS <spanx style="verb">alg</spanx> header value for
Ed25519 is <spanx style="verb">"EdDSA"</spanx>.</t>
  <t><strong>Key representation:</strong> JWK <xref target="RFC7517"/> with <spanx style="verb">"kty": "OKP"</spanx> and
<spanx style="verb">"crv": "Ed25519"</spanx>.</t>
  <t><strong>Token identifier:</strong> UUIDv7 is recommended for <spanx style="verb">jti</spanx> values,
providing time-ordered identifiers without central coordination.</t>
</list></t>

<t>The algorithm allowlist requirement is normatively defined in Section 7
(steps 3a and 4a) and discussed in Section 8.14.</t>

<t>Post-quantum migration: the <spanx style="verb">cnf.jwk</spanx> key type is not hardcoded to
Ed25519. Implementations should be designed to support key type
migration. NIST finalized ML-DSA (FIPS 204, formerly Dilithium) in 2024
as a post-quantum digital signature standard. Deployments with long-term
security requirements should design their key management infrastructure
to support algorithm migration without requiring changes to token
structure.</t>

</section>
<section anchor="performance"><name>Performance</name>

<t>Chain verification requires one signature verification per chain link.
Ed25519 verification is computationally lightweight; for typical chain
depths of 3 to 5 links, verification overhead is negligible relative to
network latency in most deployment contexts. Constraint evaluation for
<spanx style="verb">exact</spanx>, <spanx style="verb">one_of</spanx>, <spanx style="verb">range</spanx>, and similar structural types is O(n) in the
number of constraints. For <spanx style="verb">regex</spanx> and <spanx style="verb">cel</spanx>, evaluation cost depends on
expression complexity and input size; see Section 8.7 for resource limit
guidance.</t>

</section>
<section anchor="recognizing-derived-token-iss-values-in-middleware"><name>Recognizing Derived Token <spanx style="verb">iss</spanx> Values in Middleware</name>

<t>In both root and derived AATs, <spanx style="verb">iss</spanx> is a URI. For root tokens it
is a conventional issuer URI. For derived tokens it is a JWK
Thumbprint URI (<xref target="RFC9278"/>) with the
<spanx style="verb">urn:ietf:params:oauth:jwk-thumbprint:sha-256:</spanx> prefix.
Middleware that routes or policy-evaluates based on <spanx style="verb">iss</spanx> should
recognize the JWK Thumbprint URI scheme and apply chain-aware
processing rather than attempting to resolve the URI as an issuer
endpoint. The verification key for derived tokens is
<spanx style="verb">parent.cnf.jwk</spanx>, resolved from the preceding chain link.</t>

</section>
<section anchor="relationship-to-wimse"><name>Relationship to WIMSE</name>

<t>The WIMSE architecture <xref target="WIMSE-ARCH"/> and service-to-service protocol
<xref target="WIMSE-S2S"/> address workload identity and authentication for entities
that hold and present AATs. A WIMSE workload credential identifies an
agent; the <spanx style="verb">iss</spanx> claim in a root AAT issued to that agent may reference
the agent's WIMSE workload identifier. The two specifications are
complementary: WIMSE establishes workload identity and authentication;
this specification defines a holder-derivable, invocation-scoped
delegation and attenuation mechanism that WIMSE does not standardize.</t>

</section>
<section anchor="delegation-depth-guidance"><name>Delegation Depth Guidance</name>

<t>The normative requirement is only that implementations enforce a finite
MAX_DELEGATION_DEPTH. This appendix provides non-normative guidance for
selecting an appropriate value.</t>

<t>The appropriate MAX_DELEGATION_DEPTH depends on the deployment topology.
Linear orchestration chains — root issuer, one or two planning layers,
leaf executor — require few hops. Swarm architectures with dynamic
fan-out, sub-task delegation, or hierarchical agent groups may require
significantly deeper chains. The implementation ceiling should reflect
the maximum depth the deployment actually needs, not an arbitrary
conservative default.</t>

<t>Regardless of the implementation ceiling, issuers should set
<spanx style="verb">del_max_depth</spanx> in individual tokens to the minimum depth the specific
workflow requires. A grant with a lower <spanx style="verb">del_max_depth</spanx> than the
implementation ceiling is always permitted and limits blast radius if a
token is misused. The security value comes from tight per-chain policy,
not from a low implementation ceiling.</t>

</section>
<section anchor="implementation-size-limits"><name>Implementation Size Limits</name>

<t>The normative requirement is only that implementations enforce finite
limits on token size, chain size, constraint nesting depth, and tool
count to prevent resource exhaustion. This appendix provides
non-normative recommended defaults for implementations with no specific
deployment constraints:</t>

<texttable>
      <ttcol align='left'>Parameter</ttcol>
      <ttcol align='left'>Recommended Default</ttcol>
      <c>Maximum token size</c>
      <c>64 KB</c>
      <c>Maximum chain size</c>
      <c>256 KB</c>
      <c>Maximum tools per token</c>
      <c>256</c>
      <c>Maximum constraints per tool</c>
      <c>64</c>
      <c>Maximum constraint nesting depth</c>
      <c>32</c>
      <c>Maximum tool name length</c>
      <c>256 bytes</c>
      <c>Maximum constraint value length</c>
      <c>4 KB</c>
</texttable>

<t>Deployments should document their enforced limits. Interoperating
parties should verify that their respective limits are compatible before
deployment.</t>

<t>Implementations should prefer <spanx style="verb">exact</spanx> and <spanx style="verb">one_of</spanx> constraints over
<spanx style="verb">pattern</spanx>, <spanx style="verb">regex</spanx>, or <spanx style="verb">cel</spanx> where the policy permits, as these types
produce significantly more compact tokens and simpler subsumption
checks.</t>

<t>Implementations concerned about parser exposure on unverified
payloads in step 2c of the chain verification algorithm (Section 7)
may extract <spanx style="verb">jti</spanx> using a length-limited byte scan rather than a
full JSON parser, provided the extraction correctly handles JSON
whitespace and string escaping.</t>

<t>A single AAT is typically 1-4 KB when base64url-encoded. Chains
of two or more tokens will commonly exceed the 4-8 KB header size
limits enforced by common reverse proxies and load balancers,
resulting in 431 errors. Deployments should transmit AAT chains
in a request body field rather than an HTTP header. For
size-constrained environments, the CBOR/CWT profile in Appendix D
reduces chain size by 30-50% and is recommended when HTTP header
transport is required.</t>

</section>
<section anchor="signed-passthrough-metadata"><name>Signed Passthrough Metadata</name>

<t>Deployments may need to convey additional signed metadata through the
delegation chain, such as a request trace identifier, a tenant context
used for logging or routing, or a human-readable subject identifier.
This specification does not define a mechanism for such metadata, but
the JWT format accommodates it naturally.</t>

<t>Implementations may include additional JWT claims in AATs beyond those
defined in Section 3. Claims used for passthrough metadata should use
collision-resistant names (e.g., reverse domain notation such as
<spanx style="verb">com.example.trace_id</spanx>) and should not encode tool permissions or
argument constraints that this specification models in
<spanx style="verb">authorization_details</spanx>.</t>

<t>Because additional claims are included in the token's JWS signature,
they are integrity-protected within each individual token. However,
this specification's chain verification algorithm (Section 7) does not
enforce preservation of unrecognized claims across derivation steps.
Per Section 3.4, enforcement points ignore unrecognized top-level JWT
claims; the fail-closed rule applies only to constraint types within
<spanx style="verb">authorization_details</spanx>. A token carrying a <spanx style="verb">com.example.trace_id</spanx>
claim will not be rejected solely for containing that claim.
Deployments that require chain-wide preservation of passthrough
metadata must define and enforce their own derivation and verification
rules for those claims, either through deployment-specific policy or
in a companion profile.</t>

</section>
<section anchor="ttl-guidance"><name>TTL Guidance</name>

<t>The normative requirement is only that derived tokens cannot outlive
their parents and that token lifetime does not exceed MAX_TOKEN_LIFETIME
(Section 4.4). This appendix provides non-normative guidance for
selecting appropriate TTL values.</t>

<t>TTL is the primary revocation mechanism in this specification. A token
that has expired cannot be used regardless of whether a revocation list
exists. Short lifetimes reduce the window of exposure from key
compromise, token theft, or scope misconfiguration. The operational cost
of short TTLs is re-issuance frequency; this cost is low when the root
issuer is available and derivation is offline.</t>

<t>The appropriate TTL for each token role depends on the deployment
context. Root delegation tokens should be long enough to cover the full
orchestration and execution window for the task, but no longer. Leaf
execution tokens should be scoped to the expected duration of a single
tool invocation. Deployments with intermittent connectivity (edge,
embedded, or air-gapped) may need longer lifetimes, with the awareness
that longer lifetimes expand the compromise window.</t>

<t>Deployments should treat TTL as a policy expression rather than a
convenience parameter. A root delegation token with a 24-hour TTL
effectively grants the holder 24 hours of authority regardless of how
narrowly the capability scope is defined.</t>

</section>
</section>
<section anchor="policy-languages-with-decidable-containment-non-normative"><name>Policy Languages with Decidable Containment (Non-Normative)</name>

<t>This appendix provides non-normative guidance for implementers
considering extension constraint types that use structured policy
languages.</t>

<t>The core constraint types <spanx style="verb">regex</spanx> and <spanx style="verb">cel</spanx> use conservative syntactic
subsumption strategies because this specification does not define
general containment algorithms for their respective languages. This
conservatism limits expressiveness: two semantically subsuming
expressions that do not satisfy the syntactic criteria will be rejected
by enforcement points applying the normative strategy, even if a human
reviewer could determine that subsumption holds.</t>

<t>Implementers requiring richer policy expressiveness without sacrificing
subsumption decidability should consider languages that were designed
specifically for authorization use cases and that provide formal
containment algorithms as a first-class operation. Such languages are
better positioned to provide conforming extension constraint
registrations under Section 3.5.1, because their containment algorithms
are decidable and formally verified rather than approximated by
conservative syntactic rules.</t>

<t>The key property to look for is whether the language's policy
containment problem ("does every input permitted by policy A also
satisfy policy B?") is decidable and implemented in available tooling.
Languages with this property allow a registration to specify a
subsumption verification procedure that is both decidable and
non-conservative: it returns true for all semantically subsuming pairs,
not just syntactically obvious ones.</t>

<t>This document takes no position on which specific policy language
implementers should choose. The choice depends on the deployment
environment, existing infrastructure, tooling availability, and the
specific authorization semantics required. The normative requirement is
only that whatever language is used, the resulting extension constraint
registration satisfies the three properties defined in Section 3.5.1:
decidable, sound, and deterministic.</t>

</section>
<section anchor="cborcwt-profile-normative"><name>CBOR/CWT Profile (Normative)</name>

<t>The claim semantics, attenuation invariants, constraint subsumption
rules, and chain verification algorithm defined in this document are
format-agnostic. They describe a protocol, not an encoding. This
appendix notes the relationship to CBOR-based token formats for
implementers operating in constrained or throughput-sensitive
environments. The normative content of this appendix is limited to
encoding constraints (deterministic CBOR per <xref target="RFC8949"/>); integer
CWT claim key assignments are deferred to a companion document and
are not normative here.</t>

<section anchor="cwt-representation"><name>CWT Representation</name>

<t>CBOR Web Tokens <xref target="RFC8392"/> and COSE message signing <xref target="RFC9052"/> are the
IETF-native binary analogs of JWT and JOSE respectively. An AAT can be
represented as a CWT with no change to its semantic content. The
attenuation invariants in Section 4 apply identically. The chain
verification algorithm in Section 7 applies identically, substituting
COSE_Sign1 verification for JWS signature verification.</t>

<t>CBOR encoding offers meaningful size advantages over base64url-encoded
JSON for token payloads. In typical AAT payloads with several constraint
entries, CBOR encoding reduces token size by 30-50% relative to compact
JWT serialization. For high-throughput agent pipelines or
resource-constrained edge deployments, this difference is operationally
significant.</t>

</section>
<section anchor="deterministic-encoding"><name>Deterministic Encoding</name>

<t>CWT implementations of this protocol <bcp14>MUST</bcp14> use deterministic CBOR
encoding as defined in <xref target="RFC8949"/> Section 4.2. Deterministic encoding
requires that integer keys be used for all map entries where assignments
exist, that map keys be sorted in length-first, bytewise lexicographic
order, and that the shortest-form encoding be used for all values. This
ensures that two compliant implementations produce identical byte
sequences for the same AAT payload, which is required for correct
<spanx style="verb">par_hash</spanx> computation and cross-implementation chain verification.</t>

<t>The <spanx style="verb">hta</spanx> map within a CWT PoP token <bcp14>MUST</bcp14> also use deterministic CBOR
encoding. Implementations <bcp14>MUST NOT</bcp14> use indefinite-length encoding for
any AAT or PoP token structure.</t>

</section>
<section anchor="claim-key-assignments"><name>Claim Key Assignments</name>

<t>JWT uses string claim names. CWT uses integer claim keys for registered
claims to achieve compact encoding. The AAT-specific claims defined in
Sections 3 and 5 — namely <spanx style="verb">aat_type</spanx>, <spanx style="verb">del_depth</spanx>, <spanx style="verb">del_max_depth</spanx>,
<spanx style="verb">par_hash</spanx>, <spanx style="verb">aat_tool</spanx>, <spanx style="verb">hta</spanx>, and <spanx style="verb">aat_id</spanx> — require integer key
assignments in the IANA CWT Claims Registry <xref target="RFC8392"/> before
a normative CWT profile can be published.</t>

<t>Those registrations, along with COSE algorithm guidance and CWT-specific
serialization rules, are deferred to a companion Internet-Draft. That
companion document will reference <xref target="RFC8392"/> and <xref target="RFC9052"/>
normatively; this document references them informatively. This document
makes no CWT claim key assignments.</t>

</section>
<section anchor="companion-document"><name>Companion Document</name>

<t>A normative CWT profile is intended to be published as a companion
Internet-Draft. That document will define integer CWT claim key
assignments for all AAT-specific claims, COSE algorithm requirements,
and any CWT-specific serialization considerations. The protocol defined
in this document serves as the common specification that both profiles
reference.</t>

</section>
</section>
<section anchor="implementation-status-non-normative"><name>Implementation Status (Non-Normative)</name>

<t>This appendix describes the implementation status of this specification
at the time of submission, per the practice described in RFC 7942.</t>

<section anchor="reference-implementation"><name>Reference Implementation</name>

<t>A reference implementation of this protocol exists. The chain
verification algorithm (Section 7) and token derivation procedure
(Section 6) are both implemented. The implementation uses CBOR encoding
for the wire format, with Ed25519 signatures carried in COSE_Sign1
structures, and demonstrates that the Section 7 verification algorithm
operates correctly over both JWT and CWT representations of the same
chain, confirming format independence of the core protocol.</t>

<t>RFC Editor Note: Implementation attribution will be updated
or removed prior to WG adoption per IETF norms.</t>

</section>
<section anchor="formal-verification"><name>Formal Verification</name>

<t>Formal verification of the attenuation algebra is in progress, using
three complementary techniques: bounded model checking (<xref target="ALLOY"/>) for
set-theoretic constraint types, SMT solving (<xref target="Z3"/>) for domain-specific
types requiring arithmetic or string reasoning, and property-based
testing against the Rust implementation for all constraint types.
Bounded model checking has found no counterexamples for scopes up to 8
constraints and 8 values. The combination is intended to provide
evidence toward monotonicity of the I4 invariant across the full
constraint attenuation matrix.</t>

<t>RFC Editor Note: Implementation details will be updated or
removed per IETF norms prior to publication.</t>

</section>
</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA+S9W3Mj15Uu+L5/RR46bJFqAMVrXVi2eygW5aJUty5SVqsV
jkICSJCpAjKhTIAsWCVHv8yJjvN2Js4PmHmb13mb53Ni/oh/yazr3mtnJsiS
230iJsbRbUtg5s59WXvd17f6/b5b5stZdpycLJdZsUqXeXGVnKyW12WV/xn+
rSySy/J9VtTJtKySk6usWObj5Fk2y674r6fXaV7ULh2NquymMQw+La+7STku
0jl8aFKl02W/yNf5e/hCv0zhY/00vNZP8bX+kl7r7+66cbrMrspqfZzUy4kb
l0UNf1jVx8myWmWuXo3meV3DVJbrBQx/fnb5pcsXFf25Xu7v7j7Z3XcTGOM4
2d/df9jfPejvPXRplaXHyUU2XlX5cu1uy+r9VVWuFsfJt9mosQFvqnJZjstZ
sv0a/7DjXEp/P3ZJ0k+mq9mMV/YKVpSc5PN0NMvgX3iB8EySlNVVWshwx8kl
LLWk37N5ms+OkwKe/F9wA8pBmjtXlNUcHr3J8ANvvzw9ePL44TE8/avkmyKH
Y5gnb7O6XFXjLDmf4IFM86xKtr95e75znPwhK7IKjuhiXSzTDzzAo6O9Ix7g
q28v/E+P9Kev/U9P9KdL+enhwWP/VHJ5vZqPFlVeLOWvj3d3+a+wQ+W0D//3
pqzrjE4j+Tpbw/7OUyQYph4YtuY3H+8e7PObZ5NnFyfy46PHOsuL16+S07Qo
i3yczvQYLsbX2TxLtr86vdjhN57sP+qcXgJbIWM+OZQ1nZbFOK+z5Iu8SKt1
8nr0QzZewkYuqgzoacmf2D794vVbHfzgiez623x83SCJt9mPq6xeynKeHD3c
9wd0k1V1Oput8Z/hoeT8mR5RDWf0zfmzWj7w8JHOjcgq2R/sNr7yZQV0haTp
XF5MG1Tx+HDv8O7XL7IKJpO8zJYp0H8qr+3ty7L+sMon2SwvMj6db+Ei4K1N
i+T85NUJblgND1Q0Vo1XBf9BBjl4IgvGDaMrQ9ccNvDbS1ne44dPDprz44fO
Poyv0+Iqk83bPbJjycFc5FcFz2aSnBXjar2QA3p9caYHdKj79+xN+QZ+++L8
4vSb88tjulrC1ra+yOvxKl8eJ8/yelnlo9Uym3QyuC1+La2uMnj6erlc1McP
HgDbGox4iDobD+AiP6iyaVZlxTh7UC+yMZzsmLdocL2cz2iQwB7wP328/sfJ
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
6AAhBhENKhUY0qgv2voe00Ed0AwCuANTBeG/kJ7oxmEZbI4gJ2WK7JgY9/sk
baHVmtkUO8rlrsOVz7rveBUpx6Rvclu2PrBUlhJNR09osJ7XXal8n8IAQEWt
7rr0MomN9/78zc1hQh7Zm4dOG8nBd0/Pn71FqjfUfR8j0IuL2b+khNmxFU3a
CcIAse0p9RuWTPUw1Q5CwNuNw/TnqD5MHA3t+3/2knK8xAC7zJcxoL55+8Ij
E1yX9VJStJu+YJq1vx++L2boVMePSdZoMHFccO4HwAIGVZKg6H8IP/C7pPjB
hSSx+LuvT/yd7zZR2i+4z3yMrnGfWX765qOhSMFfbJn+p95snlZ8m5uXZFXN
3mH04a6LQjlA7yijPORaUadXlg0mLc1pDtfw+y1MNMdaUEo43/rTcOepDiWp
2l1DOZ859xQBAIr1XQ8n9uERoua8kwr2obs3Z86/MivLxSjF+9vxjut+Z54t
UyzX/YTcvF/MITAgxCEo3nI1CzCFo3EWpDk3Vt5rrQsbS7jWxKkap1plapmi
iiLsQC++TEhG7jkdkTpVgB20miQ6nmEOmvpH7Zk7+RUFSLBzLDLZwCEI+h2R
Vcb5HLfxOvsg7KtnOVzPGfa1w1vQoCvSHIs+VRArjIIui9PSQN1hVzk61qW0
CAeKSe6ucXB7aCzHYJU0ROP9JSFkoCsMG2uNBUW+OVtgmPj7LF38h/FG5omb
wwOeReJs2GB1hFp03Lr+DXB2ZU6tG9hzbToktbeLEMkPZDs2YLW1s5NsdUZq
AFRMZ+lVm8E0epP4d9F3I9yb846KrM1wZKUL4IP0uouaMv39xIfnwZ8uQhKW
pRyzDDiUDSZjBEWyWVA4M4FYWARTsGbDkMCZmxjVDfyFH5Y5QgHs7j05epQe
TPuH2f5B/9Fod6+fPpns9Xd3j3aPHj4Z72eHUwJZ2AKjFl/QuiQ0tW05kjyU
IurA3qPDvYe7+B/6Mfuw8D8ePJQfFWBrK0bLpr95iCz4467/xYNUwa8H9Ou4
mHoMha0fbt8bQIWt90vEV9h6/fWbgBExrm7wN8EjCr8jCMLW3t6P35189/WH
02r6x4t3jy7X3/7T89dXj67HN2/SRf5yVt2ep+mb8fNv3pZbHhrh597/P7Es
7gCJ+BU18uaL1QCAvosED5HmHu/1H433d/uj6UEK/5rujp/sZXv7B4cRCf4i
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
XSmeijuTYKpJp9EqvaUJcMkm1bdrGnjkOyPiY3cdf9eG9zhPh7Jwgcy2nzXU
jR0lH8Q7JUfZjpAOKbUgbpumGXWL4jKi0H0Z05lnnEFFGkjFAA2ZVlDhLOcj
7JyIuZL+kyrMG845+uw9WotywLJQyvxFWgupH8EP/enai3jGYASepbWTg10c
+IcIHRnEa9B3rJGirKBbT5s8LbzMmRd5yAe+W8hEnv5GIa+G4htA5vFoynok
Cm7bzCK+wk4XA6bBW8vuGJvXYQtSYyGtih6s2cfhdQSLY6M5hPJNnpQ1Bjqn
5oVDe2ZGw+SPG5kQVzzH0O3G86s9PRNy1HQSjXGu6PJMypucGueBTcq40k7A
spr5TDucYiyXSVJrGldMcnBaTl2an/fjqrR42HAIy9sDrjFkuGR474dl3vBJ
2QdplvAo/m8j1KmPXS/THrv9o5pwzHJXTmsLw3sq5YhVR1Xk1PwlFDcK/Zhs
9UaVu6bS+AGo5FpEPAWNMauR5UOna0uXkKcCqxaq4OLKPu+ax3gHfdhmiPHP
Pp3p8SB5c/b25fnlQECE7u5LsjTV7HyqcVITB2dcSAGhhC5KwOS8HPG/w8Bl
RwIJlkP5VBQs5r7ojs1L7FyjKCTINNdJQix4qeSjDrdaOoO31Q/uJu2jP5KX
FyWFcKKI60gUQTc6QZpL6sknpYY4U84gBSmK/h4BEVFaQNVHxWciOZT9ctrH
tEaQfI5BiWgPEJZhnJerGuTVuMJJ+MVLf6q6nGWhTScnAIO9uj8+dppUROmw
Ue6V4FVwChZOupGe5NOP3CekH/UwEegmxyOiTMUYOZTSeWqqLgvpP5JE1c7w
YVZqk8KjNJ+Q4HNPi72QWscFaEgdw3R2NXQhUDfkuJjmlMu/mbicLAvpJ0bb
ciZJ1OfR2hpNMTmwAA620ReRU/4u1yxb1AQJVT6ahMxZL1fa2b4okW3io8D/
wbXD8qNOcIgGTC0m/m8qnDeMk+kFmR+DkQB/oZgsvDJjxSDon5kkBVM5A8GM
COeLcBEaTBZz37lUCyYvWZu6Kn/sm0EUvfpL2i5if3hsEy111joswreVrAIC
S9Iric4hRq5pgGQk29ngatADtXU3uamTvR1JMIbrdsP5bq1dFhYZTlYO3NOe
crC44uKuZCmVQ/jv2mTDMGy/ScebMqppJLzglLbEykBoxhwKRjpg4KQozxQz
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
ALI+kKYoDwIA

-->

</rfc>

