<?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-core-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="UMA 2.0 for Agents">User-Managed Access (UMA) 2.0 Profile for Autonomous Agents</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>agents</keyword> <keyword>delegation</keyword> <keyword>proof-of-possession</keyword>

    <abstract>


<?line 176?>

<t>This document profiles and extends the User-Managed Access (UMA) 2.0 Grant so
that an autonomous software agent, operated by a party who is not the resource
owner, can negotiate access to that owner's resources while the owner is not
present.</t>

<t>It narrows UMA 2.0 in one place and extends it in several. The requesting side
is an agent identified by a key it proves possession of rather than by a client
credential; the requesting party token is a proof-of-possession token carrying
its permissions as a claim; a grant may be bound to a single operation and spent
exactly once; the owner holds a standing, revocable relationship with each agent
individually; and the challenge that begins a negotiation is specified as a set
of parameters rather than as an HTTP header, so that an enforcement point with no
status line can emit it.</t>



    </abstract>



  </front>

  <middle>


<?line 192?>

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

<t>UMA 2.0 <xref target="UMAGrant"/> describes a topology that almost nothing else has: the
party who authorizes access is not the party operating the client, and the
authorization server holds the owner's policy rather than the resource server's.
That arrangement was designed for a person sharing a resource with another
person. It turns out to be the arrangement an agent economy needs, because the
question an agent economy has to answer is not "is this my agent doing my task"
but "may your agent touch my resource".</t>

<t>What UMA 2.0 assumes, and what this profile changes, is everything downstream of
that topology. The requesting side is assumed to be a registered OAuth client
operated by a human who can be redirected to a browser. An agent is neither. It
holds a key rather than a client secret, it may have no prior relationship with
the authorization server at all, and the owner it needs an answer from may be
asleep.</t>

<t>This profile is written against a reference implementation <xref target="U4ALAB"/> in which
every requirement below is exercised by an automated check.
<xref target="implementation-status"/> says what that implementation covers and where the
register of requirement-to-check mappings lives.</t>

<section anchor="design-rule"><name>Design Rule</name>

<t>The rule this profile was written under, and the reason its surface is as small
as it is: <strong>stay inside UMA 2.0's wire surface wherever it already fits, and
make every departure explicit.</strong> <spanx style="verb">WWW-Authenticate: UMA</spanx>, the <spanx style="verb">uma-ticket</spanx> grant
type, <spanx style="verb">need_info</spanx>, <spanx style="verb">request_submitted</spanx> and the introspection <spanx style="verb">permissions</spanx> array
are all used as specified. <xref target="profiles-and-extensions"/> is the complete list of
departures; anything not named there is intended to be stock UMA 2.0.</t>

</section>
<section anchor="relationship-to-other-authorization-work"><name>Relationship to Other Authorization Work</name>

<t>This profile is an extension grant on OAuth 2.0 <xref target="RFC6749"/>, as UMA 2.0 is.</t>

<t>GNAP <xref target="RFC9635"/> is the more interesting comparison, and in several respects the
better carrier: its interaction model is more general than OAuth's, key binding
is native rather than an extension, and its request format expresses what a
client wants far better than a scope string. What GNAP does not decide is whose
policy the answer expresses. It negotiates between a client and the resource
owner reachable through that client's own interaction, and has no notion of a
second principal who is not the requester, is not present, and whose policy must
be satisfied anyway — nor of that principal proffering terms the requesting side
must sign. Those two are the whole of this work. A GNAP binding of this profile
would be a reasonable document and probably a cleaner one than the OAuth-shaped
binding here; it is not a substitute for it.</t>

<t>DPoP <xref target="RFC9449"/> solves the same problem as <xref target="proof-of-possession"/> for the
OAuth installed base. This profile uses <xref target="RFC9421"/> instead because the signature
must cover the request rather than only bind the token, and because the same
mechanism authenticates four different parties here, in both directions. A DPoP
binding is a reasonable second binding and would recruit a different set of
implementers.</t>

</section>
<section anchor="specification-set"><name>Specification Set</name>

<t>This document is the core of a set. <xref target="U4ATerms"/> and <xref target="U4AFedAuthz"/> are <bcp14>REQUIRED</bcp14>
to implement alongside it; this document together with those two constitutes the
UMA 2.0 profile for autonomous agents.</t>

<t><xref target="U4APolicy"/>, <xref target="U4ALineage"/>, <xref target="U4AMultiParty"/> and <xref target="U4AOwner"/> are <bcp14>OPTIONAL</bcp14>
extensions of this document. <xref target="U4AMCP"/> binds this profile to a transport and
<xref target="U4AAAuth"/> to an agent identity and signature layer; other bindings are
possible and this document is written so that they are.</t>

</section>
<section anchor="roles"><name>Roles</name>

<t>The roles of <xref target="UMAGrant"/> apply, with the following additions and narrowings.</t>

<dl>
  <dt>Requesting agent:</dt>
  <dd>
    <t>The software making the request. UMA used this term in 2010 <xref target="UMAClaims2010"/>
and dropped it; the agent era makes the distinction load-bearing again. A
requesting agent is individuated by a key it proves possession of, and is
distinct from the requesting party, who is accountable for it and is not
present. Nothing in this profile lets the requesting agent be the responsible
party; it lets the agent be the acting one.</t>
  </dd>
  <dt>Operator:</dt>
  <dd>
    <t>The party that runs a requesting agent and publishes a directory of the keys
its agents hold. The operator is a party the owner may act against as a whole
— see <xref target="U4APolicy"/> — and is never an authorization input on its own.</t>
  </dd>
  <dt>Enforcement point:</dt>
  <dd>
    <t>The component that discharges the resource-server obligations of
<xref target="UMAFedAuthz"/>: holding the protection API access token, obtaining a
permission ticket, introspecting, and refusing. <xref target="UMAFedAuthz"/> Section 1.4
divides responsibility between <em>parties</em> and names no component, and this
profile keeps it that way. An enforcement point <bcp14>MAY</bcp14> be a gateway in front of
the resource, or the resource itself. It is a role, not a product.</t>
  </dd>
</dl>

</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?>

<t>Base64url encoding is as defined in <xref target="RFC7515"/> Section 2, without padding.</t>

<t>The notation <spanx style="verb">s256(x)</spanx> denotes the string <spanx style="verb">"s256:"</spanx> followed by the base64url
encoding, without padding, of the SHA-256 digest of the octets <spanx style="verb">x</spanx>.</t>

<t>The notation <spanx style="verb">jkt(k)</spanx> denotes the string <spanx style="verb">"jkt:"</spanx> followed by the JWK Thumbprint
<xref target="RFC7638"/> of the JSON Web Key <spanx style="verb">k</spanx>. The value after the prefix is the same
thumbprint DPoP <xref target="RFC9449"/> carries in its <spanx style="verb">jkt</spanx> confirmation method; the prefix
marks it as a handle rather than a confirmation.</t>

</section>
</section>
<section anchor="authorization-server-metadata"><name>Authorization Server Metadata</name>

<t>An authorization server conforming to this profile publishes OAuth 2.0
Authorization Server Metadata <xref target="RFC8414"/>, extended by <xref target="UMAGrant"/> Section 2 and
by this document.</t>

<t>The authorization server <bcp14>MUST</bcp14> include in its metadata the value
<spanx style="verb">https://u4a.ai/spec/core/1.0</spanx> in the <spanx style="verb">uma_profiles_supported</spanx> array, and <bcp14>MUST</bcp14>
include the identifying URI of each extension in this set that it implements.
<xref target="UMAGrant"/> Section 4 asks a profile to be given a uniquely identifying URI and
asks a server supporting one to advertise it; this profile's URIs are listed in
<xref target="iana-considerations"/>.</t>

<t>The following metadata member is added:</t>

<dl>
  <dt>terms_endpoint:</dt>
  <dd>
    <t><bcp14>OPTIONAL</bcp14>. The URL of the owner's terms roster, as defined in <xref target="U4ATerms"/>. An
authorization server implementing <xref target="U4ATerms"/> <bcp14>MUST</bcp14> include it.</t>
  </dd>
</dl>

<t>An authorization server <bcp14>MUST NOT</bcp14> advertise a grant type or claim token format it
will not accept, and <bcp14>MUST</bcp14> advertise every grant type and claim token format it
will. This is not pedantry about completeness: a requesting agent that has never
met this authorization server decides from this document alone what to attempt,
and an unadvertised-but-accepted format is indistinguishable to it from an
unsupported one.</t>

</section>
<section anchor="the-challenge"><name>The Challenge</name>

<section anchor="challenge-parameters"><name>Parameters, Not a Header</name>

<t><xref target="UMAGrant"/> Section 3.2 requires the resource server to return an HTTP 401 with
a <spanx style="verb">WWW-Authenticate: UMA</spanx> header. This profile requires the <em>parameters</em> and
lets each binding say how they travel.</t>

