<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-shankarlingam-oauth-agent-dns-link-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.35.0 -->
  <front>
    <title abbrev="Agent DNS-OAuth Link">Linking an Agent's DNS Name to its OAuth Client</title>
    <seriesInfo name="Internet-Draft" value="draft-shankarlingam-oauth-agent-dns-link-01"/>
    <author fullname="Sriram Shankarlingam">
      <organization>HexaEight</organization>
      <address>
        <postal>
          <country>India</country>
        </postal>
        <email>sriram.s@hexaeight.com</email>
      </address>
    </author>
    <date year="2026" month="October" day="28"/>
    <area>Security</area>
    <keyword>AI agents</keyword>
    <keyword>OAuth</keyword>
    <keyword>DNS</keyword>
    <keyword>workload identity</keyword>
    <keyword>cross-domain</keyword>
    <abstract>
      
<t>Software agents increasingly call agents and services operated by other
organizations. A receiving organization often wants to know two things about
any such caller: that it is the agent it claims to be, and that the organization
operating it still authorizes it. Existing approaches to the second question
require a trust relationship between the two organizations' authorization
servers.</t>
      <t>This document defines a DNS record by which the owner of a domain links an
agent's DNS name to the OAuth client that the agent uses at the owner's own
authorization server. The sending agent presents a fresh access token for that
client; the receiver verifies the token against the record and against the
issuer's published keys. No trust relationship, registration or federation
between the two organizations is needed, and disabling the client at the
sending organization's authorization server stops the agent being accepted by
every receiver.</t>
    </abstract>
  </front>
  <middle>
    
<section anchor="introduction">
      <name>Introduction</name>
      <t>An agent operated by organization A (for example <tt>agent01.a.example</tt>) calls an
agent or service operated by organization B. Before answering, B wants
assurance that:</t>
      <ol spacing="normal" type="1"><li>
          <t>the caller is <tt>agent01.a.example</tt>, and</t>
        </li>
        <li>
          <t>organization A still authorizes <tt>agent01.a.example</tt> to act.</t>
        </li>
      </ol>
      <t>Question 1 is answered by whatever mechanism authenticates the caller: an
authenticated channel, a client certificate, a sender-constrained token, or an
agent identity system. Question 2 is usually answered inside one organization
by its authorization server: when an administrator disables a client, that
client can no longer obtain tokens.</t>
      <t>Across organizations, question 2 is harder. OAuth Identity and Authorization
Chaining Across Domains <xref target="I-D.ietf-oauth-identity-chaining"/>, OpenID Federation
<xref target="OpenID.Federation"/> and cloud workload identity federation all work, but each
requires the receiving side's authorization server or trust anchor to be
configured to trust the sending side's, pair by pair or through a shared anchor.
For agents that call many partners, this setup does not scale, and in practice
organizations fall back to long-lived API keys that are not disabled when the
agent is.</t>
      <t>This document takes a narrower approach. The sending organization publishes, in
DNS under the agent's name, which issuer and client identifier the agent uses.
With every call the agent presents a short-lived access token issued to that
client. Any receiver can check the token using only public information: the DNS
record and the issuer's published signing keys. The receiver does not need to
trust the sender's authorization server for anything beyond a signed statement
that it recently issued a token to the named client.</t>
      <t>The token grants nothing. It is issued for a dedicated audience that no resource
server accepts, and serves only as evidence that the client is still active. The
receiver continues to make its own access decisions.</t>
      <section anchor="goals">
        <name>Goals</name>
        <ul spacing="normal">
          <li>
            <t>Link an agent's DNS name to an existing OAuth client with no change at any
authorization server and no per-partner configuration.</t>
          </li>
          <li>
            <t>Give the operating organization a single control (disabling the client) that
takes effect at every receiver.</t>
          </li>
          <li>
            <t>Let any receiver verify the link without prior contact with the sender.</t>
          </li>
          <li>
            <t>Prevent a linked agent from evading the check by omitting the token.</t>
          </li>
        </ul>
      </section>
      <section anchor="non-goals">
        <name>Non-goals</name>
        <ul spacing="normal">
          <li>
            <t>Authenticating the agent's name. That is the job of the channel or of a
sender-constrained token (<xref target="modes"/>).</t>
          </li>
          <li>
            <t>Granting access. The token carries no permissions; the receiver applies its
own authorization policy.</t>
          </li>
          <li>
            <t>Conveying the identity of users on whose behalf the agent acts.</t>
          </li>
        </ul>
      </section>
      <section anchor="requirements-language">
        <name>Requirements Language</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>
        
</section>
      <section anchor="terminology">
        <name>Terminology</name>
        <dl>
          <dt>Agent name:</dt>
          <dd>
            <t>A DNS name identifying an agent, for example <tt>agent01.a.example</tt>.</t>
          </dd>
          <dt>Sender:</dt>
          <dd>
            <t>The agent that makes a call and presents a link token.</t>
          </dd>
          <dt>Receiver:</dt>
          <dd>
            <t>The agent or service that receives the call and verifies the link.</t>
          </dd>
          <dt>Link record:</dt>
          <dd>
            <t>The DNS TXT record defined in <xref target="record"/>.</t>
          </dd>
          <dt>Link token:</dt>
          <dd>
            <t>An access token as described in <xref target="token"/>.</t>
          </dd>
          <dt>Linked agent:</dt>
          <dd>
            <t>An agent name for which a valid link record exists.</t>
          </dd>
          <dt>Authenticated sender name:</dt>
          <dd>
            <t>The agent name of the sender as established by the receiver through a
