<?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.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-parecki-oauth-client-id-metadata-document-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.0 -->
  <front>
    <title abbrev="Client ID Document">OAuth Client ID Metadata Document</title>
    <seriesInfo name="Internet-Draft" value="draft-parecki-oauth-client-id-metadata-document-03"/>
    <author fullname="Aaron Parecki">
      <organization>Okta</organization>
      <address>
        <email>aaron@parecki.com</email>
        <uri>https://aaronparecki.com</uri>
      </address>
    </author>
    <author fullname="Emelia Smith">
      <organization/>
      <address>
        <email>emelia@brandedcode.com</email>
        <uri>https://thisismissem.social</uri>
      </address>
    </author>
    <date year="2025" month="July" day="23"/>
    <area>Security</area>
    <workgroup>Web Authorization Protocol</workgroup>
    <keyword>oauth</keyword>
    <abstract>
      <?line 97?>

<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 <tt>client_id</tt> 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>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://drafts.aaronpk.com/draft-parecki-oauth-client-id-metadata-document/draft-parecki-oauth-client-id-metadata-document.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-parecki-oauth-client-id-metadata-document/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Web Authorization Protocol Working Group mailing list (<eref target="mailto:oauth@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/oauth/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/oauth/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/aaronpk/draft-parecki-oauth-client-id-metadata-document"/>.</t>
    </note>
  </front>
  <middle>
    <?line 106?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>In order for an OAuth 2.0 <xref target="RFC6749"/> client to utilize an OAuth 2.0
authorization server, the client needs to establish a unique identifier, and
needs to to provide the server with metadata about the application, such as the
application name, icon and redirect URIs. In cases where a client is interacting
with authorization servers that it has no relationship with, manual registration
is impossible.</t>
      <t>While Dynamic Client Registration <xref target="RFC7591"/> can provide a method for a
previously unknown client to establish itself at an authorization server and
obtain a client identifier, this is not always practical in some deployments and
can create additional challenges around management of the registration data and
cleanup of inactive clients.</t>
      <t>This specification describes how an OAuth 2.0 client can publish its
own registration information and avoid the need for pre-registering
at each authorization server.</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="client-identifier">
      <name>Client Identifier</name>
      <t>This specification defines the client identifier as a URL with the following
restrictions. Client identifier URLs <bcp14>MUST</bcp14> have an "https" scheme, <bcp14>MUST</bcp14> contain a
path component, <bcp14>MUST NOT</bcp14> contain single-dot or double-dot path segments, <bcp14>MUST
NOT</bcp14> contain a fragment component and <bcp14>MUST NOT</bcp14> contain a username or password
Client identifier URLs <bcp14>SHOULD NOT</bcp14> include a query string component, and <bcp14>MAY</bcp14> contain a port.</t>
      <t>This specification places no restrictions on what URL is used as
a client identifier. A short URL is <bcp14>RECOMMENDED</bcp14>, since the URL may
be displayed to the end user in the authorization interface or in
management interfaces. Usage of a stable URL that does not frequently
change for the client is also <bcp14>RECOMMENDED</bcp14>.</t>
    </section>
    <section anchor="client-information-discovery">
      <name>Client Information Discovery</name>
      <t>One purpose of registering clients at the authorization server is so that
the authorization server has additional information about the client that
can be used during an OAuth flow, such as presenting information about
the client to the user in an authorization consent screen, for example the
client name and logo.</t>
      <t>The authorization server <bcp14>SHOULD</bcp14> fetch the document indicated by the <tt>client_id</tt>
to retrieve the client registration information.</t>
      <section anchor="client-metadata">
        <name>Client Metadata</name>
        <t>The client metadata document URL is a JSON document containing the metadata
of the client. The client metadata values are the values defined in
the OAuth Dynamic Client Registration Metadata OAuth Parameters registry
<eref target="https://www.iana.org/assignments/oauth-parameters/oauth-parameters.xhtml#client-metadata">https://www.iana.org/assignments/oauth-parameters/oauth-parameters.xhtml#client-metadata</eref>.</t>
        <t>The client metadata document <bcp14>MUST</bcp14> contain a <tt>client_id</tt> property whose value
