<?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.31 (Ruby 3.3.12) -->


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

]>


<rfc ipr="trust200902" docName="draft-gamb-uma4agents-policy-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="Owner Policy for Agents">Owner Policy, Assurance and Attention for User-Managed Access (UMA) 2.0</title>

    <author initials="N." surname="Gamb" fullname="Nick Gamb">
      <organization>MindGarden LLC</organization>
      <address>
        <email>nickgamb@gmail.com</email>
      </address>
    </author>
    <author initials="E." surname="Maler" fullname="Eve Maler">
      <organization>Venn Factory</organization>
      <address>
      </address>
    </author>

    <date year="2026" month="September" day="11"/>

    <area>Security</area>
    
    <keyword>UMA</keyword> <keyword>authorization</keyword> <keyword>policy</keyword> <keyword>assurance</keyword> <keyword>agents</keyword>

    <abstract>


<?line 102?>

<t>This document specifies what a resource owner's policy over autonomous agents
may say, what may be known about an agent before the owner has met it, and how
the owner's attention is defended.</t>

<t>Its central rule is an asymmetry: evidence supplied by the requesting side may
only tighten a requirement, and only the owner's own prior decisions may relax
one. Agent assurance is decomposed into three independent axes with no composite
score. The owner's pending queue has a depth limit, in two lanes, so that a party
who can mint keys for free cannot make "the owner decides" into a denial of
service. And the owner's record of what was promised, decided and done names the
counterparty on every row it honestly can.</t>



    </abstract>



  </front>

  <middle>


<?line 116?>

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

<t><xref target="UMAGrant"/> lets a resource owner's authorization server decide on her behalf
and says nothing about what the policy it decides from may contain. That was the
right silence for a specification meant to be profiled, and this document is
one such profile.</t>

<t>The policy an owner writes over agents differs from the policy an administrator
writes over users in one respect that changes everything: the party being
decided about supplies most of the evidence. An agent presents its own key, its
own operator's name, its own credential from its own issuer. A rule that widens
access when that evidence looks good is a rule the agent can satisfy by
producing the evidence. This document exists mainly to say, once and
structurally, that such a rule must not be storable.</t>

<section anchor="relationship-to-the-set"><name>Relationship to the Set</name>

<t>This document is an <bcp14>OPTIONAL</bcp14> extension of <xref target="U4ACore"/> and depends on
<xref target="U4ATerms"/>. Its identifying URI is <spanx style="verb">https://u4a.ai/spec/policy/1.0</spanx>.</t>

</section>
<section anchor="notational-conventions"><name>Notational Conventions</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?>

</section>
</section>
<section anchor="shape"><name>The Shape of a Policy</name>

<t>An owner's policy is written against resources, not against agents. Each policy
unit <bcp14>MUST</bcp14> name the resources it covers, <bcp14>MUST</bcp14> name the terms proffered for them
(see <xref target="U4ATerms"/>), <bcp14>MUST</bcp14> state whether the owner is asked before access is
granted, and <bcp14>MAY</bcp14> carry rules.</t>

<t>A resource <bcp14>MUST</bcp14> belong to exactly one policy unit. A resource that belongs to
none is ungoverned, and an authorization server <bcp14>MUST</bcp14> refuse access to an
ungoverned resource rather than apply a default.</t>

<t>A rule is a list of conditions and an effect. The conditions of one rule are
conjoined; the rules of one unit are disjoined; and an implementation <bcp14>MUST NOT</bcp14>
offer negation, nesting, or expressions. This is a small, legible document, not
a policy language: the owner reads it, and a policy she cannot read is a policy
she did not write.</t>

<figure title="Rules on one policy unit."><sourcecode type="json"><![CDATA[
{
  "ask_me": false,
  "rules": [
    {"when": ["assurance.accountability_below:1"], "then": "ask"},
    {"when": ["standing.age_above:90d", "standing.never_revoked"],
     "then": "auto"}
  ]
}
]]></sourcecode></figure>

<t>The effects are <spanx style="verb">auto</spanx>, <spanx style="verb">ask</spanx> and <spanx style="verb">refuse</spanx>, in increasing order of strictness.
<spanx style="verb">ask_me</spanx> is the unit's baseline: <spanx style="verb">ask</spanx> where true, <spanx style="verb">auto</spanx> where false.</t>

</section>
<section anchor="asymmetry"><name>The Asymmetry</name>

<t>Every condition a rule may name is classed as either <em>relaxing</em> or <em>observed</em>.</t>

