<?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.20 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-parecki-oauth-client-id-scheme-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.24.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-00"/>
    <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="2024" month="November" day="06"/>
    <area>Security</area>
    <workgroup>Web Authorization Protocol</workgroup>
    <keyword>oauth</keyword>
    <abstract>
      <?line 85?>

<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 89?>

<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="pre-existing-ecosystems-using-https">
        <name>Pre-Existing Ecosystems using https</name>
        <t>Existing 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.</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>federation</tt>: This value indicates that the Client Identifier is an Entity Identifier defined in OpenID Federation <xref target="OpenID.Federation"/>. Since the Entity Identifier is already defined to start with <tt>federation:</tt>, this Client Identifier Scheme <bcp14>MUST NOT</bcp14> be prefixed additionally. 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>did</tt>: This value indicates that the Client Identifier is a DID defined in <xref target="DID-Core"/>. Since the DID URI is already defined to start with <tt>did:</tt>, this Client Identifier Scheme <bcp14>MUST NOT</bcp14> be prefixed additionally. 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="todo-server-metadata">
      <name>Todo: Server Metadata</name>
      <t>e.g., a <tt>client_id_schemes_supported</tt> parameter in the Server Metadata and a <tt>client_id_scheme_default</tt> parameter.</t>
    </section>
    <section anchor="todo-registry">
      <name>Todo: Registry</name>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="client-identifier-mixups">
        <name>Client Identifier Mixups</name>
        <t>Confusing Clients using a Client Identifier Scheme with those using none can lead to 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>
      <t>This document has no IANA actions.</t>
    </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="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="8" month="July" year="2024"/>
            <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-01"/>
        </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 218?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
/ukw2OE2AAA=

-->

</rfc>