<bcp14>MUST</bcp14> match the URL of the document using simple string comparison as
defined in <xref target="RFC3986"/> Section 6.2.1.</t>
        <t>The client metadata document <bcp14>MAY</bcp14> define additional properties in the response.
The client metadata document <bcp14>MAY</bcp14> also be served with more specific content types
as long as the response is JSON and conforms to <tt>application/&lt;AS-defined&gt;+json</tt>.</t>
        <t>As there is no way to establish a shared secret to be used with client metadata
documents, the following restrictions apply on the contents of the
client metadata document:</t>
        <ul spacing="normal">
          <li>
            <t>the <tt>token_endpoint_auth_method</tt> property <bcp14>MUST NOT</bcp14> include <tt>client_secret_post</tt>,
<tt>client_secret_basic</tt>, <tt>client_secret_jwt</tt>, or any other method based around
a shared symmetric secret.</t>
          </li>
          <li>
            <t>the <tt>client_secret</tt> and <tt>client_secret_expires_at</tt> properties <bcp14>MUST NOT</bcp14> be used</t>
          </li>
        </ul>
        <t>See <xref target="client_authentication"/> for more details.</t>
        <t>Other specifications <bcp14>MAY</bcp14> place additional restrictions on the contents of the
client metadata document accepted by authorization servers implementing their
specification, for instance, preventing the registration of confidential clients
by requiring the <tt>token_endpoint_auth_method</tt> property be set to <tt>"none"</tt>.</t>
        <t>TBD: We may want a property such as <tt>client_id_expires_at</tt> for indicating that the client is ephemeral and not valid after a given timestamp, especially for documents issued by a service for development purposes.</t>
      </section>
      <section anchor="documents_for_development">
        <name>Client Metadata Documents for Development Purposes</name>
        <t>An authorization server may have restrictions on what it accepts as valid <tt>redirect_uris</tt>, for instance, limiting them to the same-origin as the <tt>client_id</tt> or <tt>client_uri</tt> properties. However, if an authorization server does place additional restrictions on the accepted <tt>redirect_uris</tt> then it <bcp14>SHOULD</bcp14> provide at least one Client ID Metadata Document Service (described below) which is exempt from these restrictions.</t>
        <t>When developing applications against an authorization server which uses this specification, developers often encounter the issue of "how do I serve a Client ID Metadata Document at a publicly accessible https URL whilst developing my application on my localhost?".</t>
        <t>To enable developers to author applications on their machines, without exposing their machines to the public internet, the usage of Client ID Metadata Document Services by the authorization server is <bcp14>RECOMMENDED</bcp14>.</t>
        <t>A Client ID Metadata Document Service is a web service through which developers can acquire a stable URL to a Client ID Metadata Document. This service <bcp14>MAY</bcp14> expire clients from time to time, and <bcp14>MAY</bcp14> require developers to provide additional information about the client being developed.</t>
        <t>By providing at least one Client ID Metadata Document Service, an authorization server can enable developers to create applications, and still indicate to non-technical people that the client that they are about to authorize is currently under-development and may not be trustworthy or secure.</t>
      </section>
      <section anchor="metadata-discovery-errors">
        <name>Metadata Discovery Errors</name>
        <t>If fetching the metadata document fails, the authorization server <bcp14>SHOULD</bcp14> abort the
authorization request.</t>
      </section>
      <section anchor="metadata-caching">
        <name>Metadata Caching</name>
        <t>The authorization server <bcp14>MAY</bcp14> cache the client metadata it discovers at the
client metadata document URL.</t>
        <t>The authorization server <bcp14>SHOULD</bcp14> respect HTTP cache headers <xref target="RFC9111"/> when caching client metadata,
but <bcp14>MAY</bcp14> define its own upper and/or lower bounds on an acceptable cache lifetime as well.</t>
        <t>The authorization server <bcp14>MUST NOT</bcp14> cache error responses. The authorization