<t>An enforcement point <bcp14>MUST</bcp14> convey the following parameters when it refuses a
request for want of authorization:</t>

<dl>
  <dt>realm:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. As <xref target="RFC6750"/>.</t>
  </dd>
  <dt>error:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. The value <spanx style="verb">insufficient_authorization</spanx>.</t>
  </dd>
  <dt>as_uri:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. The issuer identifier of the authorization server that decides
access to this resource for this owner.</t>
  </dd>
  <dt>ticket:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. The permission ticket, as <xref target="UMAGrant"/>.</t>
  </dd>
  <dt>resource_metadata:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. The URL of the protected resource metadata document <xref target="RFC9728"/> that
describes this resource, as <xref target="RFC9728"/> Section 5.1. An enforcement point
<bcp14>MUST</bcp14> name the document for the resource identifier the request was made
to, formed as <xref target="RFC9728"/> Section 3 forms it, and not the document of
another identifier the same resource is reachable by; a client following
the pointer is required by <xref target="RFC9728"/> Section 3.3 to reject any other.</t>
  </dd>
  <dt>scope:</dt>
  <dd>
    <t><bcp14>OPTIONAL</bcp14>. A space-delimited list of the scopes that would satisfy the attempted
access, as <xref target="RFC6750"/> Section 3.</t>
  </dd>
  <dt>authorization_remediation:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. See <xref target="remediation"/>.</t>
  </dd>
</dl>

<t>A binding of this profile <bcp14>MUST</bcp14> define how these parameters are carried, and <bcp14>MUST</bcp14>
carry all of those marked <bcp14>REQUIRED</bcp14>. The HTTP binding is given in
<xref target="challenge-http"/>; <xref target="U4AMCP"/> defines a binding for a transport that has no
status line to decorate.</t>

<t>The reason for the narrowing is that mandating the header excludes the
deployments most likely to adopt this profile. An enforcement point running
in-process inside the resource returns a domain result, not a status line; a
JSON-RPC method handler has nowhere to put a <spanx style="verb">WWW-Authenticate</spanx>. Both encodings
run in the reference implementation against one authorization server, and one
requesting agent reads both.</t>

</section>
<section anchor="challenge-http"><name>The HTTP Binding</name>

<t>Over HTTP, an enforcement point <bcp14>MUST</bcp14> return <spanx style="verb">401 Unauthorized</spanx> with a
<spanx style="verb">WWW-Authenticate</spanx> header whose auth-scheme is <spanx style="verb">UMA</spanx> and whose auth-params are
the parameters of <xref target="challenge-parameters"/>:</t>

<figure title="A challenge over HTTP. Line breaks are for display only."><artwork><![CDATA[
HTTP/1.1 401 Unauthorized
WWW-Authenticate: UMA realm="alice-vault",
  error="insufficient_authorization",
  as_uri="https://alice-as.example",
  ticket="MWRlNzE4ZjgtMGY0OS00NDg2",
  resource_metadata="https://rs.example/.well-known/
    oauth-protected-resource/mcp",
  scope="trades:execute",
  authorization_remediation="eyJhdXRob3JpemF0aW9uX2RldGFpbHMi..."
]]></artwork></figure>

</section>
<section anchor="remediation"><name>Structured Remediation</name>

<t><spanx style="verb">authorization_remediation</spanx> is the parameter of
<xref target="I-D.ietf-oauth-rar-metadata-remediation"/>, carrying the same base64url-encoded
JSON object that draft defines, with two additional members. The object has:</t>

<dl>
  <dt>authorization_details:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. An array of authorization detail objects <xref target="RFC9396"/> describing what
was attempted.</t>
  </dd>
  <dt>authorization_reference:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. <spanx style="verb">s256</spanx> over the canonical JSON serialization of
<spanx style="verb">authorization_details</spanx>, with object keys sorted and no insignificant
whitespace.</t>
  </dd>
  <dt>authorization_server:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14> by this profile. The issuer identifier of the authorization server
that decides. Same value as the <spanx style="verb">as_uri</spanx> parameter.</t>
  </dd>
  <dt>ticket:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14> by this profile. Same value as the <spanx style="verb">ticket</spanx> parameter.</t>
  </dd>
</dl>

<figure title="A decoded authorization_remediation object."><sourcecode type="json"><![CDATA[
{
  "authorization_details": [{
    "type": "urn:uma4agents:authorization-details:tool-call",
    "locations": ["https://rs.example"],
    "identifier": "alice-vault/execute_trade",
    "actions": ["execute_trade"],
    "datatypes": ["trades:execute"]
  }],
  "authorization_reference": "s256:6cR6qTmCj6s0S95MxCfdfwfXJ8m",
  "authorization_server": "https://alice-as.example",
  "ticket": "MWRlNzE4ZjgtMGY0OS00NDg2"
}
]]></sourcecode></figure>

<t>Those two additional members are what make a decision by a third party possible.
<xref target="I-D.ietf-oauth-rar-metadata-remediation"/> hands the client a template to submit
to <em>its own</em> authorization server, which cannot work when the resource belongs to
someone else and the client's authorization server has no standing to grant.
Naming the owner's authorization server, and handing back a ticket rather than a
template, is the whole of the difference: the client authors nothing and cannot
widen what it was given.</t>

<t>Emitting the <xref target="RFC9396"/> vocabulary costs an enforcement point nothing, since it
already knows the resource identifier and the scopes, and buys three things. A
client that implements <xref target="I-D.ietf-oauth-rar-metadata-remediation"/> can read most
of the challenge without knowing UMA. A downstream policy engine receives typed
fields rather than only a digest. And <spanx style="verb">authorization_reference</spanx> lets a client
holding many grants decide whether it already has one for this shape without
parsing the details.</t>

</section>
<section anchor="corroboration"><name>Corroborating the Authorization Server</name>

<t>A requesting agent <bcp14>MUST</bcp14> fetch the document named by <spanx style="verb">resource_metadata</spanx>, <bcp14>MUST</bcp14>
verify that its <spanx style="verb">resource</spanx> member identifies the resource being accessed as
required by <xref target="RFC9728"/> Section 3.3, and <bcp14>MUST</bcp14> refuse a challenge whose <spanx style="verb">as_uri</spanx>
does not appear in that document's <spanx style="verb">authorization_servers</spanx> array.</t>

<t>Without this, the only statement of which authorization server decides is an
unauthenticated header on a refused request. With it, the challenge gains a
second witness anchored in the resource's own TLS-protected origin. The challenge
remains authoritative for the ticket, which is the one value the metadata
document cannot carry.</t>

</section>
</section>
<section anchor="the-negotiation"><name>The Negotiation</name>

<t>The requesting agent presents the ticket at the authorization server's token
endpoint using the <spanx style="verb">urn:ietf:params:oauth:grant-type:uma-ticket</spanx> grant type, as
<xref target="UMAGrant"/> Section 3.3.1. This profile does not change the grant type, the
ticket's single-use rotation, or the meaning of <spanx style="verb">need_info</spanx>,
<spanx style="verb">request_submitted</spanx>, <spanx style="verb">request_denied</spanx> or <spanx style="verb">invalid_grant</spanx>.</t>

<section anchor="claim-token-formats"><name>Claim Token Formats</name>

<t>Where <xref target="UMAGrant"/> lets the authorization server name acceptable claim token
<em>formats</em>, this profile additionally lets it proffer the claim's <em>content</em>. That
extension is specified in <xref target="U4ATerms"/> and is <bcp14>REQUIRED</bcp14> to implement.</t>

<t>An authorization server <bcp14>MAY</bcp14> accept other claim token formats alongside it. One is
worth naming because it is the case an enterprise deployment reaches for first:
an identity assertion authorization grant
<xref target="I-D.ietf-oauth-identity-assertion-authz-grant"/> <bcp14>MAY</bcp14> be accepted as a
<spanx style="verb">claim_token</spanx> with <spanx style="verb">claim_token_format</spanx> of
<spanx style="verb">urn:ietf:params:oauth:token-type:id-jag</spanx>, in which case the authorization server
<bcp14>MUST</bcp14> treat it as a claim about identity and reach, and <bcp14>MUST NOT</bcp14> treat it as
conferring access.</t>

<t>Presenting the same assertion as a <spanx style="verb">jwt-bearer</spanx> grant would have the identity
provider's assertion produce the access token directly, which makes the identity
provider the deciding party over a resource it does not own. An identity
assertion proves who an agent acts for and carries no entitlement of its own,
which is what a UMA claim is for. Where both are demanded, identity is demanded
first, because which terms apply follows from which party the agent acts for.</t>

</section>
<section anchor="responses"><name>Responses</name>

<t>The authorization server's responses are those of <xref target="UMAGrant"/> Section 3.3.1.
Two are constrained by this profile.</t>

