<?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.43 (Ruby 4.0.9) -->


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

]>


<rfc ipr="trust200902" docName="draft-hulea-wimse-agent-mandate-01" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="Agent Mandates">Verifiable Mandates for Agents Acting Across Administrative Domains</title>

    <author fullname="Claudiu Hulea">
      <organization>Braincap SRL</organization>
      <address>
        <postal>
          <city>Bucharest</city>
          <country>Romania</country>
        </postal>
        <email>claudiu.hulea@braincap.ro</email>
      </address>
    </author>

    <date year="2026" month="November" day="01"/>

    <area>Security</area>
    <workgroup>Workload Identity in Multi System Environments</workgroup>
    <keyword>AI agents</keyword> <keyword>delegation</keyword> <keyword>mandate</keyword> <keyword>authorization</keyword> <keyword>attestation</keyword>

    <abstract>


<?line 89?>

<t>This document defines how a relying party in one administrative domain
validates the mandate under which a software agent, including an AI
agent, acts for a principal in another domain. Its distinctive element
is evidence of the delegator's authority: a statement from an authority
source about which permissions the person or entity granting the
mandate may delegate to agents, kept separate from the statement that
the mandate was granted.
The document specifies the mandate format with precisely defined limit
semantics, a deterministic validation procedure driven by an explicit
validation profile and kept separate from the relying party's
authorization decision, the attribution of every validated claim to the
issuer and role that asserted it, rules for enforcing the mandate after
token exchange, and the boundary between this protocol and a trust
framework. It reuses JSON Web Tokens, OAuth 2.0 Token Exchange, Rich
Authorization Requests, WIMSE workload credentials and HTTP Message
Signatures, Token Status Lists, and Entity Attestation Tokens.</t>



    </abstract>



  </front>

  <middle>


<?line 108?>

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

<t>Software agents increasingly act on behalf of people and organizations
in systems those people and organizations do not operate. A treasury
agent run by a company initiates a payment at the company's bank. An
agent run by a broker submits an instruction to a custodian. In each
case the relying party has to decide whether to accept an action from
an agent configured, authorized, and operated in another administrative
domain.</t>

<t>Most building blocks exist. OAuth 2.0 Token Exchange <xref target="RFC8693"/>
exchanges security tokens, including across security domains, and
distinguishes the subject on whose behalf a request is made from the
actor that makes it. Rich Authorization Requests <xref target="RFC9396"/> express
fine-grained permissions. WIMSE workload credentials
<xref target="I-D.ietf-wimse-workload-creds"/> bind a workload identifier to a key.
Work on agents is advancing quickly: <xref target="I-D.ietf-wimse-aims"/> describes
how existing standards apply to agent authentication and authorization,
<xref target="I-D.asor-wimse-agent-delegation-chain"/> and
<xref target="I-D.hamr-oauth-agent-delegation"/> define attenuated delegation
chains, and <xref target="I-D.reece-wimse-cross-org-delegation"/> and
<xref target="I-D.yossif-agent-mandate-problem"/> state requirements for
cross-organization delegation and for verifiable mandates
(<xref target="related"/>).</t>

<t>What is not yet defined is evidence that the party at the root of a
mandate was entitled to grant it. A chain that only narrows proves that
no hop exceeded its parent. It does not prove that the root was within
the delegator's own authority, for example within the powers of a
company's legal representative. This document adds that evidence,
validates it together with the mandate under explicit rules, and keeps
each claim attributed to the issuer that made it.</t>

<section anchor="goals"><name>Goals</name>

<t><list style="numbers" type="1">
  <t><strong>Interoperable mandate semantics.</strong> Independent implementations
understand and check the same things: the structure of the mandate,
the semantics of its limits, the delegation chain, the binding to a
key, and revocation status (<xref target="mandate"/>, <xref target="constraints"/>).</t>
  <t><strong>Validation separate from authorization.</strong> Given the same inputs,
including the same validation profile, two conforming Validators
produce the same Validation Result. The relying party then applies
its own policy (<xref target="validation"/>, <xref target="authorization"/>).</t>
  <t><strong>Attribution of claims to issuers.</strong> The delegator's authority, the
grant of the mandate, the operator's statement about the agent
instance, and the state of the runtime come from different issuers.
A relying party can tell exactly who asserted what (<xref target="attribution"/>).</t>
  <t><strong>A clear boundary with the trust framework.</strong> This document defines
how evidence is expressed and verified. Which issuers are accepted,
what assurance levels mean, and which obligations issuers assume
belong to a trust framework (<xref target="trust-framework"/>).</t>
</list></t>

</section>
<section anchor="non-goals"><name>Non-Goals</name>

<t>This document does not:</t>

<t><list style="symbols">
  <t>determine whether an agent's reasoning or output is correct, or
whether an action reflects the principal's present intent;</t>
  <t>define a trust framework, assurance levels, or the legal effect of a
mandate;</t>
  <t>define how a delegator is shown a mandate or consents to it;</t>
  <t>replace the relying party's authorization policy.</t>
</list></t>

</section>
</section>
<section anchor="conventions-and-definitions"><name>Conventions and Definitions</name>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<?line -18?>

<dl>
  <dt>Principal:</dt>
  <dd>
    <t>The natural or legal person on whose behalf an agent acts.</t>
  </dd>
  <dt>Delegator:</dt>
  <dd>
    <t>The party that grants a root mandate: the principal itself, or a
party holding authority to act for the principal.</t>
  </dd>
  <dt>Authority Source:</dt>
  <dd>
    <t>A party that asserts that a delegator holds authority to act for a
principal, for example a register of legal representatives.</t>
  </dd>
  <dt>Operator:</dt>
  <dd>
    <t>The organization that runs an agent instance and controls its keys.</t>
  </dd>
  <dt>Agent Instance:</dt>
  <dd>
    <t>A running workload, identified by a workload identifier
<xref target="I-D.ietf-wimse-arch"/>, that holds a private key.</t>
  </dd>
  <dt>Mandate Issuer:</dt>
  <dd>
    <t>The entity that signs a root Mandate Assertion on the delegator's
instruction. It may be the delegator itself.</t>
  </dd>
  <dt>Mandate Assertion:</dt>
  <dd>
    <t>A signed JWT expressing a mandate (<xref target="mandate"/>). A root Mandate
Assertion is signed by a Mandate Issuer; a sub-delegated one by the
agent instance holding the parent mandate.</t>
  </dd>
  <dt>Root, leaf:</dt>
  <dd>
    <t>In a chain of Mandate Assertions linked by <spanx style="verb">parent</spanx>, the root is the
assertion without <spanx style="verb">parent</spanx>, signed by a Mandate Issuer; the leaf is
the assertion held by the presenting agent instance and sent as
<spanx style="verb">subject_token</spanx>. A chain of one mandate has the same assertion as
root and leaf.</t>
  </dd>
  <dt>Authority Assertion:</dt>
  <dd>
    <t>A signed JWT or SD-JWT <xref target="RFC9901"/> issued by an Authority Source
(<xref target="authority"/>).</t>
  </dd>
  <dt>Mandate Presentation:</dt>
  <dd>
    <t>The artifacts an agent instance presents to a relying party
(<xref target="presentation"/>).</t>
  </dd>
  <dt>Relying Party (RP):</dt>
  <dd>
    <t>The entity in another administrative domain that receives the action
request. In this document the RP's authorization server hosts the
Validator and issues access tokens.</t>
  </dd>
  <dt>Validator:</dt>
  <dd>
    <t>The RP component that executes the Mandate Validation Procedure.</t>
  </dd>
  <dt>Validation Profile:</dt>
  <dd>
    <t>A versioned document that fixes every rule the Validator applies
beyond this specification (<xref target="profile"/>).</t>
  </dd>
  <dt>Trust Framework:</dt>
  <dd>
    <t>The set of rules, identified by a URI, under which issuers are
accepted and evidence is interpreted (<xref target="trust-framework"/>).</t>
  </dd>
  <dt>Obligation:</dt>
  <dd>
    <t>A condition that the Validator cannot evaluate from its inputs and
that the RP has to discharge before it allows the action.</t>
  </dd>
  <dt>Budget:</dt>
  <dd>
    <t>A named cumulative limit shared by all actions under the same root
mandate that refer to it (<xref target="obligations"/>).</t>
  </dd>
</dl>

</section>
<section anchor="overview"><name>Architecture Overview</name>

<figure title="Roles and artifacts"><artwork type="ascii-art"><![CDATA[
 +-----------+  Authority   +-----------+
 | Authority |------------->| Delegator |
 |  Source   |  Assertion   +-----+-----+
 +-----------+                    | instructs
                                  v
                            +-----------+
                            |  Mandate  |
                            |  Issuer   |
                            +-----+-----+
 +-----------+  Workload          | Mandate Assertion
 | Operator  |------------->+-----v-----+
 +-----------+  Identity    |   Agent   |
                Token       | Instance  |
 +-----------+  Attestation |           |
 | Verifier  |------------->|           |
 +-----------+  Result      +-----+-----+
                                  | Mandate Presentation,
                                  | signed HTTP request
                                  v
                            +-----------+  Validation  +-----------+
                            | Validator |------------->|    RP     |
                            +-----------+  Result      |  Policy   |
                                                       +-----------+
]]></artwork></figure>

<t><list style="numbers" type="1">
  <t>An Authority Source issues an Authority Assertion stating that the
delegator may act for the principal within stated powers.</t>
  <t>A Mandate Issuer, on the delegator's instruction, issues a root
Mandate Assertion bound to the agent instance's key and referencing
the Authority Assertion.</t>
  <t>The operator issues the agent instance a Workload Identity Token
(WIT) <xref target="I-D.ietf-wimse-workload-creds"/> for the same key. A RATS
Verifier <xref target="RFC9334"/> <bcp14>MAY</bcp14> issue an attestation result.</t>
  <t>The agent instance sends a token exchange request carrying the
evidence and the requested action, signed with its key
(<xref target="presentation"/>).</t>
  <t>The Validator executes the Mandate Validation Procedure under a
Validation Profile. The RP applies its policy, discharges
Obligations, and issues a single-use access token (<xref target="enforcement"/>).</t>
</list></t>

<t>An agent instance <bcp14>MAY</bcp14> delegate a narrower mandate to another agent
instance (<xref target="chain"/>).</t>

</section>
<section anchor="mandate"><name>Mandate Assertion</name>

<t>A Mandate Assertion is a JWT <xref target="RFC7519"/> signed as a JWS <xref target="RFC7515"/>.
The JOSE header <spanx style="verb">typ</spanx> value <bcp14>MUST</bcp14> be <spanx style="verb">mandate+jwt</spanx>. Implementations <bcp14>MUST</bcp14>
follow <xref target="RFC8725"/>. The algorithm <bcp14>MUST</bcp14> be one permitted by the
Validation Profile.</t>

<section anchor="claims"><name>Claims</name>

<dl>
  <dt>iss:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. Identifier of the Mandate Issuer, or, for a sub-delegated
mandate, the workload identifier of the delegating agent instance.</t>
  </dd>
  <dt>sub:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. Workload identifier of the agent instance that holds the
mandate.</t>
  </dd>
  <dt>jti:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. Unique identifier of the assertion.</t>
  </dd>
  <dt>iat, nbf, exp:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. As defined in <xref target="RFC7519"/>.</t>
  </dd>
  <dt>cnf:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. Confirmation claim <xref target="RFC7800"/> containing a <spanx style="verb">jkt</spanx> member,
the JWK SHA-256 thumbprint <xref target="RFC7638"/> of the holder's public key.</t>
  </dd>
  <dt>principal:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. A Party Identifier (<xref target="party-id"/>) for the principal.</t>
  </dd>
  <dt>delegator:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. A Party Identifier for the delegator. In a sub-delegated
mandate, a Party Identifier for the delegating agent instance.</t>
  </dd>
  <dt>authority:</dt>
  <dd>
    <t>In a root mandate, <bcp14>REQUIRED</bcp14> unless <spanx style="verb">delegator</spanx> equals <spanx style="verb">principal</spanx>,
in which case it <bcp14>MUST NOT</bcp14> appear; an array of Artifact References
(<xref target="artifact-ref"/>) to Authority Assertions. The references are
alternatives: one supporting assertion establishes authority
(<xref target="validation-authority"/>). <bcp14>MUST NOT</bcp14> appear in a sub-delegated
mandate.</t>
  </dd>
  <dt>perms:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. A non-empty array of Permission objects (<xref target="permissions"/>).</t>
  </dd>
  <dt>parent:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14> in a sub-delegated mandate; <bcp14>MUST NOT</bcp14> appear in a root
mandate. An Artifact Reference to the parent Mandate Assertion.</t>
  </dd>
  <dt>max_depth:</dt>
  <dd>
    <t><bcp14>OPTIONAL</bcp14>. Non-negative integer: the number of further sub-delegations
permitted below this mandate. Default 0.</t>
  </dd>
  <dt>aud:</dt>
  <dd>
    <t><bcp14>OPTIONAL</bcp14>. Array of RP identifiers to which the mandate may be
presented.</t>
  </dd>
  <dt>status:</dt>
  <dd>
    <t><bcp14>OPTIONAL</bcp14>. Status reference as defined in
<xref target="I-D.ietf-oauth-status-list"/>. The Validation Profile states when it
is required.</t>
  </dd>
  <dt>tf:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. URI of the Trust Framework under which the assertion was
issued.</t>
  </dd>
  <dt>loa:</dt>
  <dd>
    <t><bcp14>OPTIONAL</bcp14>. Assurance level asserted by the issuer. Its meaning is
defined by the Trust Framework; the Validator reports it and does not
interpret it.</t>
  </dd>
</dl>

</section>
<section anchor="party-id"><name>Party Identifiers</name>

<t>A Party Identifier is a JSON object with two <bcp14>REQUIRED</bcp14> string members:
<spanx style="verb">id</spanx>, and <spanx style="verb">scheme</spanx>, a URI naming the identifier scheme. Two Party
Identifiers are equal if and only if both members are equal as
sequences of Unicode code points.</t>

</section>
<section anchor="artifact-ref"><name>Artifact References</name>

<t>An Artifact Reference is a JSON object with a <bcp14>REQUIRED</bcp14> member <spanx style="verb">dig</spanx>,
the base64url-encoded SHA-256 digest of the ASCII bytes of the
referenced artifact's compact JWS serialization. For an SD-JWT, the
digest is computed over the issuer-signed JWT only. The <bcp14>OPTIONAL</bcp14>
members <spanx style="verb">iss</spanx> and <spanx style="verb">jti</spanx> are hints for locating the artifact; they play
no part in matching. A reference matches an artifact if and only if
the digests are equal.</t>

</section>
<section anchor="permissions"><name>Permissions</name>

<t>A Permission object has the structure of an authorization details
object <xref target="RFC9396"/>: a <bcp14>REQUIRED</bcp14> <spanx style="verb">type</spanx> member and type-specific members,
including the common members <spanx style="verb">locations</spanx>, <spanx style="verb">actions</spanx>, <spanx style="verb">datatypes</spanx>,
<spanx style="verb">identifier</spanx>, and <spanx style="verb">privileges</spanx>. It <bcp14>MAY</bcp14> also contain <spanx style="verb">constraints</spanx>, an
array of Constraint objects (<xref target="constraints"/>).</t>

<t><xref target="RFC9396"/> does not define a general way to compare two authorization
details objects, because the meaning of their members depends on the
API. This document therefore applies its matching and attenuation rules
only to types listed in the Validation Profile, each with a Type
Profile (<xref target="type-profiles"/>). A request of an unlisted type does not
match.</t>

<t>Let the constrained members of P be the first reference tokens of the
<spanx style="verb">ptr</spanx> values of P's constraints. A requested authorization detail R
matches a Permission P at validation time T if and only if:</t>

<t><list style="numbers" type="1">
  <t>R.type equals P.type, and the type is listed in the Validation
Profile.</t>
  <t>For each of <spanx style="verb">locations</spanx>, <spanx style="verb">actions</spanx>, <spanx style="verb">datatypes</spanx>, and <spanx style="verb">privileges</spanx>
present in P, R contains the member and every element of R's array
is identical (<xref target="json-identity"/>) to an element of P's array.</t>
  <t>Every other member of P except <spanx style="verb">constraints</spanx> is present in R with an
identical value.</t>
  <t>Every top-level member of R is admitted by P: <spanx style="verb">type</spanx>, one of
<spanx style="verb">locations</spanx>, <spanx style="verb">actions</spanx>, <spanx style="verb">datatypes</spanx>, and <spanx style="verb">privileges</spanx>, a member of P,
a constrained member of P, or an admitted member of the Type Profile
(<xref target="type-profiles"/>).</t>
  <t>Every stateless constraint in P is satisfied by R at time T.</t>
  <t>For every stateful constraint in P, the pointer resolves in R to a
value the predicate accepts: for <spanx style="verb">sum_max</spanx>, a string matching
<spanx style="verb">nonneg</spanx>; for <spanx style="verb">cosign_above</spanx>, a string matching <spanx style="verb">decimal</spanx>.</t>
</list></t>

<t>A Permission without one of <spanx style="verb">locations</spanx>, <spanx style="verb">actions</spanx>, <spanx style="verb">datatypes</spanx>, and
<spanx style="verb">privileges</spanx> places no restriction on that dimension. Likewise, an
admitted member of the Type Profile that P neither contains nor
constrains may take any value. Rule 4 prevents a request from carrying
any other member, which the mandate did not anticipate and which could
change the meaning of the action.</t>

<t>These rules, and those in <xref target="attenuation"/>, are fixed by this document.
A Type Profile chooses which members are admitted; it cannot replace
the comparison rules. Identity comparison and a registered set of
predicates keep the result the same across implementations.</t>

</section>
<section anchor="constraints"><name>Constraints</name>

<t>A Constraint object has the members <spanx style="verb">pred</spanx> (<bcp14>REQUIRED</bcp14>), <spanx style="verb">ptr</spanx> (a JSON
Pointer <xref target="RFC6901"/> evaluated against the requested authorization
detail; <bcp14>REQUIRED</bcp14> except for <spanx style="verb">window</spanx>), and <spanx style="verb">value</spanx> (<bcp14>REQUIRED</bcp14>). The
<spanx style="verb">sum_max</spanx> predicate also has the <bcp14>REQUIRED</bcp14> members <spanx style="verb">period</spanx> and
<spanx style="verb">budget</spanx>.</t>

<t>Amounts are decimal strings matching the ABNF below, compared as exact
decimal numbers. JSON numbers <bcp14>MUST NOT</bcp14> be used for amounts.</t>

<figure><sourcecode type="abnf"><![CDATA[
decimal     = ["-"] nonneg
nonneg      = ("0" / (%x31-39 *DIGIT)) ["." 1*DIGIT]
]]></sourcecode></figure>

<t><spanx style="verb">period</spanx> is an integer number of seconds, at least 1 and at most the
framework's <spanx style="verb">max_period</spanx> in the Validation Profile (<xref target="profile"/>).
<spanx style="verb">budget</spanx> is a string.</t>

<t>The <spanx style="verb">value</spanx> of <spanx style="verb">eq</spanx> is any JSON value; of <spanx style="verb">in</spanx>, a non-empty array; of
<spanx style="verb">max</spanx>, <spanx style="verb">min</spanx>, and <spanx style="verb">cosign_above</spanx>, a string matching <spanx style="verb">decimal</spanx>; of
<spanx style="verb">sum_max</spanx>, a string matching <spanx style="verb">nonneg</spanx>; and of <spanx style="verb">window</spanx>, an object with
the integer members <spanx style="verb">nbf</spanx> and <spanx style="verb">exp</spanx>, <spanx style="verb">nbf</spanx> less than <spanx style="verb">exp</spanx>. A
constraint with a <spanx style="verb">value</spanx> of another type, a missing <bcp14>REQUIRED</bcp14> member,
or a <spanx style="verb">period</spanx> that is not an integer of at least 1 makes its artifact
<spanx style="verb">malformed</spanx>; a <spanx style="verb">period</spanx> above <spanx style="verb">max_period</spanx> gives <spanx style="verb">lifetime_exceeded</spanx>
(<xref target="procedure"/>).</t>

<t>If a pointer does not resolve, or resolves to a value of the wrong
type, the constraint is not satisfied.</t>

