<?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-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <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-00"/>
    <author fullname="Sriram Shankarlingam">
      <organization>HexaEight</organization>
      <address>
        <email>sriram.s@hexaeight.com</email>
      </address>
    </author>
    <date year="2026" month="October" day="20"/>
    <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 request, 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.</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="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>
    </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 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="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="OpenID.Federation">
          <front>
            <title>OpenID Federation 1.0</title>
            <author>
              <organization>OpenID Foundation</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
      </references>
  </back>
  <!-- ##markdown-source:
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
z95VAAA=

-->

</rfc>