mechanism outside this document (<xref target="modes"/>).</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="overview">
      <name>Overview</name>
      <artwork type="ascii-art"><![CDATA[
     Organization A                        Organization B

  +---------------+ (1) client credentials
  | Authorization |<------------+
  | Server (iss)  |-----------+ |
  +---------------+ (2) token | |
          ^                 v |
          |          +------------+ (3) call + token +----------+
          |          | Sender     |----------------->| Receiver |
          |          | agent01... |                  +----------+
          |          +------------+                     |    |
          |  (5) issuer metadata + JWKS (public)        |    |
          +---------------------------------------------+    |
                                                             |
  DNS: _agent-oauth.agent01.a.example TXT  (4) lookup <------+
       "v=agent-oauth1; iss=...; client_id=...; aud=..."
]]></artwork>
      <ol spacing="normal" type="1"><li>
          <t>The sender authenticates to its own authorization server as an OAuth client
(for example with the client credentials grant, Section 4.4 of <xref target="RFC6749"/>).</t>
        </li>
        <li>
          <t>It receives a link token for a dedicated audience.</t>
        </li>
        <li>
          <t>It presents the token with each call to a receiver.</t>
        </li>
        <li>
          <t>The receiver looks up the link record for the sender's agent name.</t>
        </li>
        <li>
          <t>The receiver verifies the token's signature using the issuer's published
keys, and checks that issuer, client identifier and audience match the record.</t>
        </li>
      </ol>
    </section>
    <section anchor="modes">
      <name>Establishing the Sender's Name</name>
      <t>This document links an agent name to an OAuth client. It relies on the receiver
already knowing, or being able to establish, the sender's agent name. Two modes
are defined.</t>
      <section anchor="channel-mode">
        <name>Channel Mode</name>
        <t>The receiver obtains the authenticated sender name from the channel over which
the call arrives. Examples include an end-to-end authenticated and encrypted
channel provided by an agent identity system, or mutual TLS with a certificate
whose subject alternative name is the agent name.</t>
        <t>In channel mode, the link token <bcp14>MUST</bcp14> be carried inside the protected channel so
that it is not exposed to intermediaries, and the channel <bcp14>MUST</bcp14> bind the token to
the authenticated sender name (that is, an intermediary cannot move a token from
one sender's messages to another's).</t>
      </section>
      <section anchor="sender-constrained-mode">
        <name>Sender-Constrained Mode</name>
        <t>The sender states its agent name in the <tt>Agent-Link-Name</tt> HTTP request header
field (<xref target="field"/>), and presents a link token that is sender-constrained, for
example with DPoP <xref target="RFC9449"/> or mutual-TLS certificate-bound tokens
<xref target="RFC8705"/>. The receiver verifies the sender-constraint as specified for that
mechanism, then verifies the link as described in <xref target="receiver"/>, using the stated
agent name. A request in this mode without exactly one <tt>Agent-Link-Name</tt> field
<bcp14>MUST</bcp14> be refused.</t>
        <t>The field is not signed and does not need to be: a sender that states another
agent's name fails the link check, because its token was issued to a client
other than the one published for that name.</t>
        <t>In this mode the agent name is established by the link itself: the receiver
learns that the caller holds the key bound to a token issued to the client that
the domain owner has published for that name. The strength of the name binding
is therefore that of the DNS lookup (<xref target="sec-dns"/>). Because a forged DNS answer
would let an attacker impersonate the agent entirely, sender-constrained mode
<bcp14>SHOULD NOT</bcp14> be used unless the receiver validates the link record with DNSSEC.</t>
        <t>A receiver <bcp14>MUST NOT</bcp14> accept a link token that is neither carried in channel mode
nor sender-constrained, because a bearer token could be replayed by anyone who
obtains it.</t>
      </section>
    </section>
    <section anchor="record">
      <name>The Link Record</name>
      <section anchor="location">
        <name>Location</name>
        <t>The link record is a DNS TXT record <xref target="RFC1035"/> at the underscored name
<tt>_agent-oauth</tt> beneath the agent name <xref target="RFC8552"/>:</t>
        <artwork><![CDATA[
_agent-oauth.agent01.a.example. IN TXT (
    "v=agent-oauth1; iss=https://login.a.example/; "
    "client_id=7f3c2a90-1b4e-4c55-9d1a-2e6f8b0c4d11; "
    "aud=api://agent-proof" )
]]></artwork>
      </section>
      <section anchor="syntax">
        <name>Syntax</name>
        <sourcecode type="abnf"><![CDATA[
link-record = version *( ";" *SP field ) [";"]
version     = "v=agent-oauth1"
field       = key "=" value
key         = "iss" / "client_id" / "aud" / ext-key
ext-key     = 1*( ALPHA / DIGIT / "_" / "-" )
value       = 1*( %x21-3A / %x3C-7E )   ; printable, no ";" or space
]]></sourcecode>
        <t>A TXT record consisting of several character-strings is concatenated before
parsing. Fields:</t>
        <dl>
          <dt>iss (<bcp14>REQUIRED</bcp14>):</dt>
          <dd>
            <t>The issuer identifier of the authorization server, exactly as it appears in
the <tt>iss</tt> claim of tokens it issues.</t>
          </dd>
          <dt>client_id (<bcp14>REQUIRED</bcp14>):</dt>
          <dd>
            <t>The client identifier of the agent's OAuth client at that issuer.</t>
          </dd>
          <dt>aud (<bcp14>REQUIRED</bcp14>):</dt>
          <dd>
            <t>The audience value for which link tokens are issued (<xref target="token"/>).</t>
          </dd>
        </dl>
        <t>Receivers <bcp14>MUST</bcp14> ignore unknown keys. TXT records at the same name that do not
begin with <tt>v=agent-oauth1</tt> <bcp14>MUST</bcp14> be ignored.</t>
      </section>
      <section anchor="validity">
        <name>Validity</name>
        <t>The record is valid if exactly one TXT record at the name begins with
