<?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.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-meunier-webbotauth-registry-04" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="Registry and Signature Agent card for Web bot auth">Registry and Signature Agent card for Web bot auth</title>
    <seriesInfo name="Internet-Draft" value="draft-meunier-webbotauth-registry-04"/>
    <author fullname="Maxime Guerreiro">
      <organization>Cloudflare</organization>
      <address>
        <email>maxime.guerreiro@gmail.com</email>
      </address>
    </author>
    <author fullname="Ulas Kirazci">
      <organization>Amazon</organization>
      <address>
        <email>ulaskira@amazon.com</email>
      </address>
    </author>
    <author fullname="Thibault Meunier">
      <organization>Cloudflare</organization>
      <address>
        <email>ot-ietf@thibault.uk</email>
      </address>
    </author>
    <date year="2026" month="October" day="27"/>
    <area>Web and Internet Transport</area>
    <workgroup>Web Bot Auth</workgroup>
    <keyword>not-yet</keyword>
    <abstract>
      <?line 61?>

<t>This document defines the "Signature Agent Card", a JSON metadata document that a
signature agent using HTTP Message Signatures for bots publishes to describe
itself: its identity, purpose, rate expectations, and cryptographic keys. Its
parameters are drawn from the OAuth Dynamic Client Registration Metadata
registry, the same namespace used by OAuth Client ID Metadata Documents,
extended with a single <tt>web_bot_auth</tt> object. This
document registers that object with IANA and establishes a registry for its
members.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://thibmeu.github.io/draft-meunier-webbotauth-registry/draft-meunier-webbotauth-registry.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-meunier-webbotauth-registry/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Web Bot Auth Working Group mailing list (<eref target="mailto:web-bot-auth@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/web-bot-auth/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/web-bot-auth/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/thibmeu/draft-meunier-webbotauth-registry"/>.</t>
    </note>
  </front>
  <middle>
    <?line 72?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Signature Agents are entities that originate or forward signed HTTP requests on behalf
of users or services. They include bots developers, platforms providers,
and other intermediaries using <xref target="PROTOCOL"/>. These agents often
need to identify themselves, and establish
trust with origin servers.</t>
      <t>Today, the mechanisms for doing so are inconsistent: some rely on User-Agent
