<?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-owner-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="Owner API for UMA">The Resource Owner's API 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>resource owner</keyword> <keyword>personal AI</keyword> <keyword>agents</keyword>

    <abstract>


<?line 111?>

<t>This document specifies the interface a resource owner uses to operate her
own User-Managed Access (UMA) 2.0 authorization server: to answer the requests
that wait on her, to see and end her relationships with requesting agents and
with the operators behind them, to write the policy and terms her server
decides from, and to read the record of what it did.</t>

<t>UMA 2.0 leaves this surface to the deployment, which was right when the
authorization server belonged to a service she had a session with. When the
server is hers, the surface is what makes it hers: it is how a portal, a
command line, or a personal agent running on her own device acts for her, and
a surface only one vendor's portal can reach is a server only that vendor
operates.</t>



    </abstract>



  </front>

  <middle>


<?line 126?>

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

<t>Every requirement in the rest of this set is placed on the authorization
server, the enforcement point, or the requesting agent. The one party they
serve has no wire surface of her own in UMA 2.0 <xref target="UMAGrant"/>. The owner's
decisions arrive through whatever the deployment built.</t>

<t>That was adequate while the authorization server was operated by a service
the owner already had an account with. <xref target="U4ACore"/> Section 11 makes the
server the owner's choice, and <xref target="U4ACore"/> Section 10 specifies how she
authenticates to it — including with a key she holds, so that software she
runs can act for her with nobody else in the path. This document is the rest
of that: what such software can ask her server to do.</t>

<t>The reference implementation <xref target="U4ALAB"/> has three clients of this surface —
a browser portal, a command-line tool, and a personal AI holding her device
key — and one server behind them.</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"/> and <xref target="U4APolicy"/>. Its identifying URI is
<spanx style="verb">https://u4a.ai/spec/owner/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="discovery"><name>Discovery and Authentication</name>

<t>An authorization server implementing this document <bcp14>MUST</bcp14> advertise the base
URL of the owner's API in its metadata <xref target="RFC8414"/>:</t>

<dl>
  <dt>owner_endpoint:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. The URL under which the operations of this document are served.</t>
  </dd>
</dl>

<t>Every operation below is relative to <spanx style="verb">owner_endpoint</spanx>. Every operation <bcp14>MUST</bcp14>
require the owner's credential as <xref target="U4ACore"/> Section 10, and <bcp14>MUST</bcp14> act on the
owner that credential proved rather than on any owner the request names.</t>

<t>Where the credential is an <xref target="RFC9421"/> signature, the signature base is the one
<xref target="U4ACore"/> Section 6.1 specifies, with the <spanx style="verb">authorization</spanx> component covering
the empty string when no <spanx style="verb">Authorization</spanx> header is sent, and <bcp14>MUST</bcp14> cover a
<spanx style="verb">Content-Digest</spanx> <xref target="RFC9530"/> on every request that carries a body. The
operations that carry a body are the ones that decide something; a body
that can be altered under a valid signature turns an approval into a refusal
without leaving a mark.</t>

<t>Request and response bodies are JSON. An error is reported with a 4xx status
and a JSON object whose <spanx style="verb">detail</spanx> member is a sentence the owner can be shown.</t>

</section>
<section anchor="queue"><name>The Queue</name>

<section anchor="pending"><name>Listing</name>

<t><spanx style="verb">GET /pending</spanx> returns the requests waiting on the owner, as an array. Each
element <bcp14>MUST</bcp14> carry:</t>

<dl>
  <dt>family:</dt>
  <dd>
    <t>The negotiation identifier (<xref target="U4APolicy"/> Section 8.1).</t>
  </dd>
  <dt>kind:</dt>
  <dd>
    <t><spanx style="verb">connection</spanx> or <spanx style="verb">operation</spanx> (<xref target="U4ACore"/> Section 4.2).</t>
  </dd>
  <dt>tier:</dt>
  <dd>
    <t>The policy unit the request falls under.</t>
  </dd>
  <dt>purpose, prohibited:</dt>
  <dd>
    <t>From the terms the requesting side signed.</t>
  </dd>
  <dt>operation, reason, mission:</dt>
  <dd>
    <t>What the requesting side authored in its agreement, where it did
(<xref target="U4ATerms"/> Section 4.3). <spanx style="verb">reason</spanx> <bcp14>MUST</bcp14> be carried verbatim, unescaped and
unparsed; it is the one field here the counterparty wrote, and a surface
<bcp14>SHOULD</bcp14> render it as text.</t>
  </dd>
  <dt>identity:</dt>
  <dd>
    <t>The verified identity record: its level, and what was resolved about the