<t>A relaxing condition is a fact that traces to a decision the owner personally
made about this agent, or to a check the owner's authority ran on the owner's
own published material. An observed condition is anything else: what the
requesting side presented, what its operator published, what this server did
automatically, and what the owner did in aggregate.</t>

<t><strong>A rule whose effect is <spanx style="verb">auto</spanx> <bcp14>MUST</bcp14> name only relaxing conditions.</strong> An
authorization server <bcp14>MUST</bcp14> refuse to store a rule that would relax a requirement
on an observed condition, and <bcp14>MUST</bcp14> refuse it at the moment the owner attempts to
save it rather than storing it and ignoring it at evaluation time.</t>

<t>Enforcing this where policy is stored, rather than where it is evaluated, is the
difference between a deployment that cannot express the mistake and one that
believes it has a control it does not have.</t>

<section anchor="relaxing"><name>What May Relax</name>

<t>An implementation <bcp14>MUST NOT</bcp14> class any condition as relaxing unless it is one of
the following kinds, and <bcp14>MUST</bcp14> class every one of the following as relaxing if it
offers it:</t>

<t><list style="symbols">
  <t>the owner personally approved access for this agent at this policy unit;</t>
  <t>the owner has never revoked this agent;</t>
  <t>the owner's relationship with this agent is older than a stated duration;</t>
  <t>the agent is one the owner activated herself, as <xref target="first-party"/>.</t>
</list></t>

<t>"The owner has previously granted here" is not on the list, and the distinction
is the point. A grant this server made may have been automatic, and relaxing on
it lets one automatic grant justify the next. What may safely relax is what the
owner herself decided. An implementation <bcp14>MUST</bcp14> keep the record of grants it made
and the record of approvals the owner gave apart, and <bcp14>MUST NOT</bcp14> write an approval
where the decision was taken by someone acting for her (see <xref target="U4AMultiParty"/>).</t>

</section>
<section anchor="tightening"><name>What May Only Tighten</name>

<t>Every other condition may appear only in a rule whose effect is <spanx style="verb">ask</spanx> or
<spanx style="verb">refuse</spanx>. This includes, without limit:</t>

<t><list style="symbols">
  <t>the agent's assurance on any axis of <xref target="assurance"/>;</t>
  <t>the absence of a stated reason or cited mission in the agreement
(<xref target="U4ATerms"/>);</t>
  <t>what this server has recently done regarding the agent: how many times the
owner has denied it, how many policy units it has asked at, how many calls it
has made;</t>
  <t>that the agent was introduced by another agent (<xref target="U4ALineage"/>).</t>
</list></t>

<t>A rule that tightens on the owner's own aggregate conduct — "she has denied this
agent four times" — reads the owner's decisions and is still observed rather
than relaxing, because "she has denied you repeatedly, so grant automatically"
is not a sentence anyone should be able to save.</t>

</section>
<section anchor="evaluation"><name>Evaluation Order</name>

<t>An authorization server <bcp14>MUST</bcp14> evaluate a policy unit's rules in two passes: first
every rule whose effect is <spanx style="verb">auto</spanx>, then every rule whose effect is stricter than
the running result. A restriction that matches <bcp14>MUST</bcp14> win over a relaxation that
also matched, whatever order the rules were written in.</t>

<t>A rule that cannot be evaluated — because a fact it names is absent or
malformed — <bcp14>MUST</bcp14> be treated as matching if its effect is <spanx style="verb">ask</spanx> or <spanx style="verb">refuse</spanx> and
as not matching if its effect is <spanx style="verb">auto</spanx>. Both land on more friction. The
alternative treats a broken restriction as a working one and a broken
relaxation as a refusal, and the first of those is the one an owner would not
choose.</t>

<t>An authorization server <bcp14>MUST NOT</bcp14> evaluate any rule until it has established that
the requesting agent holds a standing connection with the owner, and <bcp14>MUST</bcp14> put a
first contact to the owner regardless of what the rules would decide. No rule
skips the first question.</t>

</section>
<section anchor="vocabulary"><name>Publication</name>

<t>An authorization server <bcp14>MUST</bcp14> publish the conditions its rules may name, and for
each <bcp14>MUST</bcp14> state whether it may relax. The owner's editing surface then teaches
the rule at the moment it matters, rather than rejecting a save the owner has
already composed.</t>

</section>
</section>
<section anchor="assurance"><name>Assurance</name>

<section anchor="axes"><name>Three Axes</name>