<tt>v=agent-oauth1</tt> and it contains each required field exactly once. If more than
one such record exists, or a required field is missing or repeated, the agent
name <bcp14>MUST</bcp14> be treated as linked with an invalid record, and calls from it <bcp14>MUST</bcp14> be
refused (<xref target="receiver"/>). Publishing an invalid record therefore fails closed.</t>
        <t>The domain owner <bcp14>SHOULD</bcp14> sign the zone with DNSSEC <xref target="RFC4033"/>. Receivers <bcp14>SHOULD</bcp14>
validate DNSSEC when it is available.</t>
      </section>
    </section>
    <section anchor="token">
      <name>The Link Token</name>
      <t>A link token is a JWT access token <xref target="RFC9068"/> issued by the authorization
server named in <tt>iss</tt> to the client named in <tt>client_id</tt>. In addition to the
requirements of <xref target="RFC9068"/>:</t>
      <ul spacing="normal">
        <li>
          <t>The <tt>aud</tt> claim <bcp14>MUST</bcp14> contain the value published in the record. That audience
<bcp14>MUST</bcp14> be dedicated to this purpose: it <bcp14>MUST NOT</bcp14> be an audience accepted by any
resource server.</t>
        </li>
        <li>
          <t>The token <bcp14>MUST NOT</bcp14> grant anything. It <bcp14>MUST NOT</bcp14> carry roles, permissions or
entitlements, and <bcp14>MUST NOT</bcp14> carry scopes other than at most one scope that the
issuer defines for this purpose and that no resource server accepts.</t>
        </li>
        <li>
          <t>The token <bcp14>MUST</bcp14> identify the client. <xref target="RFC9068"/> uses the <tt>client_id</tt> claim,
and receivers <bcp14>MUST</bcp14> use it when it is present. As a compatibility allowance
for widely deployed issuers that do not follow <xref target="RFC9068"/> in this respect,
a receiver <bcp14>MAY</bcp14> instead use another claim that the issuer documents as
identifying the client (for example <tt>azp</tt>, <tt>appid</tt> or <tt>cid</tt>), but only when
<tt>client_id</tt> is absent and only one such claim is present. Receivers that
differ in which claims they allow may reach different results for the same
token; issuers that conform to <xref target="RFC9068"/> avoid this.</t>
        </li>
      </ul>
      <t>The sender <bcp14>MUST</bcp14> inspect each link token before using it and <bcp14>MUST NOT</bcp14> present a
token that fails these requirements. This protects the sender's organization if
its client is misconfigured: a token that granted access to the sender's own
resources would otherwise be handed to every receiver.</t>
    </section>
    <section anchor="field">
      <name>The Agent-Link-Name Field</name>
      <t>In sender-constrained mode the sender states its agent name in the
<tt>Agent-Link-Name</tt> HTTP request header field. Its value is a String Structured
Field Item (<xref section="3.3.3" sectionFormat="of" target="RFC9651"/>) containing the agent name in its ASCII
form (A-labels), without a trailing dot:</t>
      <sourcecode type="http-message"><![CDATA[
Agent-Link-Name: "agent01.a.example"
]]></sourcecode>
      <t>Receivers compare agent names case-insensitively. The field is not used in
channel mode, where the channel establishes the name.</t>
    </section>
    <section anchor="sender-procedure">
      <name>Sender Procedure</name>
      <ol spacing="normal" type="1"><li>
          <t>Obtain a link token from the issuer for the configured audience.</t>
        </li>
        <li>
          <t>Inspect it as described in <xref target="token"/>; if it grants anything, do not use it
and report the misconfiguration to the operator.</t>
        </li>
        <li>
          <t>Cache the token and present it with every call to a receiver, renewing it
before it reaches the receiver's maximum age (<xref target="freshness"/>).</t>
        </li>
        <li>
          <t>A linked agent that cannot obtain a valid link token is in a failed state,
and <bcp14>SHOULD</bcp14> report it to its operator. Calling without a link token is not a
fallback: receivers that perform the checks in this document refuse such
calls. A sender <bcp14>MAY</bcp14> still attempt a call, for example for diagnostics, but
it <bcp14>MUST NOT</bcp14> treat calling without a token as an alternative way to operate.</t>
        </li>
      </ol>
      <t>A sender <bcp14>MAY</bcp14> be configured not to present link tokens to particular receivers.
Receivers that perform the checks in this document will refuse such calls.</t>
    </section>
    <section anchor="receiver">
      <name>Receiver Procedure</name>
      <t>For each incoming call:</t>
      <ol spacing="normal" type="1"><li>
          <t>Establish the sender's agent name (<xref target="modes"/>).</t>
        </li>
        <li>
          <t>Look up the link record for that name.
          </t>
          <ul spacing="normal">
            <li>
              <t>No record: the sender is not linked. The receiver proceeds with its normal
policy, except as described in <xref target="sticky"/>.</t>
            </li>
            <li>
              <t>Invalid record: refuse.</t>
            </li>
            <li>
              <t>Valid record: a link token is <bcp14>REQUIRED</bcp14>; continue.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>If no link token is present, refuse.</t>
        </li>
        <li>
          <t>Obtain the issuer's metadata using <xref target="RFC8414"/> or <xref target="OIDC.Discovery"/> at the
<tt>iss</tt> value from the record, and its JSON Web Key Set <xref target="RFC7517"/>. Metadata
and keys <bcp14>MAY</bcp14> be cached according to HTTP caching rules.</t>
        </li>
        <li>
          <t>Verify the token's signature with those keys, and verify that:
          </t>
          <ul spacing="normal">
            <li>
              <t><tt>iss</tt> equals the record's <tt>iss</tt>;</t>
            </li>
            <li>
              <t>the client identifier equals the record's <tt>client_id</tt>;</t>
            </li>
            <li>
              <t><tt>aud</tt> contains the record's <tt>aud</tt>;</t>
            </li>
            <li>
              <t>the token has not expired, and <tt>iat</tt> is not older than the receiver's