<t>A <spanx style="verb">request_submitted</spanx> response indicates that the owner has been asked and has
not yet answered. The authorization server <bcp14>MUST</bcp14> distinguish two kinds of pending
request, and <bcp14>MUST</bcp14> make the kind available to the owner's decision surface:</t>

<dl>
  <dt>connection:</dt>
  <dd>
    <t>The requesting agent has no standing relationship with this owner. The question
put to the owner is whether to have one. See <xref target="connections"/>.</t>
  </dd>
  <dt>operation:</dt>
  <dd>
    <t>The requesting agent has a standing relationship, and the owner's policy
requires her to answer for this particular access.</t>
  </dd>
</dl>

<t>A <spanx style="verb">request_denied</spanx> response <bcp14>MAY</bcp14> carry an <spanx style="verb">error_description</spanx>. Where the refusal
was reached without evaluating the owner's policy — because a quota was exhausted
or the operator was blocked — the authorization server <bcp14>SHOULD</bcp14> say so, so that a
well-behaved requesting agent can distinguish a refusal it might overcome from
one it cannot.</t>

</section>
<section anchor="waiting"><name>Waiting</name>

<t><spanx style="verb">request_submitted</spanx> is a state to render, not a call to hold open. A requesting
agent that can express waiting to its own user <bcp14>SHOULD</bcp14> hand the wait up rather
than block, and a binding <bcp14>SHOULD</bcp14> define how. The decision belongs to the owner
either way; what changes is whether the requesting party's client hangs on it.</t>

<t>A binding that surfaces the wait <bcp14>MUST</bcp14> be able to say that the party being waited
on is not the requesting party's own user, and that the requesting agent's client
<bcp14>MUST NOT</bcp14> attempt to satisfy the wait from that user. A wait that cannot name its
subject will be answered by the wrong person.</t>

</section>
</section>
<section anchor="requesting-agent"><name>The Requesting Agent</name>

<section anchor="identity-levels"><name>Identity Levels</name>

<t>A requesting agent presents itself at exactly one of two levels. The level
determines the shape of the standing connection handle and nothing else.</t>

<dl>
  <dt>Pseudonymous:</dt>
  <dd>
    <t>The agent presents a bare public JWK <xref target="RFC7517"/>. The key is the identity. The
connection handle is <spanx style="verb">jkt(k)</spanx>.</t>
  </dd>
  <dt>Identified:</dt>
  <dd>
    <t>The agent presents a credential from an issuer asserting its identity and
binding it to a key — for example an <spanx style="verb">aa-agent+jwt</spanx> as defined by
<xref target="I-D.hardt-aauth-protocol"/>, whose <spanx style="verb">cnf.jwk</spanx> is the signing key. The
authorization server <bcp14>MUST</bcp14> verify that credential against keys published by its
issuer, <bcp14>MUST</bcp14> require that the issuer identifier use the <spanx style="verb">https</spanx> scheme, and
<bcp14>MUST</bcp14> derive the connection handle from the issuer and subject rather than from
the key.</t>
  </dd>
</dl>

<t>The handle for an identified agent <bcp14>MUST NOT</bcp14> be derived from its key. Issuers that
attest agents commonly bind a fresh key per session; a thumbprint-keyed
relationship forgets such an agent on every run, which presents to the owner as
an agent she has approved asking to be approved again. This was found by running
it.</t>

<t>Which issuers an authorization server will believe is deployment policy, not a
wire-protocol rule. This profile deliberately specifies no issuer allow-list, and
a deployment <bcp14>MUST</bcp14> supply one.</t>

</section>
<section anchor="descriptive-metadata"><name>Descriptive Metadata</name>

<t>A requesting agent <bcp14>MAY</bcp14> additionally present descriptive metadata, so that an
owner who has never met it can be told something true about it:</t>

<t><list style="symbols">
  <t>a client identifier that is an <spanx style="verb">https</spanx> URL resolving to a client ID metadata
document <xref target="I-D.ietf-oauth-client-id-metadata-document"/>, which the
authorization server <bcp14>MUST</bcp14> resolve and <bcp14>MUST</bcp14> reject unless the document's own
<spanx style="verb">client_id</spanx> matches the URL it was fetched from;</t>
  <t>a <spanx style="verb">Signature-Agent</spanx> <xref target="I-D.meunier-webbotauth-registry"/> naming a directory of
keys the operator publishes, which <bcp14>MUST</bcp14> be covered by the request signature
where it is present.</t>
</list></t>

<t>Neither is an authorization input. The key that verifies a request is always the
one confirmed by the grant, the connection handle is unchanged by the presence or
absence of either, and an authorization server <bcp14>MUST NOT</bcp14> admit a request it would
otherwise refuse on the strength of descriptive metadata alone. Failure to
resolve descriptive metadata <bcp14>MUST</bcp14> leave the request where it was rather than
refusing it; an operator's outage is not evidence about an agent.</t>

<t>A metadata document proves only that it claims its own URL. Anyone can publish
one, so resolving it establishes a name to display and nothing more. What raises
the metadata above a name is the operator directory, which the agent does not
control — see <xref target="U4APolicy"/>.</t>

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

<t>The requesting party token issued under this profile is a proof-of-possession
token. A requesting agent <bcp14>MUST</bcp14> prove possession of the confirmed key on every
request to the protected resource, and an enforcement point <bcp14>MUST</bcp14> verify it.</t>

<section anchor="signature-profile"><name>The Message Signature Profile</name>

<t>Proof of possession uses HTTP Message Signatures <xref target="RFC9421"/>.</t>

<t>A signature <bcp14>MUST</bcp14> cover at least the components <spanx style="verb">"@method"</spanx>, <spanx style="verb">"@authority"</spanx>,
<spanx style="verb">"@path"</spanx> and <spanx style="verb">"authorization"</spanx>. A signer <bcp14>MAY</bcp14> cover more, and a verifier <bcp14>MUST</bcp14>
accept a superset rather than requiring an exact set.</t>

<t>Requiring an exact list is the intuitive implementation and it is wrong. It makes
this profile and <xref target="I-D.meunier-webbotauth-httpsig-protocol"/> unable to coexist on
one request, because each adds a component the other did not expect. Covering
<spanx style="verb">"authorization"</spanx> is the security property; an exact list was never one.</t>

<t>A verifier <bcp14>MUST</bcp14> reconstruct the signature base using the <spanx style="verb">@authority</spanx> value it is
configured with, and <bcp14>MUST NOT</bcp14> take it from the <spanx style="verb">Host</spanx> header or from any
forwarded header. An authority read from the request is an authority the caller
chose. This is a security rule and a portability rule with one cause: an
enforcement point that recovers its authority from the routing layer breaks
silently when the routing layer changes, with signatures failing to verify for a
reason nothing in its logs names.</t>

<t>A verifier <bcp14>MUST</bcp14> echo the received <spanx style="verb">@signature-params</spanx> value verbatim when
reconstructing the base, rather than re-serializing it from parsed components.</t>

</section>
<section anchor="content-digest"><name>Covering the Body</name>

<t>Where a request carries meaning in its body, the signature <bcp14>MUST</bcp14> cover a
<spanx style="verb">Content-Digest</spanx> <xref target="RFC9530"/> header, and the verifier <bcp14>MUST</bcp14> recompute the digest
from the received body as well as verifying the signature over it.</t>

<t>The four required components say who is asking and what they are asking of. They
say nothing about the bytes. That is adequate for a request whose meaning is in
its URL and unsafe for one whose meaning is in its body — and the endpoints where
an owner says yes or no are exactly the latter. Without this, an intermediary can
leave the signature untouched and change the word.</t>

<t>These are two obligations, not one. Recomputing the digest from the received body
without reading the header is safe and is not conformant, and would reject any
third-party signer whose serialization differs. A verifier <bcp14>MUST</bcp14> be able to
<em>require</em> the digest rather than merely accept it when present, since a signer
that omits it must not thereby escape the check.</t>

</section>
</section>
<section anchor="the-grant"><name>The Grant</name>

<section anchor="rpt"><name>The Requesting Party Token</name>

<t>On success the authorization server responds as <xref target="UMAGrant"/> Section 3.3.5, with
<spanx style="verb">token_type</spanx> of <spanx style="verb">PoP</spanx>:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "access_token": "eyJ0eXAiOiJhYS1hdXRoK2p3dCIsImFsZyI6...",
  "token_type": "PoP",
  "expires_in": 3600
}
]]></sourcecode></figure>

<t>The requesting party token <bcp14>MUST</bcp14> be a JWT <xref target="RFC7519"/> signed by the authorization
server, and <bcp14>MUST</bcp14> carry:</t>

<dl>
  <dt>cnf:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. A confirmation claim whose <spanx style="verb">jwk</spanx> member is the public key the