<t>What an authorization server may know about an agent before the owner has met
it decomposes on three independent axes. An implementation <bcp14>MUST</bcp14> derive each
from a check that has run and passed, <bcp14>MUST NOT</bcp14> accept any of them from the
requesting side's own assertion, and <bcp14>MUST NOT</bcp14> combine them into a single score.</t>

<dl>
  <dt>Binding:</dt>
  <dd>
    <t>Whether the agreement's signature verified against a key this authority can
name. Level 0: no. Level 1: yes.</t>
  </dd>
  <dt>Provenance:</dt>
  <dd>
    <t>Whether the agent's credential traces to an issuer whose keys this authority
fetched. Level 0: the agent is pseudonymous. Level 1: an issuer vouched for it.</t>
  </dd>
  <dt>Accountability:</dt>
  <dd>
    <t>Whether anyone named and reachable stands behind the agent. Level 0: nobody.
Level 1: the agent named a client metadata document
<xref target="I-D.ietf-oauth-client-id-metadata-document"/> that resolved and claims its
own URL. Level 2: the operator that document names publishes, in a key
directory <xref target="I-D.meunier-webbotauth-registry"/> at the same origin, the JWK
thumbprint <xref target="RFC7638"/> of the key that signed the agreement.</t>
  </dd>
</dl>

<t>The decomposition follows the same reasoning as the separation of identity,
authentication and federation assurance in <xref target="SP800-63-3"/>: a composite is the
mechanism by which strong key binding excuses an unknown operator, which is a
trade nobody would make if asked directly.</t>

</section>
<section anchor="level-two"><name>Level 2 Is the Only Level an Agent Cannot Reach Alone</name>

<t>A metadata document proves that it claims its own URL; anyone can publish one,
so level 1 on the accountability axis is available to any agent that wants it.
Level 2 requires that the key directory be at the <em>same origin</em> as the metadata
document, so that an agent cannot point at a directory it runs itself, and it
requires the directory to hold the specific key that signed. Only the operator
can put a key there.</t>

<t>A directory that cannot be resolved <bcp14>MUST</bcp14> leave the agent at level 1, not level
0. An operator's outage is not evidence about an agent. An implementation <bcp14>MUST</bcp14>
cache a directory hit and <bcp14>MUST NOT</bcp14> cache a miss, since a stale hit merely keeps
attesting a key the operator has disowned for the cache's lifetime, and a stale
miss fails to recognise a key the operator just published for the same lifetime
— and only the first of those is bounded by something the operator controls.</t>

</section>
<section anchor="not-a-gate"><name>Assurance Is Not a Gate</name>

<t>Assurance <bcp14>MUST NOT</bcp14> decide admission. An agent at level 0 on every axis is
admitted to negotiation like any other stranger, and the owner is asked. What
assurance does is give the owner's rules something true to tighten on, and give
the attention budget of <xref target="attention"/> a lane.</t>

<t>A lie can only cost the liar friction. An agent that claims an operator it does
not belong to gains nothing, because the claim never widens anything; it loses
the attributable lane and the owner's trust.</t>

</section>
</section>
<section anchor="first-party"><name>The Owner's Own Agent</name>

<t>An agent the owner activated herself is the one case where the requesting party
and the resource owner are the same person. This document does not specify it
as a special case, because a profile that has to branch on it is telling you its
party model is wrong. Terms, grant and enforcement are byte-identical; what the
case needs is one policy condition.</t>

<t>An authorization server <bcp14>MUST</bcp14> let the owner claim an operator origin as her own,
and <bcp14>MUST</bcp14> class an agent as the owner's own only where both hold: the operator it
names is one she has claimed, and that operator's key directory publishes the
key that signed. The first half is her decision; the second is a check her
authority ran on material only the operator controls. Neither is anything the
requesting side can assert.</t>

<t>This condition <bcp14>MAY</bcp14> relax a rule (see <xref target="relaxing"/>). It <bcp14>MUST NOT</bcp14> skip first
contact, and it <bcp14>MUST NOT</bcp14> beat a restriction that also matched.</t>

<t>The owner <bcp14>MUST</bcp14> be able to disclaim an origin. Disclaiming takes effect on the
next request and revokes nothing; the claim bought friction, not access.</t>

</section>
<section anchor="attention"><name>Attention</name>

<section anchor="depth"><name>A Depth Limit, Not a Rate Limit</name>

<t>Keys are free. An unbounded pending queue turns "the owner decides" into a
denial-of-service surface, and every request in the flood is individually
well-formed. A rate limit does not express the constraint: the scarce thing is
how many questions the owner can be made to hold, not how fast they arrive.</t>