strings (e.g. <tt>MyCompanyBot/1.0</tt>), others on IP address lists hosted on file servers (e.g. <tt>https://curated-bots.com/ips.json</tt>), and still others on out-of-band
definitions (e.g. documentation on docs.example.com/mybot). This diversity makes it difficult for operators and origin servers
to reliably discover and share a Signature Agent’s purpose, contact information, or rate
expectations.</t>
      <t>The OAuth Client ID Metadata Document <xref target="CIMD"/> already defines a resolvable
identity: a <tt>client_id</tt> that is an HTTPS URL dereferencing to a JSON metadata
document. This document reuses it.
A Signature Agent Card takes the client metadata parameters that <xref target="CIMD"/> draws
from <xref target="DCR"/>, and adds bot-specific information in a single <tt>web_bot_auth</tt>
object. An existing Client ID Metadata Document is therefore a valid Signature
Agent Card.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="signature-agent-card">
      <name>Signature Agent Card</name>
      <t>A Signature Agent Card is a JSON object describing a Signature Agent. Its
parameters are drawn from the OAuth Dynamic Client Registration Metadata registry
<xref target="DCR"/>, the same parameter namespace used by <xref target="CIMD"/>. Web bot auth-specific
information is carried in a single <tt>web_bot_auth</tt> object,
defined in <xref target="web-bot-auth-extension"/>.</t>
      <t>Because the card reuses the <xref target="CIMD"/> parameter namespace, an existing Client ID
Metadata Document is a valid Signature Agent Card. A client that does not
understand the <tt>web_bot_auth</tt> object ignores it.</t>
      <t>A Signature Agent Card can be referenced from the <tt>Signature-Agent</tt> header
using <tt>type=cimd</tt>, as described in <xref target="signature-agent-header"/>.</t>
      <artwork><![CDATA[
{
  "client_id": "https://example.com/bot",
  "client_name": "Example Bot",
  "client_uri": "https://example.com/bot/about.html",
  "logo_uri": "https://example.com/logo.png",
  "contacts": ["mailto:bot-support@example.com"],
  "jwks_uri": "https://example.com/.well-known/http-message-signatures-directory",
  "web_bot_auth": {
    "expected-user-agent": "Mozilla/5.0 ExampleBot",
    "rfc9309-product-token": "ExampleBot",
    "rfc9309-compliance": false,
    "trigger": "fetcher",
    "purpose": "search",
    "targeted-content": "Cat pictures",
    "rate-control": "429",
    "rate-expectation": "avg=10rps;max=100rps",
    "known-urls": ["/", "/robots.txt", "*.png"],
    "ips_uri": "https://example.com/ips.json"
  }
}
]]></artwork>
      <t>Unless otherwise specified, all parameters in this document are <bcp14>OPTIONAL</bcp14>, except
that a card resolved through its <tt>client_id</tt> <bcp14>MUST</bcp14> carry <tt>client_id</tt> (see
<xref target="signature-agent-parameter-client-id"/>). There <bcp14>MUST</bcp14> be at least one parameter
set.</t>
      <t>Parameters for which the value is unknown <bcp14>MUST</bcp14> be ignored.
All string values are UTF-8.</t>
      <section anchor="client-metadata-parameters">
        <name>Client Metadata Parameters</name>
        <t>The following parameters are OAuth client metadata parameters defined in <xref target="DCR"/>
and used as in <xref target="CIMD"/>. They keep the semantics defined there; this section only
notes how they are used by a Signature Agent.</t>
        <dl>
          <dt><tt>client_id</tt></dt>
          <dd>
            <t>A resolvable identifier for the Signature Agent. See
<xref target="signature-agent-parameter-client-id"/>.</t>
          </dd>
          <dt><tt>client_name</tt></dt>
          <dd>
            <t>A friendly name for the Signature Agent, e.g. <tt>ExampleBot</tt>.</t>
          </dd>
          <dt><tt>client_uri</tt></dt>
          <dd>
            <t>A URL of a web page describing the Signature Agent: what it does, and how it
handles the data it fetches, e.g. <tt>https://example.com/bot/about.html</tt>.</t>
          </dd>
          <dt><tt>logo_uri</tt></dt>
          <dd>
            <t>A URL referencing a logo for the Signature Agent, for quick visual
identification, e.g. <tt>https://example.com/logo.png</tt>.</t>
          </dd>
          <dt><tt>contacts</tt></dt>
          <dd>
            <t>An array of URIs providing reliable communication channels, typically email
addresses, e.g. <tt>["mailto:bot-support@example.com"]</tt>.</t>
          </dd>
          <dt><tt>jwks_uri</tt></dt>
          <dd>
            <t>See <xref target="signature-agent-parameter-jwks-uri"/>.</t>
          </dd>
          <dt><tt>jwks</tt></dt>
          <dd>
            <t>A JWK Set as defined in <xref section="5" sectionFormat="of" target="JWK"/>. See
<xref target="signature-agent-parameter-jwks"/>.</t>
          </dd>
        </dl>
        <section anchor="signature-agent-parameter-client-id">
          <name>Client ID</name>
          <t>The <tt>client_id</tt> parameter is the resolvable identity of the Signature Agent, as
defined in <xref target="CIMD"/>. It is an HTTPS URL that, when dereferenced, returns the
Signature Agent Card. A card retrieved through its <tt>client_id</tt> <bcp14>MUST</bcp14> include the
<tt>client_id</tt> parameter.</t>
          <t>A client retrieving a card from a URL <bcp14>MUST</bcp14> use the <tt>GET</tt> method, <bcp14>MUST</bcp14> treat any
status code other than <tt>200 (OK)</tt> as an error, and <bcp14>MUST NOT</bcp14> follow HTTP redirects.
The <tt>client_id</tt> value in the returned document <bcp14>MUST</bcp14> be identical to the URL used
to retrieve it, compared as described in <xref section="6.2.1" sectionFormat="of" target="RFC3986"/> (simple
string comparison).</t>
          <t>Example</t>
          <ul spacing="normal">
            <li>
              <t><tt>https://example.com/bot</tt></t>
            </li>
          </ul>
        </section>
        <section anchor="signature-agent-parameter-jwks-uri">
          <name>JWKS URI</name>
          <t>The <tt>jwks_uri</tt> parameter provides the URL of a JWK Set as defined in
<xref section="5" sectionFormat="of" target="JWK"/>, following the <xref target="DCR"/> semantics. <xref target="DCR"/> does not mandate
a media type for the resource at <tt>jwks_uri</tt>. If <tt>jwks_uri</tt> is the well-known URI
registered in <xref section="8.1" sectionFormat="of" target="PROTOCOL"/>, the resource is an HTTP Message
Signatures Directory, and <xref section="5.5.1" sectionFormat="of" target="PROTOCOL"/> applies, including its
media type.</t>
          <t>When present, this parameter separates key material discovery from metadata
discovery. Clients that need key material <bcp14>SHOULD</bcp14> fetch the key set at the
given URL rather than relying on the <tt>jwks</tt> parameter. This separation allows
registry operators to host metadata and key material on different endpoints,
supporting deployment scenarios where the registry endpoint itself contains
signature agent card metadata but key material is hosted elsewhere.</t>
          <t>A Signature Agent Card <bcp14>MUST NOT</bcp14> contain both <tt>jwks_uri</tt> and <tt>jwks</tt>. Clients
<bcp14>SHOULD</bcp14> reject a card that contains both parameters.</t>
          <t>The response at <tt>jwks_uri</tt> <bcp14>SHOULD</bcp14> carry the possession proofs defined in
<xref section="B.1" sectionFormat="of" target="PROTOCOL"/>. Clients <bcp14>SHOULD</bcp14> validate them as described there,
and <bcp14>SHOULD</bcp14> ignore keys without a valid proof. This is stricter than
<xref target="PROTOCOL"/>, which lets a verifier use keys it resolved itself without proof:
a card binds keys to metadata, so the key holder should vouch for that binding.</t>
          <t>The URI scheme <bcp14>MUST</bcp14> be <tt>https</tt>.</t>
          <t>Example</t>
          <ul spacing="normal">
            <li>
              <t><tt>https://example.com/.well-known/http-message-signatures-directory</tt></t>
            </li>
          </ul>
        </section>
        <section anchor="signature-agent-parameter-jwks">
          <name>JWKS</name>
          <t>The <tt>jwks</tt> parameter contains a JWK Set as defined in <xref section="5" sectionFormat="of" target="JWK"/>. It is
the inline client metadata parameter defined in <xref target="DCR"/>.</t>
          <t>If <tt>jwks</tt> is present, it is <bcp14>RECOMMENDED</bcp14> that the card is signed using <xref target="HTTP-MESSAGE-SIGNATURES"/>.
<tt>Content-Digest</tt> header <bcp14>MUST</bcp14> be included in the covered components.</t>
          <t>TODO: describe signature, CWS keys.</t>
        </section>
      </section>
      <section anchor="web-bot-auth-extension">
        <name>Web Bot Auth Extension</name>
        <t>The <tt>web_bot_auth</tt> parameter is a JSON object carrying bot-specific metadata. It
is registered in the OAuth Dynamic Client Registration Metadata registry <xref target="DCR"/>
(see <xref target="iana"/>), so that it may appear in any Client ID Metadata Document <xref target="CIMD"/>.
Its members are governed by the "Web Bot Auth Metadata Parameters" registry
defined in <xref target="iana"/>. Members for which the value is unknown <bcp14>MUST</bcp14> be ignored.</t>
        <t>The members defined by this document are below.</t>
        <section anchor="signature-agent-parameter-user-agent">
          <name>Expected User Agent</name>
          <t>The <tt>expected-user-agent</tt> parameter specifies one or more <tt>User-Agent</tt> strings as defined in <xref section="10.1.5" sectionFormat="of" target="HTTP"/>
or prefix matches. Prefixes <bcp14>MAY</bcp14> use <tt>*</tt> as a wildcard.</t>
          <t>Example</t>
          <ul spacing="normal">
            <li>
              <t><tt>Mozilla/5.0 ExampleBot</tt></t>
            </li>
          </ul>
        </section>
        <section anchor="signature-agent-parameter-robotstxt-token">
          <name>robots.txt Product Token</name>
          <t>The <tt>rfc9309-product-token</tt> parameter specifies the product token used for
<tt>robots.txt</tt> directives per <xref section="2.2.1" sectionFormat="of" target="ROBOTSTXT"/>.</t>
          <t>Example</t>
          <ul spacing="normal">
            <li>
              <t><tt>ExampleBot</tt></t>
            </li>
          </ul>
        </section>
        <section anchor="signature-agent-parameter-robotstxt-compliance">
          <name>robots.txt Compliance</name>
          <t>The <tt>rfc9309-compliance</tt> parameter is a boolean indicating whether the agent
claims compliance with <xref target="ROBOTSTXT"/>.
A false value indicates that origins cannot assume robots.txt is followed.</t>
          <t>When undefined, the value defaults to false.</t>
          <t>Example</t>
          <ul spacing="normal">
            <li>
              <t><tt>true</tt></t>
            </li>
            <li>
              <t><tt>false</tt></t>
            </li>
          </ul>
        </section>
        <section anchor="signature-agent-parameter-trigger">
          <name>Trigger</name>
          <t>The <tt>trigger</tt> parameter indicates the operational mode of the agent.</t>
          <t>Valid values:</t>
          <ol spacing="normal" type="1"><li>
              <t><tt>fetcher</tt> - request initiated by the user</t>
            </li>
            <li>
              <t><tt>crawler</tt> - autonomous scanning</t>
            </li>
          </ol>
        </section>
        <section anchor="signature-agent-parameter-purpose">
          <name>Purpose</name>
          <t>The <tt>purpose</tt> parameter describes the intended use of collected data.</t>
          <t>TODO: consider an array; <xref target="AIPREF-VOCAB"/> is one possible vocabulary.</t>
          <t>Example</t>
          <ul spacing="normal">
            <li>
              <t><tt>search</tt></t>
            </li>
          </ul>
        </section>
        <section anchor="signature-agent-parameter-targeted-content">
          <name>Targeted Content</name>
          <t>The <tt>targeted-content</tt> parameter specifies the type of data the agent seeks.
Its format is arbitrary UTF-8 encoded string.</t>
          <t>Example</t>
          <ul spacing="normal">
            <li>
              <t><tt>SEO analysis</tt></t>
            </li>
            <li>
              <t><tt>Vulnerability scanning</tt></t>
            </li>
            <li>
              <t><tt>Ads verification</tt></t>
            </li>
          </ul>
        </section>
        <section anchor="signature-agent-parameter-rate-control">
          <name>Rate Control</name>
          <t>The <tt>rate-control</tt> parameter indicates how origins can influence the agent’s
request rate.</t>
          <t>TODO: specify a format</t>
          <t>Example</t>
          <ul spacing="normal">
            <li>
              <t>CrawlDelay in robots.txt (non-standard)</t>
            </li>
            <li>
              <t>Custom tool</t>
            </li>
            <li>
              <t>429 + <xref target="RATELIMIT-HEADER"/></t>
            </li>
          </ul>
        </section>
        <section anchor="signature-agent-parameter-rate-expectation">
          <name>Rate Expectation</name>
          <t>The <tt>rate-expectation</tt> parameter specifies anticipated request volume or
burstiness.</t>
          <t>TODO: consider a format such as <tt>avg=10rps;max=100rps</tt></t>
          <t>Example</t>
          <ul spacing="normal">
            <li>
              <t>500 rps</t>
            </li>
            <li>
              <t>Spikes during reindexing</t>
            </li>
          </ul>
        </section>
        <section anchor="signature-agent-parameter-known-urls">
          <name>Known URLs</name>
          <t>The <tt>known-urls</tt> parameter lists predictable endpoints accessed by the agent.</t>
          <t>These URLs may be absolute URLs like <tt>https://example.com/index.html</tt>.
They could be relative path like <tt>/ads.txt</tt>.
Or they can use <tt>*</tt> as wildcard such as <tt>*.png</tt>.</t>
          <t>Example</t>
          <ul spacing="normal">
            <li>
              <t><tt>["/"]</tt></t>
            </li>
            <li>
              <t><tt>["/ads.txt"]</tt></t>
            </li>
            <li>
              <t><tt>["/favicon.ico"]</tt></t>
            </li>
            <li>
              <t><tt>["/index.html"]</tt></t>
            </li>
          </ul>
        </section>
        <section anchor="signature-agent-parameter-ips-uri">
          <name>IP Address List URI</name>
          <t>The <tt>ips_uri</tt> parameter provides the URL of the signature agent's
IP address list as defined in <xref target="JAFAR"/>.</t>
          <t>The URI scheme <bcp14>MUST</bcp14> be <tt>https</tt>.</t>
          <t>This allows discovery without a fixed location and does not preclude <xref target="JAFAR"/>
from defining one.</t>
          <t>Example</t>
          <ul spacing="normal">
            <li>
              <t><tt>https://example.com/ips.json</tt></t>
            </li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="discovery">
      <name>Discovery</name>
      <t>A Signature Agent Card is discovered by dereferencing its <tt>client_id</tt>, as
described in <xref target="cimd-discovery"/>, or from a registry.</t>
      <t>A registry is a list of entries. Each entry is an <tt>https</tt> URL or a <tt>data</tt> URL
containing an inline Signature Agent Card.</t>
      <t>A client fetches an <tt>https</tt> entry with <tt>GET</tt>. If the response media type is
<tt>application/jwk-set+json</tt> (<xref section="8.5" sectionFormat="of" target="JWK"/>) or
<tt>application/http-message-signatures-directory+json</tt>
(<xref section="8.2" sectionFormat="of" target="PROTOCOL"/>), the response is a JWK Set, and the entry is
resolved as a <tt>Signature-Agent</tt> value (<xref section="5.5" sectionFormat="of" target="PROTOCOL"/>). Otherwise,
the entry is the <tt>client_id</tt> of a Signature Agent Card, and the response is
processed as described in <xref target="cimd-discovery"/>.</t>
      <t>A JWK Set served with another media type, such as <tt>application/json</tt>, is
therefore treated as a card, and rejected because it has no <tt>client_id</tt>.</t>
      <section anchor="cimd-discovery">
        <name>CIMD-Based Discovery</name>
        <t>A Signature Agent advertises its identity through a resolvable <tt>client_id</tt> URL,
as defined in <xref target="CIMD"/>. A consumer discovers the agent's metadata and keys as
follows:</t>
        <ol spacing="normal" type="1"><li>
            <t>Obtain a <tt>client_id</tt> URL from a <tt>Signature-Agent</tt> member with <tt>type=cimd</tt>
(<xref target="signature-agent-header"/>), a registry entry (<xref target="discovery"/>), or out of
band.</t>
          </li>
          <li>
            <t>Dereference the <tt>client_id</tt> with a <tt>GET</tt> request. The response <bcp14>MUST</bcp14> be
<tt>200 (OK)</tt>, redirects <bcp14>MUST NOT</bcp14> be followed, and the returned <tt>client_id</tt> <bcp14>MUST</bcp14>
match the requested URL (see <xref target="signature-agent-parameter-client-id"/>). The
response is the Signature Agent Card.</t>
          </li>
          <li>
            <t>Obtain key material. If the card has a <tt>jwks_uri</tt>, fetch the JWK Set at that
URL; otherwise use the inline <tt>jwks</tt> parameter.</t>
          </li>
        </ol>
        <t>The metadata document and the key set are distinct resources reached at different
hops, so no content negotiation between them is required.</t>
        <artwork><![CDATA[
GET /bot HTTP/1.1
Host: example.com

HTTP/1.1 200 OK
Content-Type: application/json

{
  "client_id": "https://example.com/bot",
  "client_name": "Example Bot",
  "jwks_uri": "https://example.com/.well-known/http-message-signatures-directory",
  "web_bot_auth": {
    "trigger": "fetcher",
    "purpose": "search"
  }
}
]]></artwork>
        <t>Example</t>
        <sourcecode type="txt"><![CDATA[
# Bots, by their key directory
https://bot1.example.com/.well-known/http-message-signatures-directory
https://crawler2.example.com/.well-known/http-message-signatures-directory

# A platform, by its Signature Agent Card
https://zerotrust-gateway.example.com/v1/signature-agent-card

# An inline card with the data URL scheme
data:application/json,%7B%22client_name%22:%22Inline%20Bot%22%7D
]]></sourcecode>
      </section>
      <section anchor="formal-syntax">
        <name>Formal Syntax</name>
        <t>Below is an Augmented Backus-Naur Form (ABNF) description, as described in <xref target="ABNF"/>.</t>
        <t>The below definition imports <tt>https-URI</tt> from <xref target="HTTP"/>, and <tt>dataurl</tt> from
<xref target="DATAURL"/>. UTF-8 rules are derived from <xref target="UTF8"/>.</t>
        <artwork><![CDATA[
registry = *(entryline / emptyline)
entryline = (
    https-URI /      ; As defined in Section 4.2.2 of RFC 9110
    dataurl          ; As defined in Section 3 of RFC 2397
) EOL


comment = "#" *(UTF8-char-noctl / WS / "#")
emptyline = EOL
EOL = *WS [comment] NL ; end-of-line may have
                       ; optional trailing comment
NL = %x0D / %x0A / %x0D.0A
WS = %x20 / %x09

; UTF8 derived from RFC 3629, but excluding control characters

UTF8-char-noctl = UTF8-1-noctl / UTF8-2 / UTF8-3 / UTF8-4
UTF8-1-noctl = %x21 / %x22 / %x24-7E ; excluding control, space, "#"
UTF8-2 = %xC2-DF UTF8-tail
UTF8-3 = %xE0 %xA0-BF UTF8-tail / %xE1-EC 2UTF8-tail /
         %xED %x80-9F UTF8-tail / %xEE-EF 2UTF8-tail
UTF8-4 = %xF0 %x90-BF 2UTF8-tail / %xF1-F3 3UTF8-tail /
         %xF4 %x80-8F 2UTF8-tail

UTF8-tail = %x80-BF
]]></artwork>
      </section>
      <section anchor="out-of-band-communication-between-client-and-origin">
        <name>Out-of-Band Communication between Client and Origin</name>
        <t>A signature agent <bcp14>MAY</bcp14> submit their signature agent card to an origin, or the
origin <bcp14>MAY</bcp14> manually add them to their local registry.</t>
      </section>
      <section anchor="registry-endpoint">
        <name>Registry Endpoint</name>
        <t>A registry <bcp14>MAY</bcp14> be provided via a GitHub repository, a public file server, or a
dedicated endpoint.</t>
        <t>The registry <bcp14>SHOULD</bcp14> be served over HTTPS.</t>
        <t>A client application <bcp14>SHOULD</bcp14> validate the registry format and reject malformed
entries.</t>
        <section anchor="registry-authentication">
          <name>Authentication</name>
          <t>A registry endpoint <bcp14>MAY</bcp14> require authentication to restrict access to authorized
clients. This allows a registry operator to expose registries without revealing
their contents publicly.</t>
          <t>No specific authentication mechanism is mandated. Implementations <bcp14>MAY</bcp14> use
pre-shared keys as mentioned in <xref target="PSK-TLS"/>, bearer tokens as defined in <xref target="OAUTH-BEARER"/>, or HTTP Message
Signatures as defined in <xref target="HTTP-MESSAGE-SIGNATURES"/>. HTTP Message Signatures
are <bcp14>RECOMMENDED</bcp14> when key rotation without out-of-band coordination is desired.</t>
        </section>
        <section anchor="registry-conditional-requests">
          <name>Efficient Polling with Conditional Requests</name>
          <t>Registry servers <bcp14>SHOULD</bcp14> include <tt>ETag</tt> and <tt>Last-Modified</tt> response header
fields as defined in <xref section="8.8" sectionFormat="of" target="HTTP"/>.</t>
          <t>Clients <bcp14>SHOULD</bcp14> send <tt>If-None-Match</tt> or <tt>If-Modified-Since</tt> precondition
header fields as defined in <xref section="13.1" sectionFormat="of" target="HTTP"/> on subsequent requests.
A server <bcp14>SHOULD</bcp14> respond with <tt>304 (Not Modified)</tt> when the registry has not
changed, avoiding redundant data transfer.</t>
        </section>
        <section anchor="registry-caching">
          <name>Caching</name>
          <t>Registry servers <bcp14>SHOULD</bcp14> include a <tt>Cache-Control</tt> response header field as
defined in <xref target="HTTP-CACHE"/> to communicate the intended freshness lifetime of the
registry content. Clients <bcp14>SHOULD</bcp14> respect these cache directives and <bcp14>SHOULD NOT</bcp14>
poll more frequently than indicated.</t>
        </section>
      </section>
      <section anchor="signature-agent-header">
        <name>Signature-Agent Header</name>
        <t>A <tt>Signature-Agent</tt> member value is a JWK Set URL (<xref section="5.2.1" sectionFormat="of" target="PROTOCOL"/>). This document defines the <tt>type</tt> member parameter with the value
<tt>cimd</tt>: the member value is then the <tt>client_id</tt> of a Signature Agent Card,
resolved as described in <xref target="cimd-discovery"/>, and the keys are the card's keys.</t>
        <artwork><![CDATA[
Signature-Agent: sig1="https://example.com/bot";type=cimd
]]></artwork>
        <t><xref target="PROTOCOL"/> requires verifiers to ignore members with parameters. A verifier
that does not implement this document therefore ignores a <tt>type=cimd</tt> member
and cannot attribute the signature to it.</t>
        <t>TODO: <xref target="PROTOCOL"/> currently prohibits member parameters. This section assumes
it will allow them.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Malicious actors may put properties which are not theirs in the registry. If signatures are present, clients <bcp14>MUST</bcp14> verify them.
Clients <bcp14>SHOULD</bcp14> reject cards with invalid signatures.</t>
      <section anchor="fetching-untrusted-urls">
        <name>Fetching Untrusted URLs</name>
        <t>A <tt>client_id</tt> from a <tt>Signature-Agent</tt> header, a registry entry, and a card's
<tt>jwks_uri</tt> or <tt>ips_uri</tt> are all chosen by someone other than the client. A
client fetching them is exposed to the server-side request forgery risks in
<xref section="6.7" sectionFormat="of" target="PROTOCOL"/>, and <bcp14>SHOULD</bcp14> apply the precautions listed there to
every fetch defined in this document. A registry can list many entries, so it is
<bcp14>RECOMMENDED</bcp14> that clients bound the number of cards fetched per registry.</t>
      </section>
      <section anchor="self-asserted-metadata">
        <name>Self-Asserted Metadata</name>
        <t>A valid card shows that whoever controls the <tt>client_id</tt> URL published it. As
<xref section="4.4" sectionFormat="of" target="PROTOCOL"/> puts it for keys, this does not mean the operator is
honest. Every member of <tt>web_bot_auth</tt>, such as <tt>purpose</tt>, <tt>rfc9309-compliance</tt>,
or <tt>rate-expectation</tt>, is a claim made by the Signature Agent. Clients <bcp14>MUST NOT</bcp14>
treat these values as verified behavior.</t>
      </section>
      <section anchor="registry-integrity">
        <name>Registry Integrity</name>
        <t>When a registry is served over HTTPS, TLS provides channel integrity between
the server and the client. To additionally bind the registry contents to the
registry operator's cryptographic identity, registry servers <bcp14>SHOULD</bcp14> sign their
HTTP responses using <xref target="HTTP-MESSAGE-SIGNATURES"/> with a key present in the
registry operator's own signature agent card. Clients <bcp14>SHOULD</bcp14> verify such
signatures when present.</t>
      </section>
      <section anchor="binding-delegated-keys-to-the-directory-authority">
        <name>Binding Delegated Keys to the Directory Authority</name>
        <t>When a card delegates key discovery using <tt>jwks_uri</tt>, the key set is a separate
resource. <xref section="B.1" sectionFormat="of" target="PROTOCOL"/> defines possession proofs on that
resource: the covered components, the signature parameters, and how clients
validate them. Clients <bcp14>SHOULD</bcp14> ignore keys without a valid proof, as described in
<xref target="signature-agent-parameter-jwks-uri"/>. Key material obtained any other way,
such as a copy of the key set, is covered by <xref section="5.5.3" sectionFormat="of" target="PROTOCOL"/>.</t>
      </section>
      <section anchor="private-registries">
        <name>Private Registries</name>
        <t>Registry endpoints that require authentication as described in
<xref target="registry-authentication"/> limit exposure of registry entries to authorized
clients only. Registry operators <bcp14>SHOULD</bcp14> use authenticated endpoints when the
enumeration of their registry entries is sensitive.</t>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>TODO</t>
      <section anchor="access-patterns">
        <name>Access Patterns</name>
        <t>Registry servers <bcp14>SHOULD</bcp14> avoid logging personally identifiable information from
client requests. Clients fetching a registry reveal their interest in its
entries; registry servers <bcp14>SHOULD</bcp14> treat access logs as sensitive.</t>
      </section>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <section anchor="oauth-dynamic-client-registration-metadata-registration">
        <name>OAuth Dynamic Client Registration Metadata Registration</name>
        <t>IANA is requested to register the following parameter in the "OAuth Dynamic
Client Registration Metadata" registry established by <xref target="DCR"/>.</t>
        <dl>
          <dt><strong>Client Metadata Name:</strong></dt>
          <dd>
            <t>web_bot_auth</t>
          </dd>
          <dt><strong>Client Metadata Description:</strong></dt>
          <dd>
            <t>A JSON object carrying bot-specific metadata for a Signature Agent. Its members
are registered in the "Web Bot Auth Metadata Parameters" registry.</t>
          </dd>
          <dt><strong>Change Controller:</strong></dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt><strong>Reference:</strong></dt>
          <dd>
            <t><xref target="web-bot-auth-extension"/></t>
          </dd>
        </dl>
        <t>The remaining parameters used by a Signature Agent Card (<tt>client_id</tt>,
<tt>client_name</tt>, <tt>client_uri</tt>, <tt>logo_uri</tt>, <tt>contacts</tt>, <tt>jwks_uri</tt>, <tt>jwks</tt>) are
already registered OAuth client metadata parameters and are not registered by
this document.</t>
      </section>
      <section anchor="web-bot-auth-metadata-parameters-registry">
        <name>Web Bot Auth Metadata Parameters Registry</name>
        <t>IANA is requested to create the "Web Bot Auth Metadata Parameters" registry. This
registry governs the members of the <tt>web_bot_auth</tt> object defined in
<xref target="web-bot-auth-extension"/>.</t>
        <section anchor="registration-template">
          <name>Registration Template</name>
          <t>New registrations need to list the following attributes:</t>
          <dl spacing="compact">
            <dt><strong>Parameter Name:</strong></dt>
            <dd>
              <t>The name requested (e.g. "purpose"). This name is
case sensitive.  Names may not match other registered names in a
case-insensitive manner unless the Designated Experts state that
there is a compelling reason to allow an exception</t>
            </dd>
            <dt><strong>Parameter Description:</strong></dt>
            <dd>
              <t>Brief description of the parameter</t>
            </dd>
            <dt><strong>Change Controller:</strong></dt>
            <dd>
              <t>For Standards Track RFCs, list the "IESG".  For others, give the
name of the responsible party.  Other details (e.g., postal
address, email address, home page URI) may also be included.</t>
            </dd>
            <dt><strong>Reference:</strong></dt>
            <dd>
              <t>Where this parameter is defined</t>
            </dd>
            <dt><strong>Notes:</strong></dt>
            <dd>
              <t>Any notes associated with the entry</t>
            </dd>
          </dl>
          <t>New entries in this registry are subject to the Specification Required
registration policy (<xref section="4.6" sectionFormat="comma" target="RFC8126"/>). Designated experts should
check that a new parameter does not duplicate an existing one or an OAuth client
metadata parameter, that its value format is defined, and that the
specification discusses the security and privacy impact of publishing it.</t>
        </section>
        <section anchor="initial-registry-content">
          <name>Initial Registry Content</name>
          <t>This section registers the <tt>web_bot_auth</tt> member names defined
in <xref target="web-bot-auth-extension"/> in this registry.</t>
          <section anchor="expected-user-agent-parameter">
            <name>Expected User Agent Parameter</name>
            <dl>
              <dt><strong>Parameter Name:</strong></dt>
              <dd>
                <t>expected-user-agent</t>
              </dd>
              <dt><strong>Parameter Description:</strong></dt>
              <dd>
                <t>String or fragment patterns</t>
              </dd>
              <dt><strong>Change Controller:</strong></dt>
              <dd>
                <t>IETF</t>
              </dd>
              <dt><strong>Reference:</strong></dt>
              <dd>
                <t><xref target="signature-agent-parameter-user-agent"/></t>
              </dd>
              <dt><strong>Notes:</strong></dt>
              <dd>
                <t>N/A</t>
              </dd>
            </dl>
          </section>
          <section anchor="rfc9309-product-token-parameter">
            <name>RFC9309 Product Token Parameter</name>
            <dl>
              <dt><strong>Parameter Name:</strong></dt>
              <dd>
                <t>rfc9309-product-token</t>
              </dd>
              <dt><strong>Parameter Description:</strong></dt>
              <dd>
                <t>Robots.txt product token your signature-agent satisfies.</t>
              </dd>
              <dt><strong>Change Controller:</strong></dt>
              <dd>
                <t>IETF</t>
              </dd>
              <dt><strong>Reference:</strong></dt>
              <dd>
                <t><xref target="signature-agent-parameter-robotstxt-token"/></t>
              </dd>
              <dt><strong>Notes:</strong></dt>
              <dd>
                <t>N/A</t>
              </dd>
            </dl>
          </section>
          <section anchor="rfc9309-compliance-parameter">
            <name>RFC9309 Compliance Parameter</name>
            <dl>
              <dt><strong>Parameter Name:</strong></dt>
              <dd>
                <t>rfc9309-compliance</t>
              </dd>
              <dt><strong>Parameter Description:</strong></dt>
              <dd>
                <t>Boolean indicating whether the signature agent claims compliance with
<xref target="ROBOTSTXT"/>.</t>
              </dd>
              <dt><strong>Change Controller:</strong></dt>
              <dd>
                <t>IETF</t>
              </dd>
              <dt><strong>Reference:</strong></dt>
              <dd>
                <t><xref target="signature-agent-parameter-robotstxt-compliance"/></t>
              </dd>
              <dt><strong>Notes:</strong></dt>
              <dd>
                <t>N/A</t>
              </dd>
            </dl>
          </section>
          <section anchor="trigger-parameter">
            <name>Trigger Parameter</name>
            <dl>
              <dt><strong>Parameter Name:</strong></dt>
              <dd>
                <t>trigger</t>
              </dd>
              <dt><strong>Parameter Description:</strong></dt>
              <dd>
                <t>Fetcher/Crawler</t>
              </dd>
              <dt><strong>Change Controller:</strong></dt>
              <dd>
                <t>IETF</t>
              </dd>
              <dt><strong>Reference:</strong></dt>
              <dd>
                <t><xref target="signature-agent-parameter-trigger"/></t>
              </dd>
              <dt><strong>Notes:</strong></dt>
              <dd>
                <t>N/A</t>
              </dd>
            </dl>
          </section>
          <section anchor="purpose-parameter">
            <name>Purpose Parameter</name>
            <dl>
              <dt><strong>Parameter Name:</strong></dt>
              <dd>
                <t>purpose</t>
              </dd>
              <dt><strong>Parameter Description:</strong></dt>
              <dd>
                <t>Intended use for the collected data</t>
              </dd>
              <dt><strong>Change Controller:</strong></dt>
              <dd>
                <t>IETF</t>
              </dd>
              <dt><strong>Reference:</strong></dt>
              <dd>
                <t><xref target="signature-agent-parameter-purpose"/></t>
              </dd>
              <dt><strong>Notes:</strong></dt>
              <dd>
                <t>N/A</t>
              </dd>
            </dl>
          </section>
          <section anchor="targeted-content-parameter">
            <name>Targeted Content Parameter</name>
            <dl>
              <dt><strong>Parameter Name:</strong></dt>
              <dd>
                <t>targeted-content</t>
              </dd>
              <dt><strong>Parameter Description:</strong></dt>
              <dd>
                <t>Type of data your agent seeks</t>
              </dd>
              <dt><strong>Change Controller:</strong></dt>
              <dd>
                <t>IETF</t>
              </dd>
              <dt><strong>Reference:</strong></dt>
              <dd>
                <t><xref target="signature-agent-parameter-targeted-content"/></t>
              </dd>
              <dt><strong>Notes:</strong></dt>
              <dd>
                <t>N/A</t>
              </dd>
            </dl>
          </section>
          <section anchor="rate-control-parameter">
            <name>Rate Control Parameter</name>
            <dl>
              <dt><strong>Parameter Name:</strong></dt>
              <dd>
                <t>rate-control</t>
              </dd>
              <dt><strong>Parameter Description:</strong></dt>
              <dd>
                <t>How can an origin control your crawl rate</t>
              </dd>
              <dt><strong>Change Controller:</strong></dt>
              <dd>
                <t>IETF</t>
              </dd>
              <dt><strong>Reference:</strong></dt>
              <dd>
                <t><xref target="signature-agent-parameter-rate-control"/></t>
              </dd>
              <dt><strong>Notes:</strong></dt>
              <dd>
                <t>N/A</t>
              </dd>
            </dl>
          </section>
          <section anchor="rate-expectation-parameter">
            <name>Rate Expectation Parameter</name>
            <dl>
              <dt><strong>Parameter Name:</strong></dt>
              <dd>
                <t>rate-expectation</t>
              </dd>
              <dt><strong>Parameter Description:</strong></dt>
              <dd>
                <t>Expected traffic and intensity</t>
              </dd>
              <dt><strong>Change Controller:</strong></dt>
              <dd>
                <t>IETF</t>
              </dd>
              <dt><strong>Reference:</strong></dt>
              <dd>
                <t><xref target="signature-agent-parameter-rate-expectation"/></t>
              </dd>
              <dt><strong>Notes:</strong></dt>
              <dd>
                <t>N/A</t>
              </dd>
            </dl>
          </section>
          <section anchor="known-urls-parameter">
            <name>Known URLs Parameter</name>
            <dl>
              <dt><strong>Parameter Name:</strong></dt>
              <dd>
                <t>known-urls</t>
              </dd>
              <dt><strong>Parameter Description:</strong></dt>
              <dd>
                <t>Predictable endpoint accessed</t>
              </dd>
              <dt><strong>Change Controller:</strong></dt>
              <dd>
                <t>IETF</t>
              </dd>
              <dt><strong>Reference:</strong></dt>
              <dd>
                <t><xref target="signature-agent-parameter-known-urls"/></t>
              </dd>
              <dt><strong>Notes:</strong></dt>
              <dd>
                <t>N/A</t>
              </dd>
            </dl>
          </section>
          <section anchor="ip-address-list-uri-parameter">
            <name>IP Address List URI Parameter</name>
            <dl>
              <dt><strong>Parameter Name:</strong></dt>
              <dd>
                <t>ips_uri</t>
              </dd>
              <dt><strong>Parameter Description:</strong></dt>
              <dd>
                <t>URL of the signature agent's IP address list in <xref target="JAFAR"/> format.</t>
              </dd>
              <dt><strong>Change Controller:</strong></dt>
              <dd>
                <t>IETF</t>
              </dd>
              <dt><strong>Reference:</strong></dt>
              <dd>
                <t><xref target="signature-agent-parameter-ips-uri"/></t>
              </dd>
              <dt><strong>Notes:</strong></dt>
              <dd>
                <t>N/A</t>
              </dd>
            </dl>
          </section>
        </section>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="ABNF">
          <front>
            <title>Augmented BNF for Syntax Specifications: ABNF</title>
            <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker"/>
            <author fullname="P. Overell" initials="P." surname="Overell"/>
            <date month="January" year="2008"/>
            <abstract>
              <t>Internet technical specifications often need to define a formal syntax. Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications. The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power. The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges. This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="68"/>
          <seriesInfo name="RFC" value="5234"/>
          <seriesInfo name="DOI" value="10.17487/RFC5234"/>
        </reference>
        <reference anchor="CIMD">
          <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="DCR">
          <front>
            <title>OAuth 2.0 Dynamic Client Registration Protocol</title>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="M. Machulak" initials="M." surname="Machulak"/>
            <author fullname="P. Hunt" initials="P." surname="Hunt"/>
            <date month="July" year="2015"/>
            <abstract>
              <t>This specification defines mechanisms for dynamically registering OAuth 2.0 clients with authorization servers. Registration requests send a set of desired client metadata values to the authorization server. The resulting registration responses return a client identifier to use at the authorization server and the client metadata values registered for the client. The client can then use this registration information to communicate with the authorization server using the OAuth 2.0 protocol. This specification also defines a set of common client metadata fields and values for clients to use during registration.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7591"/>
          <seriesInfo name="DOI" value="10.17487/RFC7591"/>
        </reference>
        <reference anchor="PROTOCOL">
          <front>
            <title>HTTP Message Signatures for automated traffic</title>
            <author fullname="Thibault Meunier" initials="T." surname="Meunier">
              <organization>Cloudflare</organization>
            </author>
            <author fullname="Sandor Major" initials="S." surname="Major">
              <organization>Google</organization>
            </author>
            <date day="1" month="September" year="2026"/>
            <abstract>
              <t>   This document describes a protocol for identifying automated traffic
   using [HTTP-MESSAGE-SIGNATURES].  The goal is to allow automated HTTP
   clients to cryptographically sign outbound requests, allowing HTTP
   servers to verify their identity with confidence.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-webbotauth-httpsig-protocol-00"/>
        </reference>
        <reference anchor="HTTP-MESSAGE-SIGNATURES">
          <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="HTTP">
          <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="HTTP-CACHE">
          <front>
            <title>HTTP Caching</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 defines HTTP caches and the associated header fields that control cache behavior or indicate cacheable response messages.</t>
              <t>This document obsoletes RFC 7234.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="98"/>
          <seriesInfo name="RFC" value="9111"/>
          <seriesInfo name="DOI" value="10.17487/RFC9111"/>
        </reference>
        <reference anchor="JAFAR">
          <front>
            <title>A JSON-Based Format for Publishing IP Ranges of Automated HTTP Clients</title>
            <author fullname="Gary Illyes" initials="G." surname="Illyes">
              <organization>Independent</organization>
            </author>
            <date day="22" month="October" year="2026"/>
            <abstract>
              <t>   This document defines a standardized JSON format for operators of
   automated HTTP clients (e.g., web crawlers, AI bots) to publicly
   disclose their IP address ranges.  A consistent, machine-readable
   format for IP range publication simplifies the task of identifying
   and verifying legitimate automated traffic, thereby decreasing
   maintenance load on website operators while reducing the risk of
   inadvertently blocking beneficial clients.  This specification
   codifies and extends common existing practices to provide a simple
   yet extensible format that accommodates a variety of use cases.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-illyes-webbotauth-jafar-01"/>
        </reference>
        <reference anchor="JWK">
          <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="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="RFC3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="AIPREF-VOCAB">
          <front>
            <title>A Vocabulary For Expressing AI Usage Preferences</title>
            <author fullname="Paul Keller" initials="P." surname="Keller">
              <organization>Open Future</organization>
            </author>
            <author fullname="Martin Thomson" initials="M." surname="Thomson">
              <organization>Mozilla</organization>
            </author>
            <date day="13" month="September" year="2026"/>
            <abstract>
              <t>   This document defines a vocabulary for expressing preferences
   regarding how digital assets are used by automated processing
   systems.  This vocabulary allows for the declaration of restrictions
   or permissions for use of digital assets by such systems.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-aipref-vocab-08"/>
        </reference>
        <reference anchor="CDDL">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="DATAURL">
          <front>
            <title>The "data" URL scheme</title>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="August" year="1998"/>
            <abstract>
              <t>A new URL scheme, "data", is defined. It allows inclusion of small data items as "immediate" data, as if it had been included externally. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2397"/>
          <seriesInfo name="DOI" value="10.17487/RFC2397"/>
        </reference>
        <reference anchor="OAUTH-BEARER">
          <front>
            <title>The OAuth 2.0 Authorization Framework: Bearer Token Usage</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="D. Hardt" initials="D." surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>This specification describes how to use bearer tokens in HTTP requests to access OAuth 2.0 protected resources. Any party in possession of a bearer token (a "bearer") can use it to get access to the associated resources (without demonstrating possession of a cryptographic key). To prevent misuse, bearer tokens need to be protected from disclosure in storage and in transport. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6750"/>
          <seriesInfo name="DOI" value="10.17487/RFC6750"/>
        </reference>
        <reference anchor="PSK-TLS">
          <front>
            <title>Guidance for External Pre-Shared Key (PSK) Usage in TLS</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="J. Hoyland" initials="J." surname="Hoyland"/>
            <author fullname="M. Sethi" initials="M." surname="Sethi"/>
            <author fullname="C. A. Wood" initials="C. A." surname="Wood"/>
            <date month="July" year="2022"/>
            <abstract>
              <t>This document provides usage guidance for external Pre-Shared Keys (PSKs) in Transport Layer Security (TLS) 1.3 as defined in RFC 8446. It lists TLS security properties provided by PSKs under certain assumptions, then it demonstrates how violations of these assumptions lead to attacks. Advice for applications to help meet these assumptions is provided. This document also discusses PSK use cases and provisioning processes. Finally, it lists the privacy and security properties that are not provided by TLS 1.3 when external PSKs are used.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9257"/>
          <seriesInfo name="DOI" value="10.17487/RFC9257"/>
        </reference>
        <reference anchor="RATELIMIT-HEADER">
          <front>
            <title>RateLimit header fields for HTTP</title>
            <author fullname="Roberto Polli" initials="R." surname="Polli">
              <organization>Team Digitale, Italian Government</organization>
            </author>
            <author fullname="Alex Martínez Ruiz" initials="A. M." surname="Ruiz">
              <organization>Red Hat</organization>
            </author>
            <author fullname="Darrel Miller" initials="D." surname="Miller">
              <organization>Microsoft</organization>
            </author>
            <date day="23" month="May" year="2026"/>
            <abstract>
              <t>   This document defines the RateLimit-Policy and RateLimit HTTP header
   fields for servers to advertise their quota policies and the current
   service limits, thereby allowing clients to avoid being throttled.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-httpapi-ratelimit-headers-11"/>
        </reference>
        <reference anchor="ROBOTSTXT">
          <front>
            <title>Robots Exclusion Protocol</title>
            <author fullname="M. Koster" initials="M." surname="Koster"/>
            <author fullname="G. Illyes" initials="G." surname="Illyes"/>
            <author fullname="H. Zeller" initials="H." surname="Zeller"/>
            <author fullname="L. Sassman" initials="L." surname="Sassman"/>
            <date month="September" year="2022"/>
            <abstract>
              <t>This document specifies and extends the "Robots Exclusion Protocol" method originally defined by Martijn Koster in 1994 for service owners to control how content served by their services may be accessed, if at all, by automatic clients known as crawlers. Specifically, it adds definition language for the protocol, instructions for handling errors, and instructions for caching.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9309"/>
          <seriesInfo name="DOI" value="10.17487/RFC9309"/>
        </reference>
        <reference anchor="UTF8">
          <front>
            <title>UTF-8, a transformation format of ISO 10646</title>
            <author fullname="F. Yergeau" initials="F." surname="Yergeau"/>
            <date month="November" year="2003"/>
            <abstract>
              <t>ISO/IEC 10646-1 defines a large character set called the Universal Character Set (UCS) which encompasses most of the world's writing systems. The originally proposed encodings of the UCS, however, were not compatible with many current applications and protocols, and this has led to the development of UTF-8, the object of this memo. UTF-8 has the characteristic of preserving the full US-ASCII range, providing compatibility with file systems, parsers and other software that rely on US-ASCII values but are transparent to other values. This memo obsoletes and replaces RFC 2279.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="63"/>
          <seriesInfo name="RFC" value="3629"/>
          <seriesInfo name="DOI" value="10.17487/RFC3629"/>
        </reference>
        <reference anchor="WEB-LINKING">
          <front>
            <title>Web Linking</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="October" year="2017"/>
            <abstract>
              <t>This specification defines a model for the relationships between resources on the Web ("links") and the type of those relationships ("link relation types").</t>
              <t>It also defines the serialisation of such links in HTTP headers with the Link header field.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8288"/>
          <seriesInfo name="DOI" value="10.17487/RFC8288"/>
        </reference>
      </references>
    </references>
    <?line 842?>

<section anchor="test-vectors">
      <name>Test Vectors</name>
      <t>TODO</t>
    </section>
    <section anchor="implementations">
      <name>Implementations</name>
      <t>TODO</t>
    </section>
    <section anchor="change-notification">
      <name>Change notification</name>
      <t>This appendix is non-normative.</t>
      <ul empty="true">
        <li>
          <t>TODO(thibault): may be a dedicated draft.</t>
        </li>
      </ul>
      <t>Pull-based consumption with conditional requests is sufficient for most
deployments. Fetching a large changed registry can be expensive. A registry
operator may instead implement push-based change notification.</t>
      <section anchor="notification-advertisement">
        <name>Advertising the notification endpoint</name>
        <t>A registry operator that supports change notifications should advertise its
notification endpoint in the registry HTTP response using a <tt>Link</tt> header field
as defined in <xref target="WEB-LINKING"/>:</t>
        <artwork><![CDATA[
Link: <https://registry.example/v1/registry-changes>; rel="registry-changes"
]]></artwork>
        <t>The <tt>registry-changes</tt> link relation identifies an endpoint to which clients
may register callbacks out of band.</t>
        <t>TODO: Register the <tt>registry-changes</tt> link relation with IANA, or replace it
with an extension relation URI.</t>
      </section>
      <section anchor="notification-registration">
        <name>Callback registration</name>
        <t>Registration of a client callback URL with the registry operator is performed
out of band. No specific registration protocol is defined by this document.
An unsubscribe mechanism should be considered, and may also be out of band.</t>
      </section>
      <section anchor="notification-requests">
        <name>Notification requests</name>
        <t>When an entry is added to or removed from the registry, the registry operator
sends an HTTP request to each registered callback URL.</t>
        <t>The format in <xref target="CDDL"/> is as follows:</t>
        <sourcecode type="cddl"><![CDATA[
Action = "put" / "delete"

Notification = {
  action: Action,
  signature-agent: tstr
}
]]></sourcecode>
        <t>TODO: should signature-agent be an array?</t>
        <t><tt>action</tt> denotes the operation performed on the registry:
1. <tt>put</tt> when a new entry has been added,
2. <tt>delete</tt> when an entry has been removed.</t>
        <t><tt>signature-agent</tt> is the registry entry, as in <xref target="discovery"/>.</t>
        <t>The request uses <tt>POST</tt> and is signed using <xref target="HTTP-MESSAGE-SIGNATURES"/> with a
key present in the registry operator's existing signature agent card. This is
the card associated with the registry operator during out-of-band callback
registration.</t>
        <t>The <tt>Content-Type</tt> is <tt>application/json</tt>.</t>
        <t>Example notification for an added entry:</t>
        <artwork><![CDATA[
POST /registry-callback HTTP/1.1
Host: origin.example
Content-Type: application/json
Signature-Input: sig1=("@method" "@authority" "@path" "content-digest"); \
  created=1741046400; keyid="NFcWBst6DXG-N35nHdzMrioWntdzNZghQSkjHNMMSjw"
Signature: sig1=:base64signature:
Content-Digest: sha-256=:base64hash:

{
  "action": "put",
  "signature-agent": "https://abc123.registry.example/signature-agent-card"
}
]]></artwork>
      </section>
      <section anchor="notification-processing">
        <name>Notification processing</name>
        <t>The client verifies the HTTP Message Signature against the registry operator's
key, discovered via the registry operator's signature agent card. Notifications
with missing or invalid signatures are rejected.</t>
        <t>A notification is advisory only. The registry endpoint remains authoritative.
After verifying a <tt>put</tt> notification, clients re-fetch the affected entry. For <tt>delete</tt> notifications, clients confirm the removal by
re-fetching the registry.</t>
        <t>Registry operators should retry failed deliveries with exponential backoff.
Clients that miss notifications recover on their next conditional pull.</t>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO</t>
      <t>The editor would also like to thank the following individuals (listed in alphabetical order) for feedback, insight, and implementation of this document -</t>
    </section>
    <section numbered="false" anchor="changelog">
      <name>Changelog</name>
      <t>draft-meunier-webbotauth-registry-04</t>
      <ul spacing="normal">
        <li>
          <t>Align with draft-ietf-webbotauth-httpsig-protocol; define <tt>type=cimd</tt>.</t>
        </li>
        <li>
          <t>Allow JWK Set registry entries, selected by media type.</t>
        </li>
        <li>
          <t>Make <tt>rfc9309-compliance</tt> a boolean.</t>
        </li>
        <li>
          <t>Move change notifications to an appendix.</t>
        </li>
      </ul>
      <t>draft-meunier-webbotauth-registry-03</t>
      <ul spacing="normal">
        <li>
          <t>Make the Signature Agent Card an OAuth client metadata document with a
<tt>web_bot_auth</tt> object.</t>
        </li>
        <li>
          <t>Add resolvable <tt>client_id</tt> discovery: <tt>GET</tt>, <tt>200 OK</tt>, no redirects, and an
exact <tt>client_id</tt> match.</t>
        </li>
        <li>
          <t>Allow <tt>Signature-Agent</tt> members with <tt>type=cimd</tt> and registry entries to point
to a <tt>client_id</tt> URL.</t>
        </li>
        <li>
          <t>Register <tt>web_bot_auth</tt> in the OAuth Dynamic Client Registration Metadata
registry.</t>
        </li>
        <li>
          <t>Move bot-specific fields into a new Web Bot Auth Metadata Parameters registry.</t>
        </li>
        <li>
          <t>Stop redefining shared client metadata fields; reference RFC 7591 instead.</t>
        </li>
        <li>
          <t>Drop the <tt>data:text/plain</tt> restriction on <tt>client_uri</tt>.</t>
        </li>
        <li>
          <t>Rename inline keys from <tt>keys</tt> to <tt>jwks</tt> to match OAuth client metadata.</t>
        </li>
        <li>
          <t>State that <tt>jwks_uri</tt> points to a JWK Set, without requiring a media type.</t>
        </li>
        <li>
          <t>Require <tt>client_id</tt> in a card resolved through its <tt>client_id</tt>.</t>
        </li>
        <li>
          <t>Require <tt>jwks</tt> and <tt>jwks_uri</tt> to be mutually exclusive.</t>
        </li>
        <li>
          <t>Restrict registry entries and resolvable cards to <tt>https</tt>.</t>
        </li>
        <li>
          <t>Say the <tt>jwks_uri</tt> resource <bcp14>SHOULD</bcp14> be signed using HTTP Message Signatures.</t>
        </li>
        <li>
          <t>Note <tt>Signature-Key</tt> as a possible carrier.</t>
        </li>
      </ul>
      <t>draft-meunier-webbotauth-registry-02</t>
      <ul spacing="normal">
        <li>
          <t>Add <tt>ips_uri</tt> so a client can publish IP addresses.</t>
        </li>
        <li>
          <t>Add <tt>jwks_uri</tt> to separate key material from metadata.</t>
        </li>
        <li>
          <t>Fix the inline data URL example.</t>
        </li>
        <li>
          <t>Rename "Public list" to "Registry Endpoint".</t>
        </li>
        <li>
          <t>Add authentication guidance for private registry endpoints.</t>
        </li>
        <li>
          <t>Add conditional GET guidance using <tt>ETag</tt> and <tt>If-Modified-Since</tt>.</t>
        </li>
        <li>
          <t>Add caching guidance using HTTP-CACHE.</t>
        </li>
        <li>
          <t>Add change notifications using signed <tt>PUT</tt> and <tt>DELETE</tt> webhooks.</t>
        </li>
        <li>
          <t>Keep pull-based registry fetches as the source of truth.</t>
        </li>
        <li>
          <t>Add registry integrity and private registry guidance to Security
Considerations.</t>
        </li>
        <li>
          <t>Add customer list exposure and access patterns to Privacy Considerations.</t>
        </li>
        <li>
          <t>Add RFC 8288 as a normative reference.</t>
        </li>
      </ul>
      <t>draft-meunier-webbotauth-registry-01</t>
      <ul spacing="normal">
        <li>
          <t>Add contributors.</t>
        </li>
        <li>
          <t>Align the registry draft with the OAuth Dynamic Client Registration Metadata
registry.</t>
        </li>
        <li>
          <t>Add an about URL field.</t>
        </li>
        <li>
          <t>Add ABNF for registry discovery.</t>
        </li>
        <li>
          <t>Clarify known URLs.</t>
        </li>
        <li>
          <t>Add a placeholder for image size.</t>
        </li>
      </ul>
      <t>draft-meunier-webbotauth-registry-00</t>
      <ul spacing="normal">
        <li>
          <t>Initial draft.</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
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
EPn/Ak1lTXTPfAAA

-->

</rfc>