operator, as <xref target="U4ACore"/> Section 5.</t>
  </dd>
  <dt>assurance, assurance_notes:</dt>
  <dd>
    <t>The axes of <xref target="U4APolicy"/> Section 4.1, and one sentence per axis saying what
was checked, so that a surface has the sentence to show beside the level.</t>
  </dd>
  <dt>because:</dt>
  <dd>
    <t>The rule conditions that caused the request to wait, where a rule did.</t>
  </dd>
  <dt>handle:</dt>
  <dd>
    <t>The requesting agent's connection handle, or null before first contact.</t>
  </dd>
  <dt>organization:</dt>
  <dd>
    <t>Where a layer above the owner had a say (<xref target="U4AMultiParty"/>), what it said,
separately from her own rules.</t>
  </dd>
</dl>

</section>
<section anchor="decision"><name>Deciding</name>

<t><spanx style="verb">POST /pending/{family}/decision</spanx> with a body <spanx style="verb">{"decision": "approved"}</spanx> or
<spanx style="verb">{"decision": "denied"}</spanx> answers one request.</t>

<t>The authorization server <bcp14>MUST</bcp14> record the decision in one indivisible step that
reports whether this call was the one that decided it, as <xref target="U4ACore"/>
Section 8.3; a second answer to a decided request <bcp14>MUST</bcp14> be refused with 404.
Two portals open on the same request are two callers, and the tap that lands
second must not be recorded as a second decision.</t>

<t>Where the credential proves someone acting for the owner rather than the
owner (<xref target="U4AMultiParty"/> Section 2.7), the decision <bcp14>MUST</bcp14> be recorded as
theirs.</t>

</section>
</section>
<section anchor="relationships"><name>Relationships</name>

<section anchor="connections"><name>Agents</name>

<t><spanx style="verb">GET /connections</spanx> returns every standing connection (<xref target="U4ACore"/> Section 9),
each carrying its <spanx style="verb">handle</spanx>, <spanx style="verb">identity</spanx>, <spanx style="verb">label</spanx>, <spanx style="verb">status</spanx>, <spanx style="verb">first_seen</spanx>,
<spanx style="verb">last_access</spanx>, the policy units the owner personally approved it at, the units
it has been granted at, its revocation count, and where another agent
introduced it, that agent's handle.</t>

<t><spanx style="verb">POST /connections/{handle}/revoke</spanx> ends one. The response carries
<spanx style="verb">rpts_deactivated</spanx> — how many live grants the revocation invalidated in the
same step — and <spanx style="verb">connections_revoked</spanx>, how many connections the revoked one
had introduced and which ended with it. Both numbers are the owner's evidence
that the revocation reached everything it should have.</t>

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

<t><spanx style="verb">GET /operators</spanx> returns every operator the owner's server has met, assembled
from her connections rather than kept as a registry: each with its <spanx style="verb">origin</spanx>,
a display <spanx style="verb">name</spanx>, how many <spanx style="verb">agents</spanx> of its she has connections with and how
many are <spanx style="verb">active</spanx>, whether it is <spanx style="verb">blocked</spanx> and since when, and whether it is
<spanx style="verb">mine</spanx> — one she has claimed as her own — and since when.</t>

<t><spanx style="verb">POST /operators/block</spanx> and <spanx style="verb">POST /operators/unblock</spanx>, with a body
<spanx style="verb">{"origin": "https://…"}</spanx>, are the operations of <xref target="U4APolicy"/> Section 7. The
block response carries <spanx style="verb">connections_revoked</spanx> and <spanx style="verb">rpts_deactivated</spanx>.</t>

<t><spanx style="verb">POST /operators/claim</spanx> and <spanx style="verb">POST /operators/disclaim</spanx>, with the same body,
are the operations of <xref target="U4APolicy"/> Section 5. An origin <bcp14>MUST</bcp14> use the <spanx style="verb">https</spanx>
scheme; a claim of anything else <bcp14>MUST</bcp14> be refused.</t>

</section>
<section anchor="resource-servers"><name>Resource Servers</name>

<t><spanx style="verb">GET /resource-servers</spanx> returns every resource server that holds, or has
asked for, protection API access in the owner's name (<xref target="U4AFedAuthz"/>
Section 4): its <spanx style="verb">client_id</spanx>, <spanx style="verb">name</spanx>, <spanx style="verb">resource_uri</spanx>, <spanx style="verb">status</spanx> of <spanx style="verb">pending</spanx>,
<spanx style="verb">active</spanx> or <spanx style="verb">revoked</spanx>, how it authenticates, and when it registered. A stored
client secret <bcp14>MUST NOT</bcp14> be returned.</t>