<t>An authorization server <bcp14>MUST</bcp14> bound the number of pending requests from agents
that hold no standing connection. Past the bound it <bcp14>MUST</bcp14> refuse with <spanx style="verb">429</spanx> and
<spanx style="verb">error</spanx> of <spanx style="verb">request_denied</spanx>, and <bcp14>MUST NOT</bcp14> queue. An agent that holds an active
connection <bcp14>MUST NOT</bcp14> be counted against the bound and <bcp14>MUST NOT</bcp14> be refused for it.</t>

</section>
<section anchor="lanes"><name>Two Lanes</name>

<t>The bound <bcp14>MUST</bcp14> be applied in two lanes, split on whether the agent is at level 2
on the accountability axis. Each lane has its own depth, and an implementation
<bcp14>SHOULD</bcp14> set the attributable lane deeper.</t>

<t>The agent the owner wants to admit is a stranger too on first contact. A single
queue defends continuity and leaves onboarding undefended: one anonymous flood
and the agent she is expecting cannot reach her. Two lanes let a flood of
strangers fill the lane strangers use, while an agent whose operator has
published its key still gets through. The lane boundary is level 2 because it is
the only level an agent cannot reach on its own say-so (<xref target="level-two"/>).</t>

</section>
</section>
<section anchor="operators"><name>Operators</name>

<section anchor="blocking"><name>Blocking</name>

<t>The owner <bcp14>MUST</bcp14> be able to block an operator by origin. Blocking <bcp14>MUST</bcp14> end every
active connection held by an agent of that operator and <bcp14>MUST</bcp14> invalidate the
grants under them, in one step, and <bcp14>MUST</bcp14> cause future requests naming that
operator to be refused before the owner's policy is evaluated.</t>

<t>Blocking is a restriction, so it <bcp14>MAY</bcp14> rest on the agent's own claim of its
operator: an agent that misstates its operator only refuses itself.</t>

<t>Unblocking <bcp14>MUST NOT</bcp14> restore connections that blocking ended. It restores the
right to negotiate, not the access that was withdrawn.</t>

</section>
<section anchor="block-limit"><name>The Limit</name>

<t>Blocking does not remove a party from the network. The same operator may drop
its client identifier and return as an anonymous stranger — in the
unattributable lane, with nothing standing behind it. That is the honest limit
of operator-level refusal, and it is why the lanes of <xref target="lanes"/> matter more than
the block does.</t>

</section>
</section>
<section anchor="record"><name>The Record</name>

<t>An authorization server implementing this document keeps an append-only record
of what was promised, decided, done and withdrawn, and the following are
requirements on it.</t>

<section anchor="correlation"><name>One Correlation Identifier</name>

<t>An authorization server <bcp14>MUST</bcp14> assign the identifier of a negotiation once, when
the permission ticket is first created, and <bcp14>MUST</bcp14> carry it unchanged through every
ticket rotation. The ticket is a credential for the negotiation; the negotiation
is the thing the record is about.</t>

</section>
<section anchor="refusals"><name>Refusals Are Recorded</name>

<t>An authorization server <bcp14>MUST</bcp14> record a refusal — by policy, by a blocked
operator, by the attention bound, or by the owner — with the same prominence as
a grant. A record that shows only successes is indistinguishable from a
deployment with enforcement switched off.</t>

</section>
<section anchor="counterparty"><name>The Row Names the Counterparty</name>

<t>Every entry in the record that concerns a requesting agent <bcp14>MUST</bcp14> carry that
agent's connection handle as an indexed attribute of the row, and <bcp14>MUST</bcp14> do so
for refusals and denials as well as grants. A denied negotiation issues no
token, so nothing downstream links that entry to an agent; if the row does not
carry the handle, the question owners most want answered — <em>this agent has
asked four times and I have said no four times</em> — cannot be derived from what
was stored.</t>

<t>Exactly one class of entry cannot carry a handle: a refusal by the requesting
side that arrives before it has signed anything (<xref target="U4ATerms"/>). An
authorization server <bcp14>MUST</bcp14> record such an entry without an attribution rather
than invent one.</t>

</section>
<section anchor="attribution"><name>Not the Owner's Decision</name>

<t>Where a decision was taken by someone acting for the owner, the record <bcp14>MUST</bcp14>
say who, and the decision <bcp14>MUST NOT</bcp14> be written as the owner's. This is the
requirement that keeps <xref target="relaxing"/> honest: "the owner personally approved" is
allowed to relax a rule, so a decision taken on her behalf must not produce that
fact.</t>

