<?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.17 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-parecki-oauth-client-id-metadata-document-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.22.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-01"/>
    <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="2024" month="July" day="08"/>
    <area>Security</area>
    <workgroup>Web Authorization Protocol</workgroup>
    <keyword>oauth</keyword>
    <abstract>
      <?line 94?>

<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://aaronpk.github.io/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 103?>

<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
component. Client identifier URLs <bcp14>MAY</bcp14> contain 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> compare and 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>The <tt>token_endpoint_auth_method</tt> property <bcp14>MUST NOT</bcp14> include <tt>client_secret_post</tt>
or <tt>client_secret_basic</tt>, as there is no way to establish a shared secret to be
used with these authentication methods. 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>
      </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>TBD: recommend a cache lifetime? considerations about stale data?</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>
        <t>TBD: Do we want to define an endpoint through which a document can be validated
by an authorization server, such that a developer can assert that their document
is valid?</t>
      </section>
      <section anchor="redirect-url-registration">
        <name>Redirect URL Registration</name>
        <t>According to <xref target="I-D.draft-ietf-oauth-security-topics"/>, 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="I-D.draft-ietf-oauth-security-topics"/> the additional considerations apply.</t>
      <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 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>
      </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>
    <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-01]</t>
          </li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <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="I-D.draft-ietf-oauth-security-topics">
          <front>
            <title>OAuth 2.0 Security Best Current Practice</title>
            <author fullname="Torsten Lodderstedt" initials="T." surname="Lodderstedt">
              <organization>SPRIND</organization>
            </author>
            <author fullname="John Bradley" initials="J." surname="Bradley">
              <organization>Yubico</organization>
            </author>
            <author fullname="Andrey Labunets" initials="A." surname="Labunets">
              <organization>Independent Researcher</organization>
            </author>
            <author fullname="Daniel Fett" initials="D." surname="Fett">
              <organization>Authlete</organization>
            </author>
            <date day="3" month="June" year="2024"/>
            <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
   RFC 6749, RFC 6750, and RFC 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="Internet-Draft" value="draft-ietf-oauth-security-topics-29"/>
        </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>
      </references>
    </references>
    <?line 292?>

<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.</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>-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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
bj1E0b8BKrdTBSszAAA=

-->

</rfc>
