<?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-mcguinness-oauth-cimd-sw-stmt-registration-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="oauth-cimd-sw-stmt-registration">Client ID Metadata Document Software Statement Registration</title>
    <seriesInfo name="Internet-Draft" value="draft-mcguinness-oauth-cimd-sw-stmt-registration-01"/>
    <author initials="K." surname="McGuinness" fullname="Karl McGuinness">
      <organization>Independent</organization>
      <address>
        <email>public@karlmcguinness.com</email>
      </address>
    </author>
    <date year="2026" month="November" day="02"/>
    <area>Security</area>
    <workgroup>Web Authorization Protocol</workgroup>
    <keyword>OAuth</keyword>
    <keyword>Software Statement</keyword>
    <keyword>Dynamic Client Registration</keyword>
    <keyword>Client ID Metadata Document</keyword>
    <keyword>Registration Validity</keyword>
    <abstract>
      <?line 40?>

<t>This specification defines how an authorization server registers a client through OAuth 2.0 Dynamic Client Registration (RFC 7591) on a Client ID Metadata Document (CIMD) software statement, as defined in a companion specification. Such a statement carries no client metadata of its own. It vouches for the exact octets of the client's document, and the authorization server takes every registered metadata value from that document rather than from the registration request. This specification also bounds the registration's validity by the statement's expiry, which RFC 7591 leaves unbounded, and defines how a client renews the registration by delivering a later statement, which also updates the registered metadata.</t>
    </abstract>
  </front>
  <middle>
    <?line 44?>

<section anchor="introduction">
      <name>Introduction</name>
      <t><xref target="STATEMENT"/> defines a software statement binding an issuer's review to the exact octets of a Client ID Metadata Document (CIMD) <xref target="CIMD"/>, and admission on that review without registration. This specification serves deployments retaining <xref target="RFC7591"/> registration, for example to assign their own client identifiers or manage registrations under <xref target="RFC7592"/>.</t>
      <t><xref target="RFC7591"/> already supports software statements whose metadata takes precedence over the registration request (Sections 2.3 and 3.1.1 of <xref target="RFC7591"/>). A statement under <xref target="STATEMENT"/>, however, carries a document digest instead of metadata. Verifying it under <xref target="RFC7591"/> alone would leave the request's unreviewed redirection URIs and keys as the registered metadata. <xref target="RFC7591"/> also defines no registration expiry or renewal tied to the statement.</t>
      <t>This specification defines how servers derive registrations from the reviewed document (<xref target="dcr-presentation"/>), bound their validity by the statement (<xref target="registration-validity"/>), and renew them with later statements that also update their metadata (<xref target="revalidation"/>). The same review can therefore govern both registered clients and runtime admission. It extends <xref target="STATEMENT"/>, which does not depend on it.</t>
      <section anchor="protocol-overview">
        <name>Protocol Overview</name>
        <t>The following non-normative sequence summarizes a statement-governed registration:</t>
        <ol spacing="normal" type="1"><li>
            <t>The client sends an <xref target="RFC7591"/> registration request that carries a statement in the <tt>software_statement</tt> member.</t>
          </li>
          <li>
            <t>The authorization server validates the statement, obtains the document at the statement's <tt>sub</tt>, and compares its digest with the statement's <tt>cimd_digest</tt> claim. It registers the client under a client identifier it assigns, with metadata taken from that document, records the statement as the registration's governing statement, and returns the registration's expiry in the <tt>registration_expires_at</tt> member (<xref target="dcr-presentation"/>, <xref target="registration-validity"/>).</t>
          </li>
          <li>
            <t>The registration is valid until the governing statement ceases to be current, at the latest at its effective expiry (<xref target="registration-validity"/>).</t>
          </li>
          <li>
            <t>To renew the registration, the client delivers a later statement from the same issuer in a token or pushed authorization request under the registration or, if supported, in an <xref target="RFC7592"/> update request. If that statement is a valid replacement, the authorization server takes the registration's metadata from the document the statement reviews, and the statement becomes the governing statement (<xref target="revalidation"/>).</t>
          </li>
          <li>
            <t>If the governing statement ceases to be current without a replacement, the registration ceases to be valid. The authorization server rejects authorization, token, and pushed authorization requests and <xref target="RFC7592"/> update requests under it, unless the request delivers a replacement that restores it (<xref target="registration-validity"/>).</t>
          </li>
        </ol>
        <t>A public-client registration can also be renewed by a repeated registration request (<xref target="repeated-registration"/>).</t>
      </section>
    </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?>