</section>
<section anchor="pep-reports"><name>Enforcement Point Reports Do Not Carry the Handle</name>

<t>Where an enforcement point reports an allowed call to the authorization server,
the authorization server <bcp14>MUST</bcp14> resolve the agent from the negotiation and <bcp14>MUST
NOT</bcp14> accept a handle from the report. The enforcement point is the resource
server's component; which agent did what is the owner's record and not the
resource server's to assert.</t>

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

<section anchor="the-asymmetry-is-the-security-model"><name>The Asymmetry Is the Security Model</name>

<t>Everything else in this document follows from <xref target="asymmetry"/>. A deployment that
lets an observed condition relax a rule has let the party being decided about
write the decision, and the mechanism by which it did so — a well-formed key, a
resolvable document, an operator's name — costs that party nothing.</t>

</section>
<section anchor="assurance-is-derived-never-claimed"><name>Assurance Is Derived, Never Claimed</name>

<t>An implementation that reads an assurance level from anything the requesting
side sent has reintroduced the problem <xref target="axes"/> exists to remove. Each level is
the result of a check this authority ran, and the check either ran and passed
or the level is zero.</t>

</section>
<section anchor="trajectory-reads-are-not-atomic"><name>Trajectory Reads Are Not Atomic</name>

<t>The conditions of <xref target="tightening"/> that read the owner's recent record — denials,
policy units asked at, calls made — need not be read atomically. A count that
only ever tightens is monotone inside its window: a stale read behaves as an
earlier arrival would have, and cannot widen access beyond what a differently
timed arrival would have received. The test for whether a read needs the
indivisibility of <xref target="U4ACore"/> Section 8.3 is whether staleness can widen; these
cannot.</t>

</section>
<section anchor="the-bound-is-a-depth-and-the-depth-is-small"><name>The Bound Is a Depth, and the Depth Is Small</name>

<t>An implementation <bcp14>SHOULD</bcp14> default the unattributable lane to a single-digit
depth. The cost of a bound set too low is that a legitimate stranger is told to
try later; the cost of one set too high is an owner who cannot find the request
she is waiting for.</t>

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

<section anchor="the-record-is-a-per-agent-history"><name>The Record Is a Per-Agent History</name>

<t><xref target="counterparty"/> makes the record queryable by agent, which is what the owner
needs and is also a history of one party's requests kept by another. Retention
is deployment policy. An implementation <bcp14>SHOULD</bcp14> let the owner see every entry
that names an agent, since she is the party it was kept for.</t>

</section>
<section anchor="operator-claims-are-visible-to-the-owner"><name>Operator Claims Are Visible to the Owner</name>

<t>An agent's claimed operator is shown to the owner whether or not it verifies,
with the level it reached. An implementation <bcp14>MUST</bcp14> make the difference visible —
"named" and "published this agent's key" are different sentences — because a
resolved name is exactly what an owner starts keying decisions on, and
<xref target="level-two"/> is the only level that means what it appears to.</t>

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

<t>This document makes no request of IANA. The conditions of <xref target="relaxing"/> and
<xref target="tightening"/> are described by kind rather than by name so that an
implementation may name them in its own vocabulary; <xref target="shipped-vocabulary"/>
records one such vocabulary without registering it.</t>

</section>


  </middle>

  <back>


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

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



<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="I-D.meunier-webbotauth-registry">
   <front>
      <title>Registry and Signature Agent card for Web bot auth</title>
      <author fullname="Maxime Guerreiro" initials="M." surname="Guerreiro">
         <organization>Cloudflare</organization>
      </author>
      <author fullname="Ulas Kirazci" initials="U." surname="Kirazci">
         <organization>Amazon</organization>
      </author>
      <author fullname="Thibault Meunier" initials="T." surname="Meunier">
         <organization>Cloudflare</organization>
      </author>
      <date day="26" month="June" year="2026"/>
      <abstract>
	 <t>   This document defines the &quot;Signature Agent Card&quot;, a JSON metadata
   document that a signature agent using [DIRECTORY] publishes to
   describe itself: its identity, purpose, rate expectations, and
   cryptographic keys.  Its parameters are drawn from the OAuth Dynamic
   Client Registration Metadata registry [DCR], the same namespace used
   by [CIMD], extended with a single web_bot_auth object.  This document
   registers that object with IANA and establishes a registry for its
   members.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-meunier-webbotauth-registry-03"/>
   