requesting agent must prove possession of. This is the key that signed the
claim token, and the key the enforcement point verifies requests against.</t>
  </dd>
  <dt>permissions:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. The array defined by <xref target="UMAFedAuthz"/> Section 5.1.1 — each element
carrying <spanx style="verb">resource_id</spanx>, <spanx style="verb">resource_scopes</spanx> and <bcp14>OPTIONAL</bcp14> <spanx style="verb">exp</spanx>, <spanx style="verb">iat</spanx> and <spanx style="verb">nbf</spanx> —
carried here as a claim rather than being visible only through introspection.</t>
  </dd>
  <dt>owner:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. The resource owner on whose behalf this token was issued. See
<xref target="owner-scoped"/>.</t>
  </dd>
</dl>

<t>A bearer requesting party token is a credential that works for whoever picks it
up, which is an unreasonable thing to hand software that makes thousands of calls
across networks it does not control. Carrying <spanx style="verb">permissions</spanx> inline lets an
enforcement point see what was granted without a round trip; introspection
remains the authority on whether the grant is still live, which is a different
question and the one that changes.</t>

</section>
<section anchor="operation-binding"><name>Operation Binding and Single Use</name>

<t>Where the owner's policy requires her to approve a particular access rather than
a class of access, the authorization server <bcp14>MUST</bcp14> bind the grant to that access.
Such a token <bcp14>MUST</bcp14> carry:</t>

<dl>
  <dt>single_use:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. Boolean <spanx style="verb">true</spanx>.</t>
  </dd>
  <dt>operation:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. An object with a <spanx style="verb">tool</spanx> member naming the operation and a
<spanx style="verb">params_s256</spanx> member carrying <spanx style="verb">s256</spanx> over the canonical JSON serialization of
the exact parameters approved, with object keys sorted.</t>
  </dd>
</dl>

<figure><sourcecode type="json"><![CDATA[
{
  "single_use": true,
  "operation": {
    "tool": "execute_trade",
    "params_s256": "s256:mNTA0Zjg1YTBkYzQxZWY4YjkyMWM4ZGIy"
  }
}
]]></sourcecode></figure>

<t>Classic OAuth and UMA scopes authorize classes of action. "She approved this
trade" and "she authorized trading" are different facts, and a protocol with only
scopes can express the second. This is the narrowest useful addition that
expresses the first.</t>

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

<section anchor="obligations"><name>Obligations, Not a Topology</name>

<t><xref target="UMAFedAuthz"/> gives the resource server a list of obligations and never names
the component that discharges them. This profile states them as a conformance
profile that any resource-side implementation may satisfy.</t>

<t>An enforcement point <bcp14>MUST</bcp14> hold a protection API access token issued in the
owner's name, <bcp14>MUST</bcp14> register attempted access to obtain a permission ticket, <bcp14>MUST</bcp14>
introspect a presented token before allowing a call, and <bcp14>MUST</bcp14> refuse by default.
Whether it is a gateway, a service mesh filter, a framework middleware, or the
resource itself is out of scope.</t>

<t>Naming a topology here would exclude in-process deployments, which are the
resource-side implementations most likely to adopt this profile.</t>

</section>
<section anchor="ordering"><name>Ordering</name>

<t>An enforcement point <bcp14>MUST</bcp14> perform the following steps in this order, and the
order is normative:</t>

<t><list style="numbers" type="1">
  <t>Introspect the presented token, without consuming it, and establish that it is
active and that the relationship behind it still stands.</t>
  <t>Establish that the resource being accessed appears in <spanx style="verb">permissions</spanx> with a
scope that covers the attempted access.</t>
  <t>Verify proof of possession against the key named by <spanx style="verb">cnf</spanx> in the introspection
response.</t>
  <t>Where the token carries <spanx style="verb">single_use</spanx>, establish that the attempted operation
matches <spanx style="verb">operation.tool</spanx> and that <spanx style="verb">s256</spanx> over the received parameters equals
<spanx style="verb">operation.params_s256</spanx>.</t>
  <t>Consume the token.</t>
</list></t>

<t>An enforcement point <bcp14>MUST NOT</bcp14> consume a single-use token before step 5.</t>

<t>Consuming at step 1 is the intuitive placement and it is a denial of service.
Anyone who observes the token can replay it with a garbage signature: the replay
is correctly refused, and the grant is already spent, so the one legitimate call
— the operation the owner personally approved seconds earlier — then fails. An
attacker who cannot forge a signature can still destroy the grant.</t>

<t>An enforcement point <bcp14>MUST</bcp14> verify proof of possession against the key returned by
introspection rather than the key carried inside the token, so that a token
accepted at step 1 and a key trusted at step 3 come from the same answer.</t>

</section>
<section anchor="indivisibility"><name>Indivisibility</name>

<t>A single-use artifact — a permission ticket, or a token carrying <spanx style="verb">single_use</spanx> —
<bcp14>MUST</bcp14> be consumed by an operation that decides and records in one indivisible
step, and that reports to its caller whether that caller was the one that
consumed it. A caller told that it was not <bcp14>MUST</bcp14> refuse the request.</t>

<t>A read followed by a write is correct in one process and wrong the moment there
are two. Two callers read <spanx style="verb">consumed = false</spanx>, both are told yes, and one
owner-approved action is performed twice. The failure is silent, it appears only
under replication, and it cannot be tested for in a single-process deployment —
which is where the specification has to carry it, because the implementation will
not.</t>

<t><xref target="UMAGrant"/> Section 3.3.1 says a permission ticket is single-use and does not say
where in enforcement it is spent, nor what "single-use" means when the
authorization server has more than one replica. Both are stated here.</t>

</section>
<section anchor="introspection"><name>Introspection Responses</name>

<t>An authorization server <bcp14>MUST</bcp14> include, in an introspection response <xref target="RFC7662"/>
whose <spanx style="verb">active</spanx> member is <spanx style="verb">false</spanx>, an <spanx style="verb">error</spanx> member naming the reason. At minimum
it <bcp14>MUST</bcp14> distinguish a reason that further negotiation cannot change from one that
it can.</t>

<t>An enforcement point receiving a reason of the first kind <bcp14>MUST</bcp14> refuse without
issuing a fresh challenge. A bare <spanx style="verb">{"active": false}</spanx> sends a requesting agent
around a negotiation whose outcome the owner has already settled, which wastes
the agent's time and puts a request in front of the owner that she has already
answered.</t>

</section>
</section>
<section anchor="connections"><name>Standing Connections</name>

<t>A connection is the standing relationship an owner has with one requesting agent,
keyed by the handle of <xref target="identity-levels"/>.</t>

<t>An authorization server implementing this profile <bcp14>MUST</bcp14>:</t>

<t><list style="symbols">
  <t>refuse to grant, and instead put the request to the owner as a <spanx style="verb">connection</spanx>
pending request, where no active connection exists for the requesting agent's
handle, whatever the owner's policy would otherwise decide;</t>
  <t>record the connection when the owner approves, retaining at least the handle,
the identity level, and the time of first contact;</t>
  <t>offer the owner an operation that ends a connection, and on that operation
invalidate every live requesting party token issued under it in the same
indivisible step that ends the connection;</t>
  <t>retain the fact that a connection was previously ended, across any later
re-establishment of a connection with the same handle.</t>
</list></t>

<t>A revocation that ends the relationship and then fails to invalidate the tokens
leaves the agent holding exactly the authority the owner just withdrew, which is
why the two are one step and not two.</t>

<t>Retaining the prior revocation matters because the owner's policy may read it
(see <xref target="U4APolicy"/>), and a counter that an agent can clear by asking again is not
a fact about the agent.</t>

<t>The persisted claims token of <xref target="UMAGrant"/> is the closest ancestor of this
construct. What is added is that the relationship is visible to the owner and
revocable by her individually, rather than being state the authorization server
keeps for its own convenience.</t>

</section>
<section anchor="owner-authentication"><name>The Owner's Own Credential</name>

<t><xref target="UMAGrant"/> says nothing about how the resource owner authenticates to her own
authorization server, because in its deployments the authorization server
belonged to a service that already had a session with her. Here it is hers,
and the question has to be answered.</t>

<t>An authorization server <bcp14>MUST</bcp14> accept at least one of the following as the
owner's credential on every owner-facing operation, and <bcp14>MAY</bcp14> accept both:</t>

<t><list style="symbols">
  <t>an access token from an identity provider the owner has designated, verified
against that provider's published keys;</t>
  <t>an <xref target="RFC9421"/> signature over the request from a key the owner enrolled, under
the profile of <xref target="signature-profile"/>, with the <spanx style="verb">Content-Digest</spanx> requirement of
<xref target="content-digest"/> on any request carrying a body.</t>
</list></t>

