<?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-01" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.15.2 -->
  <front>
    <title>OAuth 2.0 Client Discovery</title>
    <seriesInfo name="Internet-Draft" value="draft-looker-oauth-client-discovery-01"/>
    <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="November" day="08"/>
    <area>AREA</area>
    <workgroup>OAuth Working Group</workgroup>
    <keyword>oauth</keyword>
    <abstract>
      <t>This specification defines a mechanism for an authorization server to obtain the metadata of a client, including its endpoint locations and capabilities without the need for a registration process.</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 (AS) 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 identifier per authorization server and in some cases forced to re-register the same client instance multiple times due to local storage limitations. Furthermore, protecting the authorization servers registration endpoint forces other design tradeoffs, typically either the authorization server enforces some form of authentication (e.g 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 authorization server, the client can interact with the authorization server like any other client.</t>
      <t>This specification defines a new request parameter 'client_discovery' to indicate that the interacting 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 and <bcp14>MUST NOT</bcp14> be IPv4 or IPv6 addresses.</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"
    ],
    "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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
6VeCV/4fCOU2I0xIAAA=

-->

</rfc>