<texttable title="Initial constraint predicates" anchor="predicates">
      <ttcol align='left'>pred</ttcol>
      <ttcol align='left'>Kind</ttcol>
      <ttcol align='left'>Satisfied when</ttcol>
      <c>eq</c>
      <c>stateless</c>
      <c>resolved value is identical to <spanx style="verb">value</spanx></c>
      <c>in</c>
      <c>stateless</c>
      <c>resolved value is identical to an element of <spanx style="verb">value</spanx></c>
      <c>max</c>
      <c>stateless</c>
      <c>resolved decimal is less than or equal to <spanx style="verb">value</spanx></c>
      <c>min</c>
      <c>stateless</c>
      <c>resolved decimal is greater than or equal to <spanx style="verb">value</spanx></c>
      <c>window</c>
      <c>stateless</c>
      <c><spanx style="verb">value.nbf</spanx> &lt;= T &lt; <spanx style="verb">value.exp</spanx> (no <spanx style="verb">ptr</spanx>)</c>
      <c>sum_max</c>
      <c>stateful</c>
      <c>resolved value matches <spanx style="verb">nonneg</spanx>; produces an Obligation</c>
      <c>cosign_above</c>
      <c>stateful</c>
      <c>produces an Obligation if resolved decimal exceeds <spanx style="verb">value</spanx></c>
</texttable>

<t>For <spanx style="verb">sum_max</spanx>, <spanx style="verb">value</spanx> <bcp14>MUST</bcp14> match <spanx style="verb">nonneg</spanx>, and a negative resolved
value does not satisfy the constraint. All <spanx style="verb">sum_max</spanx> constraints with
the same <spanx style="verb">budget</spanx> in one Permission <bcp14>MUST</bcp14> have the same <spanx style="verb">ptr</spanx>, so that
an action contributes a single, well-defined amount to each budget; a
Permission that violates this makes its artifact <spanx style="verb">malformed</spanx>. Several
<spanx style="verb">sum_max</spanx> constraints may still share a budget and pointer with
different periods, for example a daily and a monthly limit on the same
amount. Refunds, reversals, and other
negative contributions are outside the scope of <spanx style="verb">sum_max</spanx> and need a
separately defined predicate.</t>

<t>A predicate not listed as supported in the Validation Profile makes the
Permission not match. A constraint whose <spanx style="verb">pred</spanx> is not listed as
supported is checked in step 2 (<xref target="procedure"/>) only for the presence of <spanx style="verb">pred</spanx> and
<spanx style="verb">value</spanx>; its other members and the type of its <spanx style="verb">value</spanx> are not
checked, and in <xref target="attenuation"/> no child constraint is at least as
strict as it.</t>

</section>
<section anchor="json-identity"><name>JSON Identity</name>

<t>Two JSON values are identical if they have the same type and: strings
are equal as sequences of Unicode code points; booleans are
identical only if both are true or both are false; null is identical
to null; arrays have the same length and identical elements in order;
objects have the same member names and identical member values. JSON
numbers <bcp14>SHOULD NOT</bcp14> be used in Permission members or constraint values;
when used, they are identical only if their textual representations
are identical.</t>

</section>
<section anchor="attenuation"><name>Attenuation</name>

<t>Attenuation is used for sub-delegation (<xref target="chain"/>) and for checking a
root mandate against the delegator's powers (<xref target="validation-authority"/>).
A child Permission C is attenuated with respect to a parent Permission
P if and only if:</t>

<t><list style="numbers" type="1">
  <t>C.type equals P.type.</t>
  <t>For each of <spanx style="verb">locations</spanx>, <spanx style="verb">actions</spanx>, <spanx style="verb">datatypes</spanx>, and <spanx style="verb">privileges</spanx>
present in P, C contains the member and C's array contains only
elements identical to elements of P's array.</t>
  <t>Every other member of P except <spanx style="verb">constraints</spanx> is present in C with
an identical value.</t>
  <t>Every top-level member of C other than <spanx style="verb">type</spanx> and <spanx style="verb">constraints</spanx> is
admitted by P, in the sense of rule 4 of <xref target="permissions"/>.</t>
  <t>Every constrained member of C is admitted by P. A constraint in C
can therefore only narrow the values of a member that P already
admits; it cannot admit a member that P rejects.</t>
  <t>For every constraint in P, C contains a constraint with the same
<spanx style="verb">ptr</spanx> that is at least as strict, per <xref target="attenuation-rules"/>.</t>
</list></t>

<t>Together these rules ensure that every request matching C also matches
P.</t>

<texttable title="Attenuation rules" anchor="attenuation-rules">
      <ttcol align='left'>Parent pred</ttcol>
      <ttcol align='left'>Child constraint is at least as strict when</ttcol>
      <c>eq</c>
      <c><spanx style="verb">eq</spanx> with identical <spanx style="verb">value</spanx></c>
      <c>in</c>
      <c><spanx style="verb">in</spanx> with <spanx style="verb">value</spanx> a subset, or <spanx style="verb">eq</spanx> with <spanx style="verb">value</spanx> an element</c>
      <c>max</c>
      <c><spanx style="verb">max</spanx> with <spanx style="verb">value</spanx> less than or equal</c>
      <c>min</c>
      <c><spanx style="verb">min</spanx> with <spanx style="verb">value</spanx> greater than or equal</c>
      <c>window</c>
      <c><spanx style="verb">window</spanx> with nbf not earlier and exp not later</c>
      <c>sum_max</c>
      <c><spanx style="verb">sum_max</spanx> with identical <spanx style="verb">budget</spanx>, <spanx style="verb">value</spanx> less than or equal, <spanx style="verb">period</spanx> greater than or equal</c>
      <c>cosign_above</c>
      <c><spanx style="verb">cosign_above</spanx> with <spanx style="verb">value</spanx> less than or equal</c>
</texttable>

<t>The <spanx style="verb">sum_max</spanx> rule is sound because contributions are non-negative and
the budget is shared (<xref target="obligations"/>): the sum over the parent's
period is at most the sum over the longer child period, which the
child's constraint keeps at or below a value no greater than the
parent's.</t>

<t>A set of child Permissions is attenuated with respect to a set of
parent Permissions if every child Permission is attenuated with respect
to at least one parent Permission.</t>

</section>
<section anchor="chain"><name>Sub-Delegation</name>

<t>An agent instance whose mandate has <spanx style="verb">max_depth</spanx> of at least 1 <bcp14>MAY</bcp14> issue
a sub-delegated Mandate Assertion. The sub-delegated assertion:</t>

<t><list style="symbols">
  <t>is signed with the private key whose thumbprint is the parent's
<spanx style="verb">cnf.jkt</spanx>, and carries the corresponding public key in the <spanx style="verb">jwk</spanx>
member of its protected JOSE header;</t>
  <t>has <spanx style="verb">iss</spanx> equal to the parent's <spanx style="verb">sub</spanx>;</t>
  <t>has <spanx style="verb">principal</spanx> and <spanx style="verb">tf</spanx> equal to the parent's;</t>
  <t>has <spanx style="verb">exp</spanx> not later than the parent's;</t>
  <t>has <spanx style="verb">max_depth</spanx> at most the parent's <spanx style="verb">max_depth</spanx> minus 1;</t>
  <t>has <spanx style="verb">aud</spanx>, if the parent has <spanx style="verb">aud</spanx>, containing only elements of the
parent's <spanx style="verb">aud</spanx>;</t>
  <t>has <spanx style="verb">perms</spanx> attenuated with respect to the parent's <spanx style="verb">perms</spanx>.</t>
</list></t>

<t>The key in the <spanx style="verb">jwk</spanx> header is not a trust anchor. It is accepted only
because the already verified parent mandate binds its thumbprint.</t>

</section>
</section>
<section anchor="authority"><name>Authority Assertion</name>

<t>An Authority Assertion states that, according to the records of the
Authority Source at the time of issuance, the delegator may delegate
to agents, on behalf of the principal, the permissions described in
<spanx style="verb">powers</spanx>. It is a statement about delegable powers, not merely about
what the delegator may do in person: a delegator entitled to perform
an action may still be barred from delegating it, and such an action
does not appear in <spanx style="verb">powers</spanx>. It does not state that the delegator
issued or intended any particular mandate.</t>

<t>An Authority Assertion is a JWT with <spanx style="verb">typ</spanx> value <spanx style="verb">authority+jwt</spanx>, or an
SD-JWT <xref target="RFC9901"/> with <spanx style="verb">typ</spanx> value <spanx style="verb">authority+sd-jwt</spanx>. It contains:</t>

<t><list style="symbols">
  <t><spanx style="verb">iss</spanx>, <spanx style="verb">jti</spanx>, <spanx style="verb">iat</spanx>, <spanx style="verb">exp</spanx> (<bcp14>REQUIRED</bcp14>);</t>
  <t><spanx style="verb">principal</spanx> and <spanx style="verb">delegator</spanx> (<bcp14>REQUIRED</bcp14> Party Identifiers);</t>
  <t><spanx style="verb">powers</spanx> (<bcp14>REQUIRED</bcp14>): a non-empty array of Permission objects
describing the permissions the delegator may delegate to agents.
They <bcp14>MUST NOT</bcp14> contain stateful constraints; cumulative limits on the
delegator's own authority are outside the scope of this version;</t>
  <t><spanx style="verb">max_depth</spanx> (<bcp14>OPTIONAL</bcp14>): the greatest <spanx style="verb">max_depth</spanx> a root mandate based
on this assertion may carry. Default 0, which permits no
sub-delegation;</t>
  <t><spanx style="verb">tf</spanx> (<bcp14>REQUIRED</bcp14>) and <spanx style="verb">loa</spanx> (<bcp14>OPTIONAL</bcp14>);</t>
  <t><spanx style="verb">status</spanx> (<bcp14>OPTIONAL</bcp14>).</t>
</list></t>

<t>A <spanx style="verb">sum_max</spanx> constraint in a root mandate is therefore a limit on that
mandate only. Two root mandates based on the same Authority Assertion
have separate budgets, because accounting is keyed by the root
mandate (<xref target="obligations"/>).</t>

<t>When the assertion is an SD-JWT, the claims listed above, including
every member nested at any depth within <spanx style="verb">powers</spanx>, <bcp14>MUST</bcp14> be in the
issuer-signed payload and <bcp14>MUST NOT</bcp14> be selectively disclosable. An
Authority Assertion whose <spanx style="verb">powers</spanx> contain an <spanx style="verb">_sd</spanx> member or a <spanx style="verb">...</spanx>
array element is <spanx style="verb">malformed</spanx>. Only other claims about the delegator,
such as a name or role title, may be selectively disclosable, and they
never affect the Validation Result. Hiding a restriction on the
delegator's powers would otherwise make those powers appear broader.
A Validator evaluates these claims on the issuer-signed JWT alone. A
claim present only in a disclosure is treated as absent; disclosures
never affect the Validation Result.</t>

<t>In the European Union, an Authority Source can derive Authority
Assertions from electronic attestations of attributes concerning powers
and mandates to represent natural or legal persons <xref target="EIDAS2"/>. This
document does not require any particular source.</t>

</section>
<section anchor="evidence"><name>Agent Instance Evidence</name>

<section anchor="wit"><name>Workload Identity Token</name>

<t>The agent instance presents a WIT <xref target="I-D.ietf-wimse-workload-creds"/>
issued by its operator. Under this specification the WIT <bcp14>MUST</bcp14> contain
<spanx style="verb">iss</spanx> and <spanx style="verb">iat</spanx>; <xref target="I-D.ietf-wimse-workload-creds"/> makes <spanx style="verb">iss</spanx>
optional and does not list <spanx style="verb">iat</spanx>, which is needed for the
<spanx style="verb">max_validity</spanx> check of step 3 (<xref target="procedure"/>).
The WIT <spanx style="verb">sub</spanx> <bcp14>MUST</bcp14> equal the leaf mandate's <spanx style="verb">sub</spanx>, and the JWK SHA-256
thumbprint of the WIT's <spanx style="verb">cnf.jwk</spanx> <bcp14>MUST</bcp14> equal the leaf mandate's
<spanx style="verb">cnf.jkt</spanx>. The WIT is referenced by digest; it carries no <spanx style="verb">tf</spanx>, and its
issuer is checked against <spanx style="verb">operator</spanx> anchors accepted for the
framework context (<xref target="validation"/>).</t>

<t>The WIT asserts that the operator runs an agent instance with this
identifier and key. It asserts nothing about the model, configuration,
or behavior of the instance.</t>

</section>
<section anchor="ar"><name>Attestation Result</name>

<t>An agent instance <bcp14>MAY</bcp14> present an attestation result from a RATS
Verifier <xref target="RFC9334"/>, encoded as a JWT-based EAT <xref target="RFC9711"/> with <spanx style="verb">typ</spanx>
value <spanx style="verb">eat+jwt</spanx> and the claims <spanx style="verb">iss</spanx>, <spanx style="verb">iat</spanx>, <spanx style="verb">exp</spanx>, <spanx style="verb">eat_profile</spanx>, and
<spanx style="verb">cnf</spanx> with a <spanx style="verb">jkt</spanx> member. The <spanx style="verb">eat_profile</spanx> value <bcp14>MUST</bcp14> be one accepted
by the Validation Profile, which also fixes the meaning of the result.
The <spanx style="verb">cnf.jkt</spanx> <bcp14>MUST</bcp14> equal the leaf mandate's <spanx style="verb">cnf.jkt</spanx>.</t>

<t>An attestation result describes the Verifier's appraisal of evidence at
the time the evidence was produced, not the state of the instance
afterwards <xref target="RFC9334"/>. When the instance obtains model output from a
remote service, the result covers the remote model only if the
appraised evidence covered it.</t>

</section>
<section anchor="exposure"><name>Exposure Statement</name>

<t>An agent instance <bcp14>MAY</bcp14> present an Exposure Statement: a JWT with <spanx style="verb">typ</spanx>
value <spanx style="verb">agent-exposure+jwt</spanx>, signed by a control component that observes
the instance's session (the observer), not by the agent instance. It
contains:</t>

<t><list style="symbols">
  <t><spanx style="verb">iss</spanx>, <spanx style="verb">jti</spanx>, <spanx style="verb">iat</spanx>, <spanx style="verb">exp</spanx>, and <spanx style="verb">sub</spanx> (the agent instance);</t>
  <t><spanx style="verb">aud</spanx>: the identifier of the single RP to which the statement may be
presented;</t>
  <t><spanx style="verb">cnf</spanx> with a <spanx style="verb">jkt</spanx> member equal to the leaf mandate's <spanx style="verb">cnf.jkt</spanx>;</t>
  <t><spanx style="verb">sid</spanx>: an identifier, assigned by the observer, of the session it
observed;</t>
  <t><spanx style="verb">nonce</spanx>: the value of the <spanx style="verb">nonce</spanx> parameter of the HTTP Message
Signature of the request it accompanies (<xref target="pop"/>);</t>
  <t><spanx style="verb">ad_hash</spanx>: the base64url-encoded SHA-256 digest of the bytes of the
<spanx style="verb">authorization_details</spanx> parameter value of that request, as sent;</t>
  <t><spanx style="verb">exposure</spanx>: an array of exposure event types from <xref target="iana-exposure"/>
that the observer recorded in session <spanx style="verb">sid</spanx> up to <spanx style="verb">iat</spanx>, sorted by
code point, without duplicates.</t>
</list></t>

<t>The agent instance obtains the statement from the observer for one
specific request to one RP, supplying the RP identifier and the
signature nonce it will use. The statement is single-use:</t>

<t><list style="symbols">
  <t><spanx style="verb">aud</spanx> restricts it to one RP, so the same statement cannot be
presented at a second RP;</t>
  <t>the RP's authorization server consumes it, as described below, only
after the Validator has accepted it for this presentation.</t>
</list></t>

<t>The authorization server proceeds in this order:</t>

<t><list style="numbers" type="1">
  <t>It verifies the HTTP Message Signature and runs the Validator.</t>
  <t>If the outcome is <spanx style="verb">invalid</spanx>, it rejects the request. No Exposure
Statement is consumed.</t>
  <t>Otherwise, it takes the deduplicated set of pairs (<spanx style="verb">iss</spanx>, <spanx style="verb">jti</spanx>) of
the Exposure Statements listed in the result's <spanx style="verb">evidence</spanx>, and only
those. In one atomic operation, if any pair in the set is already
recorded, it rejects the request and records none of them;
otherwise it records all of them, each with the statement's
verified <spanx style="verb">exp</spanx>.</t>
  <t>It then applies its policy and continues with authorization.</t>
</list></t>

<t>A presentation that is invalid, and a statement the Validator
rejected, therefore never change the record. A forged statement that
copies a legitimate <spanx style="verb">iss</spanx> and <spanx style="verb">jti</spanx>, or an authentic statement
presented with another key or nonce, cannot consume the legitimate
one. Each record <bcp14>MUST</bcp14> be kept until the recorded <spanx style="verb">exp</spanx> plus
<spanx style="verb">max_clock_skew</spanx>, independently of how long signature nonces are
kept. A statement is consumed once recorded, even if the RP's policy
later refuses the action. Consumption is tracked outside the
Validator, which remains a deterministic function of its inputs. The
statement describes the session the observer attributes to that
request. <spanx style="verb">exp</spanx> minus <spanx style="verb">iat</spanx> <bcp14>MUST NOT</bcp14> exceed the Validation Profile's
maximum for Exposure Statements. An empty <spanx style="verb">exposure</spanx> array means that
no registered event was observed, not that the session was free of
manipulation.</t>

<t>The observer <bcp14>MAY</bcp14> be run by the operator, but its signing key <bcp14>MUST NOT</bcp14>
be accessible to the agent instance. Each <spanx style="verb">exposure_observer</spanx> trust
anchor lists the WIT issuers whose sessions it may observe.</t>

</section>
</section>
<section anchor="presentation"><name>Mandate Presentation</name>

<t>This document profiles OAuth 2.0 Token Exchange <xref target="RFC8693"/>. The agent
instance is the client of the RP's authorization server.</t>

<section anchor="token-exchange-request"><name>Token Exchange Request</name>

<t>The request contains:</t>

<t><list style="symbols">
  <t><spanx style="verb">subject_token</spanx>: the leaf Mandate Assertion;</t>
  <t><spanx style="verb">subject_token_type</spanx>: <spanx style="verb">urn:ietf:params:oauth:token-type:agent-mandate</spanx>;</t>
  <t><spanx style="verb">actor_token</spanx>: the agent instance's WIT;</t>
  <t><spanx style="verb">actor_token_type</spanx>: <spanx style="verb">urn:ietf:params:oauth:token-type:jwt</spanx>;</t>
  <t><spanx style="verb">authorization_details</spanx>: an array containing exactly one
authorization details object <xref target="RFC9396"/>, the requested action. This
version authorizes one action per request and per token;</t>
  <t><spanx style="verb">mandate_evidence</spanx>: a JSON array of strings, each the compact
serialization of a parent Mandate Assertion, an Authority Assertion,
an attestation result, or an Exposure Statement. <bcp14>REQUIRED</bcp14> when the
leaf is sub-delegated or references an Authority Assertion.</t>
</list></t>

</section>
<section anchor="pop"><name>Proof of Possession</name>

<t>The client <bcp14>MUST</bcp14> sign the request with HTTP Message Signatures
<xref target="RFC9421"/> as profiled for workloads by
<xref target="I-D.ietf-wimse-http-signature"/>, using the key confirmed by the WIT.
The signature <bcp14>MUST</bcp14> cover at least <spanx style="verb">@method</spanx>, <spanx style="verb">@target-uri</spanx>, the
<spanx style="verb">Content-Digest</spanx> header field <xref target="RFC9530"/>, and the
<spanx style="verb">Workload-Identity-Token</spanx> header field, and <bcp14>MUST</bcp14> carry the <spanx style="verb">created</spanx>,
<spanx style="verb">expires</spanx>, and <spanx style="verb">nonce</spanx> parameters. The <spanx style="verb">Workload-Identity-Token</spanx> header
field <bcp14>MUST</bcp14> carry the same WIT as <spanx style="verb">actor_token</spanx>. <spanx style="verb">expires</spanx> minus
<spanx style="verb">created</spanx> <bcp14>MUST NOT</bcp14> exceed the Validation Profile's <spanx style="verb">max_pop_window</spanx>.</t>

