<?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.6.17 (Ruby 3.1.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-looker-oauth-client-discovery-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.15.1 -->
  <front>
    <title>OAuth 2.0 Client Discovery</title>
    <seriesInfo name="Internet-Draft" value="draft-looker-oauth-client-discovery-00"/>
    <author fullname="Tobias Looker">
      <organization>MATTR</organization>
      <address>
        <email>tobias.looker@mattr.global</email>
      </address>
    </author>
    <author fullname="Karthik Sivasamy">
      <organization>MATTR</organization>
      <address>
        <email>karthik.sivasamy@mattr.global</email>
      </address>
    </author>
    <date year="2022" month="October" day="24"/>
    <area>AREA</area>
    <workgroup>OAuth Working Group</workgroup>
    <keyword>oauth</keyword>
    <abstract>
      <t>This specification defines a mechanism for an OAuth 2.0 authorization server to obtain the metadata of an OAuth 2.0 client, including its endpoint locations and capabilities without the need for registration of the client.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/mattrglobal/draft-looker-oauth-client-discovery"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>In the traditional OAuth 2.0 model <xref target="RFC6749"/>, the authorization server registers and assigns an identifier to a client through a registration process, during which the authorization server records certain characteristics about the client commonly known as its metadata.</t>
      <t>This requirement for registration greatly reduces how dynamic the relationship between a client and authorization server can be. For instance, a client that is updating the capabilities it supports must update its registration(s) with affected authorization servers for this change to be recognized. This requirement also affects deployments that feature many clients and authorization servers whereby requiring the client to be registered with and maintain this registration with an authorization server is costly.</t>
      <t>To enable a more dynamic relationship between a client and an authorization server, dynamic client registration via <xref target="RFC7591"/> was introduced. This model allows a client to register dynamically with a supporting authorization server by sending a registration request. Although this mechanism does provide some benefits it also introduces new operational challenges for both the client and AS. For instance clients that interface with many authorization servers are burdened with having to manage a client_id per authorization server and in some cases forced to re-register the same client instance multiple times due to storage limitations on the client. Furthermore, protecting the authorization servers registration endpoint forces other design tradeoffs, either the authorization server requires a "registration_token" for registration requests, which is often problematic for public clients to manage/obtain. Or the authorization server permits any registration request and has to mitigate potential spam/malicious registration requests via some other mechanism.</t>
      <t>Instead of requiring a registration process, this specification describes a model where a client identifies itself to the authorization server with its client_uri, which can be resolved to its metadata in a similar way to how an authorization server makes its metadata available to a client via <xref target="RFC8414"/>.</t>
      <t>The metadata for a client is retrieved from a .well-known location as a JSON <xref target="RFC8259"/> document, which declares its endpoint locations and client capabilities, this process is described in <xref target="obtaining-client-metadata">Obtaining Client Metadata</xref>. Once the client metadata is retrieved and processed by the OAuth 2.0 authorization server, the client can interact with the authorization server like any other OAuth 2.0 client.</t>
      <t>This specification defines a new request parameter 'client_discovery' to indicate that the interacting OAuth 2.0 client has no prior registration with the authorization server and instead has resolvable metadata that describes its endpoint locations and capabilities.</t>
      <t>This specification uses the metadata elements defined in the client registration specification <xref target="RFC7591"/> and no additional metadata fields or formats are defined in this specification.</t>
      <section anchor="conventions-and-terminology">
        <name>Conventions and Terminology</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>
        <t>This specification uses the terms "access token", "refresh token", "authorization server", "resource server", "authorization endpoint", "authorization request", "authorization response", "token endpoint", "grant type", "access token request", "access token response", "client", "public client", and "confidential client" defined by The OAuth 2.0 Authorization Framework <xref target="RFC6749"/>.</t>
        <t>The terms "request", "response", "header field", and "target URI" are imported from <xref target="RFC9110"/>.</t>
      </section>
    </section>
    <section anchor="client-metadata">
      <name>Client Metadata</name>
      <t>Clients can have metadata described in their configuration. Examples of existing registered metadata fields that a client can make use of can be found at the <eref target="https://www.rfc-editor.org/rfc/rfc7591.html#section-4.1"> OAuth 2.0 dynamic client registration metadata IANA registry [RFC 7591]</eref>.</t>
      <t>The client's published metadata <bcp14>MUST</bcp14> include the client_uri field as defined in section 2 of RFC7591 <xref target="RFC7591"/>. The value of this field <bcp14>MUST</bcp14> be a URI as defined in RFC3986 <xref target="RFC3986"/> with a scheme component that <bcp14>MUST</bcp14> be https, a host component, and optionally, port and path components and no query or fragment components. Additionally, host names <bcp14>MUST</bcp14> be domain names or a loopback interface and <bcp14>MUST NOT</bcp14> be IPv4 or IPv6 addresses except for IPv4 127.0.0.1 or IPv6 (::1).</t>
    </section>
    <section anchor="obtaining-client-metadata">
      <name>Obtaining Client Metadata</name>
      <t>A Client supporting metadata discovery <bcp14>MUST</bcp14> make a JSON document containing metadata as specified in RFC7591 <xref target="RFC7591"/> available at a path formed by inserting a well-known URI string into the client_uri between the host component and the path component, if any.  By default, the well-known URI string used is "/.well-known/oauth-client". This path <bcp14>MUST</bcp14> use the "https" scheme. The syntax and semantics of ".well-known" are defined in RFC 5785 <xref target="RFC5785"/>. The well-known URI suffix used <bcp14>MUST</bcp14> be registered in the IANA <eref target="https://www.iana.org/assignments/well-known-uris">"Well-Known URIs"</eref> registry.</t>
      <t>Different clients utilizing OAuth 2.0 in application-specific ways may define and register different well-known URI suffixes used to publish client metadata as used by those applications, for example using a well-known URI string such as "/.well-known/example-configuration". Alternatively, many such clients will use the default well-known URI string "/.well-known/oauth-client", which is the right choice for general-purpose OAuth 2.0 applications.</t>
      <t>An OAuth 2.0 client using this specification <bcp14>MUST</bcp14> specify what well-known URI suffix it will use for this purpose. The same client <bcp14>MAY</bcp14> choose to publish its metadata at multiple well-known locations derived from its client_uri, for example, publishing metadata at both "/.well-known/example-configuration" and
"/.well-known/oauth-client".</t>
      <t>Some OAuth 2.0 applications will choose to use the well-known URI suffix "openid-federation", as described in <xref target="compatibility-notes">Compatibility Notes</xref>.</t>
      <section anchor="client-metadata-request">
        <name>Client Metadata Request</name>
        <t>A client metadata document <bcp14>MUST</bcp14> be queried using an HTTP "GET" request at the previously specified path. The OAuth 2.0 authorization server would make the following request when the client_uri is "https://client.example.com" and the well-known URI suffix is "oauth-client" to obtain the metadata, since the client_uri contains no path component:</t>
        <sourcecode type="http"><![CDATA[
GET /.well-known/oauth-client HTTP/1.1
Host: client.example.com
]]></sourcecode>
        <t>If the client_uri value contains a path component, any terminating "/" <bcp14>MUST</bcp14> be removed before inserting "/.well-known/" and the well-known URI suffix between the host component and the path component. The OAuth 2.0 authorization server would make the following request when the client_uri is "https://client.example.com/client1" and the well-known URI suffix is "oauth-client" to obtain the metadata, since the client_uri contains a path component:</t>
        <sourcecode type="http"><![CDATA[
GET /.well-known/oauth-client/client1 HTTP/1.1
Host: client.example.com
]]></sourcecode>
        <t>Using path components enables supporting multiple clients per host. This is required in some complex client configurations. This use of ".well-known" is for supporting multiple clients per host; unlike its use in RFC 5785 <xref target="RFC5785"/>, it does not provide general information about the host.</t>
      </section>
      <section anchor="client-metadata-response">
        <name>Client Metadata Response</name>
        <t>The response is a set of metadata values describing client's configuration, including all valid redirection URIs and features supported by the client. A successful response <bcp14>MUST</bcp14> use the 200 OK HTTP status code and return a JSON object using the "application/json" content type that contains a set of metadata fields and values as defined in <xref target="client-metadata">Client Metadata</xref>. Other metadata fields <bcp14>MAY</bcp14> also be returned.</t>
        <t>Metadata fields that return multiple values are represented as JSON arrays. Metadata fields with no values <bcp14>MUST</bcp14> be omitted from the response.</t>
        <t>An error response uses the applicable HTTP status code value.</t>
        <t>The following is a non-normative example response:</t>
        <sourcecode type="http"><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json

{
    "client_uri": "https://client.example.com",
    "client_name": "My Example Client",
    "redirect_uris": [
    "https://client.example.com/cb",
    "https://client.example.com/cb2"],
    "token_endpoint_auth_method": "client_secret_basic",
    "logo_uri": "https://client.example.com/logo.png",
    "jwks_uri": "https://client.example.com/my_public_keys.jwks",
    "example_extension_parameter": "example_value"
}
]]></sourcecode>
      </section>
      <section anchor="client-metadata-validation">
        <name>Client Metadata Validation</name>
        <t>The client_uri value returned in the client metadata response <bcp14>MUST</bcp14> be identical to the client_uri value into which the well-known URI string was inserted to create the URL used to retrieve the metadata. If these values are not identical, the data contained in the response <bcp14>MUST NOT</bcp14> be used.</t>
        <t>The following sections describe the mechanism through which a client communicates its metadata discovery url.</t>
      </section>
    </section>
    <section anchor="authorization-request-using-client-discovery">
      <name>Authorization Request Using Client Discovery</name>
      <t>A client can indicate to an authorization server that it has discoverable metadata in an authorization request via the "client_discovery" request parameter. Presence of this parameter in an authorization request with a value of "true" indicates to the authorization server that the "client_id" value of the authorization request is a URL encoded value corresponding to the "client_uri" for the client and if the authorization server does not already have the metadata for the identified client it can retrieve the metadata by following the procedure outlined in <xref target="client-metadata">Client Metadata Section</xref>.</t>
      <t>The following is a non-normative example request of a client making an authorization request to an authorization server with the "client_discovery" parameter:</t>
      <sourcecode type="http"><![CDATA[
GET /authorize?response_type=code
    &client_id=https%3A%2F%2Fclient.example.com
    &client_discovery=true
    &state=af0ifjsldkj
    &redirect_uri=https%3A%2F%2Fclient.example.com%2Fcb
HOST: server.example.com
]]></sourcecode>
      <t>The value of the "client_id" parameter in the authorization request <bcp14>MUST</bcp14> represent the URL encoded form of the "client_uri" value for the corresponding client. The "client_id" value <bcp14>MUST</bcp14> be URL decoded by the authorization server to obtain the "client_uri" value which can be used to resolve the client metadata as described in the <xref target="obtaining-client-metadata">Obtaining Client Metadata</xref> section.</t>
      <t><strong>TODO stipulate new error responses</strong></t>
    </section>
    <section anchor="token-request-using-client-discovery">
      <name>Token Request Using Client Discovery</name>
      <t>A client can indicate to an authorization server that it has discoverable metadata in an token request via the "client_discovery" request parameter. Presence of this parameter in a token request with a value of "true" indicates to the authorization server that the "client_id" value of the token request represents then "client_uri" for the client and if the authorization server does not already have the metadata for the identified client it can retrieve the metadata by following the procedure outlined in <xref target="client-metadata">Client Metadata Section</xref>.</t>
      <t>The following is a non-normative example request of a client making an token request using "client_discovery" parameter:</t>
      <sourcecode type="http"><![CDATA[
POST /token
Host: server.example.com
Content-type: application/x-www-form-urlencoded
Accept: application/json

grant_type=authorization_code
&code=xxxxxxxx
&client_id=https://client.example.com/
&redirect_uri=https://client.example.com/redirect
&code_verifier=a6128783714cfda1d388e2e98b6ae8221ac31aca31959e59512c59f5
&client_discovery=true
]]></sourcecode>
      <t>The "client_id" parameter is passed to the token request during client authentication (<eref target="https://www.rfc-editor.org/rfc/rfc6749#section-3.2.1">as described in the Section 3.2.1 of [RFC6749]</eref>). Clients in possession of a client password <bcp14>MAY</bcp14> use the HTTP Basic authentication scheme as defined in RFC 2617 <xref target="RFC2617"/> or <bcp14>MAY</bcp14> include the client credentials in the request-body to authenticate with the authorization server.</t>
      <t>In case of any errors, error response is returned (<eref target="https://www.rfc-editor.org/rfc/rfc6749#section-5.2">as described in the Section 5.2 of [RFC6749]</eref>). TODO expand</t>
    </section>
    <section anchor="string-operations">
      <name>String Operations</name>
      <t>Processing some OAuth 2.0 messages requires comparing values in the messages to known values.  For example, the member names in the metadata response might be compared to specific member names such as "client_uri". Comparing Unicode [UNICODE] strings, however, has significant security implications.</t>
      <t>Therefore, comparisons between JSON strings and other Unicode strings <bcp14>MUST</bcp14> be performed as specified below:</t>
      <ol spacing="normal" type="1"><li>Remove any JSON-applied escaping to produce an array of Unicode