<t>This specification uses terminology from <xref target="RFC6749"/> (OAuth), <xref target="RFC7591"/> (client metadata and software statements), and <xref target="CIMD"/> (Client ID Metadata Documents), and the terms defined in Section 2 of <xref target="STATEMENT"/>.</t>
      <t>This specification defines the following terms.</t>
      <dl>
        <dt>Delivery:</dt>
        <dd>
          <t>Carrying a statement in a request under a statement-governed registration, in one of the locations <xref target="revalidation"/> lists, so that it can renew the registration. A delivery is not a runtime presentation.</t>
        </dd>
        <dt>Governing Statement:</dt>
        <dd>
          <t>The statement that bounds a statement-governed registration: the one consumed at registration or, after a renewal, the replacement that renewed it most recently (<xref target="revalidation"/>). The authorization server identifies it by its <tt>iss</tt> and <tt>jti</tt> claims.</t>
        </dd>
        <dt>Replacement:</dt>
        <dd>
          <t>A statement with the governing statement's <tt>iss</tt> and <tt>sub</tt> claims and a later <tt>iat</tt>, delivered under the registration (<xref target="revalidation"/>) or carried in a repeated public-client registration request (<xref target="repeated-registration"/>).</t>
        </dd>
        <dt>Statement-Governed Registration:</dt>
        <dd>
          <t>An <xref target="RFC7591"/> client registration created from a statement under this specification (<xref target="dcr-presentation"/>).</t>
        </dd>
      </dl>
    </section>
    <section anchor="dcr-presentation">
      <name>Consumption at Registration</name>
      <t>The statement is consumed in the <tt>software_statement</tt> member of an <xref target="RFC7591"/> registration request. The authorization server validates it under Section 3.2 of <xref target="STATEMENT"/> and registers the client under its ordinary registration policy. If a required issuer covers the statement's <tt>sub</tt> in the request's tenant (Section 4 of <xref target="STATEMENT"/>), the authorization server <bcp14>MUST NOT</bcp14> create a registration on a statement from another issuer.</t>
      <t>A required issuer constrains only registrations made on statements, because a registration made without a statement names no client identifier URL for a required issuer to cover. A deployment that needs every registration in a tenant reviewed requires a statement for every registration there and rejects a request that carries none with <tt>unapproved_software_statement</tt> (<xref target="errors"/>).</t>
      <t>The retrieval requirements of Sections 3.1 and 5.3 of <xref target="STATEMENT"/> apply to retrieving the document as they apply to a runtime presentation, and a server can apply the bounds of Section 11.2 of <xref target="STATEMENT"/>. Following the order of Section 5.1 of <xref target="STATEMENT"/>, the authorization server completes every check that needs no client-controlled retrieval before resolving the document.</t>
      <t>The reviewed document takes the role that <xref target="RFC7591"/> gives a statement's own values. In deriving a registration's metadata, at registration or for a replacement (<xref target="revalidation"/>), the authorization server:</t>
      <ul spacing="normal">
        <li>
          <t><bcp14>MUST</bcp14> obtain the CIMD at the statement's <tt>sub</tt> claim and compare its digest with the <tt>cimd_digest</tt> claim as Section 5.2 of <xref target="STATEMENT"/> requires, rejecting the request if the digests differ, and <bcp14>MUST</bcp14> derive the registered metadata from the octets whose digest matched.</t>
        </li>
        <li>
          <t><bcp14>MUST</bcp14> validate the document as <xref target="CIMD"/> requires, including that its <tt>client_id</tt> member matches the statement's <tt>sub</tt> claim.</t>
        </li>
        <li>
          <t><bcp14>MUST</bcp14> take every client metadata value from that document, except the values the authorization server issues (such as <tt>client_id</tt> and <tt>client_id_issued_at</tt>), the <tt>token_endpoint_auth_method</tt> member, which the next item determines, and the document's <tt>software_statements_uri</tt> member, which is not meaningful in a registration (Section 5.5 of <xref target="STATEMENT"/>).</t>
        </li>
        <li>
          <t>At registration, <bcp14>MUST</bcp14> register as <tt>token_endpoint_auth_method</tt> a method that the document permits (Section 2 of <xref target="STATEMENT"/>) and that the server supports and its policy allows, and <bcp14>MUST NOT</bcp14> register <tt>none</tt> if the document permits another such method. A replacement keeps the registered method (<xref target="revalidation"/>).</t>
        </li>
        <li>
          <t><bcp14>MUST NOT</bcp14> take any client metadata value from the request, or from any <xref target="RFC7592"/> update request for the registration, whether or not the document carries the corresponding member.</t>
        </li>
      </ul>
      <t>Client metadata in a registration or update request does not contribute to the registration. The registration's <tt>software_statement</tt> is its governing statement (<xref target="revalidation"/>). The registered <tt>client_id</tt> is assigned as <xref target="RFC7591"/> provides, and the document's own <tt>client_id</tt> member is the URL recorded as the governing statement's <tt>sub</tt>. The authorization server <bcp14>MUST NOT</bcp14> assign that URL as the registered <tt>client_id</tt>, which would make a request carrying it ambiguous between the registration and the CIMD client the URL identifies (<xref target="CIMD"/>). A member the document omits takes its <xref target="RFC7591"/> default, except <tt>token_endpoint_auth_method</tt>, which is registered as above. The registration's metadata changes only when a replacement is applied (<xref target="revalidation"/>).</t>
      <t>The authorization server <bcp14>MUST</bcp14> reject the registration, or a replacement (<xref target="revalidation"/>), if any of the following holds:</t>
      <ul spacing="normal">
        <li>
          <t>The document permits a method based on a shared symmetric secret, such as <tt>client_secret_basic</tt>, which Section 4.1 of <xref target="CIMD"/> forbids.</t>
        </li>
        <li>
          <t>The document permits no method that the server supports and its policy allows.</t>
        </li>
        <li>
          <t>The method the server would register is <tt>none</tt>, unless the authorization server registers the client under <xref target="public-client-registration"/>.</t>
        </li>
        <li>
          <t>Any of the document's redirection URIs could be claimed by another application on the same device (Section 5.6.3 of <xref target="STATEMENT"/>), whatever methods the document permits.</t>
        </li>
      </ul>
      <t>Unlike runtime presentation (Section 5 of <xref target="STATEMENT"/>), registration has no review-only form: the rejections above cover the document conditions that make a presentation review-only.</t>
      <t>Software that the server would register with <tt>none</tt> but does not register under <xref target="public-client-registration"/> can instead use runtime presentation if it meets the public-client binding requirements of Section 5.6.2 of <xref target="STATEMENT"/>.</t>
      <section anchor="tenant-restriction">
        <name>Tenant Restriction</name>
        <t>If the statement's decision is confined to one of the authorization server's tenants, by its <tt>aud_tenant</tt> claim or by the server's trust configuration for its issuer (Section 4 of <xref target="STATEMENT"/>), the registration is restricted to that tenant. Otherwise it carries no tenant restriction under this specification. A replacement (<xref target="revalidation"/>) determines the restriction as follows:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Registration before</th>
              <th align="left">Replacement's decision</th>
              <th align="left">After</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Restricted to a tenant</td>
              <td align="left">Confined to that tenant, or not confined and valid in that tenant (Section 3.2 of <xref target="STATEMENT"/>)</td>
              <td align="left">Restricted to that tenant</td>
            </tr>
            <tr>
              <td align="left">Restricted to a tenant</td>
              <td align="left">Confined to another tenant</td>
              <td align="left">Fails validation (Section 3.2 of <xref target="STATEMENT"/>)</td>
            </tr>
            <tr>
              <td align="left">No restriction, confidential client</td>
              <td align="left">Confined to a tenant</td>
              <td align="left">Restricted to that tenant</td>
            </tr>
            <tr>
              <td align="left">No restriction, public client</td>
              <td align="left">Confined to a tenant</td>
              <td align="left">Not a valid replacement</td>
            </tr>
            <tr>
              <td align="left">No restriction</td>
              <td align="left">Not confined to a tenant</td>
              <td align="left">No restriction</td>
            </tr>
          </tbody>
        </table>
        <t>The tenant rules of steps 1 and 4 of <xref target="registration-requests"/> also apply to any other request under the registration, including <xref target="RFC7592"/> read and delete requests. To an <xref target="RFC7592"/> read, update, or delete request that these rules treat as from a client it has not registered, the authorization server <bcp14>MUST</bcp14> respond with HTTP 403 Forbidden (Sections 2.1 through 2.3 of <xref target="RFC7592"/>) and <bcp14>MUST NOT</bcp14> revoke the registration access token, since the registration remains valid where these rules do not apply.</t>
      </section>
      <section anchor="public-client-registration">
        <name>Public Clients</name>
        <t>An authorization server <bcp14>MAY</bcp14> register a client with <tt>token_endpoint_auth_method</tt> of <tt>none</tt> (<xref target="dcr-presentation"/>), creating a public-client registration. Such a registration has no client credential and is shared among installations of the software. A server that registers such a client:</t>
        <ul spacing="normal">
          <li>
            <t><bcp14>MUST</bcp14> reject the registration if the document lists no redirection URI.</t>
          </li>
          <li>
            <t><bcp14>MUST</bcp14> issue tokens under the registration only through the authorization code grant and the refresh of grants it opens.</t>
          </li>
          <li>
            <t><bcp14>MUST</bcp14> apply Section 5.6.2 of <xref target="STATEMENT"/> to every authorization request under the registration, and <bcp14>MUST</bcp14> require code redemption and every refresh of the resulting grant to prove the key bound there.</t>
          </li>
          <li>
            <t><bcp14>MUST NOT</bcp14> issue a registration access token <xref target="RFC7592"/> for the registration.</t>
          </li>
        </ul>
      </section>
      <section anchor="repeated-registration">
        <name>Repeated Registration</name>
        <t>A registration request is repeated if its statement has the <tt>iss</tt> and <tt>sub</tt> claims of the governing statement of an existing statement-governed registration, valid or not, that:</t>
        <ul spacing="normal">
          <li>
            <t>is not restricted to another tenant (<xref target="tenant-restriction"/>), and</t>
          </li>
          <li>
            <t>is restricted to the request's tenant, if that tenant requires a tenant-scoped decision (Section 3.2 of <xref target="STATEMENT"/>).</t>
          </li>
        </ul>
        <t>One current statement can be consumed more than once, subject to the bounds of Sections 11.2 and 11.3 of <xref target="STATEMENT"/> and the server's registration policy. A server can count registrations toward the bound on establishments of Section 11.3 of <xref target="STATEMENT"/>, but the bound stays effective only if a registration under which no access token has been issued does not count toward it, since a holder of a copy of the statement can create one.</t>
        <t>If the registration a request repeats is a confidential-client registration, local policy can reject the request, treat it as idempotent, or create another registration. An idempotent response <bcp14>MUST NOT</bcp14> return the existing registration's credentials, such as its <tt>registration_access_token</tt> member. A common default is one registration per <tt>iss</tt> and <tt>sub</tt>, per tenant on a multi-tenant server, at the cost <xref target="statement-bearer"/> describes.</t>
        <t>If the registration a request repeats is a public-client registration (<xref target="public-client-registration"/>), the authorization server <bcp14>MUST NOT</bcp14> create another registration and handles the request by its statement, once the statement validates:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Statement in the repeated request</th>
              <th align="left">Outcome</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">The governing statement, identified by its <tt>iss</tt> and <tt>jti</tt></td>
              <td align="left">The existing registration is returned</td>
            </tr>
            <tr>
              <td align="left">A statement with a later <tt>iat</tt> than the governing statement's</td>
              <td align="left">Evaluated as a replacement (<xref target="revalidation"/>); the renewed registration is returned or the request is rejected (<xref target="errors"/>)</td>
            </tr>
            <tr>
              <td align="left">Any other statement with an <tt>iat</tt> no later than the governing statement's</td>
              <td align="left">The request is rejected</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="registration-validity">
      <name>Registration Validity</name>
      <t>The following validity model applies to every statement-governed registration:</t>
      <ul spacing="normal">
        <li>
          <t>The registration's effective expiry (Section 2 of <xref target="STATEMENT"/>) is that of its governing statement.</t>
        </li>
        <li>
          <t>The registration is valid until its governing statement ceases to be current (Section 2 of <xref target="STATEMENT"/>), and so at most until that effective expiry.</t>
        </li>
        <li>
          <t>Once the registration has ceased to be valid, the authorization server <bcp14>MUST</bcp14> reject, at step 4 of <xref target="registration-requests"/>, authorization, token, and pushed authorization requests and <xref target="RFC7592"/> update requests under it, unless a replacement the request delivers has restored it at step 3.</t>
        </li>
        <li>
          <t>The authorization server <bcp14>SHOULD</bcp14> retain a registration that has ceased to be valid, so that a replacement can restore it.</t>
        </li>
        <li>
          <t>Ceasing to be valid does not expire the registration's credentials, including its registration access token, and does not by itself revoke access tokens already issued under the registration.</t>
        </li>
        <li>
          <t>Removing the governing statement's issuer from trust configuration, or narrowing what it can attest, does not by itself end the registration. A server ends it by its own means, such as deleting it.</t>
        </li>
      </ul>
      <t>If a request that carries no replacement is rejected because the registration has ceased to be valid, the rejection <bcp14>MUST NOT</bcp14> by itself cause the authorization server to revoke refresh tokens as it does on detecting refresh-token replay (Section 4.14.2 of <xref target="RFC9700"/>).</t>
      <t>If the authorization server records a required issuer for a tenant (Section 4 of <xref target="STATEMENT"/>), it <bcp14>MUST</bcp14> reject an authorization, token, or pushed authorization request, or an <xref target="RFC7592"/> update request, in that tenant under any statement-governed registration whose governing statement's <tt>sub</tt> falls within a covered namespace, unless a current statement from the required issuer governs the registration as step 3 of <xref target="registration-requests"/> leaves it. This rule applies whatever tenant the registration was created in and whenever the requirement was configured. Without this rule, withholding the required issuer's statement would keep such a registration in use after the issuer withdrew or stopped renewing its decision. A registration whose governing statement is from another issuer cannot meet this rule, since a replacement keeps the governing statement's <tt>iss</tt> (<xref target="revalidation"/>). Its client registers again with a statement from the required issuer.</t>
      <t>Neither the validity model nor the required-issuer rule rejects <xref target="RFC7592"/> read and delete requests.</t>
      <t>The <tt>registration_expires_at</tt> member is a NumericDate (Section 2 of <xref target="RFC7519"/>) giving the latest time the registration remains valid or, for a registration that has ceased to be valid, the time it ceased. The authorization server:</t>
      <ul spacing="normal">
        <li>
          <t><bcp14>MUST</bcp14> return <tt>registration_expires_at</tt> in the <xref target="RFC7591"/> registration response and in the successful response to any request that renews the registration or carries its governing statement (<xref target="revalidation"/>).</t>
        </li>
        <li>
          <t><bcp14>SHOULD</bcp14> return it in any other <xref target="RFC7592"/> read or update response it supports.</t>
        </li>
      </ul>
    </section>
    <section anchor="registration-requests">
      <name>Requests Under a Registration</name>
      <t>The authorization server <bcp14>MUST</bcp14> process an authorization, token, or pushed authorization request, or an <xref target="RFC7592"/> update request, under a statement-governed registration in the following order, stopping at the first step that rejects the request or treats it as from a client the server has not registered:</t>
      <ol spacing="normal" type="1"><li>
          <t>If the registration is restricted to a tenant (<xref target="tenant-restriction"/>) and the request, including one that delivers a statement, is made in another tenant, it <bcp14>MUST</bcp14> treat the request as from a client it has not registered.</t>
        </li>
        <li>
          <t>It authenticates a token or pushed authorization request under the registration's own client authentication method, and an <xref target="RFC7592"/> update request as <xref target="RFC7592"/> requires, against the retained registration even if the registration has ceased to be valid. A token or pushed authorization request under a public-client registration has no client credential to authenticate (<xref target="public-client-registration"/>).</t>
        </li>
        <li>
          <t>It classifies any statement the request delivers by its claims, before validating it, and evaluates a replacement (<xref target="revalidation"/>). A replacement applied at this step stands even if a later step, or the request's grant, rejects the request.</t>
        </li>
        <li>
          <t>It applies the rejections of <xref target="registration-validity"/> to the registration as step 3 leaves it. If the request is made in a tenant where the authorization server requires a tenant-scoped decision (Section 3.2 of <xref target="STATEMENT"/>) and the registration, as step 3 leaves it, carries no tenant restriction, it <bcp14>MUST</bcp14> treat the request as from a client it has not registered.</t>
        </li>
        <li>
          <t>It evaluates the request against the registration's metadata.</t>
        </li>
      </ol>
    </section>
    <section anchor="revalidation">
      <name>Renewal</name>
      <t>A client renews a statement-governed registration by delivering a replacement statement in one of the following, authenticated as step 2 of <xref target="registration-requests"/> provides:</t>
      <ul spacing="normal">
        <li>
          <t>The <tt>software_statement</tt> parameter of a token request under the registration.</t>
        </li>
        <li>
          <t>The <tt>software_statement</tt> parameter of a pushed authorization request <xref target="RFC9126"/> under the registration.</t>
        </li>
        <li>
          <t>The <tt>software_statement</tt> member of an <xref target="RFC7592"/> update request, if the deployment offers registration management.</t>
        </li>
      </ul>
      <t>A delivery is a <tt>registration</tt> use of the statement (Section 3 of <xref target="STATEMENT"/>). A registration request is not a delivery, and renews an existing registration only as <xref target="repeated-registration"/> provides for a public-client registration. A statement neither renews nor alters a registration that is not statement-governed, and runtime presentation (Section 5 of <xref target="STATEMENT"/>) alters no registration's metadata.</t>
      <t>The authorization server treats a delivered statement as the first matching row of the following table provides:</t>
      <table>
        <thead>
          <tr>
            <th align="left">Statement delivered</th>
            <th align="left">Treatment</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">The governing statement itself, identified by its <tt>iss</tt> and <tt>jti</tt></td>
            <td align="left">No replacement</td>
          </tr>
          <tr>
            <td align="left">In an <xref target="RFC7592"/> update request, any statement with the governing statement's <tt>iss</tt> and <tt>sub</tt> and an <tt>iat</tt> no later than the governing statement's</td>
            <td align="left">No replacement</td>
          </tr>
          <tr>
            <td align="left">At the token or pushed authorization request endpoint, any other statement with the governing statement's <tt>iss</tt> and <tt>sub</tt> and an earlier <tt>iat</tt></td>
            <td align="left">Earlier than the governing statement. The request is rejected</td>
          </tr>
          <tr>
            <td align="left">A statement with the governing statement's <tt>iss</tt> and <tt>sub</tt> and a later <tt>iat</tt></td>
            <td align="left">A replacement, evaluated below</td>
          </tr>
          <tr>
            <td align="left">Any other statement, such as one with another <tt>iss</tt> or <tt>sub</tt></td>
            <td align="left">Fails the replacement rules below</td>
          </tr>
        </tbody>
      </table>
      <t>An <xref target="RFC7592"/> update request repeats the statement a previous response returned (Section 3.2.1 of <xref target="RFC7591"/>; Section 2.2 of <xref target="RFC7592"/>), which can be older than the governing statement. An <xref target="RFC7592"/> read or update response returns the governing statement as its <tt>software_statement</tt> member.</t>
      <t>The replacement <bcp14>MUST</bcp14> satisfy the following:</t>
      <ul spacing="normal">
        <li>
          <t>It validates under Section 3.2 of <xref target="STATEMENT"/>.</t>
        </li>
        <li>
          <t>The <tt>iss</tt> and <tt>sub</tt> claims equal those of the governing statement.</t>
        </li>
        <li>
          <t>The <tt>iat</tt> claim is later than that of the governing statement.</t>
        </li>
        <li>
          <t>Its document permits the registration's <tt>token_endpoint_auth_method</tt> (Section 2 of <xref target="STATEMENT"/>).</t>
        </li>
        <li>
          <t>For a public-client registration that carries no tenant restriction, its decision is not confined to a tenant (<xref target="tenant-restriction"/>).</t>
        </li>
        <li>
          <t>Its document, from which the registration's metadata is derived, satisfies the rules of <xref target="dcr-presentation"/>.</t>
        </li>
      </ul>
      <t>Renewing on the statement alone would leave in the registration a key, redirection URI, or scope that the new review removed.</t>
      <t>A request whose replacement fails the rules above is rejected (<xref target="errors"/>) whether or not the registration has ceased to be valid. A rejected delivery leaves the governing statement unchanged.</t>
      <t>When a replacement satisfies these rules, the authorization server <bcp14>MUST</bcp14>, in a single atomic update, make it the governing statement and give the registration the replacement's effective expiry, the metadata derived from its document (<xref target="dcr-presentation"/>), and any tenant restriction it adds (<xref target="tenant-restriction"/>). Concurrent deliveries resolve to the most recently issued statement. A valid replacement restores a registration that has ceased to be valid.</t>
      <t>Access issued under the registration after that update, including on refresh of a grant issued before it, <bcp14>MUST</bcp14> fall within the re-derived metadata.</t>
      <t>If every grant a confidential-client registration permits needs an authorization request or a refresh token, and the authorization server does not support <xref target="RFC7592"/> update requests for the registration, the server <bcp14>MUST</bcp14> support pushed authorization requests <xref target="RFC9126"/> for the registration. Otherwise such a client, if it holds no refresh token, could not restore a registration that has ceased to be valid. A public-client registration also renews through a repeated registration request (<xref target="repeated-registration"/>).</t>
    </section>
    <section anchor="errors">
      <name>Error Responses</name>
      <t>A rejection this specification defines, at a client registration endpoint or at the client configuration endpoint of <xref target="RFC7592"/>, uses the error response of Section 3.2.2 of <xref target="RFC7591"/>, with the HTTP status code that section specifies, except that an authorization server <bcp14>SHOULD</bcp14> respond with HTTP status code 503 to a request it rejects with the <tt>temporarily_unavailable</tt> error code. Such a rejection uses the following error codes:</t>
      <dl>
        <dt><tt>invalid_software_statement</tt>:</dt>
        <dd>
          <t>Any of the following:
</t>
          <ul spacing="normal">
            <li>
              <t>The statement is malformed, fails signature or claim validation for a reason <tt>unapproved_software_statement</tt> does not cover, is expired or otherwise not current (Section 2 of <xref target="STATEMENT"/>), or is superseded under an extension the server implements.</t>
            </li>
            <li>
              <t>The document's digest does not equal the statement's <tt>cimd_digest</tt> claim (<xref target="dcr-presentation"/>).</t>
            </li>
            <li>
              <t>An <xref target="RFC7592"/> update request is rejected under <xref target="registration-validity"/>.</t>
            </li>
            <li>
              <t>A statement delivered at the client configuration endpoint, or the statement of a repeated public-client registration request evaluated as a replacement (<xref target="repeated-registration"/>), fails the replacement rules of <xref target="revalidation"/> where this section assigns no other code, such as a document that does not permit the registration's <tt>token_endpoint_auth_method</tt>.</t>
            </li>
            <li>
              <t>The statement of a repeated public-client registration request is not the governing statement and has an <tt>iat</tt> no later than the governing statement's (<xref target="repeated-registration"/>).</t>
            </li>
          </ul>
        </dd>
        <dt><tt>unapproved_software_statement</tt>:</dt>
        <dd>
          <t>The statement is well formed but not acceptable here: its issuer is not configured, its <tt>aud</tt> excludes this server, its <tt>sub</tt> is outside the client identifier namespaces the issuer can attest, its <tt>aud_tenant</tt> is not this request's tenant or is absent when required, its issuer is confined to another tenant, or its <tt>statement_uses</tt> excludes this use. This code is also used if a statement this server requires is absent from a registration request, if <xref target="dcr-presentation"/> forbids creating the registration because a required issuer covers the statement's <tt>sub</tt> and the statement is from another issuer, or if the server's policy refuses a repeated registration request (<xref target="repeated-registration"/>).</t>
        </dd>
        <dt><tt>invalid_client_metadata</tt>:</dt>
        <dd>
          <t>Any of the following holds for the reviewed document:
</t>
          <ul spacing="normal">
            <li>
              <t>It contains duplicate member names (Section 5.2 of <xref target="STATEMENT"/>).</t>
            </li>
            <li>
              <t>It fails validation as <xref target="CIMD"/> requires (<xref target="dcr-presentation"/>).</t>
            </li>
            <li>
              <t>It carries metadata this server's policy refuses.</t>
            </li>
            <li>
              <t>It cannot be obtained, including over the server's size bound, for a reason other than a retrieval that did not complete (Section 5.3 of <xref target="STATEMENT"/>).</t>
            </li>
            <li>
              <t>It permits a method based on a shared symmetric secret (<xref target="dcr-presentation"/>).</t>
            </li>
            <li>
              <t>It permits no method that the server supports and its policy allows (<xref target="dcr-presentation"/>).</t>
            </li>
            <li>
              <t>The server would register the client with <tt>none</tt> (<xref target="dcr-presentation"/>) and does not register it under <xref target="public-client-registration"/>.</t>
            </li>
          </ul>
        </dd>
        <dt><tt>invalid_redirect_uri</tt>:</dt>
        <dd>
          <t>The reviewed document carries a redirection URI another application could claim (<xref target="dcr-presentation"/>), or the server would register the client with <tt>none</tt> and the document lists no redirection URI (<xref target="public-client-registration"/>).</t>
        </dd>
        <dt><tt>temporarily_unavailable</tt>:</dt>
        <dd>
          <t>A retrieval the request needs did not complete (Section 5.3 of <xref target="STATEMENT"/>).</t>
        </dd>
      </dl>
      <t>Rejections at other endpoints use the error responses of Section 6 of <xref target="STATEMENT"/>. At the token and pushed authorization request endpoints, a request that fails the authentication of step 2 of <xref target="registration-requests"/> is rejected with <tt>invalid_client</tt>. Subject to the order of Section 6 of <xref target="STATEMENT"/>, a token, pushed authorization, or authorization request is rejected with <tt>statement_required</tt> (Section 6.1 of <xref target="STATEMENT"/>) if:</t>
      <ul spacing="normal">
        <li>
          <t>its registration has ceased to be valid, or the required-issuer rule rejects it (<xref target="registration-validity"/>), or</t>
        </li>
        <li>
          <t>its delivered statement is earlier than the governing statement or fails the replacement rules (<xref target="revalidation"/>).</t>
        </li>
      </ul>
      <t>At the authorization endpoint, the <tt>redirect_uri</tt> is validated against the registration's redirection URIs before an error is redirected (Section 4.1.2.1 of <xref target="RFC6749"/>).</t>
      <t>Rejections of a registration management request for other reasons use the responses <xref target="RFC7592"/> specifies, such as the HTTP 403 Forbidden response that <xref target="tenant-restriction"/> requires.</t>
    </section>
    <section anchor="example">
      <name>Example</name>
      <t>The following is a non-normative example of a registered client, whose <tt>client_id</tt> is <tt>s6BhdRkqt3</tt>, renewing its registration by delivering a replacement statement on an ordinary refresh, authenticated under its registered <tt>private_key_jwt</tt> method (line breaks for display purposes only):</t>
      <sourcecode type="http"><![CDATA[
POST /token HTTP/1.1
Host: as.example
Content-Type: application/x-www-form-urlencoded

grant_type=refresh_token
&refresh_token=tGzv3JOkF0XG5Qx2TlKWIA
&client_id=s6BhdRkqt3
&client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3A
client-assertion-type%3Ajwt-bearer
&client_assertion=eyJhbGciOiJFUzI1NiIsImtpZCI6IjIwMjYtMDgifQ...
&software_statement=eyJ0eXAiOiJzb2Z0d2FyZS1zdGF0ZW1l...
]]></sourcecode>
      <t>The authorization server validates the replacement and re-derives the registration's metadata (<xref target="revalidation"/>), returning the registration's new expiry in the <tt>registration_expires_at</tt> member of the token response. Once the registration has ceased to be valid, the same request without a replacement is rejected with <tt>statement_required</tt> (<xref target="errors"/>).</t>
    </section>
    <section anchor="authorization-server-metadata">
      <name>Authorization Server Metadata</name>
      <t>This specification defines the following authorization server metadata <xref target="RFC8414"/> value:</t>
      <dl>
        <dt><tt>software_statement_registration_supported</tt>:</dt>
        <dd>
          <t><bcp14>OPTIONAL</bcp14>. Boolean value indicating whether the authorization server supports this specification. If omitted, the default value is <tt>false</tt>. A value of <tt>true</tt> means every registration the server creates from a statement of the profile in Section 3 of <xref target="STATEMENT"/> is statement-governed, and does not imply support for runtime presentation.</t>
        </dd>
      </dl>
    </section>
    <section anchor="deployment-considerations">
      <name>Deployment Considerations</name>
      <t>This section gives guidance to operators. It adds no requirement.</t>
      <t>An issuer outage longer than a statement-governed registration's remaining lifetime makes the registration cease to be valid (<xref target="registration-validity"/>) until the client delivers a replacement (<xref target="revalidation"/>). The lifetimes an issuer chooses set the renewal cadence (Section 12.3 of <xref target="STATEMENT"/>). A deployment ought to have clients renew well before effective expiry, and ought to weigh that cadence against how quickly a narrowed or withdrawn review needs to take effect.</t>
      <t>A client that delivers a replacement at the token or pushed authorization request endpoint authenticates against the retained registration (step 2 of <xref target="registration-requests"/>). If it rotates a key carried inline in its document's <tt>jwks</tt>, it authenticates such a request with the outgoing key until a replacement over the new document has been applied, and with the new key afterward. It retires the outgoing key only after that renewal succeeds. An <xref target="RFC7592"/> update request authenticates with the registration access token instead (Section 2 of <xref target="RFC7592"/>).</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The security considerations of Section 13 of <xref target="STATEMENT"/> and Section 5 of <xref target="RFC7591"/> apply.</t>
      <section anchor="statement-bearer">
        <name>Statements at Registration</name>
        <t>A statement consumed at registration is a reusable bearer artifact until it expires. Its audience, lifetime, and <tt>statement_uses</tt> claim (Section 3 of <xref target="STATEMENT"/>) and the registration policy of <xref target="repeated-registration"/> limit what a copied statement can create. A statement a client publishes at its <tt>software_statements_uri</tt> (Section 5.5 of <xref target="STATEMENT"/>) can be read by anyone, so an issuer ought not to permit registration in such a statement.</t>
        <t>Taking every value from the document prevents metadata substitution. A request-supplied value for a member the document omits, such as a <tt>jwks</tt> member beside a document naming only <tt>jwks_uri</tt>, would give any holder of a copy a registration with reviewed branding and the holder's own key. A document that declares no authentication method permits only <tt>none</tt> (Section 5 of <xref target="CIMD"/>). Registering it under the <xref target="RFC7591"/> default would register a shared-secret method, which <xref target="CIMD"/> forbids (Section 4.1 of <xref target="CIMD"/>) and the issuer never reviewed. An issuer that omits <tt>aud</tt> from a statement permitting registration accepts that any server trusting the issuer can register the software on the strength of a copy.</t>
        <t>Under the one-registration default (<xref target="repeated-registration"/>), whoever first registers with a copy of a statement holds that registration and its registration access token, and can keep the software's publisher from registering there. Such a holder cannot authenticate as the client if the registered <tt>token_endpoint_auth_method</tt> requires a key the document carries.</t>
        <t>If the publisher's statement permits presentation and the server supports it, the publisher's software can still be admitted through runtime presentation (Section 5 of <xref target="STATEMENT"/>). Otherwise, recovery requires intervention by the server's operator or a registration policy other than the one-registration default. This specification defines no way to displace such a registration.</t>
        <t>A public-client registration (<xref target="public-client-registration"/>) has no credential to take, and a repeated request is answered with it (<xref target="repeated-registration"/>), so its first registrant gains nothing over later ones. Any holder of a copy can use it. Authorization codes under it reach only the reviewed redirection URIs, and its grants are bound to keys that installations hold. A holder of a copy therefore gains what it would gain at runtime, including the exposure Section 13.4 of <xref target="STATEMENT"/> describes for a holder that controls the user agent.</t>
      </section>
      <section anchor="renewal-credential">
        <name>Credential Theft and Renewal</name>
        <t>Renewal proves possession of the registration's credential and the currency of a statement sharing the governing statement's <tt>iss</tt> and <tt>sub</tt>, not that the renewing party is the reviewed software. An attacker holding a stolen client credential can renew indefinitely with the newer statements distributed to every deployment of the software. A public-client registration's renewal proves only that the replacement is current. No protection is lost, since any party can already use that registration.</t>
        <t>A narrower review takes effect at a registration when the client delivers it or when the governing statement ceases to be current. Withdrawal before then requires an extension (Section 9 of <xref target="STATEMENT"/>).</t>
        <t>Deployments ought to pair statement-governed registrations with credential rotation, sender-constrained client authentication, and the bounds that Sections 11.2 and 11.3 of <xref target="STATEMENT"/> and <xref target="repeated-registration"/> describe, and ought to treat a credential compromise as requiring re-registration rather than renewal. At runtime, a confidential client's key must appear in the reviewed document and, on refresh, in the document currently served (Sections 5.6.1 and 5.7.1 of <xref target="STATEMENT"/>). Once the server observes that the document no longer carries a compromised key, which can take up to the reuse bounds of Section 5.3 of <xref target="STATEMENT"/>, refresh requests made with that key fail.</t>
      </section>
      <section anchor="registration-fraud">
        <name>Registration Fraud and Impersonation</name>
        <t>Open registration permits <tt>client_name</tt>, <tt>logo_uri</tt>, and <tt>client_uri</tt> values that imitate trusted software on consent screens (Section 5 of <xref target="RFC7591"/>). Requiring a statement replaces self-asserted branding with issuer-reviewed values, though content served at a URL the document carries, such as a logo, can change after review (Section 13.1 of <xref target="STATEMENT"/>). Servers that render such values on consent screens ought to prefer those from a reviewed document and to apply heightened scrutiny to registrations that claim user-visible branding without a statement.</t>
        <t>Requiring a statement also means a removed client cannot register again under a new client identifier URL without another issuer decision.</t>
      </section>
      <section anchor="oracle-considerations">
        <name>Observable State</name>
        <t>A retained registration that has ceased to be valid is distinguishable from an unknown client (<xref target="registration-requests"/>, <xref target="errors"/>). At the token and pushed authorization request endpoints, only a requester that authenticates as the registration's client can observe this, except for a public-client registration. At the authorization endpoint, anyone who sends an authorization request naming the client and one of its registered redirection URIs learns from the <tt>statement_required</tt> redirection that the registration has ceased to be valid. If an observer knows the governing statement's <tt>exp</tt>, a lapse before that time shows that an extension ended the statement or that the server caps the lifetime it honors for the issuer.</t>
        <t>As at runtime (Section 13.8 of <xref target="STATEMENT"/>), these disclosures are accepted, and they reveal nothing of the server's issuer trust configuration beyond the fact and time that the registration ceased to be valid (Section 6.6 of <xref target="STATEMENT"/>). Publishing <tt>software_statement_registration_supported</tt> discloses that statement-governed registrations expire there, which a client needs to know before registering.</t>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>The privacy considerations of Section 14 of <xref target="STATEMENT"/> and Section 6 of <xref target="RFC7591"/> apply. A registration request reveals to the authorization server the same information as a runtime presentation.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <section anchor="oauth-dynamic-client-registration-metadata-registry">
        <name>OAuth Dynamic Client Registration Metadata Registry</name>
        <t>This specification requests registration of the following value in the IANA "OAuth Dynamic Client Registration Metadata" registry established by <xref target="RFC7591"/>. An authorization server returns this member in a registration response:</t>
        <dl>
          <dt>Client Metadata Name:</dt>
          <dd>
            <t><tt>registration_expires_at</tt></t>
          </dd>
          <dt>Client Metadata Description:</dt>
          <dd>
            <t>Latest time at which a statement-governed registration remains valid, as a NumericDate.</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t>This specification, <xref target="registration-validity"/></t>
          </dd>
        </dl>
      </section>
      <section anchor="oauth-parameters-registry">
        <name>OAuth Parameters Registry</name>
        <t>This specification requests registration of the following parameter in the IANA "OAuth Parameters" registry established by <xref target="RFC6749"/>, for the responses to requests that renew a statement-governed registration or carry its governing statement:</t>
        <dl>
          <dt>Parameter Name:</dt>
          <dd>
            <t><tt>registration_expires_at</tt></t>
          </dd>
          <dt>Parameter Usage Location:</dt>
          <dd>
            <t>token response, pushed authorization request response</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t>This specification, <xref target="registration-validity"/></t>
          </dd>
        </dl>
      </section>
      <section anchor="oauth-authorization-server-metadata-registry">
        <name>OAuth Authorization Server Metadata Registry</name>
        <t>This specification requests registration of the following value in the IANA "OAuth Authorization Server Metadata" registry established by <xref target="RFC8414"/>:</t>
        <dl>
          <dt>Metadata Name:</dt>
          <dd>
            <t><tt>software_statement_registration_supported</tt></t>
          </dd>
          <dt>Metadata Description:</dt>
          <dd>
            <t>Boolean value indicating whether the authorization server supports Client ID Metadata Document software statement registration.</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t>This specification, <xref target="authorization-server-metadata"/></t>
          </dd>
        </dl>
      </section>
      <section anchor="oauth-extensions-error-registry">
        <name>OAuth Extensions Error Registry</name>
        <t>This specification requests that IANA update the existing <tt>temporarily_unavailable</tt> entry, adding the registration endpoint and the client configuration endpoint to its usage locations and this specification as a reference:</t>
        <dl>
          <dt>Error Name:</dt>
          <dd>
            <t><tt>temporarily_unavailable</tt></t>
          </dd>
          <dt>Error Usage Location:</dt>
          <dd>
            <t>registration endpoint, client configuration endpoint, in addition to the locations already registered</t>
          </dd>
          <dt>Related Protocol Extension:</dt>
          <dd>
            <t>OAuth 2.0 Authorization Framework</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t><xref target="RFC6749"/>, this specification (<xref target="errors"/>)</t>
          </dd>
        </dl>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <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="RFC7519">
        <front>
          <title>JSON Web Token (JWT)</title>
          <author fullname="M. Jones" initials="M." surname="Jones"/>
          <author fullname="J. Bradley" initials="J." surname="Bradley"/>
          <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
          <date month="May" year="2015"/>
          <abstract>
            <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7519"/>
        <seriesInfo name="DOI" value="10.17487/RFC7519"/>
      </reference>
      <reference anchor="RFC7591">
        <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="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="RFC9126">
        <front>
          <title>OAuth 2.0 Pushed Authorization Requests</title>
          <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
          <author fullname="B. Campbell" initials="B." surname="Campbell"/>
          <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
          <author fullname="D. Tonge" initials="D." surname="Tonge"/>
          <author fullname="F. Skokan" initials="F." surname="Skokan"/>
          <date month="September" year="2021"/>
          <abstract>
            <t>This document defines the pushed authorization request (PAR) endpoint, which allows clients to push the payload of an OAuth 2.0 authorization request to the authorization server via a direct request and provides them with a request URI that is used as reference to the data in a subsequent call to the authorization endpoint.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9126"/>
        <seriesInfo name="DOI" value="10.17487/RFC9126"/>
      </reference>
      <reference anchor="RFC9700">
        <front>
          <title>Best Current Practice for OAuth 2.0 Security</title>
          <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
          <author fullname="J. Bradley" initials="J." surname="Bradley"/>
          <author fullname="A. Labunets" initials="A." surname="Labunets"/>
          <author fullname="D. Fett" initials="D." surname="Fett"/>
          <date month="January" year="2025"/>
          <abstract>
            <t>This document describes best current security practice for OAuth 2.0. It updates and extends the threat model and security advice given in RFCs 6749, 6750, and 6819 to incorporate practical experiences gathered since OAuth 2.0 was published and covers new threats relevant due to the broader application of OAuth 2.0. Further, it deprecates some modes of operation that are deemed less secure or even insecure.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="240"/>
        <seriesInfo name="RFC" value="9700"/>
        <seriesInfo name="DOI" value="10.17487/RFC9700"/>
      </reference>
      <reference anchor="STATEMENT">
        <front>
          <title>Client ID Metadata Document Software Statement</title>
          <author fullname="Karl McGuinness" initials="K." surname="McGuinness">
            <organization>Independent</organization>
          </author>
          <date day="2" month="November" year="2026"/>
          <abstract>
            <t>   This specification defines a software statement in which a trusted
   party records its review of the exact octets of a client's Client ID
   Metadata Document (CIMD), and how an authorization server enforces
   that review when it admits the client at request time, without a
   registration.  A CIMD carries the client's own metadata, which can
   change at any time, and a statement binds the review to one version
   of the document by its digest.  The client presents the statement in
   a token or pushed authorization request, or publishes it where its
   document points.  The authorization server accepts a statement only
   from an issuer it trusts, and also binds the presenter to the
   reviewed document, although for a public client that binding does not
   hold against a party that controls the user agent.  Independently
   operated authorization servers can consume the same review, each
   under its own trust configuration and admission policy.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-mcguinness-oauth-cimd-sw-stmt-00"/>
      </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">
            <organization>independent</organization>
          </author>
          <date day="2" month="November" 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-03"/>
      </reference>
      <reference anchor="RFC7592">
        <front>
          <title>OAuth 2.0 Dynamic Client Registration Management 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"/>
          <date month="July" year="2015"/>
          <abstract>
            <t>This specification defines methods for management of OAuth 2.0 dynamic client registrations for use cases in which the properties of a registered client may need to be changed during the lifetime of the client. Not all authorization servers supporting dynamic client registration will support these management methods.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7592"/>
        <seriesInfo name="DOI" value="10.17487/RFC7592"/>
      </reference>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
    </references>
    <?line 434?>