server also <bcp14>MUST NOT</bcp14> cache documents which are invalid or malformed.</t>
      </section>
      <section anchor="redirect-url-registration">
        <name>Redirect URL Registration</name>
        <t>According to <xref target="RFC9700"/>, the authorization server
<bcp14>MUST</bcp14> require registration of redirect URIs, and <bcp14>MUST</bcp14> ensure that the redirect URI
in a request is an exact match of a registered redirect URI.</t>
        <t>This method of client information discovery establishes a
registered redirect URI with the authorization server which is used when
comparing the redirect URI in an authorization request against the registered
redirect URIs.</t>
      </section>
    </section>
    <section anchor="as-metadata">
      <name>Authorization Server Metadata</name>
      <t>Authorization servers that publish Authorization Server Metadata <xref target="RFC8414"/> <bcp14>MUST</bcp14> include the following property to signal support for client metadata documents as described in this specification.</t>
      <dl>
        <dt><tt>client_id_metadata_document_supported</tt>:</dt>
        <dd>
          <t><bcp14>OPTIONAL</bcp14>. Boolean value specifying whether the authorization server supports retrieving client metadata from a <tt>client_id</tt> URL as described in this specification.</t>
        </dd>
      </dl>
      <t>This enables clients to avoid sending the user to a dead end, by only redirecting the user to an authorization server that supports this specification. Otherwise, the client would redirect the user and the user would be met with an error about an invalid client as described by Section 4.1.2.1 of <xref target="RFC6749"/>.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>In addition to the security considerations in OAuth 2.0 Core <xref target="RFC6749"/>, and OAuth 2.0 Threat Model and Security Considerations <xref target="RFC6819"/>, and <xref target="RFC9700"/> the additional considerations apply.</t>
      <section anchor="redirect_uri_relationship">
        <name>Relationship between <tt>redirect_uris</tt> and <tt>client_id</tt> or <tt>client_uri</tt></name>
        <t>An authorization server <bcp14>MAY</bcp14> impose restrictions or relationships between the <tt>redirect_uris</tt> and the <tt>client_id</tt> or <tt>client_uri</tt> properties, for example to restrict the <tt>redirect_uri</tt> to the same-origin as the Client ID Metadata Document. Without restrictions like these, there are potential trust and safety issues where the client attempts to impersonate a more well-known client or otherwise act in a way which is malicious or puts the end-user at risk.</t>
        <t>Having no restrictions on the relationship between <tt>redirect_uris</tt> and <tt>client_id</tt> or <tt>client_uri</tt> was a common practice with <xref target="Solid-OIDC"/>'s Client ID Documents, so this ability is preserved for backwards compatibility between <xref target="Solid-OIDC"/> and this specification.</t>
        <t>Some restrictions on <tt>redirect_uris</tt> can make developer usage of Client ID Metadata Documents difficult. The section <xref target="documents_for_development"/> contains recommendations for enabling development usage of Client ID Metadata Documents for authorization servers that impose restrictions on the <tt>redirect_uri</tt>.</t>
      </section>
      <section anchor="client_authentication">
        <name>Client Authentication</name>
        <t>Since the client establishes its own registration data at the authorization server,
prior coordination of client credentials is not possible. However, clients <bcp14>MAY</bcp14> establish
credentials at the authorization server by using authentication methods that use
public/private key pairs, by publishing the public key in their metadata document.</t>
        <t>For example, the client <bcp14>MAY</bcp14> include the following properties in its metadata document
to establish a public key and advertise the <tt>private_key_jwt</tt> authentication method defined in <xref target="OpenID"/>:</t>
        <artwork><![CDATA[
{
  ...
  "token_endpoint_auth_method": "private_key_jwt",
  "jwks_uri": "https://client.example.com/jwks.json"
  ...
}
]]></artwork>
        <t>This establishes this client as a confidential client, and any communication with