<t>Because the request body carries the mandate, the evidence, and the
requested authorization details, and <spanx style="verb">Content-Digest</spanx> covers the body,
the signature binds the key, the RP endpoint, the mandate, and the
requested action, and its parameters give freshness. The authorization
server <bcp14>MUST</bcp14> reject a <spanx style="verb">nonce</spanx> it has already accepted within the
signature's validity period. The Workload Proof Token
<xref target="I-D.ietf-wimse-wpt"/> is not used because it does not cover the
request body.</t>

<t>The PoP outcome given to the Validator (<xref target="inputs"/>) is <spanx style="verb">ok</spanx> if and only
if all of these checks succeed; the verified <spanx style="verb">nonce</spanx> value is also
given to the Validator.</t>

</section>
</section>
<section anchor="profile"><name>Validation Profile</name>

<t>The Validation Profile is a JSON document fixing every rule that
influences the Validation Result and is not fixed by this
specification. It is identified by a URI and by the base64url-encoded
SHA-256 digest of its bytes. It contains at least:</t>

<t><list style="symbols">
  <t><spanx style="verb">iss</spanx>: the identifier of the entity that issued the profile, usually
the RP;</t>
  <t><spanx style="verb">max_clock_skew</spanx>, <spanx style="verb">max_pop_window</spanx>, <spanx style="verb">max_token_lifetime</spanx>, and
<spanx style="verb">max_status_age</spanx>, in seconds;</t>
  <t><spanx style="verb">max_chain_length</spanx>, the greatest number of Mandate Assertions in a
chain;</t>
  <t><spanx style="verb">predicates</spanx>: the supported constraint predicates;</t>
  <t><spanx style="verb">status_values</spanx> (optional): a mapping from Token Status List values
other than 0x00, 0x01, and 0x02 to <spanx style="verb">valid</spanx>, <spanx style="verb">revoked</spanx>, or
<spanx style="verb">suspended</spanx>;</t>
  <t><spanx style="verb">types</spanx>: the supported authorization details types, each with its
Type Profile included in full (<xref target="type-profiles"/>);</t>
  <t><spanx style="verb">eat_profiles</spanx>: the accepted <spanx style="verb">eat_profile</spanx> values;</t>
  <t><spanx style="verb">frameworks</spanx>: one entry per accepted Trust Framework URI, with:
  <list style="symbols">
      <t><spanx style="verb">algs</spanx>: permitted signature algorithms;</t>
      <t><spanx style="verb">party_schemes</spanx>: accepted Party Identifier schemes;</t>
      <t><spanx style="verb">self_schemes</spanx>: the Party Identifier schemes under which a root
whose <spanx style="verb">delegator</spanx> equals its <spanx style="verb">principal</spanx> is an accepted basis of
authority (<xref target="validation-authority"/>). An empty array admits no
such root;</t>
      <t><spanx style="verb">max_validity</spanx>: an object whose members are <spanx style="verb">typ</spanx> values and whose
values are the maximum of <spanx style="verb">exp</spanx> minus <spanx style="verb">iat</spanx>, in seconds, for
artifacts with that <spanx style="verb">typ</spanx>. The members are <spanx style="verb">mandate+jwt</spanx>,
<spanx style="verb">authority+jwt</spanx>, <spanx style="verb">authority+sd-jwt</spanx>, <spanx style="verb">wit+jwt</spanx>, <spanx style="verb">eat+jwt</spanx>, and
<spanx style="verb">agent-exposure+jwt</spanx>;</t>
      <t><spanx style="verb">max_period</spanx>: the maximum <spanx style="verb">period</spanx> of a <spanx style="verb">sum_max</spanx> constraint, in
seconds;</t>
      <t><spanx style="verb">status_required</spanx>: the <spanx style="verb">typ</spanx> values of the artifacts that <bcp14>MUST</bcp14>
carry <spanx style="verb">status</spanx>;</t>
      <t><spanx style="verb">authority_frameworks</spanx>: the Trust Framework URIs whose Authority
Assertions are accepted for mandates under this framework. The
framework's own URI is accepted only if listed.</t>
    </list></t>
</list></t>

<t>The Validation Profile reflects the Trust Framework rules that a
machine can check. It does not contain the RP's authorization policy.</t>

<t>A Trust Framework <bcp14>MAY</bcp14> require the profile to be signed by its issuer
or ratified by the framework's operator, with a JWS <xref target="RFC7515"/> with
detached payload over the same bytes. The digest is computed over the
profile's bytes alone, so a signature does not change the Validation
Result. When the profile is signed or ratified, the signature lets an
evaluator in another domain establish who issued or ratified it.
Without a signature, <spanx style="verb">iss</spanx> is the profile's own statement of its
issuer, and the digest fixes only the content.</t>

<section anchor="type-profiles"><name>Type Profiles</name>

<t>A Type Profile is part of the Validation Profile document, so the
profile's digest fixes it; it <bcp14>MUST NOT</bcp14> refer to external content that
influences validation. It is the value of the type's member in
<spanx style="verb">types</spanx>, an object with three members:</t>

<t><list style="symbols">
  <t><spanx style="verb">schema</spanx>: a JSON Schema for requested authorization details of the
type, included in full;</t>
  <t><spanx style="verb">admitted</spanx>: the admitted members, top-level members a request may
carry without the Permission mentioning them, each of which is
unrestricted unless a Permission contains or constrains it;</t>
  <t><spanx style="verb">meaning</spanx>: an object giving, for each admitted member, its meaning,
so that "unrestricted" has a defined effect.</t>
</list></t>

<t>The schema applies to the requested authorization detail; a request
that does not conform gives <spanx style="verb">request_malformed</spanx>. Permissions are not
validated against it, because they may omit members a request needs. A
Permission member the schema forbids simply cannot be matched, since
matching requires the conforming request to carry it.</t>

<t>Schemas <bcp14>MUST</bcp14> use JSON Schema draft 2020-12 <xref target="JSON-SCHEMA-CORE"/>
<xref target="JSON-SCHEMA-VALIDATION"/> and <bcp14>MUST</bcp14> declare it with the <spanx style="verb">$schema</spanx>
keyword value <spanx style="verb">https://json-schema.org/draft/2020-12/schema</spanx>. A schema
<bcp14>MAY</bcp14> use only the Core, Applicator, and Validation vocabularies and the
Format-Annotation vocabulary; <spanx style="verb">format</spanx> is an annotation and never
causes a request to fail validation. <spanx style="verb">$ref</spanx> <bcp14>MUST</bcp14> resolve within the
same schema. A Validation Profile containing a schema that violates
these rules, or a keyword outside those vocabularies, is unusable: a
Validator <bcp14>MUST</bcp14> refuse to load it and <bcp14>MUST NOT</bcp14> validate under it.</t>

<t>The dialect and the vocabularies are fixed because two independent
Validators have to reach the same Validation Result, and they are
listed so that the dependency on JSON Schema stays bounded. The two
JSON Schema documents are therefore normative references although they
are not RFCs.</t>

</section>
</section>
<section anchor="validation"><name>Mandate Validation Procedure</name>

<section anchor="inputs"><name>Inputs</name>

<t>The procedure takes exactly these inputs:</t>

<t><list style="numbers" type="1">
  <t>the Mandate Presentation;</t>
  <t>the bytes of the <spanx style="verb">authorization_details</spanx> parameter and its parsed
value;</t>
  <t>the validation time T;</t>
  <t>the Validation Profile and its digest;</t>
  <t>the Trust Anchor Set and its digest;</t>
  <t>a set of Status List Tokens <xref target="I-D.ietf-oauth-status-list"/>;</t>
  <t>the RP identifier;</t>
  <t>the PoP outcome and the verified signature nonce (<xref target="pop"/>).</t>
</list></t>

<t>The Trust Anchor Set is a JSON document, identified like the
Validation Profile by a URI and by the base64url-encoded SHA-256
digest of its bytes, so that the anchors in force at T are fixed. It
contains <spanx style="verb">anchors</spanx>, an array of objects, each with:</t>

<t><list style="symbols">
  <t><spanx style="verb">role</spanx>: one of <spanx style="verb">mandate_issuer</spanx>, <spanx style="verb">authority_source</spanx>, <spanx style="verb">operator</spanx>,
<spanx style="verb">verifier</spanx>, <spanx style="verb">exposure_observer</spanx>, and <spanx style="verb">status_issuer</spanx>;</t>
  <t><spanx style="verb">iss</spanx>: a non-empty array of the issuer identifiers the entity uses;</t>
  <t><spanx style="verb">keys</spanx>: a non-empty array of public keys as JWKs;</t>
  <t><spanx style="verb">frameworks</spanx>: the Trust Framework URIs for which the anchor is
accepted;</t>
  <t>for an <spanx style="verb">exposure_observer</spanx> anchor, <spanx style="verb">observes</spanx>: the WIT issuers whose
sessions it may observe; for a <spanx style="verb">status_issuer</spanx> anchor,
<spanx style="verb">publishes_for</spanx>: the artifact issuers for which it may publish
status.</t>
</list></t>

<t>An artifact verifies under an anchor of a role for a framework if the
anchor has that role, lists the artifact's <spanx style="verb">iss</spanx>, is accepted for that
framework, and has a key with which the signature verifies. A <spanx style="verb">kid</spanx>
header is at most a hint for finding the key. If no anchor of the
role satisfies all four conditions, the code is <spanx style="verb">signature_invalid</spanx>,
unless a key that verifies the signature is found only under an anchor
of another role, in which case it is <spanx style="verb">role_mismatch</spanx>.</t>

<t>Two conforming Validators given identical inputs <bcp14>MUST</bcp14> produce identical
Validation Results. A Validator <bcp14>MUST NOT</bcp14> consult any other input and
<bcp14>MUST NOT</bcp14> apply local authorization policy. Status List Tokens are
fetched before validation.</t>

</section>
<section anchor="required-and-optional-evidence"><name>Required and Optional Evidence</name>

<t>Required evidence is the leaf Mandate Assertion, its ancestors, the
Authority Assertions referenced by the root and presented, and the
WIT. The references in <spanx style="verb">authority</spanx> are alternatives: only an assertion
that supports the root is needed, and <xref target="validation-authority"/> states
when a problem with another referenced assertion is reported as a
diagnostic instead of an error. An artifact in <spanx style="verb">mandate_evidence</spanx> that
is neither a mandate in the chain, nor referenced by the root's
<spanx style="verb">authority</spanx>, nor an attestation result or an Exposure Statement, is
ignored and does not appear in the result. Optional evidence is
attestation
results and Exposure Statements. A problem with required evidence is
an error. A problem with optional evidence, and the reason a
Permission did not match a request, is a diagnostic. Only errors
affect the outcome.</t>

</section>
<section anchor="procedure"><name>Procedure</name>

<t>The Validator performs every step that can be performed and records
every applicable code (<xref target="iana-reasons"/>); it does not stop at the first
failure.</t>

<t><list style="numbers" type="1">
  <t><strong>Chain and context.</strong> Starting from the leaf, follow <spanx style="verb">parent</spanx>
references through the artifacts in <spanx style="verb">mandate_evidence</spanx>. A reference
without a matching artifact gives <spanx style="verb">chain_broken</spanx> on the mandate
carrying the reference. The Validator follows at most
<spanx style="verb">max_chain_length</spanx> mandates, the leaf included. If the last mandate
followed carries <spanx style="verb">parent</spanx>, the chain is longer: the Validator
records <spanx style="verb">chain_too_long</spanx>, does not resolve that reference, records
no <spanx style="verb">chain_broken</spanx> for it, and no root is reached. If a root is
reached, the framework context is the root's <spanx style="verb">tf</spanx>; if that URI has
no entry in the Validation Profile's <spanx style="verb">frameworks</spanx>,
<spanx style="verb">framework_not_accepted</spanx> on the root. If the root does not parse or
has no <spanx style="verb">tf</spanx>, the framework context is undetermined and <spanx style="verb">tf</spanx> in the
result is null; <spanx style="verb">framework_not_accepted</spanx> is not recorded. If no
root is reached, or the framework context is undetermined or not
accepted, steps 3
to 5 and 7 are skipped, the authority check is not evaluated, and
every optional evidence artifact is listed under <spanx style="verb">rejected</spanx> with
<spanx style="verb">evidence_rejected</spanx>. If no root is reached, <spanx style="verb">chain</spanx> in the result
lists the mandates that were recovered, starting with the highest
recovered ancestor.</t>
  <t><strong>Structure.</strong> Each required artifact parses, has the expected
<spanx style="verb">typ</spanx>, and contains its <bcp14>REQUIRED</bcp14> claims. Each claim that is present
has the type and structure given for it in this document or in the
specification that defines the artifact. It contains no claim this
document forbids for it: <spanx style="verb">authority</spanx> in a sub-delegated mandate or
in a root whose <spanx style="verb">delegator</spanx> equals its <spanx style="verb">principal</spanx>, and <spanx style="verb">parent</spanx> in
a root. Every Constraint has the members and <spanx style="verb">value</spanx> types of
<xref target="constraints"/>, <spanx style="verb">sum_max</spanx> constraints that share a <spanx style="verb">budget</spanx> in one
Permission share their <spanx style="verb">ptr</spanx>, and an Authority Assertion's <spanx style="verb">powers</spanx>
contain no stateful constraint and, in an SD-JWT, no <spanx style="verb">_sd</spanx> member or
<spanx style="verb">...</spanx> array element. Otherwise <spanx style="verb">malformed</spanx>. Relations between
artifacts, and limits set by the Validation Profile, are checked in
later steps.</t>
  <t><strong>Profile conformance.</strong> Under the framework context: algorithms are
permitted (<spanx style="verb">alg_not_allowed</spanx>); Party Identifier schemes are accepted
(<spanx style="verb">scheme_not_accepted</spanx>); <spanx style="verb">exp</spanx> minus <spanx style="verb">iat</spanx> does not exceed the
<spanx style="verb">max_validity</spanx> entry for the artifact's <spanx style="verb">typ</spanx>, and the <spanx style="verb">period</spanx> of
every <spanx style="verb">sum_max</spanx> constraint does not exceed <spanx style="verb">max_period</spanx>
(<spanx style="verb">lifetime_exceeded</spanx>); and every artifact whose <spanx style="verb">typ</spanx> is in
<spanx style="verb">status_required</spanx> carries <spanx style="verb">status</spanx> (<spanx style="verb">status_missing</spanx>).</t>
  <t><strong>Signatures and keys.</strong> The root verifies under a <spanx style="verb">mandate_issuer</spanx>
anchor for the framework context (<xref target="inputs"/>). Each sub-delegated
mandate carries a <spanx style="verb">jwk</spanx> header (<spanx style="verb">key_missing</spanx>), whose thumbprint
equals the parent's <spanx style="verb">cnf.jkt</spanx> (<spanx style="verb">key_mismatch</spanx>), and verifies with
it (<spanx style="verb">signature_invalid</spanx>). Each Authority Assertion verifies under
an <spanx style="verb">authority_source</spanx> anchor for the assertion's own <spanx style="verb">tf</spanx>. The WIT
verifies under an <spanx style="verb">operator</spanx> anchor for the framework context. An
attestation result verifies under a <spanx style="verb">verifier</spanx> anchor for the
framework context. A failed verification under an anchor gives the
codes stated in <xref target="inputs"/>. For a sub-delegated mandate the three
checks are made in the order given, and the first that fails
records its code and ends this step for that mandate. The thumbprint
comparison needs the parent to have passed step 2; otherwise it is
skipped and the signature is still verified with the <spanx style="verb">jwk</spanx>.</t>
  <t><strong>Framework compatibility.</strong> Every mandate's <spanx style="verb">tf</spanx> equals the
framework context, and every Authority Assertion's <spanx style="verb">tf</spanx> is in the
context framework's <spanx style="verb">authority_frameworks</spanx>. Otherwise
<spanx style="verb">framework_mismatch</spanx>.</t>
  <t><strong>Time.</strong> For each required artifact, <spanx style="verb">nbf</spanx> (when present) is at
most T + <spanx style="verb">max_clock_skew</spanx>, and T is less than <spanx style="verb">exp</spanx> +
<spanx style="verb">max_clock_skew</spanx>. Otherwise <spanx style="verb">not_yet_valid</spanx> or <spanx style="verb">expired</spanx>.</t>
  <t><strong>Status.</strong> The applicable framework of an artifact is its own <spanx style="verb">tf</spanx>
for an Authority Assertion and the framework context for every other
artifact. For each required artifact with <spanx style="verb">status</spanx>, the Status List
Tokens in the inputs are filtered in three stages, in this order,
and if no token remains after a stage, the code is that stage's:  <list style="symbols">
      <t>subject: the token has <spanx style="verb">typ</spanx> <spanx style="verb">statuslist+jwt</spanx>, its <spanx style="verb">sub</spanx> is the
status list URI referenced by the artifact's <spanx style="verb">status</spanx>, and its
<spanx style="verb">status_list</spanx> decodes to a list with an entry at the referenced
<spanx style="verb">idx</spanx> (<spanx style="verb">status_unavailable</spanx>);</t>
      <t>anchor: some <spanx style="verb">status_issuer</spanx> anchor for the applicable framework,
whose <spanx style="verb">publishes_for</spanx> lists the artifact's issuer, has a key with
which the token's signature verifies and, if the token carries
<spanx style="verb">iss</spanx>, lists it (<spanx style="verb">status_untrusted</spanx>);</t>
      <t>time: the token's <spanx style="verb">iat</spanx> is at most T + <spanx style="verb">max_clock_skew</spanx>, its
<spanx style="verb">exp</spanx>, when present, is later than T, and T minus its <spanx style="verb">iat</spanx> does
not exceed <spanx style="verb">max_status_age</spanx> (<spanx style="verb">status_stale</spanx>).</t>
    </list>
A token that fails two stages is counted at the first, so the code
does not depend on the order in which a Validator checks. A token
issued in the future gives <spanx style="verb">status_stale</spanx>, which means that no
trusted token is valid in time at T, not only that the tokens are
old.  <vspace blankLines='1'/>
The tokens that pass all three stages are eligible. Let the
candidates be the eligible tokens with the greatest <spanx style="verb">iat</spanx>. If they
give different status values at the referenced <spanx style="verb">idx</spanx>, the code is
<spanx style="verb">status_conflict</spanx>. Otherwise the Validator selects one candidate:
the one with the latest <spanx style="verb">exp</spanx>, a token without <spanx style="verb">exp</spanx> counting as
latest, and among those the one whose digest is first in code point
order. The selection does not depend on the order of the inputs and
is reported in <spanx style="verb">status_evidence</spanx>.  <vspace blankLines='1'/>
The selected status value gives
nothing if it is VALID (0x00), <spanx style="verb">revoked</spanx> if INVALID (0x01), and
<spanx style="verb">suspended</spanx> if SUSPENDED (0x02). Any other value, including
application-specific values, gives <spanx style="verb">status_unrecognized</spanx>, unless
the Validation Profile's <spanx style="verb">status_values</spanx> maps it to one of these
three. A later token showing reactivation prevails over an earlier
suspension.</t>
  <t><strong>Links.</strong> Each sub-delegated mandate is checked against its parent
(<xref target="chain"/>): its <spanx style="verb">iss</spanx> equals the parent's <spanx style="verb">sub</spanx>, its <spanx style="verb">principal</spanx>
equals the parent's, its <spanx style="verb">exp</spanx> is not later than the parent's, and,
if the parent has <spanx style="verb">aud</spanx>, it has <spanx style="verb">aud</spanx> containing only elements of
the parent's (<spanx style="verb">chain_inconsistent</spanx>); its <spanx style="verb">max_depth</spanx> is at most the
parent's minus 1 (<spanx style="verb">depth_exceeded</spanx>); its <spanx style="verb">perms</spanx> are attenuated with
respect to the parent's (<spanx style="verb">not_attenuated</spanx>). Equality of <spanx style="verb">tf</spanx> is
checked in step 5. Every code of this step carries the sub-delegated
mandate.</t>
  <t><strong>Authority.</strong> See <xref target="validation-authority"/>.</t>
  <t><strong>Binding.</strong> If the PoP outcome is not <spanx style="verb">ok</spanx>, <spanx style="verb">pop_failed</spanx>. If the