<t>Each accepted credential <bcp14>MUST</bcp14> be independently sufficient and independently
revocable, and <bcp14>MUST NOT</bcp14> be a fallback for another. An authorization server <bcp14>MUST
NOT</bcp14> hold a static owner credential of its own.</t>

<t>The second form is what lets the owner's authority be reached by something she
runs — a personal agent on her own device — without a browser session and
without an identity provider in the path. It is the same message-signature
profile the requesting agent uses, pointed the other way. Every handler <bcp14>MUST</bcp14> act
on the owner the credential proved rather than on one the request named. What
that software can ask her authority to do is specified in <xref target="U4AOwner"/>.</t>

</section>
<section anchor="owner-scoped"><name>Owner-Scoped Artifacts</name>

<t>A resource server serves resources belonging to more than one owner, and each of
those owners may name a different authorization server. Every artifact in this
profile that is scoped to an owner <bcp14>MUST</bcp14> carry or resolve to that owner:</t>

<t><list style="symbols">
  <t>the permission ticket, which <bcp14>MUST</bcp14> resolve only at the authorization server that
minted it;</t>
  <t>the requesting party token, through its <spanx style="verb">owner</spanx> claim;</t>
  <t>the resource identifier;</t>
  <t>the protected resource metadata document <xref target="RFC9728"/>, which <bcp14>MUST</bcp14> be
per-resource and whose <spanx style="verb">authorization_servers</spanx> array names that owner's choice.</t>
</list></t>

<t><strong>The authorization server named in a challenge is the owner's choice, and two
owners of one resource server <bcp14>MAY</bcp14> name two different ones.</strong> This is a
conformance property of an implementation, testable from outside, and not a
deployment style.</t>

<t>Nothing in <xref target="UMAGrant"/> prevents a resource server from naming one authorization
server for every owner it serves. Such a deployment is conformant, is
multi-tenant, and has quietly lost the property the cross-principal topology
exists for: the authority is the operator's again, and the owner's policy is a
row in the operator's table. One sentence distinguishes the two, so the
specification should carry it.</t>

<t>Where a resource is reachable at more than one URL, each URL is a distinct
resource for the purposes of <xref target="RFC9728"/>, and each metadata document <bcp14>MUST</bcp14> name
the URL it was fetched from. <xref target="RFC9728"/> Section 3.3 has a client reject a
document whose <spanx style="verb">resource</spanx> is not the resource it is accessing, so serving one
canonical document at an alias hands every client at that alias a document it is
required to reject. Aliases are resources too.</t>

</section>
<section anchor="profiles-and-extensions"><name>Profiles and Extensions</name>

<t>This document is both a profile and an extension of <xref target="UMAGrant"/> in the sense of
its Section 4: it restricts UMA's available options in two places and defines new
use of its extensibility points in several.</t>

<t>The complete list of departures from <xref target="UMAGrant"/> and <xref target="UMAFedAuthz"/> follows.
Anything not named here, in this document or in another document of this set, is
intended to be stock UMA 2.0.</t>

<texttable title="Departures from UMA 2.0.">
      <ttcol align='left'>#</ttcol>
      <ttcol align='left'>Departure</ttcol>
      <ttcol align='left'>Baseline</ttcol>
      <ttcol align='left'>Where specified</ttcol>
      <c>1</c>
      <c>The authorization server proffers claim <em>content</em>, dereferenceable and counter-signed</c>
      <c>The server names acceptable claim formats</c>
      <c><xref target="U4ATerms"/></c>
      <c>2</c>
      <c>Proof-of-possession requesting party token carrying <spanx style="verb">permissions</spanx> as a claim</c>
      <c>Bearer token; permissions visible only through introspection</c>
      <c><xref target="rpt"/></c>
      <c>3</c>
      <c><spanx style="verb">operation</spanx> and <spanx style="verb">single_use</spanx> claims</c>
      <c>Per-permission scopes and expiry only</c>
      <c><xref target="operation-binding"/></c>
      <c>4</c>
      <c>Owner intervention as two kinds of pending request</c>
      <c>Resource-owner intervention out of scope</c>
      <c><xref target="connections"/></c>
      <c>5</c>
      <c>A standing connection keyed by an identity handle, owner-visible and owner-revocable</c>
      <c>Nothing directly; the persisted claims token is the ancestor</c>
      <c><xref target="connections"/></c>
      <c>6</c>
      <c>Discovery in more than one binding encoding from one registry, and challenge corroboration</c>
      <c>Metadata documents predate this; the challenge carries <spanx style="verb">as_uri</spanx> on faith</c>
      <c><xref target="corroboration"/>, <xref target="U4AFedAuthz"/></c>
      <c>7</c>
      <c>Public metadata stays structural; owner-bound instances served only to the owner's authority</c>
      <c>The resource server pushes owner-bound registrations under the protection token</c>
      <c><xref target="U4AFedAuthz"/></c>
      <c>8</c>
      <c>The challenge is a set of parameters; each binding says how they travel</c>
      <c><spanx style="verb">WWW-Authenticate</spanx> is mandated</c>
      <c><xref target="challenge-parameters"/></c>
      <c>9</c>
      <c>Enforcement obligations stated as a conformance profile, not a component</c>
      <c>Obligations named, host unnamed</c>
      <c><xref target="obligations"/></c>
      <c>10</c>
      <c>Consumption ordering normative; introspection carries a reason</c>
      <c>Unspecified where a single-use token is spent</c>
      <c><xref target="ordering"/>, <xref target="introspection"/></c>
      <c>11</c>
      <c>Descriptive agent metadata, display only</c>
      <c>The agent is its key, or its issuer's token</c>
      <c><xref target="descriptive-metadata"/></c>
      <c>12</c>
      <c>Structured remediation in the challenge, plus the two members that let a third party decide</c>
      <c>The challenge carries <spanx style="verb">as_uri</spanx> and <spanx style="verb">ticket</spanx></c>
      <c><xref target="remediation"/></c>
      <c>13</c>
      <c>A resource server introduces itself to an owner's authority by signing as its own origin</c>
      <c>How a resource server comes to hold a protection token is unspecified</c>
      <c><xref target="U4AFedAuthz"/></c>
      <c>14</c>
      <c>Every owner-scoped artifact carries its owner; the authority is the owner's choice</c>
      <c>One authorization server per protected resource, owner implicit in the deployment</c>
      <c><xref target="owner-scoped"/></c>
      <c>15</c>
      <c>A depth limit on the owner's pending queue, in two lanes</c>
      <c>No opinion on how many pending requests an owner may be made to hold</c>
      <c><xref target="U4APolicy"/></c>
      <c>16</c>
      <c>Owner-side refusal at operator granularity</c>
      <c>No notion of the party operating a requesting agent</c>
      <c><xref target="U4APolicy"/></c>
      <c>17</c>
      <c>Assurance may only tighten; only the owner's own decisions may relax</c>
      <c>No vocabulary for either</c>
      <c><xref target="U4APolicy"/></c>
      <c>18</c>
      <c>An agent holding a connection may introduce a sibling, which then negotiates its own grant</c>
      <c>No object between "a stranger" and "the same client"</c>
      <c><xref target="U4ALineage"/></c>
      <c>19</c>
      <c>A layer above the resource owner that may only narrow</c>
      <c>The resource rights administrator is named and given no wire surface</c>
      <c><xref target="U4AMultiParty"/></c>
      <c>20</c>
      <c>Several owners of equal standing, with signed verdicts carried in the grant</c>
      <c>Exactly one authorization server per protected resource</c>
      <c><xref target="U4AMultiParty"/></c>
      <c>21</c>
      <c>The owner's own credential to her authorization server: a designated identity provider, an enrolled key, or both, each independently sufficient</c>
      <c>Silent on how the owner authenticates</c>
      <c><xref target="owner-authentication"/></c>
      <c>22</c>
      <c>The owner's API: the surface through which her portal, her tools or her own agent operate her authorization server</c>
      <c>Left to the deployment</c>
      <c><xref target="U4AOwner"/></c>
</texttable>

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

<t>The considerations of <xref target="UMAGrant"/> Section 5 and <xref target="UMAFedAuthz"/> Section 7 apply.
The following are specific to this profile.</t>

<section anchor="authorization-inputs-never-come-from-the-transport"><name>Authorization Inputs Never Come From the Transport</name>

<t>The signature base is reconstructed from the enforcement point's configuration
and from the credential presented, never from the routing layer that delivered
the request. See <xref target="signature-profile"/>. An authority taken from a header is an
authority the caller can choose.</t>

</section>
<section anchor="consumption-is-ordered-and-last"><name>Consumption Is Ordered and Last</name>

<t>See <xref target="ordering"/>. The failure this prevents is not forgery — it is destruction.
An observer who cannot forge a signature can still spend a grant, if the grant is
spent before the signature is checked.</t>

</section>
<section anchor="single-use-must-survive-replication"><name>Single Use Must Survive Replication</name>