</reference>

<reference anchor="I-D.ietf-oauth-client-id-metadata-document">
   <front>
      <title>OAuth Client ID Metadata Document</title>
      <author fullname="Aaron Parecki" initials="A." surname="Parecki">
         <organization>Okta</organization>
      </author>
      <author fullname="Emelia Smith" initials="E." surname="Smith">
         </author>
      <date day="6" month="July" year="2026"/>
      <abstract>
	 <t>   This specification defines a mechanism through which an OAuth client
   can identify itself to authorization servers, without prior dynamic
   client registration or other existing registration.  This is through
   the usage of a URL as a client_id in an OAuth flow, where the URL
   refers to a document containing the necessary client metadata,
   enabling the authorization server to fetch the metadata about the
   client as needed.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-client-id-metadata-document-02"/>
   
</reference>

<reference anchor="UMAGrant" target="https://docs.kantarainitiative.org/uma/wg/rec-oauth-uma-grant-2.0.html">
  <front>
    <title>User-Managed Access (UMA) 2.0 Grant for OAuth 2.0 Authorization</title>
    <author initials="E." surname="Maler" fullname="Eve Maler">
      <organization></organization>
    </author>
    <author initials="M." surname="Machulak" fullname="Maciej Machulak">
      <organization></organization>
    </author>
    <author initials="J." surname="Richer" fullname="Justin Richer">
      <organization></organization>
    </author>
    <date year="2018" month="January" day="07"/>
  </front>
  <seriesInfo name="Kantara" value="Recommendation"/>
</reference>
<reference anchor="U4ACore" target="https://u4a.ai/spec/draft-gamb-uma4agents-core-00.html">
  <front>
    <title>User-Managed Access (UMA) 2.0 Profile for Autonomous Agents</title>
    <author initials="N." surname="Gamb" fullname="Nick Gamb">
      <organization></organization>
    </author>
    <author initials="E." surname="Maler" fullname="Eve Maler">
      <organization></organization>
    </author>
    <date year="2026"/>
  </front>
  <seriesInfo name="Internet-Draft" value="draft-gamb-uma4agents-core-00"/>
</reference>
<reference anchor="U4ATerms" target="https://u4a.ai/spec/draft-gamb-uma4agents-terms-00.html">
  <front>
    <title>Owner-Proffered Terms for User-Managed Access (UMA) 2.0</title>
    <author initials="N." surname="Gamb" fullname="Nick Gamb">
      <organization></organization>
    </author>
    <author initials="E." surname="Maler" fullname="Eve Maler">
      <organization></organization>
    </author>
    <date year="2026"/>
  </front>
  <seriesInfo name="Internet-Draft" value="draft-gamb-uma4agents-terms-00"/>
</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="SP800-63-3" target="https://doi.org/10.6028/NIST.SP.800-63-3">
  <front>
    <title>Digital Identity Guidelines</title>
    <author >
      <organization>National Institute of Standards and Technology</organization>
    </author>
    <date year="2017" month="June"/>
  </front>
  <seriesInfo name="NIST" value="Special Publication 800-63-3"/>
</reference>
<reference anchor="U4ALineage" target="https://u4a.ai/spec/draft-gamb-uma4agents-lineage-00.html">
  <front>
    <title>Agent Lineage for User-Managed Access (UMA) 2.0</title>
    <author initials="N." surname="Gamb" fullname="Nick Gamb">
      <organization></organization>
    </author>
    <author initials="E." surname="Maler" fullname="Eve Maler">
      <organization></organization>
    </author>
    <date year="2026"/>
  </front>
  <seriesInfo name="Internet-Draft" value="draft-gamb-uma4agents-lineage-00"/>
</reference>
<reference anchor="U4AMultiParty" target="https://u4a.ai/spec/draft-gamb-uma4agents-multiparty-00.html">
  <front>
    <title>Multi-Party Authorization for User-Managed Access (UMA) 2.0</title>
    <author initials="N." surname="Gamb" fullname="Nick Gamb">
      <organization></organization>
    </author>
    <author initials="E." surname="Maler" fullname="Eve Maler">
      <organization></organization>
    </author>
    <date year="2026"/>
  </front>
  <seriesInfo name="Internet-Draft" value="draft-gamb-uma4agents-multiparty-00"/>