code points.</li>
        <li>Unicode Normalization [USA15] <bcp14>MUST NOT</bcp14> be applied at any point to
either the JSON string or the string it is to be compared
against.</li>
        <li>Comparisons between the two strings <bcp14>MUST</bcp14> be performed as a
Unicode code-point-to-code-point equality comparison.</li>
      </ol>
      <t>Note that this is the same equality comparison procedure described in (<eref target="https://www.rfc-editor.org/rfc/rfc8259#section-8.3"> Section 8.3 of [RFC8259]</eref>).</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="tls-requirements">
        <name>TLS Requirements</name>
        <t>Implementations <bcp14>MUST</bcp14> support TLS.  Which version(s) ought to be implemented will vary over time and depend on the widespread
deployment and known security vulnerabilities at the time of implementation.  The client <bcp14>MUST</bcp14> support TLS version 1.2 <xref target="RFC5246"/> and <bcp14>MAY</bcp14> support additional TLS mechanisms meeting its security requirements.  When using TLS, the authorization server <bcp14>MUST</bcp14> perform a TLS/SSL server certificate check, per RFC 6125 <xref target="RFC6125"/>.
Implementation security considerations can be found in "Recommendations for Secure Use of Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)" <xref target="BCP195"/>.</t>
        <t>To protect against information disclosure and tampering, confidentiality protection <bcp14>MUST</bcp14> be applied using TLS with a ciphersuite that provides confidentiality and integrity protection.</t>
      </section>
      <section anchor="impersonation-attacks">
        <name>Impersonation Attacks</name>
        <t>TLS certificate checking <bcp14>MUST</bcp14> be performed by the authorization server, as described in <xref target="tls-requirements"/>, when making a client metadata request. Checking that the server certificate is valid for the "client_uri" URL prevents man-in-middle and DNS-based attacks. These attacks could cause a authorization server to be tricked into using an attacker's keys and endpoints, which would enable impersonation of the legitimate client.  If an attacker can accomplish this, they can access the resources that the affected client has access to by impersonating their profile.</t>
        <t>An attacker may also attempt to impersonate a client by publishing a metadata document that contains a "client_uri" claim using the "client_uri" URL of the client being impersonated, but with its own endpoints and signing keys. This would enable it to impersonate that client, if accepted