the authorization server <bcp14>MUST</bcp14> include client authentication of the registered type.</t>
        <t>The particular method of how the client manages the private key is out of scope of this specification, but may include manual provisioning or methods such as Attestation Based Client Authentication <xref target="I-D.draft-ietf-oauth-attestation-based-client-auth"/>. For example, the client developer could run a Client Attester Backend, using a native application's platform-specific APIs to authenticate to the backend service, where the private key corresponding to the <tt>jwks_uri</tt> key is managed by the backend service. This would allow a mobile app to request JWTs from the backend service that the mobile app could then use as client authentication to the authorization server.</t>
      </section>
      <section anchor="changes-in-client-keys">
        <name>Changes in Client Keys</name>
        <t>If the authorization server notices that the <tt>jwks_uri</tt> or the contents at the <tt>jwks_uri</tt> have changed compared to the last time it fetched the metadata, the authorization server <bcp14>MAY</bcp14> take actions such as revoking any tokens issued to this client, or revoking the user's consent for this client. The particular actions to take are left up to the discretion of the authorization server based on its own risk assessment.</t>
      </section>
      <section anchor="oauth-phishing-attacks">
        <name>OAuth Phishing Attacks</name>
        <t>Authorization servers <bcp14>SHOULD</bcp14> fetch the <tt>client_id</tt> metadata document provided in the authorization request in order to provide users with additional information about the request, such as the application name and logo. If the server does not fetch the client metadata document, then it <bcp14>SHOULD</bcp14> take additional measures to ensure the user is provided with as much information as possible about the request.</t>
        <t>The authorization server <bcp14>SHOULD</bcp14> display the hostname of the <tt>client_id</tt> on the authorization interface, in addition to displaying the fetched client information if any. Displaying the hostname helps users know that they are authorizing the expected application.</t>
        <t>If fetching the client metadata document fails for any reason, the <tt>client_id</tt> URL is the only piece of information the user has as an indication of which application they are authorizing.</t>
      </section>
      <section anchor="server-side-request-forgery-ssrf-attacks">
        <name>Server Side Request Forgery (SSRF) Attacks</name>
        <t>Authorization servers fetching the client metadata document and resolving URLs located in the metadata document should be aware of possible SSRF attacks. Authorization servers <bcp14>SHOULD</bcp14> avoid fetching any URLs using private or loopback addresses and consider network policies or other measures to prevent making requests to these addresses. Authorization servers <bcp14>SHOULD</bcp14> also be aware of the possibility that URLs might be non-http-based URI schemes which can lead to other possible SSRF attack vectors.</t>
      </section>
      <section anchor="maximum-response-size-for-client-metadata-documents">
        <name>Maximum Response Size for Client Metadata Documents</name>
        <t>Authorization servers <bcp14>SHOULD</bcp14> limit the response size when fetching the client metadata document, as to avoid denial of service attacks against the authorization server by consuming excessive resources (memory, disk, database). The recommended maximum response size for client metadata documents is 5 kilobytes.</t>
      </section>
      <section anchor="displaying-logos-to-end-users">
        <name>Displaying Logos to End-Users</name>
        <t>Authorization servers that wish to make use of the <tt>logo_uri</tt> property within client metadata document <bcp14>SHOULD</bcp14> prefetch the file at <tt>logo_uri</tt> and cache it for the cache duration of the client metadata document. This allows for moderation tools to verify the file contents (e.g., preventing usage of logos that look like other logos), as well as preventing the logo from being dynamically changed to confuse an end-user.</t>
        <t>Caching of the <tt>logo_uri</tt> response can additionally prevent cross-domain tracking through the <tt>logo_uri</tt> being requested by the client, since the cached file would be served not from the remote URI but instead from a URI that the Authorization server trusts.</t>
      </section>
      <section anchor="client-id-domain-trust">
        <name>Client ID Domain Trust</name>
        <t>The authorization server <bcp14>MAY</bcp14> choose to have its own heuristics and policies around the trust of domain names used as client IDs.</t>
        <t>For example, the authorization server could require that the first 100 users to authorize a <tt>client_id</tt> see an additional warning screen before the OAuth consent screen. The authorization server could check attributes of the domain reputation, such as how recently the domain was registered, and put up extra warnings for new domains.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="oauth-authorization-server-metadata-registry">
        <name>OAuth Authorization Server Metadata Registry</name>
        <t>The following authorization server metadata value is defined by this specification and registered in the IANA "OAuth Authorization Server Metadata" registry established in OAuth 2.0 Authorization Server Metadata <xref target="RFC8414"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Metadata Name: <tt>client_id_metadata_document_supported</tt>:</t>
          </li>
          <li>
            <t>Metadata Description: JSON boolean value specifying whether the authorization server supports retrieving client metadata from a <tt>client_id</tt> URL.</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Specification Document: <xref target="as-metadata"/> of [draft-parecki-oauth-client-id-metadata-document-03]</t>
          </li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="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="RFC6819">
          <front>
            <title>OAuth 2.0 Threat Model and Security Considerations</title>
            <author fullname="T. Lodderstedt" initials="T." role="editor" surname="Lodderstedt"/>
            <author fullname="M. McGloin" initials="M." surname="McGloin"/>
            <author fullname="P. Hunt" initials="P." surname="Hunt"/>
            <date month="January" year="2013"/>
            <abstract>
              <t>This document gives additional security considerations for OAuth, beyond those in the OAuth 2.0 specification, based on a comprehensive threat model for the OAuth 2.0 protocol. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6819"/>
          <seriesInfo name="DOI" value="10.17487/RFC6819"/>
        </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="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="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="IndieAuth" target="https://indieauth.spec.indieweb.org/">
          <front>
            <title>IndieAuth</title>
            <author initials="A." surname="Parecki" fullname="Aaron Parecki">
              <organization/>
            </author>
            <date year="2022" month="February" day="12"/>
          </front>
        </reference>
        <reference anchor="Solid-OIDC" target="https://solidproject.org/TR/2022/oidc-20220328">
          <front>
            <title>Solid-OIDC</title>
            <author initials="A." surname="Coburn" fullname="Aaron Coburn">
              <organization>Inrupt</organization>
            </author>
            <author initials="" surname="elf Pavlik" fullname="elf Pavlik">
              <organization/>
            </author>
            <author initials="D." surname="Zagidulin" fullname="Dmitri Zagidulin">
              <organization/>
            </author>
            <date year="2022" month="March" day="28"/>
          </front>
        </reference>
        <reference anchor="OpenID" target="https://openid.net/specs/openid-connect-core-1_0.html">
          <front>
            <title>OpenID Connect Core 1.0</title>
            <author initials="N." surname="Sakimura" fullname="N. Sakimura">
              <organization>NAT.Consulting</organization>
            </author>
            <author initials="J." surname="Bradley" fullname="J. Bradley">
              <organization>Yubico</organization>
            </author>
            <author initials="M." surname="Jones" fullname="M. Jones">
              <organization>Self-Issued Consulting</organization>
            </author>
            <author initials="B. de" surname="Medeiros" fullname="B. de Medeiros">
              <organization>Google</organization>
            </author>
            <author initials="C." surname="Mortimore" fullname="C. Mortimore">
              <organization>Disney</organization>
            </author>
            <date year="2023" month="December" day="15"/>
          </front>
        </reference>
        <reference anchor="OpenID.Federation" target="https://openid.net/specs/openid-federation-1_0.html">
          <front>
            <title>OpenID Federation 1.0</title>
            <author initials="R." surname="Hedberg" fullname="R. Hedberg">
              <organization>independent</organization>
            </author>
            <author initials="M.B." surname="Jones" fullname="M.B. Jones">
              <organization>Self-Issued Consulting</organization>
            </author>
            <author initials="A.Å." surname="Solberg" fullname="A.Å. Solberg">
              <organization>Sikt</organization>
            </author>
            <author initials="J." surname="Bradley" fullname="J. Bradley">
              <organization>Yubico</organization>
            </author>
            <author initials="G. D." surname="Marco" fullname="G. De Marco">
              <organization>independent</organization>
            </author>
            <author initials="V." surname="Dzhuvinov" fullname="V. Dzhuvinov">
              <organization>Connect2id</organization>
            </author>
            <date year="2024" month="May" day="17"/>
          </front>
        </reference>
        <reference anchor="I-D.draft-ietf-oauth-attestation-based-client-auth">
          <front>
            <title>OAuth 2.0 Attestation-Based Client Authentication</title>
            <author fullname="Tobias Looker" initials="T." surname="Looker">
              <organization>MATTR</organization>
            </author>
            <author fullname="Paul Bastian" initials="P." surname="Bastian">
              <organization>Bundesdruckerei</organization>
            </author>
            <author fullname="Christian Bormann" initials="C." surname="Bormann">
              <organization>SPRIND</organization>
            </author>
            <date day="7" month="July" year="2025"/>
            <abstract>
              <t>   This specification defines an extension to the OAuth 2 protocol as
   defined in [RFC6749] which enables a Client Instance to include a
   key-bound attestation in interactions with an Authorization Server or
   a Resource Server.  This new method enables Client Instances involved
   in a client deployment that is traditionally viewed as a public
   client, to be able to utilize this key-bound attestation to
   authenticate.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-attestation-based-client-auth-06"/>
        </reference>
        <reference anchor="RFC7523">
          <front>
            <title>JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>This specification defines the use of a JSON Web Token (JWT) Bearer Token as a means for requesting an OAuth 2.0 access token as well as for client authentication.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7523"/>
          <seriesInfo name="DOI" value="10.17487/RFC7523"/>
        </reference>
        <reference anchor="RFC9111">
          <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>
      </references>
    </references>
    <?line 343?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The idea of using URIs as the <tt>client_id</tt> in OAuth based authorization requests is not new, and has previously been specified in varying ways by <xref target="IndieAuth"/>, <xref target="Solid-OIDC"/>, and <xref target="OpenID.Federation"/>. This specification is largely inspired by the work of Aaron Coburn, elf Pavlik, and Dmitri Zagidulin in their <xref target="Solid-OIDC"/> specification which defined dereferenceable Client Identifier Documents.</t>
      <t>The authors would like to thank the following people for their contributions and reviews of this specification: Dick Hardt, Matthieu Sieben, Filip Skokan.</t>
    </section>
    <section numbered="false" anchor="document-history">
      <name>Document History</name>
      <t>(This appendix to be deleted by the RFC editor in the final specification.)</t>
      <t>-03</t>
      <ul spacing="normal">
        <li>
          <t>Prohibit all forms of symmetric client authentication, not just client secret</t>
        </li>
        <li>
          <t>Added recommendations for development when clients are not on the web</t>
        </li>
        <li>
          <t>Added reference to HTTP Caching RFC9111</t>
        </li>
        <li>
          <t>Added security considerations around domain trust and changes in client keys</t>
        </li>
        <li>
          <t>Updated references</t>
        </li>
      </ul>
      <t>-02</t>
      <ul spacing="normal">
        <li>
          <t>Added security consideration around displaying logos to end users</t>
        </li>
        <li>
          <t>Changed query string parameters in Client ID Metadata Document URLs to "<bcp14>SHOULD NOT</bcp14>", since this encourages bad security practices (e.g., minting documents based on query string parameters)</t>
        </li>
        <li>
          <t>Added prohibition on the <tt>client_secret_expires_at</tt> property, as it is not relevant for Client ID Metadata Documents.</t>
        </li>
        <li>
          <t>Added security consideration for development use-cases.</t>
        </li>
      </ul>
      <t>-01</t>
      <ul spacing="normal">
        <li>
          <t>Added recommendation of max metadata document size</t>
        </li>
        <li>
          <t>Changed metadata property reference to IANA registry instead of Dynamic Client Registration</t>
        </li>
      </ul>
      <t>-00</t>
      <ul spacing="normal">
        <li>
          <t>Initial draft</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