maximum age (<xref target="freshness"/>);</t>
            </li>
            <li>
              <t>the token grants nothing (<xref target="token"/>).</t>
            </li>
          </ul>
        </li>
        <li>
          <t>In sender-constrained mode, verify the sender-constraint.</t>
        </li>
        <li>
          <t>Remove the link token from the request before passing it to any other
component, log or model.</t>
        </li>
        <li>
          <t>Apply the receiver's authorization policy (<xref target="policy"/>).</t>
        </li>
      </ol>
      <t>Any failure <bcp14>MUST</bcp14> result in refusal. A receiver <bcp14>SHOULD</bcp14> record each verification
result, including the agent name and client identifier, in its audit log.</t>
      <section anchor="sticky">
        <name>Once Linked, Always Linked</name>
        <t>If an attacker can cause a receiver's DNS lookup to fail, an agent that is
normally linked could appear unlinked, and a call without a token could be
accepted. A receiver that has once seen a valid link record for an agent name
<bcp14>SHOULD</bcp14> continue to require a link token from that name until it observes, through
a successful (and, where available, DNSSEC-validated) lookup, that the record has
been removed.</t>
      </section>
      <section anchor="freshness">
        <name>Freshness and Revocation</name>
        <t>When the operator disables the client at its authorization server, no new link
tokens are issued, but tokens already issued remain valid until they expire.
Receivers bound this window with a maximum age measured from <tt>iat</tt>. The
effective revocation delay is at most the smaller of the token lifetime and the
receiver's maximum age, plus the DNS and key caching periods.</t>
        <t>A maximum age of 120 minutes or less is <bcp14>RECOMMENDED</bcp14> as a general default.
Deployments in which an agent's actions take effect quickly, such as payments,
trading or automated changes to production systems, <bcp14>SHOULD</bcp14> use a much shorter
maximum age (for example 5 to 15 minutes) chosen from their own threat model;
senders then renew correspondingly more often, subject to the issuer's rate
limits. A receiver <bcp14>MAY</bcp14> apply different maximum ages to different senders or
operations.</t>
        <t>Removing the link record does not revoke the agent at receivers that apply
<xref target="sticky"/>; it only stops new receivers from requiring a token. Disabling the
client is the revocation mechanism.</t>
      </section>
      <section anchor="policy">
        <name>Authorization Policy</name>
        <t>Verifying the link establishes that the operator still authorizes the agent. It
does not decide what the agent may do. Receivers <bcp14>SHOULD</bcp14> express policy for linked
agents in terms of both the agent name and the client identifier, and a policy
entry that matches any agent name (a bare wildcard) <bcp14>SHOULD NOT</bcp14> by itself admit a
linked agent.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="token-replay">
        <name>Token Replay</name>
        <t>A link token is evidence, not a credential, but a stolen token could be replayed
to another receiver by an attacker claiming the sender's name. Channel mode
prevents this by keeping the token inside a channel bound to the authenticated
sender; sender-constrained mode prevents it by binding the token to a key. Bearer
link tokens outside either mode <bcp14>MUST NOT</bcp14> be accepted (<xref target="modes"/>).</t>
      </section>
      <section anchor="misuse-by-the-receiver">
        <name>Misuse by the Receiver</name>
        <t>Every receiver sees the sender's link tokens. If the token's audience were a real
resource server, each receiver would hold a working credential for it. The
requirements that the audience be dedicated and that the token grant nothing
(<xref target="token"/>), and the sender's duty to refuse such tokens, address this. A
receiver that forwards a link token to a third party claiming to be the sender
fails at the third party: in channel mode the channel authenticates the receiver,
not the sender; in sender-constrained mode the receiver lacks the sender's key.</t>
      </section>
      <section anchor="sec-dns">
        <name>DNS</name>
        <t>The link record is only as trustworthy as the DNS answer. Without DNSSEC, an
on-path attacker could forge or suppress the record. Forging it lets the attacker
name a client it controls; this matters most in sender-constrained mode, where the
record also establishes the name. Suppressing it can downgrade a linked agent to
unlinked; <xref target="sticky"/> limits this. Receivers <bcp14>SHOULD</bcp14> use a validating resolver and
short cache lifetimes.</t>
      </section>
      <section anchor="authorization-server-compromise">
        <name>Authorization Server Compromise</name>
        <t>A compromised issuer can mint link tokens for its clients. This affects only
agents linked to that issuer, which are operated by the same organization that
operates the issuer.</t>
      </section>
      <section anchor="clock-skew">
        <name>Clock Skew</name>
        <t>Receivers <bcp14>SHOULD</bcp14> allow a small tolerance on <tt>exp</tt> and <tt>iat</tt>.</t>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>The link record discloses the issuer and client identifier used by an agent.
Neither is secret, but together they reveal which authorization server an
organization uses. Link tokens may contain other claims about the client; senders
<bcp14>SHOULD</bcp14> use clients whose tokens carry no information beyond what this document
requires. The mechanism conveys no information about end users.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to add the following entry to the "Underscored and Globally
Scoped DNS Node Names" registry <xref target="RFC8552"/>:</t>
      <table>
        <thead>
          <tr>
            <th align="left">RR Type</th>
            <th align="left">_NODE NAME</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">TXT</td>
            <td align="left">_agent-oauth</td>
            <td align="left">(this document)</td>
          </tr>
        </tbody>
      </table>
      <t>IANA is requested to add the following entry to the "Hypertext Transfer Protocol
(HTTP) Field Name Registry" (<xref section="16.3.1" sectionFormat="of" target="RFC9110"/>):</t>
      <dl>
        <dt>Field Name:</dt>
        <dd>
          <t>Agent-Link-Name</t>
        </dd>
        <dt>Status:</dt>
        <dd>
          <t>permanent</t>
        </dd>
        <dt>Structured Type:</dt>
        <dd>
          <t>Item</t>
        </dd>
        <dt>Reference:</dt>
        <dd>
          <t><xref target="field"/> of this document</t>
        </dd>
      </dl>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>This section records the status of known implementations of the