<t>See <xref target="indivisibility"/>. An implementation that is correct on one replica and
wrong on two is the normal outcome of reading this requirement as "spend it
once", and the resulting double-spend is silent.</t>

</section>
<section anchor="descriptive-metadata-is-not-authorization"><name>Descriptive Metadata Is Not Authorization</name>

<t>See <xref target="descriptive-metadata"/>. A client ID metadata document proves that it claims
its own URL and nothing further; a key directory proves that whoever controls
that origin published a key. Treating either as an authorization input means that
anyone able to publish a document can influence a decision. An implementation
that displays a resolved name to the owner should expect that name to be the
thing an implementer reaches for when writing policy, and must refuse it there.</t>

</section>
<section anchor="issuers-are-trusted-by-dereference"><name>Issuers Are Trusted by Dereference</name>

<t>An authorization server that verifies an identified agent's credential resolves
the issuer over TLS and believes the keys it publishes. TLS on the issuer origin
is the trust root, which is why non-<spanx style="verb">https</spanx> issuers are refused. This profile
specifies no allow-list of issuers; a deployment <bcp14>MUST</bcp14> supply one, and a
deployment that does not has delegated the question of which parties may attest
agents to the DNS.</t>

</section>
<section anchor="revocation-is-atomic"><name>Revocation Is Atomic</name>

<t>See <xref target="connections"/>. Ending a relationship and invalidating the grants under it
are the same decision and <bcp14>MUST</bcp14> be the same operation.</t>

</section>
<section anchor="a-truncated-request-must-fail-closed"><name>A Truncated Request Must Fail Closed</name>

<t>Where an enforcement point receives a request body that an intermediary may have
truncated, it <bcp14>MUST</bcp14> refuse with a reason naming the truncation. A cut-off
structured body does not parse, so the operation being attempted disappears from
a request that was merely padded. Deny-by-default catches this and misreports it,
which means the deployment learns nothing from a log full of unknown-operation
refusals.</t>

</section>
<section anchor="the-resource-server-must-not-read-the-owners-policy"><name>The Resource Server Must Not Read the Owner's Policy</name>

<t>This is the cross-principal property the whole profile exists for, and it is
structural rather than advisory: the protection API is scoped to a token the
owner authorized, and it carries no operation that returns her policy. An
implementation <bcp14>SHOULD</bcp14> be able to demonstrate the paired assertion — that the
enforcement point is refused the owner's policy and allowed her published keys,
on the same origin.</t>

</section>
<section anchor="not-addressed"><name>Not Addressed</name>

<t>Signing-key rotation is possible through published key sets and is not exercised
by the reference implementation. Revocation propagation between authorization
servers that do not share state is out of scope. <xref target="RFC9728"/> permits an array of
authorization servers per resource and this profile is written for one.</t>

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

<t>The considerations of <xref target="UMAGrant"/> Section 6 apply. The following are specific to
this profile.</t>

<section anchor="public-metadata-is-structural"><name>Public Metadata Is Structural</name>

<t>Which resources a named person owns <bcp14>MUST NOT</bcp14> be published at an unauthenticated
URI. <xref target="U4AFedAuthz"/> specifies the split: the public document describes the
resource's shape, and whose instances sit behind it is served only to the
authority that owner named.</t>

</section>
<section anchor="the-record-names-a-counterparty"><name>The Record Names a Counterparty</name>

<t>An authorization server implementing this profile keeps a record of what was
promised, decided and done, and that record names the requesting agent. It is
the owner's record of her own decisions and it is also a per-agent history, which
is a more sensitive object than either half. Retention is deployment policy; this
profile requires only that a decision the owner did not personally take <bcp14>MUST NOT</bcp14>
be recorded as one she did.</t>

</section>
<section anchor="a-stated-purpose-is-not-evaluated"><name>A Stated Purpose Is Not Evaluated</name>

<t>Where a requesting agent states why it wants access, the authorization server
records it and shows it to the owner. It <bcp14>MUST NOT</bcp14> parse it, compare it to the
purpose in the owner's terms, or let it affect the decision other than by its
absence. An authority that reads a stated purpose and rules on whether it is
plausible has put a judgement about natural language inside an authorization
decision, which makes the same request answerable two ways. See <xref target="U4ATerms"/> and
<xref target="U4APolicy"/>.</t>

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

<section anchor="profile-identifiers"><name>Profile Identifiers</name>

<t><xref target="UMAGrant"/> Section 4 asks that a profile or extension be given a uniquely
identifying URI and that an authorization server supporting one advertise it in
<spanx style="verb">uma_profiles_supported</spanx>. There is no IANA registry for these; they are recorded
here.</t>

<texttable title="Profile identifying URIs.">
      <ttcol align='left'>Document</ttcol>
      <ttcol align='left'>Identifying URI</ttcol>
      <c>This document</c>
      <c><spanx style="verb">https://u4a.ai/spec/core/1.0</spanx></c>
      <c><xref target="U4ATerms"/></c>
      <c><spanx style="verb">https://u4a.ai/spec/terms/1.0</spanx></c>
      <c><xref target="U4AFedAuthz"/></c>
      <c><spanx style="verb">https://u4a.ai/spec/fedauthz/1.0</spanx></c>
      <c><xref target="U4APolicy"/></c>
      <c><spanx style="verb">https://u4a.ai/spec/policy/1.0</spanx></c>
      <c><xref target="U4ALineage"/></c>
      <c><spanx style="verb">https://u4a.ai/spec/lineage/1.0</spanx></c>
      <c><xref target="U4AMultiParty"/></c>
      <c><spanx style="verb">https://u4a.ai/spec/multiparty/1.0</spanx></c>
      <c><xref target="U4AOwner"/></c>
      <c><spanx style="verb">https://u4a.ai/spec/owner/1.0</spanx></c>
      <c><xref target="U4AMCP"/></c>
      <c><spanx style="verb">https://u4a.ai/spec/mcp/1.0</spanx></c>
      <c><xref target="U4AAAuth"/></c>
      <c><spanx style="verb">https://u4a.ai/spec/aauth/1.0</spanx></c>
</texttable>

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

<t>IANA is asked to register the following in the "JSON Web Token Claims" registry
established by <xref target="RFC7519"/>.</t>

<dl>
  <dt>Claim Name:</dt>
  <dd>
    <t><spanx style="verb">permissions</spanx></t>
  </dd>
  <dt>Claim Description:</dt>
  <dd>
    <t>Permissions granted to the requesting party, as defined by <xref target="UMAFedAuthz"/>
Section 5.1.1</t>
  </dd>
  <dt>Change Controller:</dt>
  <dd>
    <t>IETF</t>
  </dd>
  <dt>Specification Document(s):</dt>
  <dd>
    <t><xref target="rpt"/> of this document</t>
  </dd>
  <dt>Claim Name:</dt>
  <dd>
    <t><spanx style="verb">owner</spanx></t>
  </dd>
  <dt>Claim Description:</dt>
  <dd>
    <t>The resource owner on whose behalf a token was issued</t>
  </dd>
  <dt>Change Controller:</dt>
  <dd>
    <t>IETF</t>
  </dd>
  <dt>Specification Document(s):</dt>
  <dd>
    <t><xref target="owner-scoped"/> of this document</t>
  </dd>
  <dt>Claim Name:</dt>
  <dd>
    <t><spanx style="verb">single_use</spanx></t>
  </dd>
  <dt>Claim Description:</dt>
  <dd>
    <t>Whether the token may be spent exactly once</t>
  </dd>
  <dt>Change Controller:</dt>
  <dd>
    <t>IETF</t>
  </dd>
  <dt>Specification Document(s):</dt>
  <dd>
    <t><xref target="operation-binding"/> of this document</t>
  </dd>
  <dt>Claim Name:</dt>
  <dd>
    <t><spanx style="verb">operation</spanx></t>
  </dd>
  <dt>Claim Description:</dt>
  <dd>
    <t>The single operation and parameter digest a token is bound to</t>
  </dd>
  <dt>Change Controller:</dt>
  <dd>
    <t>IETF</t>
  </dd>
  <dt>Specification Document(s):</dt>
  <dd>
    <t><xref target="operation-binding"/> of this document</t>
  </dd>
</dl>

</section>
<section anchor="authorization-details-type-registration"><name>Authorization Details Type Registration</name>

<t>IANA is asked to register the following in the "OAuth Authorization Server
Metadata" sub-registry for authorization details types established by
<xref target="RFC9396"/>.</t>

<dl>
  <dt>Type Name:</dt>
  <dd>
    <t><spanx style="verb">urn:uma4agents:authorization-details:tool-call</spanx></t>
  </dd>
  <dt>Type Description:</dt>
  <dd>
    <t>An attempted invocation of one named operation on a protected resource</t>
  </dd>
  <dt>Change Controller:</dt>
  <dd>
    <t>IETF</t>
  </dd>
  <dt>Specification Document(s):</dt>
  <dd>
    <t><xref target="remediation"/> of this document</t>
  </dd>