leaf and the WIT each passed step 2 and the WIT does not match the
leaf (<xref target="wit"/>), <spanx style="verb">binding_mismatch</spanx>.</t>
  <t><strong>Audience.</strong> For each mandate in the chain with <spanx style="verb">aud</spanx>, the RP
identifier is an element of <spanx style="verb">aud</spanx>. Otherwise <spanx style="verb">audience_mismatch</spanx>.</t>
  <t><strong>Action match.</strong> The <spanx style="verb">authorization_details</spanx> array contains
exactly one object and, if its <spanx style="verb">type</spanx> is listed in <spanx style="verb">types</spanx>, the
object conforms to that Type Profile's schema. Otherwise
<spanx style="verb">request_malformed</spanx>, and the rest of this step is not performed.
An object of an unlisted type is not checked against a schema; it
matches no Permission. The alternatives are all Permissions of the
leaf that match the object at time T (<xref target="permissions"/>). If there
are none, <spanx style="verb">action_not_permitted</spanx>. For each Permission that does not
match, the diagnostic <spanx style="verb">perm_not_matching</spanx> is recorded with the
Permission's index.</t>
  <t><strong>Optional evidence.</strong> Each attestation result and Exposure
Statement is checked as required evidence would be in steps 2 to 4,
6, and 7, and against <xref target="ar"/> or <xref target="exposure"/>. An Exposure Statement
also needs <spanx style="verb">aud</spanx> equal to the RP identifier, <spanx style="verb">nonce</spanx> equal to the
verified signature nonce, <spanx style="verb">ad_hash</spanx> equal to the digest of the
<spanx style="verb">authorization_details</spanx> bytes, and an <spanx style="verb">exposure_observer</spanx> anchor
whose <spanx style="verb">observes</spanx> lists the WIT's issuer. Failures are diagnostics
(<spanx style="verb">evidence_rejected</spanx>), and the artifact is listed under <spanx style="verb">rejected</spanx>
rather than <spanx style="verb">evidence</spanx>. If the leaf or the WIT failed step 2, or
the PoP outcome is not <spanx style="verb">ok</spanx>, every optional evidence artifact is
listed under <spanx style="verb">rejected</spanx> with <spanx style="verb">evidence_rejected</spanx>.</t>
</list></t>

<t>A step whose premise is absent is skipped and records nothing. An
artifact that failed step 2 is not examined by steps 3 to 8 and 10 to
13. If the root failed step 2, the authority check is not evaluated;
for an Authority Assertion that failed step 2, the authority check
reads only its parties (<xref target="validation-authority"/>). Step 8 needs the
mandate and its parent, the match of step 10 the leaf and the WIT, and
steps 11 and 12 the leaf, each having passed step 2. The PoP part of
step 10 is always performed, so a presentation without a WIT records
<spanx style="verb">pop_failed</spanx>. An artifact passes a step if
the step recorded no code for it; an artifact without <spanx style="verb">status</spanx>
therefore passes step 7.</t>

<t>Each error has an effect, <spanx style="verb">invalid</spanx> or <spanx style="verb">indeterminate</spanx>, given in the
registry (<xref target="iana-reasons"/>). The five status codes of step 7,
<spanx style="verb">status_unavailable</spanx>, <spanx style="verb">status_untrusted</spanx>, <spanx style="verb">status_stale</spanx>,
<spanx style="verb">status_conflict</spanx>, and <spanx style="verb">status_unrecognized</spanx>, have the effect
<spanx style="verb">indeterminate</spanx>: they mean that status could not be resolved, not that
it was found negative. Every other error defined in this document has
the effect <spanx style="verb">invalid</spanx>. The outcome is <spanx style="verb">invalid</spanx> if an error with the
effect <spanx style="verb">invalid</spanx> was recorded; otherwise <spanx style="verb">indeterminate</spanx> if an error
was recorded; otherwise <spanx style="verb">valid</spanx>.</t>

</section>
<section anchor="validation-authority"><name>Authority Check</name>

<t>If the root's <spanx style="verb">delegator</spanx> equals its <spanx style="verb">principal</spanx>, the authority basis
is <spanx style="verb">self</spanx> and no Authority Assertion is required. The basis is accepted
only if the delegator's Party Identifier scheme is listed in the
context framework's <spanx style="verb">self_schemes</spanx>; otherwise the Validator records
<spanx style="verb">self_not_permitted</spanx> on the root. In both cases <spanx style="verb">authority</spanx> is <spanx style="verb">self</spanx>,
so that the result shows which basis was tried.</t>

<t>Otherwise, an assertion has matching parties if its <spanx style="verb">principal</spanx> and
<spanx style="verb">delegator</spanx>, as presented, equal those of the root. The comparison
does not depend on the outcome of steps 2 to 8; an assertion in which
either claim is absent or unreadable has no matching parties. A
referenced Authority Assertion supports the root if it passed steps 2
to 6, has matching parties, the root's <spanx style="verb">perms</spanx> are attenuated with
respect to its <spanx style="verb">powers</spanx> (<xref target="attenuation"/>), and the root's <spanx style="verb">max_depth</spanx>
does not exceed its <spanx style="verb">max_depth</spanx>. The authority check then has one of
three results:</t>

<t><list style="symbols">
  <t><strong>Established</strong>, if some supporting assertion also had no code
recorded in step 7. No authority code is added.</t>
  <t><strong>Supported, status unresolved</strong> (<spanx style="verb">supported_status_unresolved</spanx>), if
no supporting assertion is established but some supporting
assertion's only codes from step 7 have the effect <spanx style="verb">indeterminate</spanx>.
No authority code is added; those codes are already recorded, so the
outcome is <spanx style="verb">indeterminate</spanx>, not <spanx style="verb">invalid</spanx>, unless another error with
the effect <spanx style="verb">invalid</spanx> was recorded.</t>
  <t><strong>Refuted</strong>, otherwise. The Validator adds <spanx style="verb">authority_missing</spanx> if no
referenced assertion was presented, <spanx style="verb">authority_mismatch</spanx> if none has
matching parties, and <spanx style="verb">authority_insufficient</spanx> in all other cases.</t>
</list></t>

<t>The references in <spanx style="verb">authority</spanx> are alternatives. When the result is
established, the codes recorded in steps 2 to 7 for the other
referenced assertions are reported as diagnostics, not errors. When
the result is supported, status unresolved, the same holds for every
referenced assertion that does not support the root; the codes from
step 7 of the supporting assertions remain errors. A second assertion that is weaker,
presented in addition, therefore never changes the outcome. When the
result is refuted, those codes remain errors.</t>

<t>For each reference in the root's <spanx style="verb">authority</spanx> that has no artifact in
<spanx style="verb">mandate_evidence</spanx>, the Validator records the diagnostic
<spanx style="verb">authority_not_presented</spanx>, with the reference as <spanx style="verb">artifact</spanx>, whatever
the result of the check. <spanx style="verb">authority_missing</spanx> is the verdict on the
root, recorded only when no referenced assertion was presented;
<spanx style="verb">authority_not_presented</spanx> is the inventory of each reference that was
not, so that a valid result never hides that some referenced
assertions were not assessed. <spanx style="verb">authority_missing</spanx>,
<spanx style="verb">authority_mismatch</spanx>, <spanx style="verb">authority_insufficient</spanx>, and
<spanx style="verb">self_not_permitted</spanx> carry the root mandate as <spanx style="verb">artifact</spanx>, because it
is the root whose authority was not established.</t>

</section>
<section anchor="obligations"><name>Obligations</name>

<t>Each alternative carries the Obligations produced by its Permission's
stateful constraints (<xref target="predicates"/>), in the order of the
constraints. An Obligation is a JSON
object:</t>

<t><list style="symbols">
  <t><spanx style="verb">sum_max</spanx>: members <spanx style="verb">type</spanx> ("sum_max"), <spanx style="verb">constraint</spanx> (index in the
Permission), <spanx style="verb">root</spanx> (an Artifact Reference (<xref target="artifact-ref"/>) to the
root mandate, equal to the first element of <spanx style="verb">chain</spanx>), <spanx style="verb">budget</spanx>,
<spanx style="verb">period</spanx>,
<spanx style="verb">value</spanx>, and <spanx style="verb">amount</spanx> (the resolved value of this request). Let A be
the authorization time (<xref target="token"/>). The sum of the contributions
recorded under the same <spanx style="verb">root</spanx> and <spanx style="verb">budget</spanx> with a recording time t
such that A minus <spanx style="verb">period</spanx> &lt; t &lt;= A, plus <spanx style="verb">amount</spanx>, <bcp14>MUST NOT</bcp14> exceed
<spanx style="verb">value</spanx>. The contribution is recorded with time A.</t>
  <t><spanx style="verb">cosign_above</spanx>: present only when the resolved decimal exceeds
<spanx style="verb">value</spanx>; members <spanx style="verb">type</spanx> ("cosign_above"), <spanx style="verb">constraint</spanx>, <spanx style="verb">value</spanx>, and
<spanx style="verb">amount</spanx>. A second party designated by the RP's policy <bcp14>MUST</bcp14> approve
the specific action.</t>
</list></t>

<t>Alternatives are independent. Constraints in different Permissions
share accounting only when they name the same <spanx style="verb">budget</spanx>, which lets a
mandate issuer impose one limit across several Permissions. Because
sub-delegated <spanx style="verb">sum_max</spanx> constraints keep the parent's <spanx style="verb">budget</spanx>
(<xref target="attenuation-rules"/>), actions taken under any mandate in a chain
count against the same budget.</t>

<t>The RP performs the check and records the contribution as one atomic
operation at time A, so that concurrent requests cannot both pass
against the same remaining budget, and a request validated earlier
cannot use a window anchored at its validation time. Because each
token authorizes one action, each token records exactly one
contribution per budget. If the token expires unused, the RP <bcp14>MAY</bcp14>
remove the contribution.</t>

<t>A <spanx style="verb">sum_max</spanx> constraint is a cumulative bound. From the chain alone,
the Validator establishes only that a child's <spanx style="verb">sum_max</spanx> is no wider
than its parent's (<xref target="attenuation"/>); whether a request keeps the total
within <spanx style="verb">value</spanx> can be known only where the running total for the
budget and period is held. The Validator therefore never reports such
a limit as satisfied; it returns an Obligation. An RP that neither
holds that total nor has the action authorized by a component that
does cannot discharge the Obligation, and <bcp14>MUST</bcp14> deny the request
(<xref target="authorization"/>). <xref target="I-D.asor-wimse-agent-delegation-chain"/> applies
the same rule to its cumulative constraint types.</t>

</section>
<section anchor="result"><name>Validation Result</name>

<t>The Validation Result is a JSON object with the members:</t>

<t><list style="symbols">
  <t><spanx style="verb">outcome</spanx>: <spanx style="verb">valid</spanx>, <spanx style="verb">invalid</spanx>, or <spanx style="verb">indeterminate</spanx>;</t>
  <t><spanx style="verb">profile</spanx>: an object with the string members <spanx style="verb">uri</spanx>, the Validation
Profile URI, and <spanx style="verb">dig</spanx>, its base64url-encoded SHA-256 digest
(<xref target="profile"/>);</t>
  <t><spanx style="verb">anchors</spanx>: an object with the same two members for the Trust Anchor
Set (<xref target="inputs"/>);</t>
  <t><spanx style="verb">time</spanx>: T;</t>
  <t><spanx style="verb">tf</spanx>: the framework context, or null if undetermined;</t>
  <t><spanx style="verb">chain</spanx>: Artifact References for the mandates, root first;</t>
  <t><spanx style="verb">errors</spanx> and <spanx style="verb">diagnostics</spanx>: arrays of entries, each with the member
<spanx style="verb">code</spanx> and, as stated below, <spanx style="verb">artifact</spanx> (an Artifact Reference) and
<spanx style="verb">perm</spanx> (index);</t>
  <t><spanx style="verb">authority</spanx>: <spanx style="verb">self</spanx>, <spanx style="verb">established</spanx>, <spanx style="verb">supported_status_unresolved</spanx>,
<spanx style="verb">refuted</spanx>, or <spanx style="verb">not_evaluated</spanx> when no root was reached, the framework
context is not accepted, or the root failed step 2;</t>
  <t><spanx style="verb">claims</spanx>: attributed claims (<xref target="attribution"/>), each with <spanx style="verb">claim</spanx>,
<spanx style="verb">value</spanx>, <spanx style="verb">artifact</spanx>, and <spanx style="verb">role</spanx>;</t>
  <t><spanx style="verb">alternatives</spanx>: an array of objects with <spanx style="verb">perm</spanx> (the leaf Permission
index) and <spanx style="verb">obligations</spanx>, sorted by <spanx style="verb">perm</spanx>. It is empty when the
outcome is <spanx style="verb">invalid</spanx>, because the RP has to deny the request then;</t>
  <t><spanx style="verb">evidence</spanx> and <spanx style="verb">rejected</spanx>: Artifact References for the optional
evidence that was accepted or rejected;</t>
  <t><spanx style="verb">status_evidence</spanx>: for each artifact whose status was read from a
selected Status List Token, an object with <spanx style="verb">artifact</spanx> (an Artifact
Reference), <spanx style="verb">token</spanx> (the base64url-encoded SHA-256 digest of the
selected token), <spanx style="verb">iat</spanx> and, when present, <spanx style="verb">exp</spanx> of the selected
token, and <spanx style="verb">required</spanx> (true for required evidence, false for
optional evidence), sorted by <spanx style="verb">artifact.dig</spanx>.</t>
</list></t>

<t>Every entry in <spanx style="verb">errors</spanx> and <spanx style="verb">diagnostics</spanx> carries <spanx style="verb">artifact</spanx>, except
entries with the codes <spanx style="verb">chain_too_long</spanx>, <spanx style="verb">pop_failed</spanx>,
<spanx style="verb">request_malformed</spanx>, <spanx style="verb">action_not_permitted</spanx>, and <spanx style="verb">perm_not_matching</spanx>.
<spanx style="verb">artifact</spanx> names the artifact the step was evaluating: for
<spanx style="verb">chain_broken</spanx>, the mandate whose <spanx style="verb">parent</spanx> has no matching artifact;
for <spanx style="verb">key_missing</spanx>, <spanx style="verb">key_mismatch</spanx>, <spanx style="verb">chain_inconsistent</spanx>,
<spanx style="verb">depth_exceeded</spanx>, and <spanx style="verb">not_attenuated</spanx>, the sub-delegated mandate; for
<spanx style="verb">framework_not_accepted</spanx> and the codes listed at the end of
<xref target="validation-authority"/>, the root; for <spanx style="verb">authority_not_presented</spanx>, the
unresolved reference; for <spanx style="verb">binding_mismatch</spanx>, the WIT. For an artifact
that does not parse, the digest is computed over the string as
presented. <spanx style="verb">perm</spanx> appears only with <spanx style="verb">perm_not_matching</spanx>.</t>

<t>An Artifact Reference in a Validation Result has exactly the member
<spanx style="verb">dig</spanx>. The hints <spanx style="verb">iss</spanx> and <spanx style="verb">jti</spanx> of <xref target="artifact-ref"/> are not copied, so
that two results do not differ only in hints.</t>

<t><spanx style="verb">claims</spanx> contains only authenticated claims: claims of artifacts for
which step 4, or step 13 for optional evidence, was performed and
recorded no code. The claims of a sub-delegated mandate are
authenticated only if step 4 was performed for it and for every
mandate above it in <spanx style="verb">chain</spanx> and recorded no code for any of them. Claims of any other artifact are omitted; the artifact remains
identified through <spanx style="verb">chain</spanx>, <spanx style="verb">errors</spanx>, or <spanx style="verb">rejected</spanx>. Subject to that rule, <spanx style="verb">claims</spanx> contains exactly the
following, and nothing else:</t>

<t><list style="symbols">
  <t>for each mandate in <spanx style="verb">chain</spanx>, in order: <spanx style="verb">iss</spanx>, <spanx style="verb">sub</spanx>, <spanx style="verb">principal</spanx>,
<spanx style="verb">delegator</spanx>, <spanx style="verb">perms</spanx>, and <spanx style="verb">loa</spanx> if present;</t>
  <t>for each Authority Assertion that supports the root, in the order of
the root's <spanx style="verb">authority</spanx> array: <spanx style="verb">iss</spanx>, <spanx style="verb">principal</spanx>, <spanx style="verb">delegator</spanx>,
<spanx style="verb">powers</spanx>, <spanx style="verb">max_depth</spanx>, <spanx style="verb">iat</spanx>, <spanx style="verb">exp</spanx>, and <spanx style="verb">loa</spanx> if present;</t>
  <t>for the WIT: <spanx style="verb">iss</spanx> and <spanx style="verb">sub</spanx>;</t>
  <t>for each accepted attestation result, in <spanx style="verb">evidence</spanx> order: <spanx style="verb">iss</spanx>,
<spanx style="verb">eat_profile</spanx>, and <spanx style="verb">iat</spanx>;</t>
  <t>for each accepted Exposure Statement, in <spanx style="verb">evidence</spanx> order: <spanx style="verb">iss</spanx>,
<spanx style="verb">sid</spanx>, <spanx style="verb">exposure</spanx>, and <spanx style="verb">iat</spanx>.</t>
</list></t>

<t>Within an artifact, claims appear in the order listed. <spanx style="verb">errors</spanx> and
<spanx style="verb">diagnostics</spanx> are sorted by <spanx style="verb">code</spanx>, then <spanx style="verb">artifact.dig</spanx>, then <spanx style="verb">perm</spanx>,
comparing strings by code point and placing absent members first;
duplicates are removed. <spanx style="verb">evidence</spanx> and <spanx style="verb">rejected</spanx> are sorted by <spanx style="verb">dig</spanx>.</t>

<t>Two Validation Results are identical if they are identical JSON values
(<xref target="json-identity"/>), except that every number in a result, including a
number copied from an artifact into <spanx style="verb">claims</spanx>, is compared by
mathematical value, not by its text, so that a Validator that
re-serializes a result does not change it. This exception applies only
to results; matching and attenuation of Permissions use
<xref target="json-identity"/> unchanged.</t>

</section>
</section>
<section anchor="enforcement"><name>Authorization and Enforcement</name>

<section anchor="authorization"><name>Authorization Decision</name>

<t>The RP decides by applying its own policy to the Validation Result and
the request. That policy may, for example, accept only certain Trust
Frameworks or <spanx style="verb">loa</spanx> values, require an attestation result for
high-value actions, or react to exposure events. The RP:</t>

<t><list style="symbols">
  <t><bcp14>MUST NOT</bcp14> allow an action when the outcome is <spanx style="verb">invalid</spanx>;</t>
  <t><bcp14>MUST</bcp14> treat <spanx style="verb">indeterminate</spanx> as a denial, unless its policy explicitly
permits it for that type of action;</t>
  <t><bcp14>MUST</bcp14> select one alternative, discharge all of its Obligations at the
authorization time A before issuing an access token, and record
which alternative it relied on;</t>
  <t><bcp14>MUST</bcp14> deny the request if no alternative's Obligations can be
discharged;</t>
  <t><bcp14>SHOULD</bcp14> retain the Validation Result, its decision, and the
confirmation produced by the system that executed the action.</t>
</list></t>

</section>
<section anchor="token"><name>Access Token</name>

<t>The authorization time A is read from the RP's clock inside the atomic
operation that discharges Obligations and issues the token. A is not
earlier than T. At A, the RP <bcp14>MUST</bcp14> check again that A is earlier than
the <spanx style="verb">exp</spanx> of every mandate in the chain, of every supporting Authority
Assertion, and of the WIT, plus <spanx style="verb">max_clock_skew</spanx>, and that every <spanx style="verb">window</spanx>
constraint of the selected alternative is satisfied at A; otherwise it
denies.</t>

<t>At A, the RP also checks whether each token listed in
<spanx style="verb">status_evidence</spanx> is still eligible: A minus its <spanx style="verb">iat</spanx> does not exceed
<spanx style="verb">max_status_age</spanx>, and its <spanx style="verb">exp</spanx>, when present, is later than A. The
treatment keeps the distinction between required and optional
evidence:</t>

<t><list style="symbols">
  <t>If a token for required evidence is no longer eligible, the RP <bcp14>MUST</bcp14>