protocol defined by this specification at the time of posting of
this Internet-Draft, and is based on a proposal described in
<xref target="RFC7942"/>.  The description of implementations in this section is
intended to assist the IETF in its decision processes in
progressing drafts to RFCs.  Please note that the listing of any
individual implementation here does not imply endorsement by the
IETF.  Furthermore, no effort has been spent to verify the
information presented here that was supplied by IETF contributors.
This is not intended as, and must not be construed to be, a
catalog of available implementations or their features.  Readers
are advised to note that other implementations may exist.</t>
      <t>According to <xref target="RFC7942"/>, "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.  It is up to the individual working groups
to use this information as they see fit".
      </t>
      <section anchor="hexaeight-agent">
        <name>HexaEight Agent</name>
        <dl>
          <dt>Organization:</dt>
          <dd>
            <t>HexaEight</t>
          </dd>
          <dt>Description:</dt>
          <dd>
            <t>An agent runtime that implements the link in channel mode. The sender's name is
established by the HexaEight agent identity channel, which authenticates and
encrypts each message end to end; the link token travels inside the encrypted
message. Implements the sender's inspection of tokens that grant anything, the
receiver checks, once-linked-always-linked, a configurable maximum age (default
120 minutes), removal of the token before logging, and policy rules naming agent
and client identifier.</t>
          </dd>
          <dt>Differences from this document:</dt>
          <dd>
            <t>The deployed record uses the prefix <tt>hexaeight-oauth=v1</tt> at the agent name
itself rather than <tt>v=agent-oauth1</tt> at <tt>_agent-oauth</tt>. Sender-constrained mode
is not implemented.</t>
          </dd>
          <dt>Maturity:</dt>
          <dd>
            <t>Implemented. Interoperability testing between independently operated
organizations is in progress.</t>
          </dd>
          <dt>Licensing:</dt>
          <dd>
            <t>Commercial.</t>
          </dd>
          <dt>Documentation:</dt>
          <dd>
            <t><eref target="https://www.hexaeight.com/docs/concepts/oauth/">https://www.hexaeight.com/docs/concepts/oauth/</eref></t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="relationship-to-other-work">
      <name>Relationship to Other Work</name>
      <t>OAuth Identity and Authorization Chaining <xref target="I-D.ietf-oauth-identity-chaining"/>
and OpenID Federation <xref target="OpenID.Federation"/> let a receiving domain issue or accept
tokens based on a configured trust relationship with the sending domain. This
document needs no such relationship; in exchange, the token it conveys grants
nothing and the receiver keeps all access decisions.</t>
      <t>The OAuth Client ID Metadata Document <xref target="I-D.ietf-oauth-client-id-metadata-document"/>
identifies a client by a URL. The two are complementary: this document links an
agent name to a client at the agent operator's own issuer.</t>
      <t>HTTP Message Signatures <xref target="RFC9421"/> and the work built on them for automated
clients identify the operator of a client by a key published under its domain.
They do not convey whether the operator's own authorization server still
authorizes the client.</t>
      <t>The Workload Authorization Grant <xref target="I-D.carleton-workload-authz-grant"/> lets a
workload obtain access tokens at a third party's authorization server without
per-workload registration, once the platform's issuer has been registered there.
A link record could serve as one way for a receiver to discover the issuer
responsible for an agent name instead of registering it, and names the operating
organization's own issuer even when a platform hosts agents for many
organizations.</t>
      <t>DNS-Anchored Durable Identity for AI Agents <xref target="I-D.ihsanullah-dnsid"/> binds an
agent's DNS name to the accountable entity that controls its domain, with a
lifecycle history that outlives the agent's keys. The two are complementary:
DNSid anchors the agent's durable identity and accountable entity, while the link
record ties the same name to a live signal, from the operator's existing OAuth
client, that the operator still authorizes the agent.</t>
      <t>The WIMSE working group's guidance on authenticating AI agents