<t><spanx style="verb">POST /resource-servers/decision</spanx> with <spanx style="verb">{"client_id": …, "decision":
"approved"}</spanx> or <spanx style="verb">"revoked"</spanx> answers a registration or withdraws one. The
<spanx style="verb">client_id</spanx> travels in the body because a resource server registered by its
origin is identified by an <spanx style="verb">https</spanx> URL, which survives neither a path segment
nor a proxy that normalises a doubled slash.</t>

</section>
</section>
<section anchor="policy"><name>Policy</name>

<section anchor="resources"><name>Resources</name>

<t><spanx style="verb">GET /resources</spanx> returns every resource the owner's server protects, joined
with the policy unit governing it: <spanx style="verb">_id</spanx>, <spanx style="verb">name</spanx>, <spanx style="verb">type</spanx>, <spanx style="verb">resource_scopes</spanx>,
the unit's identifier and name, its <spanx style="verb">ask_me</spanx>, and how the resource was
registered. A resource an organization shares with her rather than one she
owns carries <spanx style="verb">shared_by</spanx> naming the organization, since the two are not the
same thing and the difference decides what happens when she leaves.</t>

</section>
<section anchor="units"><name>Units and Terms</name>

<t><spanx style="verb">GET /policies</spanx> returns the owner's policy units keyed by identifier, each in
the shape <xref target="U4APolicy"/> Section 2 describes, with the terms document currently
proffered for it (<xref target="U4ATerms"/> Section 2).</t>

<t><spanx style="verb">POST /policies</spanx> creates a unit from a body carrying <spanx style="verb">id</spanx>, <spanx style="verb">name</spanx>,
<spanx style="verb">resources</spanx>, <spanx style="verb">ask_me</spanx>, <spanx style="verb">rules</spanx> and <spanx style="verb">terms</spanx>. The server <bcp14>MUST</bcp14> refuse a unit over
a resource it does not protect, over a resource another unit already governs,
or whose rules fail the validation of <xref target="U4APolicy"/> Section 3, and <bcp14>MUST</bcp14> say
which in <spanx style="verb">detail</spanx>.</t>

<t><spanx style="verb">PUT /policies/{id}</spanx> edits one: <spanx style="verb">ask_me</spanx>, <spanx style="verb">rules</spanx>, and the <spanx style="verb">purpose</spanx>,
<spanx style="verb">expires_in</spanx>, <spanx style="verb">prohibited</spanx> and <spanx style="verb">scope</spanx> of its terms. Resources are fixed by
registration and <bcp14>MUST NOT</bcp14> be editable here. Every edit <bcp14>MUST</bcp14> produce a new
terms version (<xref target="U4ATerms"/> Section 2.1); the response carries the unit as
stored, and where a layer above the owner narrowed what she wrote, a
<spanx style="verb">clamped</spanx> array of sentences saying what moved (<xref target="U4AMultiParty"/>
Section 2.4).</t>

<t><spanx style="verb">DELETE /policies/{id}</spanx> removes one. Its resources become ungoverned, which
is denied (<xref target="U4APolicy"/> Section 2); the response names them. Published
terms versions <bcp14>MUST NOT</bcp14> be deleted with it.</t>

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

<t><spanx style="verb">GET /policy-vocabulary</spanx> returns the conditions a rule may name, as an array
of objects each carrying <spanx style="verb">condition</spanx> (the name, with its level where the
condition is one sentence per level), <spanx style="verb">takes</spanx> (<spanx style="verb">duration</spanx>, <spanx style="verb">count</spanx> or null),
<spanx style="verb">label</spanx> (the sentence shown to the owner), and <spanx style="verb">may_relax</spanx>. This is the
publication <xref target="U4APolicy"/> Section 3.6 requires; a surface that offers the
owner a condition it does not list will compose a rule the server refuses.</t>

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

<t><spanx style="verb">GET /ledger</spanx> returns the record of <xref target="U4APolicy"/> Section 8, oldest first.
With <spanx style="verb">?handle=</spanx> it returns one agent's part of it: every promise that agent
made, every decision about it, and everything it touched, in order.</t>