either obtain fresh Status List Tokens and run the Mandate
Validation Procedure again with T = A, or treat the outcome as
<spanx style="verb">indeterminate</spanx> and apply its policy for that outcome.</t>
  <t>If a token for optional evidence is no longer eligible, that
evidence <bcp14>MUST NOT</bcp14> be relied on at A, and the RP applies its policy
again without it. If the policy requires that evidence for the
action, the RP denies or obtains fresh evidence and validates again.</t>
</list></t>

<t>The Validation Result computed at T is kept unchanged as a record of
that validation; the checks at A are recorded with the authorization
decision. A Validation Result therefore cannot carry a revocation
check past the freshness the Validation Profile allows, however long
the RP takes to decide, for example while waiting for a co-signature.</t>

<t>An access token issued under this specification:</t>

<t><list style="symbols">
  <t><bcp14>MUST</bcp14> be sender-constrained to the key with the leaf's <spanx style="verb">cnf.jkt</spanx>;</t>
  <t><bcp14>MUST</bcp14> carry only the single authorization details object that was
allowed;</t>
  <t><bcp14>MUST</bcp14> carry an <spanx style="verb">act</spanx> claim identifying the agent instance, and the
<spanx style="verb">jti</spanx> of the leaf and root mandates;</t>
  <t><bcp14>MUST</bcp14> have an <spanx style="verb">exp</spanx> no later than the earliest of: the <spanx style="verb">exp</spanx> of every
mandate in the chain, of every supporting Authority Assertion, and of
the WIT, the
<spanx style="verb">exp</spanx> of any <spanx style="verb">window</spanx> constraint in the selected alternative, and A
plus <spanx style="verb">max_token_lifetime</spanx>;</t>
  <t><bcp14>MUST</bcp14> authorize a single execution of the action; the resource server
<bcp14>MUST</bcp14> reject a second use of the same token.</t>
</list></t>

<t>The bound on the token's <spanx style="verb">exp</spanx> ensures that the action cannot be
executed after a time window or a mandate has ended. A revocation after
issuance takes effect at the latest when the token expires; an RP that
needs it to take effect sooner validates again at execution.</t>

</section>
</section>
<section anchor="attribution"><name>Attribution of Claims</name>

<t>Each artifact carries only the claims its issuer is in a position to
make.</t>

<texttable title="What each artifact asserts" anchor="attribution-table">
      <ttcol align='left'>Artifact</ttcol>
      <ttcol align='left'>Issuer role</ttcol>
      <ttcol align='left'>Asserts</ttcol>
      <ttcol align='left'>Does not assert</ttcol>
      <c>Authority Assertion</c>
      <c>Authority Source</c>
      <c>delegator may delegate the stated powers for the principal, per the source's records</c>
      <c>that any mandate was issued or intended</c>
      <c>Root Mandate Assertion</c>
      <c>Mandate Issuer</c>
      <c>delegator granted the permissions to the key</c>
      <c>that the delegator had authority</c>
      <c>Sub-delegated Mandate Assertion</c>
      <c>Delegating agent instance</c>
      <c>further delegation within the parent's scope</c>
      <c>anything beyond the parent</c>
      <c>WIT</c>
      <c>Operator</c>
      <c>instance identifier bound to the key</c>
      <c>model, configuration, behavior</c>
      <c>Attestation result</c>
      <c>Verifier</c>
      <c>appraisal of runtime evidence at a point in time</c>
      <c>later state; a remote model unless covered</c>
      <c>Exposure Statement</c>
      <c>Observer</c>
      <c>exposure events recorded in the session attributed to one presentation, up to <spanx style="verb">iat</spanx></c>
      <c>absence of manipulation</c>
</texttable>

<t>A Validator <bcp14>MUST</bcp14> report each claim with the artifact and role it came
from, and <bcp14>MUST NOT</bcp14> treat a claim as established by an artifact whose
role does not cover it. In particular, a Mandate Assertion alone never
establishes the delegator's authority. Trust anchors are role-specific;
an entity holding several roles <bcp14>SHOULD</bcp14> use a distinct key for each.</t>

<t>No artifact defined here asserts that the agent's reasoning is correct
or that an action reflects the principal's present intent.</t>

</section>
<section anchor="trust-framework"><name>Boundary with the Trust Framework</name>

<section anchor="provided-by-this-protocol"><name>Provided by This Protocol</name>

<t><list style="symbols">
  <t>the formats of Mandate Assertions, Authority Assertions, and Exposure
Statements, and the profiles of WIT and EAT;</t>
  <t>the semantics of Permissions, constraint predicates, and attenuation;</t>
  <t>the Validation Profile structure and the Mandate Validation
Procedure, its codes, and its result;</t>
  <t>the proof-of-possession profile and the rules for access tokens.</t>
</list></t>

</section>
<section anchor="defined-by-a-trust-framework"><name>Defined by a Trust Framework</name>

<t>A Trust Framework is identified by the URI in <spanx style="verb">tf</spanx>. It <bcp14>MUST</bcp14> define:</t>

<t><list style="numbers" type="1">
  <t>the entities accepted for each role and how their anchors are
distributed;</t>
  <t>the Party Identifier schemes accepted;</t>
  <t>the meaning of each <spanx style="verb">loa</spanx> value and the evidence it requires;</t>
  <t>the permitted algorithms;</t>
  <t>maximum lifetimes and when <spanx style="verb">status</spanx> is required;</t>
  <t>values or bounds for the Validation Profile parameters;</t>
  <t>requirements on Authority Sources, including the records they rely
on, and which other frameworks' Authority Assertions are accepted;</t>
  <t>the obligations and liability of issuers, including revocation and
incident timelines;</t>
  <t>retention of Validation Results and handling of disputes;</t>
  <t>the authorization details types and their Type Profiles;</t>
  <t>how a Mandate Issuer establishes that the instruction to issue a
mandate came from the delegator named in it, for example by
requiring the delegator's signature over the mandate content;</t>
  <t>whether and how RPs share accounting for budgets.</t>
</list></t>

<t>The machine-checkable part of items 2 to 7 and 10 is expressed in the
Validation Profile. The protocol verifies that the delegator holds
authority, unless the Validation Profile admits <spanx style="verb">self</spanx> for the
delegator's scheme, and that the Mandate Issuer states that the delegator granted
the mandate. It cannot verify the link between the two inside the
delegator's organization; that link rests on the Mandate Issuer, under
item 11.</t>

<t>A Trust Framework can be a bilateral agreement, a sector scheme, or a
regulated scheme. This document takes no position on which.</t>

</section>
<section anchor="configured-by-the-relying-party"><name>Configured by the Relying Party</name>

<t><list style="symbols">
  <t>the Trust Frameworks and <spanx style="verb">loa</spanx> values it accepts per action;</t>
  <t>the optional evidence it requires;</t>
  <t>its treatment of <spanx style="verb">indeterminate</spanx> outcomes and exposure events;</t>
  <t>its choice among alternatives and its discharge of Obligations.</t>
</list></t>

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

<t><strong>Issuer compromise.</strong> Short lifetimes limit the use of a stolen
credential but not an attacker who controls an issuer and can issue new
artifacts. The exposure window depends on detection, withdrawal of
trust in the issuer, and propagation of that decision. Transparency
logs <xref target="RFC9162"/> make suspicious issuance visible but do not prevent
it. Trust Frameworks need distrust procedures.</t>

<t><strong>Replay.</strong> Mandates are bound to a key; each request is signed with
it, and the signature's nonce, time window, and body digest prevent
reuse of a request. Access tokens are single-use. <spanx style="verb">aud</spanx> restricts where
a mandate may be presented.</t>

<t><strong>Broad mandates.</strong> The format can express narrow mandates but cannot
force issuers to write them. Trust Frameworks and RPs can require
specific constraints for specific action types.</t>

<t anchor="cross-rp"><strong>Cumulative limits across RPs.</strong> An RP accounts only for actions it
has allowed. A mandate accepted by several RPs that do not share state
lets an agent, compromised or not, reach a budget at each RP. Mandates
with <spanx style="verb">sum_max</spanx> constraints <bcp14>SHOULD</bcp14> therefore carry an <spanx style="verb">aud</spanx> naming
exactly one RP, unless the Trust Framework defines shared accounting.
Without either, a budget is a per-RP limit, not a limit on the mandate.</t>

<t><strong>Prompt injection and confused deputies.</strong> A valid mandate shows that
an action is within delegated authority, not that the agent was not
manipulated into requesting it. Exposure Statements, constrained agent
outputs, and RP policy reduce but do not remove this risk.</t>

<t><strong>Status availability.</strong> When status cannot be resolved, the outcome
is <spanx style="verb">indeterminate</spanx> and the RP denies by default. The code says why:
no token, no trusted token, no token valid in time, conflicting
tokens, or an unrecognized value. The Validation Profile makes <spanx style="verb">status</spanx>
mandatory where the Trust Framework requires it, so an issuer cannot
avoid revocation checks by omitting it.</t>

<t><strong>Revoked alternatives.</strong> When one referenced Authority Assertion
establishes authority, the codes of the other referenced assertions,
including <spanx style="verb">revoked</spanx> and <spanx style="verb">expired</spanx>, are diagnostics
(<xref target="validation-authority"/>). A revocation by an Authority Source is a
signal that the delegator's powers were withdrawn, and the RP sees it
only if the withdrawn assertion was presented: the agent instance
selects what it presents, so a withdrawn assertion can simply be
omitted, and the Validator then records <spanx style="verb">authority_not_presented</spanx> for
it and has no artifact and no status to check. RP policy <bcp14>SHOULD</bcp14> examine diagnostics with
the codes <spanx style="verb">revoked</spanx>, <spanx style="verb">suspended</spanx>, and <spanx style="verb">authority_not_presented</spanx> before
allowing an action.</t>

<t><strong>Trust Anchor Set.</strong> The Validator trusts the anchors it is given. A
substituted or extended Trust Anchor Set lets an artifact verify under
a role and framework its issuer was never accepted for; the digest in
the result shows which set was used at T, not who vouched for it.
Distribution of anchors is defined by the Trust Framework. A Trust
Framework <bcp14>MAY</bcp14> require the set to be signed, with a JWS <xref target="RFC7515"/>
with detached payload over the same bytes, as for the Validation
Profile; the digest is computed over the bytes alone.</t>

<t><strong>Resource consumption.</strong> <spanx style="verb">max_chain_length</spanx> bounds chain processing.
Validators <bcp14>SHOULD</bcp14> bound the number and size of artifacts.</t>

<t><strong>Exact comparison.</strong> Amounts are decimal strings, pointers are exact,
identity is defined on code points, and result arrays have a defined
order, so independent implementations reach the same result.</t>

<t><strong>Long-term verifiability.</strong> Validation Results retained for disputes
may need to be verifiable for years. This requires preserving
validation data and renewing evidence <xref target="RFC4998"/>, and migrating to new
algorithms, including post-quantum algorithms, as Trust Frameworks
permit them.</t>

<t><strong>Remote models.</strong> Attestation results cover what the Verifier
appraised, not a model served by a third party unless that party's
evidence was appraised.</t>

</section>
<section anchor="privacy-considerations"><name>Privacy Considerations</name>

<t>Mandate Presentations disclose the principal and delegator to the RP.
Issuers <bcp14>SHOULD</bcp14> use pairwise or role identifiers where the Trust
Framework permits, and Authority Sources <bcp14>SHOULD</bcp14> use SD-JWT <xref target="RFC9901"/>
for personal attributes of the delegator that do not affect validation.
Digests and identifiers can correlate presentations across RPs. The
privacy considerations of <xref target="I-D.ietf-oauth-status-list"/> apply.</t>

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

<section anchor="media-types"><name>Media Types</name>

<t>This document requests registration of <spanx style="verb">application/mandate+jwt</spanx>,
<spanx style="verb">application/authority+jwt</spanx>, <spanx style="verb">application/authority+sd-jwt</spanx>, and
<spanx style="verb">application/agent-exposure+jwt</spanx>. Templates to be provided.</t>

</section>
<section anchor="json-web-token-claims"><name>JSON Web Token Claims</name>

<t>This document requests registration of the claims <spanx style="verb">principal</spanx>,
<spanx style="verb">delegator</spanx>, <spanx style="verb">authority</spanx>, <spanx style="verb">perms</spanx>, <spanx style="verb">parent</spanx>, <spanx style="verb">max_depth</spanx>, <spanx style="verb">tf</spanx>, <spanx style="verb">loa</spanx>,
<spanx style="verb">powers</spanx>, <spanx style="verb">ad_hash</spanx>, and <spanx style="verb">exposure</spanx> in the "JSON Web Token Claims"
registry. The Exposure Statement reuses the registered <spanx style="verb">sid</spanx> and
<spanx style="verb">nonce</spanx> claims with the meaning defined in <xref target="exposure"/>.</t>

</section>
<section anchor="oauth-registrations"><name>OAuth Registrations</name>

<t>This document requests registration of the token type URI
<spanx style="verb">urn:ietf:params:oauth:token-type:agent-mandate</spanx> in the "OAuth URI"
registry and of the parameter <spanx style="verb">mandate_evidence</spanx> in the "OAuth
Parameters" registry.</t>

</section>
<section anchor="agent-mandate-constraint-predicates"><name>Agent Mandate Constraint Predicates</name>

<t>This document requests a new registry, "Agent Mandate Constraint
Predicates", with Specification Required policy. Each entry contains
the predicate name, its kind, its satisfaction rule, its attenuation
rule, the value types it accepts, and a reference. Initial contents are
given in <xref target="predicates"/> and <xref target="attenuation-rules"/>.</t>

</section>
<section anchor="iana-reasons"><name>Agent Mandate Validation Codes</name>

<t>This document requests a new registry, "Agent Mandate Validation
Codes", with Specification Required policy. Each entry has:</t>

<t><list style="symbols">
  <t>the code;</t>
  <t>"Recorded as": <spanx style="verb">error</spanx>, <spanx style="verb">diagnostic</spanx>, or both;</t>
  <t>"Effect as error": <spanx style="verb">invalid</spanx> or <spanx style="verb">indeterminate</spanx>, for codes that can
be recorded as errors;</t>
  <t>"Members": whether entries with the code carry <spanx style="verb">artifact</spanx> and <spanx style="verb">perm</spanx>
(<xref target="result"/>);</t>
  <t>the step that records it, and a reference.</t>
</list></t>

<t>Initial entries recorded as errors, with the effect <spanx style="verb">invalid</spanx>:
<spanx style="verb">malformed</spanx>, <spanx style="verb">chain_broken</spanx>, <spanx style="verb">chain_too_long</spanx>,
<spanx style="verb">framework_not_accepted</spanx>, <spanx style="verb">alg_not_allowed</spanx>, <spanx style="verb">scheme_not_accepted</spanx>,
<spanx style="verb">lifetime_exceeded</spanx>, <spanx style="verb">status_missing</spanx>, <spanx style="verb">key_missing</spanx>, <spanx style="verb">key_mismatch</spanx>,
<spanx style="verb">signature_invalid</spanx>, <spanx style="verb">role_mismatch</spanx>, <spanx style="verb">framework_mismatch</spanx>,
<spanx style="verb">not_yet_valid</spanx>, <spanx style="verb">expired</spanx>, <spanx style="verb">revoked</spanx>, <spanx style="verb">suspended</spanx>,
<spanx style="verb">chain_inconsistent</spanx>, <spanx style="verb">depth_exceeded</spanx>, <spanx style="verb">not_attenuated</spanx>,
<spanx style="verb">self_not_permitted</spanx>, <spanx style="verb">authority_missing</spanx>, <spanx style="verb">authority_mismatch</spanx>,
<spanx style="verb">authority_insufficient</spanx>, <spanx style="verb">binding_mismatch</spanx>, <spanx style="verb">pop_failed</spanx>,
<spanx style="verb">audience_mismatch</spanx>, <spanx style="verb">request_malformed</spanx>, <spanx style="verb">action_not_permitted</spanx>.</t>

<t>Initial entries recorded as errors, with the effect <spanx style="verb">indeterminate</spanx>:
<spanx style="verb">status_unavailable</spanx>, <spanx style="verb">status_untrusted</spanx>, <spanx style="verb">status_stale</spanx>,
<spanx style="verb">status_conflict</spanx>, <spanx style="verb">status_unrecognized</spanx>.</t>

<t>Of these, the codes recorded in steps 2 to 7 can also be recorded as
diagnostics for a referenced Authority Assertion, as stated in
<xref target="validation-authority"/>.</t>

<t>Initial entries recorded only as diagnostics: <spanx style="verb">perm_not_matching</spanx>,
<spanx style="verb">evidence_rejected</spanx>, <spanx style="verb">authority_not_presented</spanx>.</t>

<t>The members of each initial entry are those stated in <xref target="result"/>. A
new entry <bcp14>MUST</bcp14> state all the fields above, and the specification
requesting it <bcp14>MUST</bcp14> state in which step the code is recorded. The
designated experts <bcp14>SHOULD</bcp14> reject an entry with the effect
<spanx style="verb">indeterminate</spanx> that does not describe evidence that could not be
resolved, so that registrations cannot change what <spanx style="verb">indeterminate</spanx>
means.</t>

</section>
<section anchor="iana-exposure"><name>Agent Exposure Event Types</name>

<t>This document requests a new registry, "Agent Exposure Event Types",
with Specification Required policy. Initial values:</t>

<t><list style="symbols">
  <t><spanx style="verb">external_content</spanx>: the session processed content retrieved from
outside the operator's domain that was not on an allow list;</t>
  <t><spanx style="verb">unauthenticated_tool</spanx>: the session invoked a tool or service whose
identity was not authenticated;</t>
  <t><spanx style="verb">untrusted_agent_input</spanx>: the session processed output from an agent
instance whose mandate was not validated.</t>
</list></t>

</section>
</section>


  </middle>

  <back>


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

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



<reference anchor="RFC6901">
  <front>
    <title>JavaScript Object Notation (JSON) Pointer</title>
    <author fullname="P. Bryan" initials="P." role="editor" surname="Bryan"/>
    <author fullname="K. Zyp" initials="K." surname="Zyp"/>
    <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
    <date month="April" year="2013"/>
    <abstract>
      <t>JSON Pointer defines a string syntax for identifying a specific value within a JavaScript Object Notation (JSON) document.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6901"/>
  <seriesInfo name="DOI" value="10.17487/RFC6901"/>
</reference>
<reference anchor="RFC7515">
  <front>
    <title>JSON Web Signature (JWS)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
    <date month="May" year="2015"/>
    <abstract>
      <t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7515"/>
  <seriesInfo name="DOI" value="10.17487/RFC7515"/>
</reference>
<reference anchor="RFC7519">
  <front>
    <title>JSON Web Token (JWT)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
    <date month="May" year="2015"/>
    <abstract>
      <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7519"/>
  <seriesInfo name="DOI" value="10.17487/RFC7519"/>
</reference>
<reference anchor="RFC7638">
  <front>
    <title>JSON Web Key (JWK) Thumbprint</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
    <date month="September" year="2015"/>
    <abstract>
      <t>This specification defines a method for computing a hash value over a JSON Web Key (JWK). It defines which fields in a JWK are used in the hash computation, the method of creating a canonical form for those fields, and how to convert the resulting Unicode string into a byte sequence to be hashed. The resulting hash value can be used for identifying or selecting the key represented by the JWK that is the subject of the thumbprint.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7638"/>
  <seriesInfo name="DOI" value="10.17487/RFC7638"/>
</reference>
<reference anchor="RFC7800">
  <front>
    <title>Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
    <date month="April" year="2016"/>
    <abstract>
      <t>This specification describes how to declare in a JSON Web Token (JWT) that the presenter of the JWT possesses a particular proof-of- possession key and how the recipient can cryptographically confirm proof of possession of the key by the presenter. Being able to prove possession of a key is also sometimes described as the presenter being a holder-of-key.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7800"/>
  <seriesInfo name="DOI" value="10.17487/RFC7800"/>
</reference>
<reference anchor="RFC8693">
  <front>
    <title>OAuth 2.0 Token Exchange</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="A. Nadalin" initials="A." surname="Nadalin"/>
    <author fullname="B. Campbell" initials="B." role="editor" surname="Campbell"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
    <date month="January" year="2020"/>
    <abstract>
      <t>This specification defines a protocol for an HTTP- and JSON-based Security Token Service (STS) by defining how to request and obtain security tokens from OAuth 2.0 authorization servers, including security tokens employing impersonation and delegation.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8693"/>
  <seriesInfo name="DOI" value="10.17487/RFC8693"/>