<xref target="I-D.ietf-wimse-aims"/> describes building agent authentication on existing OAuth
specifications; this document is offered as one such building block for calls
across organizations.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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>
        <reference anchor="RFC1035">
          <front>
            <title>Domain names - implementation and specification</title>
            <author fullname="P. Mockapetris" initials="P." surname="Mockapetris"/>
            <date month="November" year="1987"/>
            <abstract>
              <t>This RFC is the revised specification of the protocol and format used in the implementation of the Domain Name System. It obsoletes RFC-883. This memo documents the details of the domain name client - server communication.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="13"/>
          <seriesInfo name="RFC" value="1035"/>
          <seriesInfo name="DOI" value="10.17487/RFC1035"/>
        </reference>
        <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="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="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="RFC8552">
          <front>
            <title>Scoped Interpretation of DNS Resource Records through "Underscored" Naming of Attribute Leaves</title>
            <author fullname="D. Crocker" initials="D." surname="Crocker"/>
            <date month="March" year="2019"/>
            <abstract>
              <t>Formally, any DNS Resource Record (RR) may occur under any domain name. However, some services use an operational convention for defining specific interpretations of an RRset by locating the records in a DNS branch under the parent domain to which the RRset actually applies. The top of this subordinate branch is defined by a naming convention that uses a reserved node name, which begins with the underscore character (e.g., "_name"). The underscored naming construct defines a semantic scope for DNS record types that are associated with the parent domain above the underscored branch. This specification explores the nature of this DNS usage and defines the "Underscored and Globally Scoped DNS Node Names" registry with IANA. The purpose of this registry is to avoid collisions resulting from the use of the same underscored name for different services.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="222"/>
          <seriesInfo name="RFC" value="8552"/>
          <seriesInfo name="DOI" value="10.17487/RFC8552"/>
        </reference>
        <reference anchor="RFC9068">
          <front>
            <title>JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens</title>
            <author fullname="V. Bertocci" initials="V." surname="Bertocci"/>
            <date month="October" year="2021"/>
            <abstract>
              <t>This specification defines a profile for issuing OAuth 2.0 access tokens in JSON Web Token (JWT) format. Authorization servers and resource servers from different vendors can leverage this profile to issue and consume access tokens in an interoperable manner.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9068"/>
          <seriesInfo name="DOI" value="10.17487/RFC9068"/>
        </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="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="RFC9651">
          <front>
            <title>Structured Field Values for HTTP</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="P-H. Kamp" surname="P-H. Kamp"/>
            <date month="September" year="2024"/>
            <abstract>
              <t>This document describes a set of data types and associated algorithms that are intended to make it easier and safer to define and handle HTTP header and trailer fields, known as "Structured Fields", "Structured Headers", or "Structured Trailers". It is intended for use by specifications of new HTTP fields.</t>
              <t>This document obsoletes RFC 8941.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9651"/>
          <seriesInfo name="DOI" value="10.17487/RFC9651"/>
        </reference>
        <reference anchor="OIDC.Discovery">
          <front>
            <title>OpenID Connect Discovery 1.0</title>
            <author initials="N." surname="Sakimura" fullname="N. Sakimura">
              <organization/>
            </author>
            <author initials="J." surname="Bradley" fullname="J. Bradley">
              <organization/>
            </author>
            <author initials="M." surname="Jones" fullname="M. Jones">
              <organization/>
            </author>
            <author initials="E." surname="Jay" fullname="E. Jay">
              <organization/>
            </author>
            <date year="2014"/>
          </front>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC4033">
          <front>
            <title>DNS Security Introduction and Requirements</title>
            <author fullname="R. Arends" initials="R." surname="Arends"/>
            <author fullname="R. Austein" initials="R." surname="Austein"/>
            <author fullname="M. Larson" initials="M." surname="Larson"/>
            <author fullname="D. Massey" initials="D." surname="Massey"/>
            <author fullname="S. Rose" initials="S." surname="Rose"/>
            <date month="March" year="2005"/>
            <abstract>
              <t>The Domain Name System Security Extensions (DNSSEC) add data origin authentication and data integrity to the Domain Name System. This document introduces these extensions and describes their capabilities and limitations. This document also discusses the services that the DNS security extensions do and do not provide. Last, this document describes the interrelationships between the documents that collectively describe DNSSEC. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4033"/>
          <seriesInfo name="DOI" value="10.17487/RFC4033"/>
        </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>
        <reference anchor="RFC8705">
          <front>
            <title>OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens</title>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document describes OAuth client authentication and certificate-bound access and refresh tokens using mutual Transport Layer Security (TLS) authentication with X.509 certificates. OAuth clients are provided a mechanism for authentication to the authorization server using mutual TLS, based on either self-signed certificates or public key infrastructure (PKI). OAuth authorization servers are provided a mechanism for binding access tokens to a client's mutual-TLS certificate, and OAuth protected resources are provided a method for ensuring that such an access token presented to it was issued to the client presenting the token.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8705"/>
          <seriesInfo name="DOI" value="10.17487/RFC8705"/>
        </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="I-D.ietf-oauth-identity-chaining">
          <front>
            <title>OAuth Identity and Authorization Chaining Across Domains</title>
            <author fullname="Arndt Schwenkschuster" initials="A." surname="Schwenkschuster">
              <organization>Defakto Security</organization>
            </author>
            <author fullname="Pieter Kasselman" initials="P." surname="Kasselman">
              <organization>Defakto Security</organization>
            </author>
            <author fullname="Kelley Burgin" initials="K." surname="Burgin">
              <organization>MITRE</organization>
            </author>
            <author fullname="Michael J. Jenkins" initials="M. J." surname="Jenkins">
              <organization>NSA-CCSS</organization>
            </author>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <author fullname="Aaron Parecki" initials="A." surname="Parecki">
              <organization>Okta</organization>
            </author>
            <date day="19" month="July" year="2026"/>
            <abstract>
              <t>   This specification describes a mechanism for preserving identity and
   authorization information across trust domains that use the OAuth 2.0
   Framework.  A JSON Web Token (JWT) authorization grant, obtained
   through an intra-domain OAuth 2.0 Token Exchange, facilitates the
   cross-domain acquisition of an access token.  The relevant identity
   and authorization information is chained throughout the flow by being
   conveyed in the respective artifacts exchanged at each step of the
   process.  Chaining across multiple domains is achieved by using the
   same protocol every time a trust domain boundary is crossed.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-aims-00"/>
        </reference>
        <reference anchor="I-D.ihsanullah-dnsid">
          <front>
            <title>DNS-Anchored Durable Identity for AI Agents (DNSid)</title>
            <author fullname="Naveed Ihsanullah" initials="N." surname="Ihsanullah">
              <organization>Identity Digital</organization>
            </author>
            <date day="28" month="June" year="2026"/>
            <abstract>
              <t>   Autonomous software agents are being deployed across enterprise,
   cloud, and cross-organizational boundaries.  These agents negotiate,
   transact, delegate, and produce work products that persist beyond
   their own ephemeral runtime.  Current standards and initiatives for
   agent identity collectively address runtime authentication,
   authorization, lifecycle management, and tool interaction, but a gap
   remains: a durable, governance-backed identifier that lets a relying
   party determine and verify the accountable entity behind an agent it
   encounters, including agents that have since been retired or whose
   keys have rotated, and attribute past and present work products to
   that entity.  Lifecycle-history verification is governed by the
   applicable log method and deployment scope.

   DNSid addresses the accountable layer of identity: the durable
   ownership anchor that existing agent identity standards do not
   provide.  This document specifies DNSid, a minimal identity primitive
   that assigns each agent a Fully Qualified Domain Name (FQDN), binds
   it to an accountable entity identified by a DNS domain under that
   entity's control, and publishes a structured set of pointers in DNS
   TXT records to the agent's cryptographic keys, lifecycle log, and
   operational status.  DNSid uses accountable-entity-controlled
   signatures for record integrity and an abstract append-only lifecycle
   log for history.  It is designed to sit beneath existing identity,
   authentication, authorization, and agent interaction standards
   without competing with them.

   DNSid introduces no new DNS resource record types, opcodes, or
   response codes, and requires no changes to DNS resolvers,
   authoritative servers, or the DNS protocol.  It applies to any agent
   that can be assigned an FQDN whose accountable entity can publish
   verification material; public discoverability of the agent is not
   required.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ihsanullah-dnsid-01"/>
        </reference>
        <reference anchor="I-D.carleton-workload-authz-grant">
          <front>
            <title>Workload Authorization Grant</title>
            <author fullname="Paul Carleton" initials="P." surname="Carleton">
              <organization>Anthropic</organization>
            </author>
            <author fullname="Nick Steele" initials="N." surname="Steele">
              <organization>OpenAI</organization>
            </author>
            <author fullname="Aaron Parecki" initials="A." surname="Parecki">
              <organization>Okta</organization>
            </author>
            <author fullname="Arndt Schwenkschuster" initials="A." surname="Schwenkschuster">
              <organization>Defakto Security</organization>
            </author>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <date day="22" month="September" year="2026"/>
            <abstract>
              <t>   This document defines the Workload Authorization Grant (WAG), by
   which a workload hosted on a platform -- an AI agent is the
   motivating case -- obtains access tokens from a third party's OAuth
   authorization server without requiring an administrator to perform a
   per-workload provisioning step.  Each workload is identified by an
   opaque identifier that is never reassigned.  The platform signs a JWT
   authorization grant ([RFC7523]) that names one workload, and the
   workload presents it at the token endpoint of an authorization server
   that has been configured, once, to trust that platform.  The
   authorization server does not reject a workload because it has not
   seen it before.  The workload's access is determined by the
   authorization server's own policy, which may consult claims the
   platform asserts about the workload.  This document covers workloads
   acting on their own behalf.  Access on behalf of a user or other
   principal is out of scope, though the grant is intended to compose
   with delegation mechanisms in which the workload is the actor.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-carleton-workload-authz-grant-01"/>
        </reference>
        <reference anchor="OpenID.Federation">
          <front>
            <title>OpenID Federation 1.0</title>
            <author>
              <organization>OpenID Foundation</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
      </references>
    