<section numbered="false" anchor="document-history">
      <name>Document History</name>
      <t>[[ To be removed from the final specification ]]</t>
      <t>-01</t>
      <ul spacing="normal">
        <li>
          <t>Aligned authentication methods with draft -03 of <xref target="CIMD"/>. The registered <tt>token_endpoint_auth_method</tt> is a method the reviewed document permits, and a replacement keeps it (<xref target="revalidation"/>).</t>
        </li>
        <li>
          <t>A document that declares no authentication method permits only <tt>none</tt> and is no longer rejected.</t>
        </li>
      </ul>
      <t>-00</t>
      <ul spacing="normal">
        <li>
          <t>Initial version.</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA71d63bb1pX+z6fA2GtqO4tkJdlxGrVpR7XsRG18qS03bbK6
JBA4FBGBAAuAYhjZfZZ5lnmy2bdzAw5AKkmbHzFF4nIu+76/vc9kMhk1WZOr
4+jeszxTRROdnUYvVROncRNHp2WyXuKX78p5s4krFb1r4kbRV2/VVVY3Vdxk
ZXFvFM9mlbo5jsp43SwmSbZMJ/VmUjfLZlI5F47SMiniJbwureJ5M1kmV+us
KFRdT3bcOTk4HCXw7quy2h5HdZOO6vVsmdU1/NZsV/DEs+fnL0ajbFUdR021
rpujg4PPD45GMOoYZvdOJesqa7b3Rpuyur6qyvUKvv1GzaITeG9ZZT/Sa6I3
VdmUSZnfG42u1RauTY9H0SR6jVfhh+5K4LenW5hVlkSyhu7a4M8DS4s/u5dH
f43zLIWBjkZ1ExfpRZyXBcxuq+rRKjuOvoPRjaO6rJpKzWv4tF3ih3+MRjHN
A0c7iuC/rKiPoz9Po5fJl7LE9DWv/p/jKm//UlZXcSHLAKtZpGql4H84RPhP
LeMsP45W61meJf9zDffbvZsm5XI0KspqCTffKBhC9PbFs6efPflcPn726aH9
+PmhfPzNk8Mn8vHzw6On+uNnBwf48d35yfnzl89fncNYJqfTQUqBy5+dvTzl
KzPVzPU1tO6TLJ0sZd0nqVl3Gc3R8Wg0mUyieIZbkDSj0fkiq6N6pZJsniW8
KamaZ/DuaFFuoriIYo9kalXdqCpialVVHcURvzhqFkBnVwumnuhoejBEKNFD
GFCE6/Mogr/iIaqJHuJ8HwEdCDXWmhrHUVzLcFOgARxLuVzBxuJA3TlNo3fr
ZAG/m1ujJK6qDGZZlHoCetmich5lTR2VG7jvrIluSrgXrpyXFUxSReoHWLmo
TBqFF83pO37EAxiNDBqGVqT0U3D9mvganqjg49asJczBDOEmztcqmlflEp4R
N+axESzfAu9fwM7IzypyZQf88c+1qptpFNjaOK/LaFaui7Tu3AiDvxF2jGZb
+tmsFvymflhl1XYcbRYZrKTevShX8Q3MZF3QU1XK8/ZISK9vpQq16b4XX5aq
HHipyooruDyHl1buJvMraezrFSyPch/irduUyXuZpWmuRqP7wNlNVabrhITT
6PbWMNrHj2aQcYCyollWpDScIgK5u1YVLAEI/UxtoqYMksFeNHx7i/9+/MjL
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
OqAONUVGkUKMlJCs+X9DfRxLXJwAAA==

-->

</rfc>