</reference>
<reference anchor="RFC8725">
  <front>
    <title>JSON Web Token Best Current Practices</title>
    <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
    <author fullname="D. Hardt" initials="D." surname="Hardt"/>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <date month="February" year="2020"/>
    <abstract>
      <t>JSON Web Tokens, also known as JWTs, are URL-safe JSON-based security tokens that contain a set of claims that can be signed and/or encrypted. JWTs are being widely used and deployed as a simple security token format in numerous protocols and applications, both in the area of digital identity and in other application areas. This Best Current Practices document updates RFC 7519 to provide actionable guidance leading to secure implementation and deployment of JWTs.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="225"/>
  <seriesInfo name="RFC" value="8725"/>
  <seriesInfo name="DOI" value="10.17487/RFC8725"/>
</reference>
<reference anchor="RFC9396">
  <front>
    <title>OAuth 2.0 Rich Authorization Requests</title>
    <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
    <author fullname="J. Richer" initials="J." surname="Richer"/>
    <author fullname="B. Campbell" initials="B." surname="Campbell"/>
    <date month="May" year="2023"/>
    <abstract>
      <t>This document specifies a new parameter authorization_details that is used to carry fine-grained authorization data in OAuth messages.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9396"/>
  <seriesInfo name="DOI" value="10.17487/RFC9396"/>
</reference>
<reference anchor="RFC9421">
  <front>
    <title>HTTP Message Signatures</title>
    <author fullname="A. Backman" initials="A." role="editor" surname="Backman"/>
    <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
    <author fullname="M. Sporny" initials="M." surname="Sporny"/>
    <date month="February" year="2024"/>
    <abstract>
      <t>This document describes a mechanism for creating, encoding, and verifying digital signatures or message authentication codes over components of an HTTP message. This mechanism supports use cases where the full HTTP message may not be known to the signer and where the message may be transformed (e.g., by intermediaries) before reaching the verifier. This document also describes a means for requesting that a signature be applied to a subsequent HTTP message in an ongoing HTTP exchange.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9421"/>
  <seriesInfo name="DOI" value="10.17487/RFC9421"/>
</reference>
<reference anchor="RFC9530">
  <front>
    <title>Digest Fields</title>
    <author fullname="R. Polli" initials="R." surname="Polli"/>
    <author fullname="L. Pardue" initials="L." surname="Pardue"/>
    <date month="February" year="2024"/>
    <abstract>
      <t>This document defines HTTP fields that support integrity digests. The Content-Digest field can be used for the integrity of HTTP message content. The Repr-Digest field can be used for the integrity of HTTP representations. Want-Content-Digest and Want-Repr-Digest can be used to indicate a sender's interest and preferences for receiving the respective Integrity fields.</t>
      <t>This document obsoletes RFC 3230 and the Digest and Want-Digest HTTP fields.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9530"/>
  <seriesInfo name="DOI" value="10.17487/RFC9530"/>
</reference>
<reference anchor="RFC9711">
  <front>
    <title>The Entity Attestation Token (EAT)</title>
    <author fullname="L. Lundblade" initials="L." surname="Lundblade"/>
    <author fullname="G. Mandyam" initials="G." surname="Mandyam"/>
    <author fullname="J. O'Donoghue" initials="J." surname="O'Donoghue"/>
    <author fullname="C. Wallace" initials="C." surname="Wallace"/>
    <date month="April" year="2025"/>
    <abstract>
      <t>An Entity Attestation Token (EAT) provides an attested claims set that describes the state and characteristics of an entity, a device such as a smartphone, an Internet of Things (IoT) device, network equipment, or such. This claims set is used by a relying party, server, or service to determine the type and degree of trust placed in the entity.</t>
      <t>An EAT is either a CBOR Web Token (CWT) or a JSON Web Token (JWT) with attestation-oriented claims.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9711"/>
  <seriesInfo name="DOI" value="10.17487/RFC9711"/>
</reference>
<reference anchor="RFC9901">
  <front>
    <title>Selective Disclosure for JSON Web Tokens</title>
    <author fullname="D. Fett" initials="D." surname="Fett"/>
    <author fullname="K. Yasuda" initials="K." surname="Yasuda"/>
    <author fullname="B. Campbell" initials="B." surname="Campbell"/>
    <date month="November" year="2025"/>
    <abstract>
      <t>This specification defines a mechanism for the selective disclosure
of individual elements of a JSON data structure used as the payload
of a JSON Web Signature (JWS). The primary use case is the selective
disclosure of JSON Web Token (JWT) claims.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9901"/>
  <seriesInfo name="DOI" value="10.17487/RFC9901"/>
</reference>

<reference anchor="I-D.ietf-wimse-workload-creds">
   <front>
      <title>WIMSE Workload Credentials</title>
      <author fullname="Brian Campbell" initials="B." surname="Campbell">
         <organization>Ping Identity</organization>
      </author>
      <author fullname="Joseph A. Salowey" initials="J. A." surname="Salowey">
         <organization>Palo Alto Networks</organization>
      </author>
      <author fullname="Arndt Schwenkschuster" initials="A." surname="Schwenkschuster">
         <organization>Defakto Security</organization>
      </author>
      <author fullname="Yaron Sheffer" initials="Y." surname="Sheffer">
         <organization>Independent</organization>
      </author>
      <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
         <organization>Zscaler</organization>
      </author>
      <date day="30" month="October" year="2026"/>
      <abstract>
	 <t>   The WIMSE architecture defines authentication and authorization for
   software workloads in a variety of runtime environments, from the
   most basic ones up to complex multi-service, multi-cloud, multi-
   tenant deployments.

   This document defines the credentials that workloads use to represent
   their identity.  They can be used in various protocols to
   authenticate workloads to each other.  To use these credentials,
   workloads must provide proof of possession of the associated private
   key material, which is covered in other documents.  This document
   focuses on the credentials alone, independent of the proof-of-
   possession mechanism.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-workload-creds-03"/>
   
</reference>

<reference anchor="I-D.ietf-wimse-http-signature">
   <front>
      <title>WIMSE Workload-to-Workload Authentication with HTTP Signatures</title>
      <author fullname="Joseph A. Salowey" initials="J. A." surname="Salowey">
         <organization>Palo Alto Networks</organization>
      </author>
      <author fullname="Yaron Sheffer" initials="Y." surname="Sheffer">
         <organization>Independent</organization>
      </author>
      <date day="20" month="October" year="2026"/>
      <abstract>
	 <t>   The WIMSE architecture defines authentication and authorization for
   software workloads in a variety of runtime environments, from the
   most basic ones to complex multi-service, multi-cloud, multi-tenant
   deployments.  This document defines one of the mechanisms to provide
   workload authentication, using HTTP Signatures.  While only
   applicable to HTTP traffic, the protocol provides end-to-end
   protection of requests (and optionally, responses), even when service
   traffic is not end-to-end encrypted, that is, when TLS proxies and
   load balancers are used.  Authentication is based on the Workload
   Identity Token (WIT).

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-http-signature-08"/>
   
</reference>

<reference anchor="I-D.ietf-oauth-status-list">
   <front>
      <title>Token Status List (TSL)</title>
      <author fullname="Tobias Looker" initials="T." surname="Looker">
         <organization>MATTR</organization>
      </author>
      <author fullname="Paul Bastian" initials="P." surname="Bastian">
         <organization>Bundesdruckerei</organization>
      </author>
      <author fullname="Christian Bormann" initials="C." surname="Bormann">
         <organization>SPRIND</organization>
      </author>
      <date day="21" month="June" year="2026"/>
      <abstract>
	 <t>   This specification defines a status mechanism called Token Status
   List (TSL), data structures and processing rules for representing the
   status of tokens secured by JSON Object Signing and Encryption (JOSE)
   or CBOR Object Signing and Encryption (COSE), such as JWT, SD-JWT,
   CBOR Web Token, and ISO mdoc.  It also defines an extension point and
   a registry for future status mechanisms.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-status-list-21"/>
   
</reference>

<reference anchor="JSON-SCHEMA-CORE" target="https://json-schema.org/draft/2020-12/json-schema-core">
  <front>
    <title>JSON Schema: A Media Type for Describing JSON Documents, Draft 2020-12</title>
    <author >
      <organization>JSON Schema</organization>
    </author>
    <date year="2022" month="June"/>
  </front>
</reference>
<reference anchor="JSON-SCHEMA-VALIDATION" target="https://json-schema.org/draft/2020-12/json-schema-validation">
  <front>
    <title>JSON Schema Validation: A Vocabulary for Structural Validation of JSON, Draft 2020-12</title>
    <author >
      <organization>JSON Schema</organization>
    </author>
    <date year="2022" month="June"/>
  </front>
</reference>


<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>
<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>



    </references>

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



<reference anchor="RFC4998">
  <front>
    <title>Evidence Record Syntax (ERS)</title>
    <author fullname="T. Gondrom" initials="T." surname="Gondrom"/>
    <author fullname="R. Brandner" initials="R." surname="Brandner"/>
    <author fullname="U. Pordesch" initials="U." surname="Pordesch"/>
    <date month="August" year="2007"/>
    <abstract>
      <t>In many scenarios, users must be able prove the existence and integrity of data, including digitally signed data, in a common and reproducible way over a long and possibly undetermined period of time. This document specifies the syntax and processing of an Evidence Record, a structure designed to support long-term non-repudiation of existence of data. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4998"/>
  <seriesInfo name="DOI" value="10.17487/RFC4998"/>
</reference>
<reference anchor="RFC9162">
  <front>
    <title>Certificate Transparency Version 2.0</title>
    <author fullname="B. Laurie" initials="B." surname="Laurie"/>
    <author fullname="E. Messeri" initials="E." surname="Messeri"/>
    <author fullname="R. Stradling" initials="R." surname="Stradling"/>
    <date month="December" year="2021"/>
    <abstract>
      <t>This document describes version 2.0 of the Certificate Transparency (CT) protocol for publicly logging the existence of Transport Layer Security (TLS) server certificates as they are issued or observed, in a manner that allows anyone to audit certification authority (CA) activity and notice the issuance of suspect certificates as well as to audit the certificate logs themselves. The intent is that eventually clients would refuse to honor certificates that do not appear in a log, effectively forcing CAs to add all issued certificates to the logs.</t>
      <t>This document obsoletes RFC 6962. It also specifies a new TLS extension that is used to send various CT log artifacts.</t>
      <t>Logs are network services that implement the protocol operations for submissions and queries that are defined in this document.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9162"/>
  <seriesInfo name="DOI" value="10.17487/RFC9162"/>
</reference>
<reference anchor="RFC9334">
  <front>
    <title>Remote ATtestation procedureS (RATS) Architecture</title>
    <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
    <author fullname="D. Thaler" initials="D." surname="Thaler"/>
    <author fullname="M. Richardson" initials="M." surname="Richardson"/>
    <author fullname="N. Smith" initials="N." surname="Smith"/>
    <author fullname="W. Pan" initials="W." surname="Pan"/>
    <date month="January" year="2023"/>
    <abstract>
      <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9334"/>
  <seriesInfo name="DOI" value="10.17487/RFC9334"/>
</reference>

<reference anchor="I-D.ietf-wimse-arch">
   <front>
      <title>Workload Identity in a Multi System Environment (WIMSE) Architecture</title>
      <author fullname="Joseph A. Salowey" initials="J. A." surname="Salowey">
         <organization>Palo Alto Networks</organization>
      </author>
      <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
         <organization>Zscaler</organization>
      </author>
      <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
         <organization>University of the Bundeswehr Munich</organization>
      </author>
      <date day="6" month="July" year="2026"/>
      <abstract>
	 <t>   The increasing prevalence of cloud computing and micro service
   architectures has led to the rise of complex software functions being
   built and deployed as workloads, where a workload is defined as
   software executing for a specific purpose, potentially comprising one
   or more running instances.  This document discusses an architecture
   for designing and standardizing protocols and payloads for conveying
   workload identity and security context information.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-arch-08"/>
   
</reference>

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

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-aims-00"/>
   
</reference>

<reference anchor="I-D.ietf-wimse-wpt">
   <front>
      <title>WIMSE Workload Proof Token</title>
      <author fullname="Brian Campbell" initials="B." surname="Campbell">
         <organization>Ping Identity</organization>
      </author>
      <author fullname="Arndt Schwenkschuster" initials="A." surname="Schwenkschuster">
         <organization>Defakto Security</organization>
      </author>
      <date day="27" month="August" year="2026"/>
      <abstract>
	 <t>   The WIMSE architecture defines authentication and authorization for
   software workloads in a variety of runtime environments, from basic
   deployments to complex multi-service, multi-cloud, multi-tenant
   systems.  This document specifies the Workload Proof Token (WPT), a
   mechanism for workloads to prove possession of the private key
   associated with a Workload Identity Token (WIT).  The WPT is a signed
   JWT that binds the workload&#x27;s authentication to a specific HTTP
   request, providing application-layer proof of possession for
   workload-to-workload communication.  This specification is designed
   to work alongside the WIT credential format defined in draft-ietf-
   wimse-workload-creds and can be combined with other WIMSE protocols
   in multi-hop call chains.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-wpt-02"/>
   
</reference>

<reference anchor="I-D.asor-wimse-agent-delegation-chain">
   <front>
      <title>Verifiable Attenuated Delegation for AI Agent Chains</title>
      <author fullname="Rafael Asor" initials="R." surname="Asor">
         <organization>Attenu</organization>
      </author>
      <date day="27" month="October" year="2026"/>
      <abstract>
	 <t>   AI agents increasingly delegate tasks to other agents.  Each
   delegation should convey only a subset of the delegating party&#x27;s
   authority, that subset should be bounded in scope, magnitude, and
   time, and any enforcement point should be able to verify -- offline,
   with no call to an authorization server -- that a token presented at
   hop N carries authority no greater than the token at hop N-1, back to
   a trusted root, and that every hop acts under the same accountable
   principal.  OAuth 2.0 Token Exchange (RFC 8693) models two-party
   delegation and records prior actors in a nested &quot;act&quot; claim, but that
   claim is informational only and cannot enforce attenuation across a
   chain of depth two or more.  This document defines the Agent
   Delegation Chain: a profile of OAuth 2.0 JWT access tokens (RFC 9068)
   that carries authority as Rich Authorization Requests (RFC 9396),
   binds the chain to one principal and names the agent acting at each
   hop, links each delegation to its parent by a cryptographic byte-
   commitment, and specifies a deterministic offline verification
   algorithm that enforces monotonic attenuation, bounded depth,
   monotonic expiry, and principal invariance.  It reuses existing JOSE,
   proof-of-possession (RFC 9449), and status-list machinery (the OAuth
   Status List draft) and introduces no new cryptography.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-asor-wimse-agent-delegation-chain-03"/>
   
</reference>

<reference anchor="I-D.hamr-oauth-agent-delegation">
   <front>
      <title>An Attenuated Delegation Profile for Automated Agents</title>
      <author fullname="Amr Hassan" initials="A." surname="Hassan">
         <organization>Independent</organization>
      </author>
      <date day="22" month="October" year="2026"/>
      <abstract>
	 <t>   This document builds on HTTP Message Signatures (RFC 9421) for
   requests that automated agents send on behalf of people.  RFC 9421
   shows who signed a request.  It does not show who the agent acts for,
   or what the agent may do.  This document defines an HTTP header
   field, Agent-Delegation, that carries a chain of delegation links.
   Each link can only narrow the scope, floors, and expiry of the link
   before it, and a verifier checks every link.  Floors cover two
   things.  The first is the person or account behind the agent: an
   Attestation Issuer, such as a mobile network operator or an identity-
   document check, answers with a signed yes or no, bound to the
   verifier&#x27;s nonce and to an expiry, and never returns the value behind
   the answer.  The second is what the agent may do: each call has a
   class, r, w, or x, read as in chmod, with an optional count per
   class, and a signed menu gives the class of each call.  A deployment
   can set this scope for each job when the job starts.  This document
   does not define a credential format, an identity system, or
   revocation.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-hamr-oauth-agent-delegation-03"/>
   
</reference>

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

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-reece-wimse-cross-org-delegation-02"/>
   
</reference>

<reference anchor="I-D.yossif-agent-mandate-problem">
   <front>
      <title>Problem Statement: Verifiable Human Mandates for Autonomous Agent Actions</title>
      <author fullname="Mohamad Khalil Yossif" initials="M. K." surname="Yossif">
         <organization>Yuthent</organization>
      </author>
      <date day="22" month="July" year="2026"/>
      <abstract>
	 <t>   An autonomous software agent commonly acts under authority a human
   granted at an earlier moment: the human expresses and authorizes an
   intent at one time, and the agent executes one or more concrete
   actions at a later time.  The credentials and session state the agent
   carries at execution time establish that some agent is authorized to
   act, but they do not establish that this specific action, with these
   specific parameters, falls within the constraints the human actually
   signed.  As agent autonomy and action throughput grow, the population
   of executed actions that no human individually bounded grows with it.
   This document is a problem statement.  It characterizes the gap
   between an authorized agent and an authorized action, explains why
   existing delegation, logging, and payment-mandate mechanisms do not
   close it, and states the requirements any solution would have to
   satisfy.  It defines no protocol or mechanism.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-yossif-agent-mandate-problem-00"/>
   
</reference>

<reference anchor="I-D.sweeney-wimse-credential-delegation">
   <front>
      <title>Credential Delegation Protocol for AI Agents in Multi-System Environments</title>
      <author fullname="Kieran Sweeney" initials="K." surname="Sweeney">
         </author>
      <date day="30" month="October" year="2026"/>
      <abstract>
	 <t>   Autonomous AI agents increasingly require access to protected
   resources across multiple service providers on behalf of human users.
   Existing OAuth 2.0 extensions address individual aspects of this
   problem (token exchange, proof-of-possession, and structured
   authorization) but no current specification defines how these
   mechanisms compose into a coherent credential delegation framework
   for AI agents.

   This document specifies the Credential Delegation Protocol: a profile
   of OAuth 2.0 Token Exchange (RFC 8693), Demonstrating Proof-of-
   Possession (RFC 9449), Rich Authorization Requests (RFC 9396), and
   Client-Initiated Backchannel Authentication (OpenID Connect CIBA)
   that enables human users to delegate scoped, attenuated credentials
   to AI agents operating across heterogeneous service providers.

   The protocol defines: agent identity lifecycle management using
   ephemeral key pairs; capability-shaped delegation tokens bound to
   specific operations and resources; credential wrapping semantics that
   prevent exposure of underlying OAuth tokens to agents; consent-gated
   delegation flows for asynchronous agents; real-time cascading
   revocation; and tamper-evident audit chains.

   This document does not define new token formats, new OAuth grant
   types, or modifications to existing authorization server behavior.
   It specifies how existing mechanisms are combined to achieve secure,
   auditable credential delegation for AI agents.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-sweeney-wimse-credential-delegation-02"/>
   
</reference>

<reference anchor="I-D.tanase-ain-authoritative-resolution">
   <front>
      <title>Authoritative Resolution and Pre-Interaction Verification of Persistent Digital Agent Identities</title>
      <author fullname="Elena Tănase" initials="E." surname="Tănase">
         <organization>AIDAXIA Ltd.</organization>
      </author>
      <date day="27" month="October" year="2026"/>
      <abstract>
	 <t>   This document specifies AIN-WRP, a protocol-independent mechanism for
   authoritative resolution of persistent digital-agent identities and
   for verification of relationship-specific state before a digital
   agent begins a protected interaction with another registered agent or
   with a non-agent service or system.  Each digital agent participating
   in AIN-WRP identity resolution is identified by its own persistent
   Agent Identity Number (AIN).  The AIN is the stable anchor used to
   resolve lifecycle, operator, authority, restriction, endpoint,
   provenance and cryptographic evidence from sources competent for the
   corresponding assertions.  Where the counterparty is a non-agent
   target, a target reference identifies the intended resource or
   service without being treated as an alternative digital-agent
   identity.  AIN-WRP correlates the required evidence for the proposed
   interaction and can produce a Pre-Interaction Trust State or an
   optional State Proof.  Verification does not itself execute the
   operation or replace receiving-domain enforcement.

   The specification distinguishes persistent agent identity from
   credentials, proof of control, delegated authority, operational
   eligibility, local admission decisions and execution.  AIN-WRP
   applies at or before the admission boundary of A2A, MCP, API,
   transactional, messaging and other operational protocols.  An
   identity or target reference alone does not establish the authority,
   validity or eligibility of the proposed interaction.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-tanase-ain-authoritative-resolution-01"/>
   