</dl>

</section>
<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">terms_endpoint</spanx></t>
  </dd>
  <dt>Metadata Description:</dt>
  <dd>
    <t>URL of the resource owner's terms roster</t>
  </dd>
  <dt>Change Controller:</dt>
  <dd>
    <t>IETF</t>
  </dd>
  <dt>Specification Document(s):</dt>
  <dd>
    <t><xref target="U4ATerms"/></t>
  </dd>
</dl>

</section>
</section>


  </middle>

  <back>


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

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



<reference anchor="RFC6749">
  <front>
    <title>The OAuth 2.0 Authorization Framework</title>
    <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
    <date month="October" year="2012"/>
    <abstract>
      <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6749"/>
  <seriesInfo name="DOI" value="10.17487/RFC6749"/>
</reference>
<reference anchor="RFC6750">
  <front>
    <title>The OAuth 2.0 Authorization Framework: Bearer Token Usage</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="D. Hardt" initials="D." surname="Hardt"/>
    <date month="October" year="2012"/>
    <abstract>
      <t>This specification describes how to use bearer tokens in HTTP requests to access OAuth 2.0 protected resources. Any party in possession of a bearer token (a "bearer") can use it to get access to the associated resources (without demonstrating possession of a cryptographic key). To prevent misuse, bearer tokens need to be protected from disclosure in storage and in transport. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6750"/>
  <seriesInfo name="DOI" value="10.17487/RFC6750"/>
</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="RFC7517">
  <front>
    <title>JSON Web Key (JWK)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <date month="May" year="2015"/>
    <abstract>
      <t>A JSON Web Key (JWK) is a JavaScript Object Notation (JSON) data structure that represents a cryptographic key. This specification also defines a JWK Set JSON data structure that represents a set of JWKs. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries established by that specification.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7517"/>
  <seriesInfo name="DOI" value="10.17487/RFC7517"/>
</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="RFC7662">
  <front>
    <title>OAuth 2.0 Token Introspection</title>
    <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
    <date month="October" year="2015"/>
    <abstract>
      <t>This specification defines a method for a protected resource to query an OAuth 2.0 authorization server to determine the active state of an OAuth 2.0 token and to determine meta-information about this token. OAuth 2.0 deployments can use this method to convey information about the authorization context of the token from the authorization server to the protected resource.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7662"/>
  <seriesInfo name="DOI" value="10.17487/RFC7662"/>
</reference>
<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="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="RFC9728">
  <front>
    <title>OAuth 2.0 Protected Resource Metadata</title>
    <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
    <author fullname="P. Hunt" initials="P." surname="Hunt"/>
    <author fullname="A. Parecki" initials="A." surname="Parecki"/>
    <date month="April" year="2025"/>
    <abstract>
      <t>This specification defines a metadata format that an OAuth 2.0 client or authorization server can use to obtain the information needed to interact with an OAuth 2.0 protected resource.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9728"/>
  <seriesInfo name="DOI" value="10.17487/RFC9728"/>
</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="UMAFedAuthz" target="https://docs.kantarainitiative.org/uma/wg/rec-oauth-uma-federated-authz-2.0.html">
  <front>
    <title>Federated Authorization for User-Managed Access (UMA) 2.0</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="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="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="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="RFC9635">
  <front>
    <title>Grant Negotiation and Authorization Protocol (GNAP)</title>
    <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
    <author fullname="F. Imbault" initials="F." surname="Imbault"/>
    <date month="October" year="2024"/>
    <abstract>
      <t>The Grant Negotiation and Authorization Protocol (GNAP) defines a mechanism for delegating authorization to a piece of software and conveying the results and artifacts of that delegation to the software. This delegation can include access to a set of APIs as well as subject information passed directly to the software.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9635"/>
  <seriesInfo name="DOI" value="10.17487/RFC9635"/>
</reference>
<reference anchor="RFC9449">
  <front>
    <title>OAuth 2.0 Demonstrating Proof of Possession (DPoP)</title>
    <author fullname="D. Fett" initials="D." surname="Fett"/>
    <author fullname="B. Campbell" initials="B." surname="Campbell"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="D. Waite" initials="D." surname="Waite"/>
    <date month="September" year="2023"/>
    <abstract>
      <t>This document describes a mechanism for sender-constraining OAuth 2.0 tokens via a proof-of-possession mechanism on the application level. This mechanism allows for the detection of replay attacks with access and refresh tokens.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9449"/>
  <seriesInfo name="DOI" value="10.17487/RFC9449"/>
</reference>

<reference anchor="I-D.ietf-oauth-rar-metadata-remediation">
   <front>
      <title>OAuth 2.0 RAR Metadata and Error Remediation</title>
      <author fullname="Yaron Zehavi" initials="Y." surname="Zehavi">
         <organization>Raiffeisen Bank International</organization>
      </author>
      <date day="23" month="August" year="2026"/>
      <abstract>
	 <t>   OAuth 2.0 Rich Authorization Requests (RAR) [RFC9396] standardizes
   the exchange and processing of authorization details but does not
   define metadata for describing authorization details types.

   In addition, no interoperable guidance is offered to clients, to
   remediate failures by resource servers due to insufficient
   authorization details.

   This document addresses this interoperability challenge, allowing
   clients to dynamically discover metadata instead of relying on out-
   of-band agreements, as well as standardizes failure signaling
   including interoperable remediation when insufficient authorization
   details are the cause of failure.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-rar-metadata-remediation-00"/>
   
</reference>

<reference anchor="I-D.ietf-oauth-identity-assertion-authz-grant">
   <front>
      <title>Identity Assertion JWT Authorization Grant</title>
      <author fullname="Aaron Parecki" initials="A." surname="Parecki">
         <organization>Okta</organization>
      </author>
      <author fullname="Karl McGuinness" initials="K." surname="McGuinness">
         <organization>Independent</organization>
      </author>
      <author fullname="Brian Campbell" initials="B." surname="Campbell">
         <organization>Ping Identity</organization>
      </author>
      <date day="21" month="May" year="2026"/>
      <abstract>
	 <t>   This specification provides a mechanism for an application to use an
   identity assertion to obtain an access token for a third-party API by
   coordinating through an identity provider that the downstream
   Resource Authorization Server already trusts for single sign-on
   (SSO), using Token Exchange [RFC8693] and JWT Profile for OAuth 2.0
   Authorization Grants [RFC7523].  This pattern is informally referred
   to as Cross-App Access (XAA).

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-identity-assertion-authz-grant-04"/>
   
</reference>

<reference anchor="I-D.meunier-webbotauth-httpsig-protocol">
   <front>
      <title>HTTP Message Signatures for automated traffic</title>
      <author fullname="Thibault Meunier" initials="T." surname="Meunier">
         <organization>Cloudflare</organization>
      </author>
      <author fullname="Sandor Major" initials="S." surname="Major">
         <organization>Google</organization>
      </author>
      <date day="18" month="August" year="2026"/>
      <abstract>
	 <t>   This document describes a protocol for identifying automated traffic
   using [HTTP-MESSAGE-SIGNATURES].  The goal is to allow automated HTTP
   clients to cryptographically sign outbound requests, allowing HTTP
   servers to verify their identity with confidence.

   It defines the Signature-Agent header field for in-band key
   discovery, a key directory format based on JWKS, and a well-known URI
   at which that directory is served.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-meunier-webbotauth-httpsig-protocol-02"/>
   
</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="I-D.hardt-aauth-protocol">
   <front>
      <title>AAuth Protocol</title>
      <author fullname="Dick Hardt" initials="D." surname="Hardt">
         <organization>Hellō</organization>
      </author>
      <date day="28" month="April" year="2026"/>
      <abstract>
	 <t>   This document defines the AAuth authorization protocol for agent-to-
   resource authorization and identity claim retrieval.  The protocol
   supports four resource access modes — identity-based, resource-
   managed (two-party), PS-managed (three-party), and federated (four-
   party) — with agent governance as an orthogonal layer.  It builds on
   the HTTP Signature Keys specification
   ([I-D.hardt-httpbis-signature-key]) for HTTP Message Signatures and
   key discovery.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-hardt-aauth-protocol-02"/>
   
</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="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="U4AOwner" target="https://u4a.ai/spec/draft-gamb-uma4agents-owner-00.html">
  <front>
    <title>The Resource Owner's API 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-owner-00"/>
</reference>
<reference anchor="U4AAAuth" target="https://u4a.ai/spec/draft-gamb-uma4agents-aauth-00.html">
  <front>
    <title>AAuth Binding for User-Managed Access (UMA) 2.0 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-aauth-00"/>