</reference>
<reference anchor="U4ALAB" target="https://github.com/nickgamb/uma4agents">
  <front>
    <title>UMA for Agents: a reference implementation</title>
    <author initials="N." surname="Gamb" fullname="Nick Gamb">
      <organization></organization>
    </author>
    <author initials="E." surname="Maler" fullname="Eve Maler">
      <organization></organization>
    </author>
    <date year="2026"/>
  </front>
</reference>


<reference anchor="RFC7942">
  <front>
    <title>Improving Awareness of Running Code: The Implementation Status Section</title>
    <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
    <author fullname="A. Farrel" initials="A." surname="Farrel"/>
    <date month="July" year="2016"/>
    <abstract>
      <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
      <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="205"/>
  <seriesInfo name="RFC" value="7942"/>
  <seriesInfo name="DOI" value="10.17487/RFC7942"/>
</reference>



    </references>

</references>


<?line 509?>

<section anchor="shipped-vocabulary"><name>A Condition Vocabulary</name>

<t>This appendix is not normative. It records the vocabulary the reference
implementation <xref target="U4ALAB"/> publishes under <xref target="vocabulary"/>, as one concrete
instance of the kinds this document requires. Names are <spanx style="verb">namespace.condition</spanx>,
with an argument after a colon where the condition takes one. Durations are
written <spanx style="verb">90d</spanx>, <spanx style="verb">12h</spanx>, <spanx style="verb">45m</spanx> or as seconds.</t>

<texttable title="The reference implementation's condition vocabulary.">
      <ttcol align='left'>Condition</ttcol>
      <ttcol align='left'>Class</ttcol>
      <ttcol align='left'>Reads</ttcol>
      <c><spanx style="verb">standing.approved_at_tier</spanx></c>
      <c>relaxing</c>
      <c>the owner personally approved this agent at this unit</c>
      <c><spanx style="verb">standing.never_revoked</spanx></c>
      <c>relaxing</c>
      <c>the owner has never revoked this agent</c>
      <c><spanx style="verb">standing.age_above:D</spanx></c>
      <c>relaxing</c>
      <c>the connection is older than D</c>
      <c><spanx style="verb">standing.first_party</spanx></c>
      <c>relaxing</c>
      <c>an agent the owner activated herself</c>
      <c><spanx style="verb">standing.none</spanx></c>
      <c>observed</c>
      <c>no standing connection</c>
      <c><spanx style="verb">standing.first_at_tier</spanx></c>
      <c>observed</c>
      <c>never granted at this unit before</c>
      <c><spanx style="verb">standing.revoked_before</spanx></c>
      <c>observed</c>
      <c>the owner has revoked this agent before</c>
      <c><spanx style="verb">standing.age_below:D</spanx></c>
      <c>observed</c>
      <c>the connection is younger than D</c>
      <c><spanx style="verb">standing.denials_above:N</spanx></c>
      <c>observed</c>
      <c>recently denied more than N times</c>
      <c><spanx style="verb">standing.tiers_above:N</spanx></c>
      <c>observed</c>
      <c>recently asked at more than N units</c>
      <c><spanx style="verb">standing.calls_above:N</spanx></c>
      <c>observed</c>
      <c>recently made more than N calls</c>
      <c><spanx style="verb">standing.introduced</spanx></c>
      <c>observed</c>
      <c>introduced by another agent</c>
      <c><spanx style="verb">standing.lineage_new_at_tier</spanx></c>
      <c>observed</c>
      <c>nothing approved at this unit for this agent or the ones it works with</c>
      <c><spanx style="verb">assurance.binding_below:L</spanx></c>
      <c>observed</c>
      <c>binding axis below L</c>
      <c><spanx style="verb">assurance.provenance_below:L</spanx></c>
      <c>observed</c>
      <c>provenance axis below L</c>
      <c><spanx style="verb">assurance.accountability_below:L</spanx></c>
      <c>observed</c>
      <c>accountability axis below L</c>
      <c><spanx style="verb">request.max_expiry</spanx></c>
      <c>observed</c>
      <c>asked for the longest access the unit allows</c>
      <c><spanx style="verb">request.reason_absent</spanx></c>
      <c>observed</c>
      <c>stated no reason</c>
      <c><spanx style="verb">request.mission_absent</spanx></c>
      <c>observed</c>
      <c>cited no mandate</c>
</texttable>

</section>
<section anchor="record-kinds"><name>Record Entry Kinds</name>

<t>This appendix is not normative. The reference implementation's record holds the
following kinds of entry, each carrying the negotiation identifier of
<xref target="correlation"/> and, where <xref target="counterparty"/> permits, the agent's handle.</t>