</reference>

<reference anchor="I-D.wadkins-agentproto-action-determinability">
   <front>
      <title>Independent Determinability of Agent Actions</title>
      <author fullname="Douglas Wadkins" initials="D. L." surname="Wadkins">
         <organization>Strakewright</organization>
      </author>
      <date day="11" month="September" year="2026"/>
      <abstract>
	 <t>   Evidence that an agent was authorized to act does not establish that
   the authorization was enforced, that the action was executed, or that
   the intended effect occurred.  These are distinct transitions.

   This document defines requirements for making a claimed agent
   transition independently determinable after the original interaction
   has ended.  The requirements address binding the material action and
   governing conditions to the transition at decision time, identifying
   which revision of a mutable governing artifact was in force,
   preventing later substitution, and preserving enough information for
   an independent evaluator to establish the claimed transition after
   participants, sessions, credentials, keys, or agent instances are no
   longer available.

   This document defines no evidence format, token, action identifier,
   delegation protocol, audit system, registry, or transparency service.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-wadkins-agentproto-action-determinability-00"/>
   
</reference>

<reference anchor="I-D.konda-agentproto-evaluation-state">
   <front>
      <title>Preserving Evaluation State in Agent Protocol Decisions</title>
      <author fullname="Girish Konda" initials="G." surname="Konda">
         </author>
      <date day="19" month="October" year="2026"/>
      <abstract>
	 <t>   Agent protocols often require a participant to establish a decision-
   time input before it acts: issuer standing, key availability,
   delegated authority, policy profile availability, consumption state,
   revocation status, or the outcome of a downstream operation.  A
   participant that establishes an input and receives a negative answer
   has learned a different fact from a participant that cannot establish
   the input at all.  Collapsing those facts into one denial or failure
   value changes retry behavior, alert routing, audit interpretation,
   incident ownership, and post-incident reconstruction.

   This document specifies requirements for preserving evaluation state
   across agent protocol boundaries: the value of an input, whether that
   value was established at decision time, the freshness of the source
   used to establish it, and whether the resulting policy decision was
   actually evaluated.  The requirements are stated independently of
   encoding, so that policy, authorization, revocation, routing, and
   audit documents can satisfy them in their own formats.  Test cases
   for the requirements are included, with a machine-readable form
   published separately.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-konda-agentproto-evaluation-state-02"/>
   
</reference>

<reference anchor="EIDAS2" target="https://eur-lex.europa.eu/eli/reg/2024/1183/oj">
  <front>
    <title>Regulation (EU) 2024/1183 of the European Parliament and of the Council amending Regulation (EU) No 910/2014 as regards establishing the European Digital Identity Framework</title>
    <author >
      <organization>European Parliament and Council of the European Union</organization>
    </author>
    <date year="2024" month="April" day="11"/>
  </front>
</reference>
<reference anchor="COSAI-AIAM" target="https://www.coalitionforsecureai.org/announcements/cosai-unveils-agentic-identity-and-security-research-following-high-profile-sessions-at-rsac-2026/">
  <front>
    <title>Agentic Identity and Access Management, Version 1.0</title>
    <author >
      <organization>Coalition for Secure AI (CoSAI)</organization>
    </author>
    <date year="2026" month="March" day="20"/>
  </front>
</reference>
<reference anchor="OIDF-AGENTIC" target="https://openid.net/new-whitepaper-tackles-ai-agent-identity-challenges/">
  <front>
    <title>Identity Management for Agentic AI</title>
    <author >
      <organization>OpenID Foundation</organization>
    </author>
    <date year="2025" month="October"/>
  </front>
</reference>


    </references>

</references>


<?line 1599?>

<section anchor="example"><name>Example</name>

<t>A company's treasury agent holds a mandate from the company's financial
director and delegates part of it to a reconciliation agent, which
initiates a payment at the company's bank. Payloads are shown decoded
and unsigned; identifiers are fictional; digests, keys, and some
values are elided as "...". Signed vectors for this example under -00
have been published independently; they are expected to be
regenerated for this revision.</t>

<t>The bank's Validation Profile includes a Type Profile for
<spanx style="verb">payment_initiation</spanx> whose admitted members are <spanx style="verb">instructedAmount</spanx>,
<spanx style="verb">creditorAccount</spanx>, and <spanx style="verb">remittanceInformation</spanx>. A Permission that does
not constrain one of them leaves it unrestricted.</t>

<t>Authority Assertion from a company register, stating which payments
the director may delegate to agents:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "iss": "https://register.example",
  "jti": "aa-5c1e",
  "iat": 1792800000,
  "exp": 1824336000,
  "principal": {"id": "J40/0000/2020", "scheme": "urn:example:reg"},
  "delegator": {"id": "p-41f9", "scheme": "urn:example:pairwise"},
  "powers": [{
    "type": "payment_initiation",
    "constraints": [
      {"pred": "eq", "ptr": "/instructedAmount/currency",
       "value": "EUR"},
      {"pred": "max", "ptr": "/instructedAmount/amount",
       "value": "100000.00"}
    ]
  }],
  "max_depth": 1,
  "tf": "https://tf.example/finance"
}
]]></sourcecode></figure>

<t>Root Mandate Assertion to the treasury agent:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "iss": "https://mandates.treasury.example",
  "sub": "spiffe://treasury.example/agents/payments-7",
  "jti": "ma-90b2",
  "iat": 1792886400,
  "nbf": 1792886400,
  "exp": 1795478400,
  "cnf": {"jkt": "..."},
  "principal": {"id": "J40/0000/2020", "scheme": "urn:example:reg"},
  "delegator": {"id": "p-41f9", "scheme": "urn:example:pairwise"},
  "authority": [{"dig": "...", "iss": "https://register.example"}],
  "perms": [{
    "type": "payment_initiation",
    "actions": ["initiate"],
    "locations": ["https://bank.example/payments"],
    "constraints": [
      {"pred": "eq", "ptr": "/instructedAmount/currency",
       "value": "EUR"},
      {"pred": "max", "ptr": "/instructedAmount/amount",
       "value": "20000.00"},
      {"pred": "in", "ptr": "/creditorAccount/iban",
       "value": ["RO49AAAA1B31007593840000",
                 "DE89370400440532013000"]},
      {"pred": "sum_max", "ptr": "/instructedAmount/amount",
       "value": "50000.00", "period": 2592000,
       "budget": "monthly-out"},
      {"pred": "cosign_above", "ptr": "/instructedAmount/amount",
       "value": "10000.00"}
    ]
  }],
  "max_depth": 1,
  "aud": ["https://bank.example"],
  "tf": "https://tf.example/finance",
  "loa": "substantial"
}
]]></sourcecode></figure>

<t>Protected header of the sub-delegated mandate, carrying the treasury
agent's public key:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "typ": "mandate+jwt",
  "alg": "EdDSA",
  "jwk": {"kty": "OKP", "crv": "Ed25519", "x": "..."}
}
]]></sourcecode></figure>

<t>Sub-delegated Mandate Assertion to the reconciliation agent:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "iss": "spiffe://treasury.example/agents/payments-7",
  "sub": "spiffe://treasury.example/agents/reconcile-2",
  "jti": "ma-17c4",
  "iat": 1792890000,
  "nbf": 1792890000,
  "exp": 1792976400,
  "cnf": {"jkt": "..."},
  "principal": {"id": "J40/0000/2020", "scheme": "urn:example:reg"},
  "delegator": {"id": "spiffe://treasury.example/agents/payments-7",
                "scheme": "urn:example:workload"},
  "parent": {"dig": "..."},
  "perms": [{
    "type": "payment_initiation",
    "actions": ["initiate"],
    "locations": ["https://bank.example/payments"],
    "constraints": [
      {"pred": "eq", "ptr": "/instructedAmount/currency",
       "value": "EUR"},
      {"pred": "max", "ptr": "/instructedAmount/amount",
       "value": "5000.00"},
      {"pred": "eq", "ptr": "/creditorAccount/iban",
       "value": "DE89370400440532013000"},
      {"pred": "sum_max", "ptr": "/instructedAmount/amount",
       "value": "20000.00", "period": 2592000,
       "budget": "monthly-out"},
      {"pred": "cosign_above", "ptr": "/instructedAmount/amount",
       "value": "5000.00"}
    ]
  }],
  "aud": ["https://bank.example"],
  "tf": "https://tf.example/finance"
}
]]></sourcecode></figure>

<t>Requested authorization detail:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "type": "payment_initiation",
  "actions": ["initiate"],
  "locations": ["https://bank.example/payments"],
  "instructedAmount": {"currency": "EUR", "amount": "4000.00"},
  "creditorAccount": {"iban": "DE89370400440532013000"}
}
]]></sourcecode></figure>

<t>Validation Result, abbreviated. The amount does not exceed the
co-signature threshold, so the only Obligation is the shared budget:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "outcome": "valid",
  "profile": {"uri": "https://bank.example/profiles/agents/3",
              "dig": "..."},
  "anchors": {"uri": "https://bank.example/anchors/7",
              "dig": "..."},
  "time": 1792972800,
  "tf": "https://tf.example/finance",
  "chain": [{"dig": "..."}, {"dig": "..."}],
  "errors": [],
  "diagnostics": [],
  "authority": "established",
  "claims": ["..."],
  "alternatives": [{
    "perm": 0,
    "obligations": [{
      "type": "sum_max", "constraint": 3, "root": {"dig": "..."},
      "budget": "monthly-out", "period": 2592000,
      "value": "20000.00", "amount": "4000.00"
    }]
  }],
  "evidence": [],
  "rejected": [],
  "status_evidence": []
}
]]></sourcecode></figure>

<t>At authorization time A, the bank checks again that both mandates, the
Authority Assertion, and the WIT are unexpired, records 4000.00 against
budget <spanx style="verb">monthly-out</spanx> of the root mandate, identified by its digest, in
the same atomic operation, and
issues a single-use token whose <spanx style="verb">exp</spanx> is no later than 1792976400, the
<spanx style="verb">exp</spanx> of the sub-delegated mandate.</t>

</section>
<section anchor="conformance"><name>Conformance Cases</name>

<t>Each case lists the expected outcome, the errors, and, where relevant,
the diagnostics and other members of the result. Signed test vectors
exist for some of the authority cases under -00 and are planned for
every case.</t>

<texttable title="Conformance cases">
      <ttcol align='left'>Case</ttcol>
      <ttcol align='left'>Expected result</ttcol>
      <c>Valid chain with two delegations; keys in <spanx style="verb">jwk</spanx> headers</c>
      <c><spanx style="verb">valid</spanx></c>
      <c>Sub-delegated mandate without <spanx style="verb">jwk</spanx> header</c>
      <c><spanx style="verb">invalid</spanx>, <spanx style="verb">key_missing</spanx></c>
      <c>Authority Assertion under a framework not in <spanx style="verb">authority_frameworks</spanx></c>
      <c><spanx style="verb">invalid</spanx>; <spanx style="verb">framework_mismatch</spanx>, <spanx style="verb">authority_insufficient</spanx></c>
      <c>Request matching two Permissions with different <spanx style="verb">sum_max</spanx></c>
      <c><spanx style="verb">valid</spanx>; two alternatives, each with its own Obligations</c>
      <c>Valid mandate plus attestation result with a bad signature</c>
      <c><spanx style="verb">valid</spanx>; <spanx style="verb">evidence_rejected</spanx> diagnostic</c>
      <c>Child <spanx style="verb">sum_max</spanx> with <spanx style="verb">period</spanx> longer than the parent's</c>
      <c><spanx style="verb">valid</spanx>; Obligation of type <spanx style="verb">sum_max</spanx> with the child's <spanx style="verb">budget</spanx>, <spanx style="verb">period</spanx>, and <spanx style="verb">value</spanx></c>
      <c>Request whose <spanx style="verb">sum_max</spanx> pointer resolves to a negative amount, the leaf having only that Permission</c>
      <c><spanx style="verb">invalid</spanx>, <spanx style="verb">action_not_permitted</spanx>; <spanx style="verb">perm_not_matching</spanx> with <spanx style="verb">perm</spanx> 0</c>
      <c>SD-JWT Authority Assertion with <spanx style="verb">_sd</spanx> inside <spanx style="verb">powers</spanx></c>
      <c><spanx style="verb">invalid</spanx>; <spanx style="verb">malformed</spanx>, <spanx style="verb">authority_insufficient</spanx></c>
      <c>No Status List Token presented for a mandate's required status</c>
      <c><spanx style="verb">indeterminate</spanx>, <spanx style="verb">status_unavailable</spanx></c>
      <c>No Status List Token presented only for the supporting Authority Assertion</c>
      <c><spanx style="verb">indeterminate</spanx>, <spanx style="verb">status_unavailable</spanx>; <spanx style="verb">authority</spanx> is <spanx style="verb">supported_status_unresolved</spanx>; no authority error</c>
      <c>Two eligible Status List Tokens for a mandate; later one revokes</c>
      <c><spanx style="verb">invalid</spanx>, <spanx style="verb">revoked</spanx></c>
      <c>Two eligible Status List Tokens for a mandate with equal <spanx style="verb">iat</spanx> and different status</c>
      <c><spanx style="verb">indeterminate</spanx>, <spanx style="verb">status_conflict</spanx></c>
      <c>Child adds a constraint on a member the parent does not admit</c>
      <c><spanx style="verb">invalid</spanx>, <spanx style="verb">not_attenuated</spanx></c>
      <c>Root constrains a member admitted by the Type Profile but absent from <spanx style="verb">powers</spanx></c>
      <c><spanx style="verb">valid</spanx></c>
      <c>Root <spanx style="verb">max_depth</spanx> greater than the Authority Assertion's</c>
      <c><spanx style="verb">invalid</spanx>, <spanx style="verb">authority_insufficient</spanx></c>
      <c>Exposure Statement reused with a new signature nonce</c>
      <c><spanx style="verb">evidence_rejected</spanx> diagnostic</c>
      <c>Exposure Statement presented at a second RP</c>
      <c><spanx style="verb">evidence_rejected</spanx> diagnostic (<spanx style="verb">aud</spanx> mismatch)</c>
      <c>Forged Exposure Statement copying a legitimate <spanx style="verb">iss</spanx> and <spanx style="verb">jti</spanx></c>
      <c><spanx style="verb">evidence_rejected</spanx>; consumption record unchanged</c>
      <c>Authentic Exposure Statement presented with another agent's key or nonce</c>
      <c><spanx style="verb">evidence_rejected</spanx>; later legitimate presentation succeeds</c>
      <c>Accepted Exposure Statement in a presentation that is <spanx style="verb">invalid</spanx></c>
      <c><spanx style="verb">invalid</spanx>, <spanx style="verb">binding_mismatch</spanx>; request rejected; statement not consumed</c>
      <c>Accepted Exposure Statement, action later refused by RP policy</c>
      <c>statement remains consumed</c>
      <c>Two Status List Tokens with equal <spanx style="verb">iat</spanx> and status, different <spanx style="verb">exp</spanx></c>
      <c>token with later <spanx style="verb">exp</spanx> selected, regardless of input order</c>
      <c>Only an optional evidence status token too old at A</c>
      <c>evidence not relied on; RP policy reapplied; outcome unchanged</c>
      <c>Exposure Statement reused at the same RP after the first signature expired</c>
      <c>request rejected by the authorization server (consumed <spanx style="verb">jti</spanx>)</c>
      <c>Status List Token for a mandate fresh at T but older than <spanx style="verb">max_status_age</spanx> at A</c>
      <c>fresh validation at A, or <spanx style="verb">indeterminate</spanx> path</c>
      <c>Two <spanx style="verb">sum_max</spanx> with the same <spanx style="verb">budget</spanx> and different <spanx style="verb">ptr</spanx> in one Permission</c>
      <c><spanx style="verb">invalid</spanx>, <spanx style="verb">malformed</spanx></c>
      <c>Validation Profile with a schema lacking <spanx style="verb">$schema</spanx> 2020-12</c>
      <c>profile refused; no validation</c>
      <c>Chain without a reachable root</c>
      <c><spanx style="verb">invalid</spanx>, <spanx style="verb">chain_broken</spanx>; <spanx style="verb">authority</spanx> is <spanx style="verb">not_evaluated</spanx></c>
      <c>Mandate in the chain with an invalid signature</c>
      <c><spanx style="verb">invalid</spanx>, <spanx style="verb">signature_invalid</spanx> on that mandate; its claims and those of every mandate below it omitted</c>
      <c>Status issuer of a mandate accepted only under another framework</c>
      <c><spanx style="verb">indeterminate</spanx>, <spanx style="verb">status_untrusted</spanx></c>
      <c>Status value 0x03 for a mandate with no mapping in <spanx style="verb">status_values</spanx></c>
      <c><spanx style="verb">indeterminate</spanx>, <spanx style="verb">status_unrecognized</spanx></c>
      <c>Two requests validated at the same T, both within budget alone</c>
      <c>second denied at authorization time A</c>
      <c>Token used after the sub-delegated mandate's <spanx style="verb">exp</spanx></c>
      <c>rejected at the resource server</c>
      <c>Root <spanx style="verb">perms</spanx> broader than the referenced assertion's <spanx style="verb">powers</spanx></c>
      <c><spanx style="verb">invalid</spanx>, <spanx style="verb">authority_insufficient</spanx>; <spanx style="verb">alternatives</spanx> empty</c>
      <c>Root references one Authority Assertion that is not presented</c>
      <c><spanx style="verb">invalid</spanx>, <spanx style="verb">authority_missing</spanx>; <spanx style="verb">authority_not_presented</spanx> diagnostic</c>
      <c>Root references one Authority Assertion that is past its <spanx style="verb">exp</spanx></c>
      <c><spanx style="verb">invalid</spanx>; <spanx style="verb">expired</spanx>, <spanx style="verb">authority_insufficient</spanx></c>
      <c>Root references two Authority Assertions, one established and one not presented</c>
      <c><spanx style="verb">valid</spanx>; <spanx style="verb">authority_not_presented</spanx> diagnostic</c>
      <c>Root references two Authority Assertions, one established and one expired</c>
      <c><spanx style="verb">valid</spanx>; <spanx style="verb">expired</spanx> diagnostic</c>
      <c>Only Status List Token for a mandate older than <spanx style="verb">max_status_age</spanx></c>
      <c><spanx style="verb">indeterminate</spanx>, <spanx style="verb">status_stale</spanx></c>
      <c>Only Status List Token for a mandate issued after T + <spanx style="verb">max_clock_skew</spanx></c>
      <c><spanx style="verb">indeterminate</spanx>, <spanx style="verb">status_stale</spanx></c>
      <c>Only Status List Token for a mandate both from an issuer not accepted and too old</c>
      <c><spanx style="verb">indeterminate</spanx>, <spanx style="verb">status_untrusted</spanx></c>
      <c><spanx style="verb">sum_max</spanx> with <spanx style="verb">period</spanx> above the framework's <spanx style="verb">max_period</spanx></c>
      <c><spanx style="verb">invalid</spanx>, <spanx style="verb">lifetime_exceeded</spanx></c>
      <c>Sub-delegated mandate whose <spanx style="verb">principal</spanx> differs from the parent's</c>
      <c><spanx style="verb">invalid</spanx>, <spanx style="verb">chain_inconsistent</spanx></c>
      <c>Sub-delegated mandate whose <spanx style="verb">exp</spanx> is later than the parent's</c>
      <c><spanx style="verb">invalid</spanx>, <spanx style="verb">chain_inconsistent</spanx></c>
      <c>Root with <spanx style="verb">delegator</spanx> equal to <spanx style="verb">principal</spanx> under a scheme not in <spanx style="verb">self_schemes</spanx></c>
      <c><spanx style="verb">invalid</spanx>, <spanx style="verb">self_not_permitted</spanx>; <spanx style="verb">authority</spanx> is <spanx style="verb">self</spanx></c>
      <c>Root with <spanx style="verb">delegator</spanx> equal to <spanx style="verb">principal</spanx> that carries <spanx style="verb">authority</spanx></c>
      <c><spanx style="verb">invalid</spanx>, <spanx style="verb">malformed</spanx>; <spanx style="verb">authority</spanx> is <spanx style="verb">not_evaluated</spanx></c>
      <c>Root <spanx style="verb">tf</spanx> without an entry in <spanx style="verb">frameworks</spanx></c>
      <c><spanx style="verb">invalid</spanx>, <spanx style="verb">framework_not_accepted</spanx> only; <spanx style="verb">authority</spanx> is <spanx style="verb">not_evaluated</spanx>; <spanx style="verb">claims</spanx> empty</c>
      <c>Request whose <spanx style="verb">type</spanx> has no Type Profile</c>
      <c><spanx style="verb">invalid</spanx>, <spanx style="verb">action_not_permitted</spanx>; <spanx style="verb">perm_not_matching</spanx> for each Permission</c>
      <c>Request that fails its Type Profile schema</c>
      <c><spanx style="verb">invalid</spanx>, <spanx style="verb">request_malformed</spanx>; no <spanx style="verb">perm_not_matching</spanx></c>