<section numbered="false" anchor="document-history">
      <name>Document History</name>
      <t>RFC Editor: please remove this section before publication.</t>
      <t>-01:</t>
      <ul spacing="normal">
        <li>
          <t>Sender-constrained mode: the sender states its agent name in the new
<tt>Agent-Link-Name</tt> HTTP field (<xref target="field"/>); IANA registration added.</t>
        </li>
        <li>
          <t>Relationship to Other Work: the Workload Authorization Grant and DNSid.</t>
        </li>
      </ul>
      <t>-00:</t>
      <ul spacing="normal">
        <li>
          <t>Initial version.</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA51c63Ybx5H+30/RS58ckzYAERRlyaTtLC3JNh3dItLR5uRk
zQamQU44mEFmBqRgSnmWfZZ9sq2vqrqnBwCVbJiLAExPX6rr8tWlezgcmjZv
C39kd17k5XVeXlpX2pNLX7afN/bZqzP7ys29bSubt419fbJsr+zTIqfHO8ZN
JrW/oTe5ORoPpQF62jFZNS3p3SOb1W7WDpsrV167uqAh3HxYOWo4dHhxmJXN
kH6+Hu6PzdS1/rKqV0e2aTPTLCfzvGnyqmxXC+rp9Pn5DyZf1Ee2rZdNe7C/
//X+gXG1d0f2zE+Xdd6uzLVf3VZ1dmTs0J6cWh6jwReeHD7QTPEPtbouKpfZ
PKMmeJV+nNZV0wyzau7y0pimdWX2qyuqkkZf+cYs8iP7l7aaDmxT1W3tZw19
Ws3x4a/GYFFVjZGNpb/ZsiiEBGd1Xru5PUtpwE2q+tKV+W+upTUe2Z/8e/c8
v7xq+ZmnORRECH531PznFT31eDqaVvL2tFqWLYh1Wma5M6as6jl1deNpCvbt
D08PxuOv9eOT8eND/Tjef/hIP371+DA0ePxo/Di0PRyHtk8ePTrQj1/vf/Uk
fDyMr309Hu+Hj189GuPj69NnT0fP8mZa3XiaHM80MNnrhS9Pn9mnVVn6KfFM
aGXHo/0dbhlpyH9DKwR8NbJn7jqfL2u39uTnkf2+dlnhV2sPXo7sz7RvzdrP
z+lnJ20zYrYje7A/PjQmL2drxDvcf/gw0Obrw0CFJ4/3H0UqHPB6T4fPRrlv
Z8rUgZuG0yviIdrqLW2mLELUdDj3raN5OGK56XJOP/Za3+bzxg8d/X/8+apx
JfGVu4Lc5Fn4fUps5duqHAauHmKg34aXtZM+hfKjH3zma2G3bRvTPb5/R4hn
j2xoTxyYcfseRQ++MmY4HFo3adraTVtjzqpZe0uSqvJo83JKYtsQeYqVnbqi
CA9I4Gzj65t86htbLTAbn9nJylbtla9NKjDNyJ7Y2k99fgPFlT6yNJwv7a1D
l6S9rsvq1ra3lW2vqCmNMqmWrXHlyjbL6RVPwEOtXLmWNJ3N6aUrnSu+Twvs
ATqa+AFPkVuiTTqqkfliMvRS0+ZYFlMv/41Wk7cj+/x93nADt1jUlZteee4W
PTV+WlHPf1/6hjur/d+XOSgm2o5WWsiyr/IFzaO99bRCvIh19ejyeRxVpgV6
+roZGXN+RUsLrGYzP8tJQmgEaHqiJOlNkPr2Kiei8OpuS18TMamJ6EQLTY1d
Mi4xEqUaCbwiNkA4vCOTkHLZYLS265rep39Nb7pWpjuy50wUUm0gF7+/qH0j
XGJn9PHKuimxCSh4TbQgCeYBjQx+zMMIf9Ai6H/5LPeys/KCu6QVNW1oh9Vj
b5OfDZmfJU9zsZwUeXNFvEgGhjjvVbVlWwb07TIHzwsT1nYWBcp8csvAcqWn
xpnwV5Y3bgJDwc2VmkI5E2iSdkAz3EZEYsJqkTLzxDM1iWwLkSvjWf8GMo1E
cOd5RirVmM/ItLR1lS2nvARzUmo/PclMBe/E7mIfyFbNF4W3F9x8fzxyI/3p
Yo/FreMhkEkl/v5uvyc176ljWkfZ3NJWlpcD+70IuHG0SaTn6H1s/5Ex45GQ
jcUapN0yDaazORitT39DbLe8C14ntUbE+qNKqx1jGJmbVyGihWAL5p4sQZk3
c+4UxgEop0lmeMS0SB5mFq+UvqBJhs2f+rolBsZj/Aom8PWQVAbYjcQ4E6Ye
gJyRtMEYEUhpWj8f2TjfA8x32SxpAqtu3jlsCm1DuabYaD0AgNtY7IhWClmi
/2ZzMnjM/TQH4WDWLrKCQSqctPLSlpUlaHUJDTNpoVx4BdBTJ4zD+iIyiKpR
Jn/l6gxqQhTOaVgppOekp/6eqiG22usz1mSNvbv7Z6b748eB3bCM5u5uw5h+
/MjjTotqmW0Cy0QLWJg6NBjYybK1nixAUPRNoq8wW+zEfWINTcfah7j+Cl9g
mQwxwyy/XNbMC9qgTZSo9DiwC5fXYFH+l5VmXS0vr8BVRFSfaa8j8wN4Sewy
a3I21HOYzYWrW9LfDTaV9qLx7XJBJoIWUVZk+qihGkra1QUgAEl333jbGTqb
uOk1Jgs+IC/ghgY/eXPKOlaGBGZAl8pOmXAb1KBy+KZZa901s13p6roivo62
tm9SenIf1DstiIA/bNoS8tVpTtoJWLmBGkexC7rpeSdqZGHqNYM3Mu9yYlDR
s0zB7nli0BqieKsk6Jk1Hkp2tJMfgj5lp7VZmghLgJbRui0bXmVJ8s2rm9oI
cuFsoCE8ocTw4actBq/JL1l8xPCdp0Y17jhsF41r+kzHHW1l4BlrqRXDMWLd
FZCP45EwYEtKDltpAiDDgGVLK1FiOF2jYg7sTNgIZodAA4a/PEMMNLKnjO20
E54DgaBMda5bZtSBWhEoJ9qcallPvQIoNZvNIIJUQFTQ1zW0vWCA8HJitCEd
YlKm8C6YgKbbOPJt83IpKHBOjMt6ljBR4IHMT/OGwS5Z48/sj5UrGmO+YCeb
le4WGEY/+4Aze3DsFoxIC4N1ufTAE7QHxm7fIiyS2pJFHqq026BguN2IZvEj
LULQXES+PbHClhLE97zOuirs7jZgsyecbVVy/WwG55Bmt45NaNme57wG61bc
GaApL5GwPUlWXgl5ie6y8I4r0dObmnoHqOL3sP0skbO6mtO4LotTZLECHpnn
bRt+ZfaSLXlFXtdl2JaTzoqHpqn6wO676F/8rZoAW8sobO+hjYG2iRb3GXi7
e3c3rzLffPy4x1sAFg+grlEBlZbkFNY5Cyh2UUMpzRouJuVY5OydwFVmzutx
w6Ii1bHCSOS13/hVWFY0bjRfUnM1RIGUY9V4kucrV8wSNUdboPz7VmzdnJXe
C+LCJbUQiSX1AsuYNXbn5S9n5zsD+de+es2f3z7/4y+nb58/w+ezn05evIgf
jLY4++n1Ly+edZ+6N5++fvny+atn8jL9ans/mZ2XJ3/eEaneef3m/PT1q5MX
O7Bcbc+uwBSxoaVHra9Jd7PWaAxtxrTOJ4yf7PdP3/zv/4wPCV38h4ZgCBzI
FwRh6AssmIzGykO+ErFWhvbCuxq9wExM3SJvia8G0C9kHmhryAX2RMgv/gLK
/PXIfjOZLsaH3+kPWHDvx0Cz3o9Ms81fNl4WIm75acswkZq939co3Z/vyZ97
3wPdkx+/+T1JprfD8ZPff2eYe87BxWVVVJcrwojMWhzVMUcE3KMGVEu80mgm
s+DA/hOvhKh6xhKHzs4j57I2nyugkDgF7VtitlnpBG3wVoWq30fi33B3Knqd
B8B99vxT9Er9sZIXAx26xCrP/+s8+KviwjPj3d3Jbx8/hjd5Wkycsg8pHOxK
wrN3d/x7fDNow/BupDRTURCQszeuyDMhgM6GrQ7j954zI6osblVHGe5SNaA2
gikl+x+wx2TV11YRqpKu6hwrUvjst/TltacoyZV9fYNd8LfG/OMf/6CBpnk+
JMMmga3XfS/wnr9eq+8NvfrlsP/3pd0d70WfjcA0yADjYO2Hvl9iP3zTe5Fb
nInt3SVdvUffex1/2D7cwZ7u6gduEf7+e2PyN73nH7qPX671+FBcdPuldpw8
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
OTL/B9PfvbeFXwAA

-->

</rfc>
