<?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.23 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-parecki-oauth-client-id-scheme-01" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.26.0 -->
  <front>
    <title abbrev="Client ID Scheme">OAuth 2.0 Client ID Scheme</title>
    <seriesInfo name="Internet-Draft" value="draft-parecki-oauth-client-id-scheme-01"/>
    <author fullname="Aaron Parecki">
      <organization>Okta</organization>
      <address>
        <email>aaron@parecki.com</email>
      </address>
    </author>
    <author fullname="Daniel Fett">
      <organization>Authlete</organization>
      <address>
        <email>mail@danielfett.de</email>
      </address>
    </author>
    <author fullname="Joseph Heenan">
      <organization>Authlete</organization>
      <address>
        <email>joseph@heenan.me.uk</email>
      </address>
    </author>
    <date year="2025" month="February" day="07"/>
    <area>Security</area>
    <workgroup>Web Authorization Protocol</workgroup>
    <keyword>oauth</keyword>
    <abstract>
      <?line 86?>

<t>This specification defines the concept of a Client Identifier Scheme to enable Authorization Servers and Clients to use more than one mechanism to obtain and validate Client metadata.</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/oauth-client-id-scheme/draft-parecki-oauth-client-id-scheme.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-parecki-oauth-client-id-scheme/"/>.
      </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/oauth-client-id-scheme"/>.</t>
    </note>
  </front>
  <middle>
    <?line 90?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>A Client Identifier is used by an OAuth 2.0 Client to identify itself to an Authorization Server. The Client Identifier is used in the Authorization Request and various other places throughout OAuth flows. In ecosystems where more than one method of obtaining and validating Client metadata is used, it is necessary to indicate unambiguously which method is used. This specification defines a structure for Client Identifiers that includes a prefix indicating the Client Identifier Scheme.</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-scheme">
      <name>Client Identifier Scheme</name>
      <t>This specification defines the concept of a Client Identifier Scheme that indicates how an Authorization Server is supposed to interpret the Client Identifier and associated data in the process of Client identification, authentication, and authorization. The Client Identifier Scheme enables deployments of this specification to use different mechanisms to obtain and validate metadata of the Client beyond the scope of <xref target="RFC6749"/>.</t>
      <t>The Client Identifier Scheme is a string that <bcp14>MAY</bcp14> be communicated by the Client in a prefix within the <tt>client_id</tt> parameter in the Authorization Request. A fallback to pre-registered Clients as in <xref target="RFC6749"/> remains in place as a default mechanism in case no Client Identifier Scheme was provided. A certain Client Identifier Scheme may require the Client to sign the Authorization Request as means of authentication and/or pass additional parameters and require the Authorization Server to process them.</t>
      <section anchor="syntax">
        <name>Syntax</name>
        <t>In the <tt>client_id</tt> Authorization Request parameter and other places where the Client Identifier is used, the Client Identifier Schemes are prefixed to the usual Client Identifier, separated by a <tt>:</tt> (colon) character:</t>
        <artwork><![CDATA[
<client_id_scheme>:<orig_client_id>
]]></artwork>
        <t>Here, <tt>&lt;client_id_scheme&gt;</tt> is the Client Identifier Scheme and <tt>&lt;orig_client_id&gt;</tt> is an identifier for the Client within the namespace of that scheme. See <xref target="client_identifier_schemes"/> for Client Identifier Schemes defined by this specification.</t>
        <t>Authorization Servers <bcp14>MUST</bcp14> use the presence of a <tt>:</tt> (colon) character to determine whether a Client Identifier Scheme is used. If a <tt>:</tt> character is present, the Authorization Server <bcp14>MUST</bcp14> interpret the Client Identifier according to the Client Identifier Scheme, here defined as the string before the (first) <tt>:</tt> character. If the Authorization Server does not support the Client Identifier Scheme, the Authorization Server <bcp14>MUST</bcp14> refuse the request.</t>
        <t>For example, an Authorization Request might contain <tt>client_id=client_attestation:example-client</tt> to indicate that the <tt>client_attestation</tt> Client Identifier Scheme is to be used and that within this scheme, the Client can be identified by the string <tt>example-client</tt>. The presentation would contain the full <tt>client_attestation:example-client</tt> string as the audience (intended receiver) and the same full string would be used as the Client Identifier anywhere in the OAuth flow.</t>
        <t>Note that the Client needs to determine which Client Identifier Schemes the Authorization Server supports prior to sending the Authorization Request in order to choose a supported scheme.</t>
      </section>
      <section anchor="pre-registered-clients">
        <name>Pre-Registered Clients</name>
        <t>If a <tt>:</tt> character is not present in the Client Identifier, the Authorization Server <bcp14>MUST</bcp14> treat the Client Identifier as referencing a pre-registered client. This is equivalent to the <xref target="RFC6749"/> default behavior, i.e., the Client Identifier needs to be known to the Authorization Server in advance of the Authorization Request. The Client metadata is pre-registered using <xref target="RFC7591"/> or through out-of-band mechanisms.</t>
        <t>For example, if an Authorization Request contains <tt>client_id=example-client</tt>, the Authorization Server would interprete the Client Identifier as referring to a pre-registered client.</t>
        <t>From this definition, it follows that pre-registered clients <bcp14>MUST NOT</bcp14> contain a <tt>:</tt> character in their Client Identifier.</t>
      </section>
      <section anchor="https-scheme">
        <name>https scheme</name>
        <t>Deployments that use <tt>https</tt> URLs as client IDs and that have only one way to resolve client metadata from the URL, <bcp14>MAY</bcp14> use full https URL as the client ID. If there is only one way to resolve client metadata then there is no ambiguity in which metadata retrieval method to use, and are not susceptible to client identifier mixup attacks as described in <xref target="client-id-mixups"/>.</t>
        <t>For example, an authorization server using only the Client ID Metadata Document <xref target="I-D.draft-parecki-oauth-client-id-metadata-document"/> method to retrieve client metadata <bcp14>MAY</bcp14> accept client IDs such as:</t>
        <artwork><![CDATA[
https://client.example.com/metadata.json
]]></artwork>
        <t>This results in this non-normative example of an authorization request:</t>
        <artwork><![CDATA[
GET /authorize?
  response_type=code
  &client_id=https%3A%2F%2Fclient.example.org%2Fmetadata.json
  &redirect_uri=https%3A%2F%2Fclient.example.org%2Fcallback
  &code_challenge=GdE4nqBrwRxQfN2Y8fq3rrYk_kkpwg6tQ74J94-2nHw
  &code_challenge_method=S256
  &scope=write
]]></artwork>
      </section>
      <section anchor="client_identifier_schemes">
        <name>Defined Client Identifier Schemes</name>
        <t>This specification defines the following Client Identifier Schemes, followed by the examples where applicable:</t>
        <ul spacing="normal">
          <li>
            <t><tt>redirect_uri</tt>: This value indicates that the Client Identifier (without the prefix <tt>redirect_uri:</tt>) is the Client's Redirect URI (or Response URI when Response Mode <tt>direct_post</tt> is used). The Authorization Request <bcp14>MUST NOT</bcp14> be signed. The Client <bcp14>MAY</bcp14> omit the <tt>redirect_uri</tt> Authorization Request parameter. Example Client Identifier: <tt>redirect_uri:https%3A%2F%2Fclient.example.org%2Fcb</tt>.</t>
          </li>
          <li>
            <t><tt>openid_federation</tt>: This value indicates that the Client Identifier is an Entity Identifier defined in OpenID Federation <xref target="OpenID.Federation"/>. Processing rules given in <xref target="OpenID.Federation"/> <bcp14>MUST</bcp14> be followed. Automatic Registration as defined in <xref target="OpenID.Federation"/> <bcp14>MUST</bcp14> be used. The Authorization Request <bcp14>MAY</bcp14> also contain a <tt>trust_chain</tt> parameter. The final Client metadata is obtained from the Trust Chain after applying the policies, according to <xref target="OpenID.Federation"/>. Example Client Identifier: <tt>federation:https://federation-client.example.com</tt>.</t>
          </li>
          <li>
            <t><tt>decentralized-identifier</tt>: This value indicates that the Client Identifier is a DID defined in <xref target="DID-Core"/>. The request <bcp14>MUST</bcp14> be signed with a private key associated with the DID. A public key to verify the signature <bcp14>MUST</bcp14> be obtained from the <tt>verificationMethod</tt> property of a DID Document. Since DID Document may include multiple public keys, a particular public key used to sign the request in question <bcp14>MUST</bcp14> be identified by the <tt>kid</tt> in the JOSE Header. To obtain the DID Document, the Authorization Server <bcp14>MUST</bcp14> use DID Resolution defined by the DID method used by the Client. Example Client Identifier: <tt>did:example:123#1</tt>.</t>
          </li>
          <li>
            <t><tt>client_attestation</tt>: This Client Identifier Scheme allows the Client to authenticate using a JWT that is bound to a certain public key as defined in (OpenID4VP: Client Attestation). When the Client Identifier Scheme is <tt>client_attestation</tt>, the Client Identifier <bcp14>MUST</bcp14> equal the <tt>sub</tt> claim value in the Client attestation JWT. The request <bcp14>MUST</bcp14> be signed with the private key corresponding to the public key in the <tt>cnf</tt> claim in the Client attestation JWT. This serves as proof of possesion of this key. The Client attestation JWT <bcp14>MUST</bcp14> be added to the <tt>jwt</tt> JOSE Header of the request object (see (OpenID4VP: Client Attestation)). The Authorization Server <bcp14>MUST</bcp14> validate the signature on the Client attestation JWT. The <tt>iss</tt> claim value of the Client Attestation JWT <bcp14>MUST</bcp14> identify a party the Authorization Server trusts for issuing Client Attestation JWTs. If the Authorization Server cannot establish trust, it <bcp14>MUST</bcp14> refuse the request. If the issuer of the Client Attestation JWT adds a <tt>redirect_uris</tt> claim to the attestation, the Authorization Server <bcp14>MUST</bcp14> ensure the <tt>redirect_uri</tt> request parameter value exactly matches one of the <tt>redirect_uris</tt> claim entries. Example Client Identifier: <tt>client_attestation:client.example</tt>.</t>
          </li>
          <li>
            <t><tt>x509_san_dns</tt>: When the Client Identifier Scheme is <tt>x509_san_dns</tt>, the Client Identifier <bcp14>MUST</bcp14> be a DNS name and match a <tt>dNSName</tt> Subject Alternative Name (SAN) <xref target="RFC5280"/> entry in the leaf certificate passed with the request. The request <bcp14>MUST</bcp14> be signed with the private key corresponding to the public key in the leaf X.509 certificate of the certificate chain added to the request in the <tt>x5c</tt> JOSE header <xref target="RFC7515"/> of the signed request object. The Authorization Server <bcp14>MUST</bcp14> validate the signature and the trust chain of the X.509 certificate. If the Authorization Server can establish trust in the Client Identifier authenticated through the certificate, e.g. because the Client Identifier is contained in a list of trusted Client Identifiers, it may allow the client to freely choose the <tt>redirect_uri</tt> value. If not, the FQDN of the <tt>redirect_uri</tt> value <bcp14>MUST</bcp14> match the Client Identifier without the prefix <tt>x509_san_dns:</tt>. Example Client Identifier: <tt>x509_san_dns:client.example.org</tt>.</t>
          </li>
          <li>
            <t><tt>x509_san_uri</tt>: When the Client Identifier Scheme is <tt>x509_san_uri</tt>, the Client Identifier <bcp14>MUST</bcp14> be a URI and match a <tt>uniformResourceIdentifier</tt> Subject Alternative Name (SAN) <xref target="RFC5280"/> entry in the leaf certificate passed with the request. The request <bcp14>MUST</bcp14> be signed with the private key corresponding to the public key in the leaf X.509 certificate of the certificate chain added to the request in the <tt>x5c</tt> JOSE header <xref target="RFC7515"/> of the signed request object. The Authorization Server <bcp14>MUST</bcp14> validate the signature and the trust chain of the X.509 certificate. If the Authorization Server can establish trust in the Client Identifier authenticated through the certificate, e.g., because the Client Identifier is contained in a list of trusted Client Identifiers, it may allow the client to freely choose the <tt>redirect_uri</tt> value. If not, the <tt>redirect_uri</tt> value <bcp14>MUST</bcp14> match the Client Identifier without the prefix <tt>x509_san_uri:</tt>. Example Client Identifier: <tt>x509_san_uri:https://client.example.org/cb</tt>.</t>
          </li>
          <li>
            <t><tt>https</tt>: This Client Identifier Scheme <bcp14>MUST NOT</bcp14> be registered.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="example">
      <name>Example</name>
      <t>The following is a non-normative example of an authorization request with the <tt>redirect_uri</tt> Client ID Scheme:</t>
      <artwork><![CDATA[
GET /authorize?
  response_type=code
  &client_id=redirect_uri:https%3A%2F%2Fclient.example.org%2Fcb
  &redirect_uri=https%3A%2F%2Fclient.example.org%2Fcb
  &code_challenge=GdE4nqBrwRxQfN2Y8fq3rrYk_kkpwg6tQ74J94-2nHw
  &code_challenge_method=S256
  &scope=write
]]></artwork>
    </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 properties to indicate support for client ID schemes as described in this specification.</t>
      <dl>
        <dt><tt>client_id_schemes_supported</tt>:</dt>
        <dd>
          <t><bcp14>REQUIRED</bcp14>. A JSON array of strings indicating the clients ID schemes supported by this authorization server.</t>
        </dd>
      </dl>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="client-id-mixups">
        <name>Client Identifier Mixups</name>
        <t>Confusing Clients using a Client Identifier Scheme with those using none can lead to various mixup attacks. Therefore, Authorization Servers <bcp14>MUST</bcp14> always use the full Client Identifier, including the prefix if provided, within the context of the Authorization Server or its responses to identify the client. This refers in particular to places where the Client Identifier is used in <xref target="RFC6749"/> as well as in any artifacts such as the <tt>aud</tt> claim of JWT access tokens <xref target="RFC9068"/>.</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 (TBD) 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_schemes_supported</tt>:</t>
          </li>
          <li>
            <t>Metadata Description: A JSON array of strings indicating the client ID schemes supported by the authorization server.</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Specification Document: <xref target="as-metadata"/> of [[ this specification ]]</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="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="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC7515">
          <front>
            <title>JSON Web Signature (JWS)</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 Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7515"/>
          <seriesInfo name="DOI" value="10.17487/RFC7515"/>
        </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="DID-Core" target="https://www.w3.org/TR/did-core/">
          <front>
            <title>DID Core</title>
            <author>
              <organization/>
            </author>
            <date year="2022" month="July" day="19"/>
          </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="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="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="RFC9068">
          <front>
            <title>JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens</title>
            <author fullname="V. Bertocci" initials="V." surname="Bertocci"/>
            <date month="October" year="2021"/>
            <abstract>
              <t>This specification defines a profile for issuing OAuth 2.0 access tokens in JSON Web Token (JWT) format. Authorization servers and resource servers from different vendors can leverage this profile to issue and consume access tokens in an interoperable manner.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9068"/>
          <seriesInfo name="DOI" value="10.17487/RFC9068"/>
        </reference>
        <reference anchor="I-D.draft-parecki-oauth-client-id-metadata-document">
          <front>
            <title>OAuth Client ID Metadata Document</title>
            <author fullname="Aaron Parecki" initials="A." surname="Parecki">
              <organization>Okta</organization>
            </author>
            <author fullname="Emelia Smith" initials="E." surname="Smith">
         </author>
            <date day="9" month="January" year="2025"/>
            <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-parecki-oauth-client-id-metadata-document-02"/>
        </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>
      </references>
    </references>
    <?line 227?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank the following people for their contributions and