</reference>
<reference anchor="U4AMCP" target="https://u4a.ai/spec/draft-gamb-uma4agents-mcp-00.html">
  <front>
    <title>Model Context Protocol Binding 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-mcp-00"/>
</reference>
<reference anchor="UMAClaims2010" >
  <front>
    <title>Simple Access Authorization Claims</title>
    <author initials="E." surname="Maler" fullname="Eve Maler">
      <organization></organization>
    </author>
    <author initials="P." surname="Bryan" fullname="Paul Bryan">
      <organization></organization>
    </author>
    <date year="2010" month="April"/>
  </front>
</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 1131?>

<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>

<section anchor="uma-for-agents-reference-implementation"><name>UMA for Agents Reference Implementation</name>

<dl>
  <dt>Organization:</dt>
  <dd>
    <t>Independent</t>
  </dd>
  <dt>Description:</dt>
  <dd>
    <t>A running deployment of this profile and the rest of its set: an authorization
server, an enforcement point in two hosting shapes, a protected resource, an
operator key directory, and requesting agents at both identity levels. It runs
under container orchestration and on a single host, against both an in-memory
and a replicated store. It carries two requesting-agent implementations that
share no code — one in Python, one in TypeScript — which meet on the wire and
nowhere else; the second was written from these documents rather than from
the first, and found one defect in the enforcement point on its first run.</t>
  </dd>
  <dt>Level of maturity:</dt>
  <dd>
    <t>Research. The implementation exists to establish that the requirements in this
document can be met and to find the ones that cannot.</t>
  </dd>
  <dt>Coverage:</dt>
  <dd>
    <t>Every normative requirement in this document is exercised by an automated
check, except those addressed to deployments or to bindings rather than to this
profile's own components. The register at
https://u4a.ai/spec/conformance.yaml names, for each requirement, the check
that verifies it and the assertion that check prints.</t>
  </dd>
  <dt>Licensing:</dt>
  <dd>
    <t>Apache 2.0.</t>
  </dd>
  <dt>Contact:</dt>
  <dd>
    <t><xref target="U4ALAB"/></t>
  </dd>
  <dt>Notes:</dt>
  <dd>
    <t>Several requirements in this document exist because the intuitive
implementation was written first and was wrong. <xref target="ordering"/>, <xref target="indivisibility"/>,
<xref target="signature-profile"/> and <xref target="identity-levels"/> each record a defect found by
running the implementation rather than by reading the specification it was
built from.</t>
  </dd>
</dl>

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

<t>This profile rests on <xref target="UMAGrant"/> and <xref target="UMAFedAuthz"/>, and on the decade of
Kantara UMA Work Group discussion behind them. The idea that a resource owner
might proffer terms rather than receive them appears in UMA's own 2010 work on
access authorization claims <xref target="UMAClaims2010"/>.</t>

<t><xref target="I-D.hardt-aauth-protocol"/> supplied the agent identity and key-binding
mechanics this profile composes with, and the observation that its resource
token and UMA's permission ticket are the same object minted on opposite sides.
<xref target="I-D.meunier-webbotauth-registry"/> supplied the operator key directory.
<xref target="I-D.ietf-oauth-rar-metadata-remediation"/> supplied the remediation payload that
<xref target="remediation"/> extends by two members.</t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA+1965bbRpLmfzwFlvrhbi1JVelmuzSe7rIk23LrNip51O45
fUSQRFXBBQIcAKwSW9KcfYh9gH2WfZR9ko0vLnkBwbJsz+yZ6bNzprtLIC6Z
kZFx/SJyMpkkXdGV+VE6+qHNm8mzrMrO8mV6vFjkbZv+7odnx79Pb08P0pdN
fVqUeXpaN+nxpqurelVv2vT4LK+6dpRk83mTX+Itz475fr5Pf1zWiypb0TeW
TXbaTc6y1XyyWWV3M/59sqibfHJwkCyyLj+rm+1R2nbLpN3MV0XbFnXVbdf0
7JPHr79JinVzlHbNpu1uHxx8eXA7yZo8O0pP8sWmKbptcpFvr+pmeZT+C41j
nGab7rxuir9lHb2G/snfG6fLvMzP9Nq6qevTCf3/um7bnL/316Ttsmr5Nivr
ij68zdtkXdAru3oxTtu66Zr8lN7Sblf446+JfOUoSdMJ/SdNi6o9Sp9P029p
nnxBJv+8WFz4a3VzllU6sqP0WVEtv82aZV6lT58+5BvyVVaUR2lFT4FgfzzD
v6eLehV/5/E0fZaVeRN86PFlHlyLP/TPeVWl32SLjuicVHWzouuXOcb+6puH
9z+/+6X7896B/vn5vcN7/s/P/Z927+f373zh/rx/W//84u7hXf3zyztf3rc/
794+tD/v3bFPfPn5bX4DLdq3TVZ1RzzyT2NMfoDZ7QXx5TlfOw7XfcQv84uE
/5sMEG8fAd3dz3D34nxTZhe9B+hykf/U/1Uf+36avioW5ztf+Z64uKjC35a0
AY7S2weHX0wODicHn/NFmnyRt0V1Wtvg/0QTzhpi+1c5scMqr5Y8T6FZ1pzl
3VF63nXr9ujWLdp67fRCHiiqoit4vafEFLdoB966OrvV5ItJDepgS07OQM0J
0XB63q1KWZJv8iUI+rd4Vehq3tCAlzG1eSWuXbH/vx6/YD1OjcoTXPpbtDJ3
j1/nzaqNl+XFVUW0h7Q+zRuiPt/ymxYllGT7pNkvW0Gj6+37eyj6pOrypsq7
ySMojH16o8PUoDiGCL25m02z4la7zhe3rn88oOcv5/QBVfhfj5DEZMJdv5qW
wRuEnBhErFy+vH/nnlMComeeTB5Ni7w7VX5vsmayyruMZpVNmnyVLwvRWru3
FqQpaXm2k4yUdoObdH+cmfrAA6t8UxXE9Ff5fF53/CBPqTibkNondV6X19za
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
6anWgLZa2y5mrc9JZ9pBEb292R0X8yLb179LUZ7SJFBQ+NYnRl8ahkIXjLM8
LTfSXsoZOQPskFgVFpwZSx6UcJmtJZRXKBrxloYyMl27aS7VOnZ+i/8I43l9
B3gGhQG7zHErbd8HInOBt4LkCkUqKwxV+wMeN5CLgkYn5+GRj7ztBzr0mp3t
NmiMMQ06dwE6ak9ABge8fnrCo9Q2hK7aXFr7Wzu3Kd+ndrg9ziuf6CZiND1J
1Do8VAKApqquJtZuzzVEbKy12TIui0ui3oW+aSHHe+XhB+l1vQsVuhSml/SM
EMUjC96izM8yy0E7oIk7+4NrcXOxm6VvZaJ9K5VpHj0/sU7mDnZFe/i4q1fF
wjZu3Os6faz1w7tYM4cuM0iXHjJjsLskM0EKlnRthx2OYR786qtxRC2Dryo5
nkT7RoikRYu49CHQVUuX3dkP943a6XHTEoOERf1FQC80kk46+ygD4ftoYB/g
CKDN+ohs5XSx6Sb16WnS+lgBf9YtI3fJ8fUyDg6ppV6u9om2v+Hwucmpn0Zn
Veja0GPN+LEp7b5qO5lvJ1pjSBLHeisWEtRdFa3VTRSdtds3IRYZegDJVR6l
pWZBWUPgylmtm4qPaZx4hKZ6le006PehxrseAcTrB3XxCgi+LgCSie+mORxD
0PUykVGaUo6wstSOz0264gSocxeIjA/EWpI2JhVx1I8SoqY0hhFoAMOhrYJa
46AKwp1r0MO22gmsYpZjgly71FP92qM76H+9zFdyCoAC9dYZJ8/8WQtSECUg
hIFOBaz55RCfgewrSxmtWuGRRZisscFWZE/K+Ty8oKzml0sub6addyJxogkX
QenpMVxmoge3Odckej/Cqm3YICd/lzcLHO+euP6aw6fFTkOJBVbIzmzfiPc9
lEBvTYRKQce5K6nYqY+NEq6cEpFAix1OOQg55KKaNIJP9DsYQq12cpaLO33+
ZVNcZovf5AvdV28nvdbbSXa9HQ3Zh/bbidsm1v3X52MzDR0IVAus1EYItMB4
6qSHR3SwVPLDqyfTnXCf15TMaGTidroXZXDOZAqPJvdVx5/pyWTjAK8S5BaK
Lii2LYaSDZFHYxgWBVsFsovx888lN0hrxflDDoP9mpoDwdVmBstnhS1SHDCm
VcE1lhIKXmoZkpkErhVds3TIm12ImiLcknDH+495YJ1F1oKq0rKtBY030WhZ
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

-->

</rfc>