</texttable>

</section>
<section anchor="related"><name>Relationship to Other Work</name>

<dl newline="true">
  <dt><xref target="RFC8693"/>, RFC:</dt>
  <dd>
    <t>Overlap: token exchange across domains, subject and actor. Reused as
transport; this document adds a mandate token type and evidence of the
delegator's authority.</t>
  </dd>
  <dt><xref target="RFC9396"/>, RFC:</dt>
  <dd>
    <t>Overlap: fine-grained authorization details. Reused for Permissions; this
document adds predicates, Type Profiles, and matching rules.</t>
  </dd>
  <dt><xref target="I-D.ietf-wimse-aims"/>, WG draft:</dt>
  <dd>
    <t>Overlap: applying existing standards to agents. Complementary; this
document addresses acceptance of mandates across domains.</t>
  </dd>
  <dt><xref target="I-D.asor-wimse-agent-delegation-chain"/>, individual draft:</dt>
  <dd>
    <t>Overlap: attenuated delegation chain, RAR, hash-linked parents, typed
constraints, deterministic verification. Its verification shows that
no hop exceeded the root, and it states that it cannot show that the
root was right; this document supplies evidence for the root. The
correspondence between the two constraint vocabularies is given
below.</t>
  </dd>
  <dt><xref target="I-D.sweeney-wimse-credential-delegation"/>, individual draft:</dt>
  <dd>
    <t>Overlap: delegation of credentials to agents, with constraint
ceilings shared with the asor chain. Complementary; this document
adds evidence of the delegator's authority.</t>
  </dd>
  <dt><xref target="I-D.hamr-oauth-agent-delegation"/>, individual draft:</dt>
  <dd>
    <t>Overlap: delegation chain in HTTP Message Signatures, independent
attestations. Different transport; this document adds evidence of the
delegator's authority.</t>
  </dd>
  <dt><xref target="I-D.reece-wimse-cross-org-delegation"/>, individual draft:</dt>
  <dd>
    <t>Overlap: requirements for cross-organization delegation. This document
proposes a mechanism for several of its requirements.</t>
  </dd>
  <dt><xref target="I-D.yossif-agent-mandate-problem"/>, individual draft:</dt>
  <dd>
    <t>Overlap: problem statement for verifiable mandates. This document
proposes a mechanism for binding actions to signed limits.</t>
  </dd>
  <dt><xref target="I-D.tanase-ain-authoritative-resolution"/>, individual draft:</dt>
  <dd>
    <t>Overlap: resolution of an agent's authority and state to competent
sources, and evidence at decision time. Complementary: there evidence
is resolved from sources, here the agent presents it. Resolution is
one way a Trust Framework could supply the Trust Anchor Set. The
status codes of step 7 keep apart the unavailable, stale, and
conflicting status evidence that its Section 10.9 distinguishes;
the value <spanx style="verb">not_evaluated</spanx> of <spanx style="verb">authority</spanx> reports a check skipped for
a failed prerequisite.</t>
  </dd>
  <dt><xref target="I-D.wadkins-agentproto-action-determinability"/> and <xref target="I-D.konda-agentproto-evaluation-state"/>, individual drafts:</dt>
  <dd>
    <t>Overlap: determining afterwards what an action relied on, and
keeping evaluation state that could not be established apart from a
negative finding. The Validation Result fixes the Validation Profile
and the issuer it names, the Trust Anchor Set, the mandates in the chain, and the
evidence it relied on or rejected, by digest; it reports how fresh
the selected status evidence was, and keeps unresolved status apart
from revocation. The first of these documents states four
requirements: DET-1 (action and transition binding), DET-2
(decision-time binding), DET-3 (independent retrospective
determination), and DET-4 (negative, transferred, and incomplete
transitions). This addresses the part of DET-2 that concerns
validation at T. It does not yet define the record of the
authorization decision, a binding of that record outside the RP's
control, or the retention of the referenced bytes, which the rest of
DET-2 and DET-3 need. On DET-1, the retained result does not yet
identify the request that was matched or the RP that decided; that
comes with the decision record. On the completeness clause of DET-4,
<spanx style="verb">authority_not_presented</spanx> reports every referenced Authority
Assertion that was not presented.</t>
  </dd>
  <dt><xref target="OIDF-AGENTIC"/> and <xref target="COSAI-AIAM"/>, industry papers:</dt>
  <dd>
    <t>Overlap: agent identity, delegation, cross-domain trust. This document
gives concrete formats and validation for one part of that space.</t>
  </dd>
</dl>

<t>The common thread in the chain proposals is that verification proves
the chain narrows from its root and treats the root issuer's authority
as given. This document's distinct contribution is the evidence for
that root: who the delegator is, what powers an Authority Source
attests, and how a Validator checks the root against those powers under
an explicit Validation Profile.</t>

<t>The chain mechanics in <xref target="chain"/> overlap with
<xref target="I-D.asor-wimse-agent-delegation-chain"/>. The intended direction is to
carry the chain in that format and keep this document's scope to
Authority Assertions, attribution, the Validation Profile, the
Validation Result, and the trust framework boundary. This revision keeps its own chain and
predicates because three predicates have no counterpart among the asor
constraint types today. The author of the asor draft has indicated that
its constraint type registry could take two types defined by this
document: decimal amounts located by JSON Pointer, and a per-period
measurement scope. <spanx style="verb">cosign_above</spanx> would remain a requirement on the
RP, outside the chain algorithm. The predicates of
this document correspond to the asor types as follows:</t>

<dl>
  <dt><spanx style="verb">eq</spanx> and <spanx style="verb">in</spanx>:</dt>
  <dd>
    <t>Correspond to <spanx style="verb">one_of</spanx>, with a single element for <spanx style="verb">eq</spanx>. Values are
compared by the identity in <xref target="json-identity"/>.</t>
  </dd>
  <dt><spanx style="verb">max</spanx> and <spanx style="verb">min</spanx>:</dt>
  <dd>
    <t>Correspond to the per-action <spanx style="verb">max</spanx> and <spanx style="verb">min</spanx>. This document compares
decimal strings exactly and does not allow JSON numbers for amounts;
the asor types compare JSON numbers.</t>
  </dd>
  <dt><spanx style="verb">window</spanx>:</dt>
  <dd>
    <t>No counterpart. The asor chain bounds time through token validity.</t>
  </dd>
  <dt><spanx style="verb">sum_max</spanx>:</dt>
  <dd>
    <t>No counterpart. It bounds a total over a period, such as a monthly
limit; the asor <spanx style="verb">max_lifetime</spanx> bounds a total per token, and
<spanx style="verb">max_subtree</spanx> a total per subtree.</t>
  </dd>
  <dt><spanx style="verb">cosign_above</spanx>:</dt>
  <dd>
    <t>No counterpart. It produces an Obligation that the RP discharges,
not a permit or a denial.</t>
  </dd>
  <dt>The constrained value:</dt>
  <dd>
    <t>A <spanx style="verb">ptr</spanx> here is a JSON Pointer resolved in the request; an asor
<spanx style="verb">key</spanx> names the constrained dimension.</t>
  </dd>
</dl>

<t>The asor types <spanx style="verb">not_one_of</spanx>, <spanx style="verb">prefix</spanx>, and <spanx style="verb">rank</spanx> have no counterpart
here.</t>

</section>
<section anchor="open-issues"><name>Open Issues</name>

<t><list style="symbols">
  <t>Carrying the chain in the format of
<xref target="I-D.asor-wimse-agent-delegation-chain"/>, intended for the next
revision: an
amount type and a per-period type defined here and registered in its
constraint type registry, <spanx style="verb">cosign_above</spanx> kept as a requirement on the
RP outside the chain constraints, and a decision on <spanx style="verb">window</spanx>.</t>
  <t>The record of the authorization decision, its binding outside the
RP's control, and the retention of the bytes that Validation Results
reference, planned for the next revision.</t>
  <t>Fixing in the Validation Result the set of Status List Tokens
presented, not only the one selected, so that an unresolved status
can be checked afterwards.</t>
  <t>Whether <spanx style="verb">claims</spanx> should report the powers of an authenticated
Authority Assertion that does not support the root, so that the RP
sees what produced <spanx style="verb">authority_insufficient</spanx>.</t>
  <t>A CBOR/CWT encoding.</t>
  <t>Presentation outside OAuth Token Exchange.</t>
  <t>Shared budget accounting across RPs.</t>
  <t>Cumulative limits on a delegator's authority across root mandates,
for example a budget identifier issued by the Authority Source.</t>
  <t>Several actions in one request or token, with atomic reservation for
the whole batch.</t>
  <t>A predicate for refunds and reversals.</t>
  <t>Signed test vectors for every conformance case.</t>
  <t>A human-readable rendering of mandates for delegator consent.</t>
</list></t>

</section>
<section numbered="false" anchor="changes-from-00"><name>Changes from -00</name>

<t><list style="symbols">
  <t>Validation Result: <spanx style="verb">anchors</spanx> fixes the Trust Anchor Set by URI and
digest; <spanx style="verb">status_evidence</spanx> and the claims of supporting Authority
Assertions carry <spanx style="verb">iat</spanx> and <spanx style="verb">exp</spanx>; every entry in <spanx style="verb">errors</spanx> and
<spanx style="verb">diagnostics</spanx> has a defined form; references carry only <spanx style="verb">dig</spanx>;
<spanx style="verb">alternatives</spanx> is empty when the outcome is <spanx style="verb">invalid</spanx>; numbers are
compared by value.</t>
  <t>Trust Anchor Set: defined as a JSON document. Anchors list issuer
identifiers, and "verifies under an anchor" is defined once.</t>
  <t>Validation Profile: <spanx style="verb">iss</spanx> added, with an optional detached signature;
<spanx style="verb">max_lifetime</spanx> renamed <spanx style="verb">max_validity</spanx> and keyed by <spanx style="verb">typ</spanx>, to avoid a
clash with the asor constraint type of the same name; <spanx style="verb">max_period</spanx>
moved out of it into a member of its own; <spanx style="verb">self_schemes</spanx> added; Type
Profile members named.</t>
  <t>Status: <spanx style="verb">status_unavailable</spanx> now means only that no token for the
list was presented. <spanx style="verb">status_untrusted</spanx>, <spanx style="verb">status_stale</spanx>,
<spanx style="verb">status_conflict</spanx>, and <spanx style="verb">status_unrecognized</spanx> report the other cases
that -00 reported as <spanx style="verb">status_unavailable</spanx>, with the same outcome.</t>
  <t>Authority check: the references in <spanx style="verb">authority</spanx> are alternatives;
codes of other referenced assertions become diagnostics when
authority is established; <spanx style="verb">authority_not_presented</spanx> lists each
reference not presented; <spanx style="verb">self</spanx> is restricted by <spanx style="verb">self_schemes</spanx>; the
value <spanx style="verb">unknown</spanx> is renamed <spanx style="verb">supported_status_unresolved</spanx>.</t>
  <t>Procedure: step 2 checks the content rules of <xref target="mandate"/> and
<xref target="authority"/>; step 8 checks every condition of <xref target="chain"/>, with the
new code <spanx style="verb">chain_inconsistent</spanx>; skipped steps and requests of unlisted
types are defined; the outcome follows the effect of each code.</t>
  <t>Constraints: the <spanx style="verb">value</spanx> type of each predicate is fixed; a <spanx style="verb">value</spanx>
of another type is <spanx style="verb">malformed</spanx>; a <spanx style="verb">sum_max</spanx> <spanx style="verb">period</spanx> above
<spanx style="verb">max_period</spanx> is <spanx style="verb">lifetime_exceeded</spanx>.</t>
  <t>Authorization: the checks at A and the access token's <spanx style="verb">exp</spanx> also
respect the WIT's <spanx style="verb">exp</spanx>; an RP that cannot discharge a <spanx style="verb">sum_max</spanx>
Obligation denies; a <spanx style="verb">cosign_above</spanx> Obligation appears only above
its threshold.</t>
  <t>Procedure, further: <spanx style="verb">chain_too_long</spanx> means no root is reached; when
no accepted framework context exists, optional evidence is rejected;
artifacts in <spanx style="verb">mandate_evidence</spanx> that are neither in the chain nor
referenced are ignored; <spanx style="verb">pop_failed</spanx> is recorded even without a WIT;
the WIT requires <spanx style="verb">iat</spanx>; step 4 names the <spanx style="verb">verifier</spanx> anchor and the
order of checks for a sub-delegated mandate; step 7 checks the
token's <spanx style="verb">typ</spanx>, <spanx style="verb">sub</spanx>, and list entry; SD-JWT disclosures are ignored;
the claims of a sub-delegated mandate need every ancestor verified.</t>
  <t>Budgets are keyed by a reference to the root mandate, not its <spanx style="verb">jti</spanx>.</t>
  <t>Registry of validation codes: "Recorded as", "Effect as error", and
members per code.</t>
  <t>Conformance cases corrected and extended.</t>
</list></t>

</section>
<section numbered="false" anchor="acknowledgments"><name>Acknowledgments</name>

<t>Douglas Wadkins asked that the evidence a decision relied on, and its
freshness, be determinable afterwards. J S He found the gaps in the
authority check, proposed the authority cases in <xref target="conformance"/>, and
published the first signed vectors for this document. Kieran Sweeney
pointed out the clash of <spanx style="verb">max_lifetime</spanx> with the asor constraint type.
Girish Konda and Elena Tanase asked that missing, stale, and
conflicting status be reported apart. Rafael Asor indicated that the
constraint type registry of his draft could take the decimal amount
and per-period types defined here.</t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA+y97XLc2JE2+B9XgWXPhqR2FUVK6laLtOcdmlLb9HS3tKTa
HRMTDhVYBZKwioUygBJFS/K1vNeyV7aZT2aekwdAUWqvN/bdiO2YsaQq1MH5
yJPf+eR0Os26qluWB/mfy6a6qIrzZZn/WKwWRVe2+UXd5EeX5apr86N5V60u
6Y+mbulfi+tqVbVdU3TVuzJ/Xl8X1arNivPzpnx3IL8Jw2SLer4qrukdi6a4
6KZXm2VZTG+q67acFvzk9FqenO7tZ3P687Jubg/ytltk1bo5yLtm03aP9vae
7T3KiqYsDvKzcr5pqu42u6mbt5dNvVkf5L/QX5d1schPFjQkfZlXq/zHzbKr
8rPbtiuv8xerd1VTr655Pdnb8pZ+vDjI8ml+dJJjHi3/Y1Euy0taVr3if+nM
+K/Fpruqm+rv4buio8V18k/6c7V4UyzrFS3zlta8rg7y/+7q+SRv66ZryouW
/nZ7zX/5S5bJWPzyLKf/LjbLpezQ8bLYLKpN/kfeI3xXN5fFSt96kP++oY2e
F+v87PQHfD2nldLHm/kVbU3byWf1ZtXxFp7SuawqGaekI1oe5HN5wS4O4T/O
dbjdps6yVd1c4zxpXvnp98ffPtvb178+/Wb/m/jXZ/bXbx9/Z3/9bm9P//rd
t88e21+fPrKfPXv87Fv765NHNu6zbx7bz5493Q+f6otPps93q7K7UFq50ROe
zpty0Y48cNV162lbXa6KbtOUyQM17/iUT2vTTpdEufztn85e/jQ9O/7jix+P
pscvT18cYKP0Puzwt/nZ/Io2jig6/7FcVEX++nZd4lo8L9t5U53zncCDz+v5
BpQ1yZ8zleeP9h7tTfcf7ciYRXNZdgc5z7A9ePjwr229mrYYe5cO+CEuxkP9
if92Oq+bEkMEksF/U6aLg9zNEV8wrR7wqx9N977trfDPRz+cPD96ffLyp63r
zP9cLKuFktpR/ud6XpxvlkVziyWf0UWc084WS/dcXl/gLf/iZb8LL/hnF59V
q4seQT959szo9dn+t48CZT5+MkJMRTO/GvuY/neMNtedfVrQhU+4W+QoU7ql
1coevCquGyXM/oP2SFOW81IHA+ed0spHnrulr6qLHjddNzVx82t7pr0py1V5
G0YrwSeL5chwxMwKrHU1Va7XYR+nxGLq5cY/elMs3hLrl1fTG7t6Wsyx1kXZ
lQ2JieK8WjKT0h+8rWl2/vGSznoj28P3E4f1gij17FFKp6flJdEiaO7+i58f
8EE/ebi//91jJsHuqsxfbJp6XRar/FXRLKuCb2NOW2FfHxNXnFfLnL9Y8L3t
D/hTnT/b3yNy3H+SF23e0KY0izZnHn9OLOOKf5O853l1SRuzjBLn+4YGZzY1
Tv7lppkuy/e7JQ9Q0B8Py2X1kN7zMKzlYf3X7QS/bYG2sv4+/Lyy+xOuxpPp
3pPp/j59ePzy7OhkenRy9GO6zZDd1Twuit9wNJ+XJPZJotPB8XsnrC+0vHX7
u3vjq725udmd13SPeYfpKrYstMuiws0vViueNMZqH87rtqimm9W7sloqKVXz
aaUzmNIMpq2KfCbBku/m9KJeLusbOpTpVXV5xdR+US1LerDledEw3bRpi/mU
Vv3tw+2bemxTFB6HSbJGcP+4pg16kG7ft9O9xzQgffjy5Pn306M/vPjp9clx
uoFh4+JuRUWKNvboZHy/6MxW1WJ3VXYPV+XN9Oaq6sp1sS6baVfM3y5LWlGl
NzzsDPGT5bJcXZbtHSt8SQOfPM+/pw13LDWs6Zvp/l6WTaek0JyzRjfvsuz1
VdXmCxVppBJdVCtSB6/qm7yge7G85auwLhpRskjnyYtUIVxAIcyUi9NPmS6V
L+U0jbLJaX3zKxqurS+6G9JdRAWb0IDz5Qb3kyj46CTTj2laoo8W+bqhZ6o1
XTx6ebGqaexG37ibn9BjC5oIPYKZEG/jNWS0nvId79u8tHuifK9u7rWm3LEu
RVNiNiTn1tTXPI/wddbWm4aGKM7rTadrWDObE6LDuPTvlgVjkyshXDbFqlPu
kdkuXBe3NoMy72rVQCf523Ld5S2dfMNfYAI8aJxTd1V0md/PG2JWeEW52KWT
K+PBtetyTkp9b/9FLOY3VUdzb+iJlk5UD3mRL6vrqstaEqpMrTShIjdOzts6
z6Nopl/X83LBF2bR0Gav8nNmF3n5fr2sSDHN0kf5eoKbbFliQlj32ixRuGkS
NFH6ywTPku5N2tfGNJDyXUlKipHbgrXc6pp3lXeczmZDFMJvbmqaAm8gMfi2
bPjRioirIWVYqKtkTjU3Tm87RlpK2WRd/bbkxdGloxs3wYD81DkuFr3/vOxY
xtKHRG0QbvN6iccKMWKyCxMQTKi04A1xK9FjfinP89f8Atrxl0e08vzR7p58
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
0KL5A7E9vfPsfAEA

-->

</rfc>