<t><spanx style="verb">promised</spanx>, <spanx style="verb">approved</spanx>, <spanx style="verb">denied</spanx>, <spanx style="verb">connected</spanx>, <spanx style="verb">touched</spanx>, <spanx style="verb">relaxed</spanx>, <spanx style="verb">refused</spanx>,
<spanx style="verb">identity_refused</spanx>, <spanx style="verb">revoked</spanx>; <spanx style="verb">claimed</spanx>, <spanx style="verb">disclaimed</spanx> for the owner's own
operators; and the kinds defined by <xref target="U4AMultiParty"/> for organizations and
jointly held resources.</t>

</section>
<section anchor="implementation-status"><name>Implementation Status</name>

<t>This section records the status of known implementations in the sense of
<xref target="RFC7942"/>, and is to be removed before publication as an RFC.</t>

<t>The reference implementation <xref target="U4ALAB"/> implements this document in full. Its
rule engine is tested for the properties of <xref target="evaluation"/> directly, including
that the set of relaxing conditions is exactly the set the tests expect and that
every other condition is refused under <spanx style="verb">auto</spanx> at the moment of saving. The
attention bound and both lanes are exercised against a running authorization
server, as is the return of a blocked operator as an anonymous stranger.</t>

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

<t>The decomposition of <xref target="axes"/> follows <xref target="SP800-63-3"/>. The operator key directory
of <xref target="I-D.meunier-webbotauth-registry"/> and the client metadata document of
<xref target="I-D.ietf-oauth-client-id-metadata-document"/> are what make the accountability
axis derivable rather than asserted.</t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA91c6ZLbRpL+X0+Bbf2wR0FSLVnrg5pj22rZ1ljXtqSZmJhw
qEGiSMINAhwU0BSn1RP7EPsA+yz7KPskm19m1gE2W/JMxP7YcYRDTRx1ZOXx
5YXxeGy6sqvsNDt6ua1tm71qqnK+G2UnzvVtXs9tltdFdtJ1tu7Kps4WTZu9
dbYdP8/rfGnp1nxuncs+f/v85FfZg8nxkclns9Ze7o3IL54saRR3ZIpmXudr
mrRo80U3Xubr2bhf5w9zvj/e8Bvj42Mzzzu7bNrdNHNdYVw/W5fO0TK63Ybe
fvrkzXem3LTTrGt71z04Pv7m+IHJW5tPs9d23rdltzMXdrdt2mKa/ZlWOMry
vls1bfnXHLsZZRvdbu63S3/yIn4yrqOdv8urpqapdtaZTUmDdM18lLmm7Vq7
cPTXbo0/fjIy7tRk2Zj+z7KydtPsxST7nvbGF2TDL8r5RbzWtMu81rVMs+dl
XXyft4Wts2fPHvMDdp2X1TSr6S0Q6d+W+D2ZN+vhPE8m2fO8sm0y0ZNLm1wb
TvQHW9fZd/m8I8qaumnXdP3SYu1n3z3+6ssvvsafT8enk7Xt65LOemtns6bD
FsetXZauoxPRR0rbLcYN35pXJVFuXBbjte3yIu/yMR10v6aLeJrI/z2RmP/O
Ms91H+WljF9g1nl5QlPwtZP0BI94sEh8/Dc+QJTbCBOefo6n56u+yi/2XqDL
pf15/66+9vtJdlbOVzdm+T3xY1mn94gedP3B8f2vx8f3x8df8UXafGldWS8a
v/gfacN5Swx8ZumYiXYF71NolrdL202zVddt3PTePaKum1zIC2VddiWf44QO
+x5J073t8l5r53o4dGG8BDXHRMPJqltXOJKHJ4+b1v49J/KqbRZlZUWc+66p
m3XTuyDZt55GKgq3icPfd3SeoA++vIWUT+vOtrXtxqfQMrcpmzkRAKrmEIH7
h/kkL++5jZ3f++jbCUHf2HbthhRlPTgG5Ra2JaLyI79Ek/7/o2aHrf3j5PSv
Cz0xfaKcXr/6+vh4/OUX4y+G5D0tl2WXV9nTAjaq22Xf92Vhq7K2tzAkCQgR
i+UKr9Ukql3f2axZZK+h9EkHOzZ7b+x8VTdVs9wNRfir8fFtZHrx9PUbsj60
xZLGftXPyL7wTJlf/C2iXLLc3j+efHn84Ot7GGby+tUkeYl46xntiSg13D6L
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

-->

</rfc>