by the authorization server.  To prevent this, the authorization server <bcp14>MUST</bcp14> ensure that the "client_uri" URL it is using as the prefix for the metadata request exactly matches the value of the "client_uri" metadata value in the client's metadata document received by the authorization server.</t>
      </section>
    </section>
    <section anchor="compatibility-notes">
      <name>Compatibility Notes</name>
      <t><strong>TODO</strong></t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>The following IANA registration requests are made by this document.</t>
      <section anchor="oauth-parameters-registry">
        <name>OAuth Parameters Registry</name>
        <t>This specification registers the following parameters in the IANA "OAuth Parameters" registry defined in OAuth 2.0 RFC 6749 <xref target="RFC6749"/></t>
        <t>client_discovery - Authorization request</t>
        <ul spacing="normal">
          <li>Parameter name: client_discovery</li>
          <li>Parameter usage location: authorization request</li>
          <li>Change controller: IESG</li>
          <li>Specification document(s): RFC XXXX (this document)</li>
        </ul>
        <t>client_discovery - Token request</t>
        <ul spacing="normal">
          <li>Parameter name: client_discovery</li>
          <li>Parameter usage location: token request</li>
          <li>Change controller: IESG</li>
          <li>Specification document(s): RFC XXXX (this document)</li>
        </ul>
      </section>
      <section anchor="well-known-uri-registry">
        <name>Well-Known URI Registry</name>
        <t>This specification registers the well-known URI defined in <xref target="obtaining-client-metadata">Obtaining Client Metadata</xref> in the (<eref target="https://www.iana.org/assignments/well-known-uris/well-known-uris.xhtml">IANA "Well-Known URIs" registry</eref>) established by RFC 5785 <xref target="RFC5785"/></t>
        <section anchor="registry-contents">
          <name>Registry Contents</name>
          <ul spacing="normal">
            <li>URI suffix: oauth-client</li>
            <li>Change controller: IESG</li>
            <li>Specification document: <xref target="obtaining-client-metadata"/> of RFC 8414</li>
            <li>Related information: (none)</li>
          </ul>
          <t>&lt;&lt; TODO - IANA registration - https://www.iana.org/assignments/well-known-uris/well-known-uris.xhtml &gt;&gt;</t>
        </section>
      </section>
    </section>
  </middle>
  <back>
    <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">
            <organization/>
          </author>
          <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="RFC7591">
        <front>
          <title>OAuth 2.0 Dynamic Client Registration Protocol</title>
          <author fullname="J. Richer" initials="J." role="editor" surname="Richer">
            <organization/>
          </author>
          <author fullname="M. Jones" initials="M." surname="Jones">
            <organization/>
          </author>
          <author fullname="J. Bradley" initials="J." surname="Bradley">
            <organization/>
          </author>
          <author fullname="M. Machulak" initials="M." surname="Machulak">
            <organization/>
          </author>
          <author fullname="P. Hunt" initials="P." surname="Hunt">
            <organization/>
          </author>
          <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">
            <organization/>
          </author>
          <author fullname="N. Sakimura" initials="N." surname="Sakimura">
            <organization/>
          </author>
          <author fullname="J. Bradley" initials="J." surname="Bradley">
            <organization/>
          </author>
          <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="RFC8259">
        <front>
          <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
          <author fullname="T. Bray" initials="T." role="editor" surname="Bray">
            <organization/>
          </author>
          <date month="December" year="2017"/>
          <abstract>
            <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format.  It was derived from the ECMAScript Programming Language Standard.  JSON defines a small set of formatting rules for the portable representation of structured data.</t>
            <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="90"/>
        <seriesInfo name="RFC" value="8259"/>
        <seriesInfo name="DOI" value="10.17487/RFC8259"/>
      </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">
            <organization/>
          </author>
          <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">
            <organization/>
          </author>
          <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>
      <reference anchor="RFC9110">
        <front>
          <title>HTTP Semantics</title>
          <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding">
            <organization/>
          </author>
          <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham">
            <organization/>
          </author>
          <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke">
            <organization/>
          </author>
          <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 describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes. </t>
            <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="97"/>
        <seriesInfo name="RFC" value="9110"/>
        <seriesInfo name="DOI" value="10.17487/RFC9110"/>
      </reference>
      <reference anchor="RFC3986">
        <front>
          <title>Uniform Resource Identifier (URI): Generic Syntax</title>
          <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee">
            <organization/>
          </author>
          <author fullname="R. Fielding" initials="R." surname="Fielding">
            <organization/>
          </author>
          <author fullname="L. Masinter" initials="L." surname="Masinter">
            <organization/>
          </author>
          <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="RFC5785">
        <front>
          <title>Defining Well-Known Uniform Resource Identifiers (URIs)</title>
          <author fullname="M. Nottingham" initials="M." surname="Nottingham">
            <organization/>
          </author>
          <author fullname="E. Hammer-Lahav" initials="E." surname="Hammer-Lahav">
            <organization/>
          </author>
          <date month="April" year="2010"/>
          <abstract>
            <t>This memo defines a path prefix for "well-known locations", "/.well-known/", in selected Uniform Resource Identifier (URI) schemes.   [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5785"/>
        <seriesInfo name="DOI" value="10.17487/RFC5785"/>
      </reference>
      <reference anchor="RFC2617">
        <front>
          <title>HTTP Authentication: Basic and Digest Access Authentication</title>
          <author fullname="J. Franks" initials="J." surname="Franks">
            <organization/>
          </author>
          <author fullname="P. Hallam-Baker" initials="P." surname="Hallam-Baker">
            <organization/>
          </author>
          <author fullname="J. Hostetler" initials="J." surname="Hostetler">
            <organization/>
          </author>
          <author fullname="S. Lawrence" initials="S." surname="Lawrence">
            <organization/>
          </author>
          <author fullname="P. Leach" initials="P." surname="Leach">
            <organization/>
          </author>
          <author fullname="A. Luotonen" initials="A." surname="Luotonen">
            <organization/>
          </author>
          <author fullname="L. Stewart" initials="L." surname="Stewart">
            <organization/>
          </author>
          <date month="June" year="1999"/>
          <abstract>
            <t>This document provides the specification for HTTP's authentication framework, the original Basic authentication scheme and a scheme based on cryptographic hashes, referred to as "Digest Access Authentication". [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="2617"/>
        <seriesInfo name="DOI" value="10.17487/RFC2617"/>
      </reference>
      <reference anchor="RFC5246">
        <front>
          <title>The Transport Layer Security (TLS) Protocol Version 1.2</title>
          <author fullname="T. Dierks" initials="T." surname="Dierks">
            <organization/>
          </author>
          <author fullname="E. Rescorla" initials="E." surname="Rescorla">
            <organization/>
          </author>
          <date month="August" year="2008"/>
          <abstract>
            <t>This document specifies Version 1.2 of the Transport Layer Security (TLS) protocol.  The TLS protocol provides communications security over the Internet.  The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery.  [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5246"/>
        <seriesInfo name="DOI" value="10.17487/RFC5246"/>
      </reference>
      <reference anchor="RFC6125">
        <front>
          <title>Representation and Verification of Domain-Based Application Service Identity within Internet Public Key Infrastructure Using X.509 (PKIX) Certificates in the Context of Transport Layer Security (TLS)</title>
          <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre">
            <organization/>
          </author>
          <author fullname="J. Hodges" initials="J." surname="Hodges">
            <organization/>
          </author>
          <date month="March" year="2011"/>
          <abstract>
            <t>Many application technologies enable secure communication between two entities by means of Internet Public Key Infrastructure Using X.509 (PKIX) certificates in the context of Transport Layer Security (TLS). This document specifies procedures for representing and verifying the identity of application services in such interactions.   [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6125"/>
        <seriesInfo name="DOI" value="10.17487/RFC6125"/>
      </reference>
      <referencegroup anchor="BCP195" target="https://www.rfc-editor.org/info/bcp195">
        <reference anchor="RFC7525" target="https://www.rfc-editor.org/info/rfc7525">
          <front>
            <title>Recommendations for Secure Use of Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="R. Holz" initials="R." surname="Holz"/>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) are widely used to protect data exchanged over application protocols such as HTTP, SMTP, IMAP, POP, SIP, and XMPP.  Over the last few years, several serious attacks on TLS have emerged, including attacks on its most commonly used cipher suites and their modes of operation.  This document provides recommendations for improving the security of deployed services that use TLS and DTLS.  The recommendations are applicable to the majority of use cases.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="195"/>
          <seriesInfo name="RFC" value="7525"/>
          <seriesInfo name="DOI" value="10.17487/RFC7525"/>
        </reference>
        <reference anchor="RFC8996" target="https://www.rfc-editor.org/info/rfc8996">
          <front>
            <title>Deprecating TLS 1.0 and TLS 1.1</title>
            <author fullname="K. Moriarty" initials="K." surname="Moriarty"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <date month="March" year="2021"/>
            <abstract>
              <t>This document formally deprecates Transport Layer Security (TLS) versions 1.0 (RFC 2246) and 1.1 (RFC 4346). Accordingly, those documents have been moved to Historic status. These versions lack support for current and recommended cryptographic algorithms and mechanisms, and various government and industry profiles of applications using TLS now mandate avoiding these old TLS versions. TLS version 1.2 became the recommended version for IETF protocols in 2008 (subsequently being obsoleted by TLS version 1.3 in 2018), providing sufficient time to transition away from older versions. Removing support for older versions from implementations reduces the attack surface, reduces opportunity for misconfiguration, and streamlines library and product maintenance.</t>
              <t>This document also deprecates Datagram TLS (DTLS) version 1.0 (RFC 4347) but not DTLS version 1.2, and there is no DTLS version 1.1.</t>
              <t>This document updates many RFCs that normatively refer to TLS version 1.0 or TLS version 1.1, as described herein. This document also updates the best practices for TLS usage in RFC 7525; hence, it is part of BCP 195.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="195"/>
          <seriesInfo name="RFC" value="8996"/>
          <seriesInfo name="DOI" value="10.17487/RFC8996"/>
        </reference>
      </referencegroup>
    </references>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
M3C1KgZOElrSrwSv/D+HxaYevkgAAA==

-->

</rfc>