reviews of this specification:</t>
      <t>Brian Campbell, Emelia Smith.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
a8PT6zg1AGcPQ4vaoq04gb7BBudD6vNT0UvHRIHH58NzGByxYW79oZ+AUFJb
oOE3bHfYP39suzb4hg3SIzx64fGJ4BMCSBsaBd0UVVFEV5tE/wLIIQb+IwRh
1NhwyqsORTabqqJEJYiSqj8dRw40ZhY0XLeqe4zdqknh3yJew5GvRAjftyV3
cgy6bTaOdK+Hrrtna/eyFvziogW3Jq89JsJpCFqKuPftxuTNJb82EnIG+9Md
O7HQVIwagg3MhCgwV7tBoJWJFgL80LV0GzyY/JVkAYhkzf71T4PzRm91s60K
rM03H6OpjKz6V2+03dFrczcrrXU3t8XuF7o5LrrfzbGErXl4nkp8MIhJWq4j
US76t8//2+ebfX7v/4PT/wscnfpFD3T0osGy2Q3FF9lFY8X22O8rUar9ovI6
gFr5nh37WqbswVHZ/MUN1dLt1uRXNp0tS//jzuuXt6K+uvc6/j/ruj5qcX/f
27l7xE3Rj/+8/tzBuOcO9iYot268neAugRP+bODz58f+FYLtJ9RbtK4xIYWp
XZ/7VwBYERRdfndNtHmp0fhko7xe863j6+LeddQLesy/OMSOy7vhxTnjWnPq
kNhLabP+ZtTfelU4KW9y/cuRppsT6yD+9z/0Nlv63pWhlnhDqKTLmaITXrmv
CQIgMLG9AP/Cy3cG2h9pWX9C3LJzUywdEJkhSFHM8Q+Ia/dHFDs0vezYa3mJ
TcrlyZKvTPEWhu7SGm6jrQ0U3UH3MndSPB/bq772QewWn7LmO11ncFgwZqZw
dFN7dF3qzJXxdCVqH72VzSt88vXgt1nr7+jAEpcCzmpf2PEU4gYGKSjSiisp
i2I8j31JBuehWjKyz8zUDZSBlij+LIKu4+j9ef+832Qq9s3DdvdzreTVOhg3
XusVHV7XkbnnNRQlBrtXLwePKyHAx3NieucBLO64xZCtFamB670X7+jvwawS
YSiEFV+c088W7nH/yvwBQcnC/YrqS6BgCxKIFiD4BpvlANmo2UyDYjBc0w8J
v2HDmph9e7MHJ62iMyV7v/7apJnffnM/xqArPkT9CF9PJCKe0p16cNezP1cU
8YudCU+M2PlsTcQya9zzgkTeCJuG8vRmHbCFwtjtHulJTW4KSJwXz+UDLW6l
WLY83IWA/VJLwJ1XEBvH4Dt77GQuEsnZcA6+j8b/3yiQ89HsOQAA

-->

</rfc>