<t><spanx style="verb">GET /events</spanx> is a server-sent event stream <xref target="SSE"/> carrying a message for
each thing that happens that the owner may want to act on: a request arriving
to wait on her, a decision landing, a resource server introducing itself, an
organization or a co-holder changing something. The event name is the
message's <spanx style="verb">type</spanx>. On a replicated authorization server the subscription <bcp14>MUST</bcp14>
be a property of the shared state rather than of the process serving the
stream, since the decision the owner is waiting for may be produced by any
replica.</t>

</section>
<section anchor="arrangements"><name>Arrangements</name>

<t>Where an authorization server implements <xref target="U4AMultiParty"/>, the owner's side
of it is served here.</t>

<t><spanx style="verb">GET /organization</spanx> says whether she administers resources for anyone, and
under what charter version, with the ceiling as it currently binds each of
her units — and, where she is not a member, whether an invitation is waiting
on her. <spanx style="verb">POST /organization/preview</spanx> with <spanx style="verb">{"code": …}</spanx> returns what a code
would commit her to and what it would change about terms she has already
written, without doing it. <spanx style="verb">POST /organization</spanx> enrols her and <bcp14>MUST</bcp14> be refused
without <spanx style="verb">"agreed": true</spanx> in the body. <spanx style="verb">POST /organization/decline</spanx> records a
refused invitation. <spanx style="verb">DELETE /organization</spanx> leaves.</t>

<t><spanx style="verb">POST /joint/preview</spanx> with <spanx style="verb">{"tally": …, "account": …}</spanx> returns a mandate and
what agreeing would mean for her terms; <spanx style="verb">POST /joint</spanx> agrees to it and <bcp14>MUST</bcp14> be
refused without <spanx style="verb">"agreed": true</spanx>; <spanx style="verb">GET /joint</spanx> lists the accounts she holds
jointly; <spanx style="verb">DELETE /joint/{account}</spanx> stops.</t>

<t>Both joins are refused without explicit agreement for the reason
<xref target="U4AMultiParty"/> gives: each hands another party standing authority over
her agents, and that is not something to acquire by forgetting to say no.</t>

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

<section anchor="the-credential-proves-the-owner"><name>The Credential Proves the Owner</name>

<t>Every operation acts on the owner the credential proved. An implementation
that lets a request name its owner, and checks the credential only for
validity, has built a surface where one owner's valid key answers another
owner's questions.</t>

</section>
<section anchor="bodies-are-covered"><name>Bodies Are Covered</name>

<t>See <xref target="discovery"/>. The four base components of <xref target="U4ACore"/> Section 6.1 say
who is asking and what they are asking of; the word in the body of
<xref target="decision"/> is the entire meaning of the request.</t>

</section>
<section anchor="the-queue-is-read-by-whoever-is-entitled-to-decide"><name>The Queue Is Read by Whoever Is Entitled to Decide</name>

<t><xref target="pending"/> is the same list whether the owner or an administrator acting for
her reads it, filtered for the administrator to what their charter claims. An
administrator who saw a different set of pending requests from the person
they co-administer with would be looking at a different system.</t>

</section>
<section anchor="revocation-reports-its-reach"><name>Revocation Reports Its Reach</name>

<t><xref target="connections"/> returns counts rather than success. A revocation that reports
<spanx style="verb">rpts_deactivated: 0</spanx> against an agent the owner believes is active is
information she needs, and a bare 200 would have hidden it.</t>

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

<t>This surface exposes, to the owner and to nobody else, everything her
authorization server knows about the agents that have approached her. The
<spanx style="verb">reason</spanx> an agent stated is shown to her verbatim, which is why <xref target="pending"/>
requires it be rendered as text: it is the one field on this surface that the
counterparty authored.</t>

<t>An organization's view of the same data is not this surface; it is the scoped
view of <xref target="U4AMultiParty"/> Section 2.6, and the scoping is applied by the
owner's server before it answers.</t>

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

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

<t>IANA is asked to register the following in the "OAuth Authorization Server
Metadata" registry established by <xref target="RFC8414"/>.</t>

<dl>
  <dt>Metadata Name:</dt>
  <dd>
    <t><spanx style="verb">owner_endpoint</spanx></t>
  </dd>
  <dt>Metadata Description:</dt>
  <dd>
    <t>URL of the resource owner's API</t>
  </dd>
  <dt>Change Controller:</dt>
  <dd>
    <t>IETF</t>
  </dd>
  <dt>Specification Document(s):</dt>
  <dd>
    <t><xref target="discovery"/> of this document</t>
  </dd>
</dl>

</section>
</section>


  </middle>

  <back>


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

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



<reference anchor="RFC8414">
  <front>
    <title>OAuth 2.0 Authorization Server Metadata</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <date month="June" year="2018"/>
    <abstract>
      <t>This specification defines a metadata format that an OAuth 2.0 client can use to obtain the information needed to interact with an OAuth 2.0 authorization server, including its endpoint locations and authorization server capabilities.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8414"/>
  <seriesInfo name="DOI" value="10.17487/RFC8414"/>
</reference>
<reference anchor="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="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="U4APolicy" target="https://u4a.ai/spec/draft-gamb-uma4agents-policy-00.html">
  <front>
    <title>Owner Policy, Assurance and Attention 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-policy-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="SSE" target="https://html.spec.whatwg.org/multipage/server-sent-events.html">
  <front>
    <title>Server-Sent Events</title>
    <author >
      <organization>WHATWG</organization>
    </author>
    <date year="2026"/>
  </front>
</reference>
<reference anchor="U4AFedAuthz" target="https://u4a.ai/spec/draft-gamb-uma4agents-fedauthz-00.html">
  <front>
    <title>Federated Authorization 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-fedauthz-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 442?>

<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"/> serves this surface from its
authorization server and has three clients of it: a browser portal
authenticating with an OpenID Connect session, a command-line tool and a
personal AI each authenticating with the owner's enrolled key. Every
operation is exercised by the checks that drive those clients; the two-caller
property of <xref target="decision"/> is tested with thirty-two concurrent callers against
both store backends.</t>

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

<t>The 2010 UMA wireframes for out-of-band consent described this surface before
there was an interlocutor to put on the other end of it.</t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA91c65LbxpX+30/RO/oRa4vkXDy+UUm8Y2lky6tbZqSoUimX
0CSaJDwgwKDBoWjVVOUh9gH21z7IPkqeZM93TnejQXKctav2xzpVtjlAX8/1
OxdkOByqtmhLO9ZHbxZWX1lXr5up1a82lW1+5/TF62d6Vjf6rbPN8IWpzNzm
+mI6tc7pT96+uHioz0YnR8pMJo29pUV4XjfrxcWRyutpZZa0Q96YWTucm+Vk
uF6ac1qqat2wxozhyYmamtbO62Y71q7NlVtPloVzRV212xVNfnb55qkqVs1Y
t83atWcnJ1+dnCnTWDPW13a6bop2q27sdlM3+Vj/lXYeaLNuF3VT/GRaWmag
m3A53nKgV7ZxdWVKffGMxvJpflCuNVX+3pR1RZturVOrgpZr6+lAu7ppGztz
9Gu7xI8flOwwVloP6R+ti8qN9cuR/pYuyQ/k5i+L6U33rG7mpvKnGusXRZV/
a5rcVvr588c8wC5NUY51RbNArX+b4+/RtF7297kc6RemtE2y0eWtTZ71N/qz
rSr91ExborGq6mZJz28tzn719PGX56fn/udX52en4ednn57gJ1Hz28ZU7ZiX
DQLzszKheQJLwasLohI/u0gZcsSLdRTE/4YHbnbf7eLoFxg9XaxLc7MzgR4X
9sfdt37a9yN9VUwXe7t8T+JVVOm7nCRzrM9OTr8cnpwOT77gh3T5wrqimtXh
8P9OFzYNyeOVJV4tbZXzPYVmppnbdqwXbbty4+NjUgo3upEJRVW0BTNjRBw7
Jt043syPGzsd1qAOlGU4BzWHRMPRol2WYMn5xeO6sb+EI6+belaUlnlCnKir
elmvScVZ8n+GG6k83yfTv4x1gaBnn99DymdVa5vKtsMnsBn3mY4pEQCW4xCB
1+dmZIpjt7LT45+dnRD0jW2Wrk9RtmdDUG5mGyIqD/nfWMT/f9RscbVfT84w
PaHn67osptsDBNXyZqAvnFuTZJNNJqurL9qWliKV+W0SeMWX/vUUjvOFxDhA
YsSvry/7lL62zS1R8Jrm4j736jjZnLF+993Fm3ffHrrt7jmx9winHG0Wpt3M
2WYt12VbrOicx052dbTf0PKuiUA8tTlcwE/9g9JT29Cmed8//Hbs1MzmOPBP
v571yQoJOV+A6q9N0+7oGD8f8osDJP3N6ZUXPrrtrydwb42ExM8vvtlxsS8u
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
fwAZvu+O0EUAAA==

-->

</rfc>

