<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.2.6 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC5988 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5988.xml">
<!ENTITY RFC6749 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6749.xml">
<!ENTITY RFC6750 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6750.xml">
<!ENTITY RFC7519 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7519.xml">
<!ENTITY RFC7662 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7662.xml">
<!ENTITY RFC8288 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8288.xml">
]>


<rfc ipr="trust200902" docName="draft-ietf-oauth-distributed-00" category="std">

  <front>
    <title>Distributed OAuth</title>

    <author initials="D." surname="Hardt" fullname="Dick Hardt">
      <organization>Amazon</organization>
      <address>
        <email>dick.hardt@gmail.com</email>
      </address>
    </author>
    <author initials="B." surname="Campbell" fullname="Brian Campbell">
      <organization>Ping Identity</organization>
      <address>
        <email>brian.d.campbell@gmail.com</email>
      </address>
    </author>
    <author initials="N." surname="Sakimura" fullname="Nat Sakimura">
      <organization>NRI</organization>
      <address>
        <email>n-sakimura@nri.co.jp</email>
      </address>
    </author>

    <date year="2018" month="October" day="19"/>

    <area>Security</area>
    <workgroup>OAuth Working Group</workgroup>
    

    <abstract>


<t>The Distributed OAuth profile enables an OAuth client to discover what authorization server or servers may be used to obtain access tokens for a given resource, and what parameter values to provide in the access token request.</t>



    </abstract>


  </front>

  <middle>


<section anchor="introduction" title="Introduction">

<t>In <xref target="RFC6749"/>, there is a single resource server and authorization server. In more complex and distributed systems, a clients may access many different resource servers, which have different authorization servers managing access. For example, a client may be accessing two different resources that provides similar functionality, but each is in a different geopolitical region, which requires authorization from authorization servers located in each geopolitical region.</t>

<t>A priori knowledge by the client of the relationships between resource servers and authorizations servers is not practical as the number of resource servers and authorization servers scales up. The client needs to discover on-demand which authorization server to request authorization for a given resource, and what parameters to pass. Being able to discover how to access a protected resource also enables more flexible software development as changes to the scopes, realms and authorization servers can happen dynamically with no change to client code.</t>

<section anchor="notational-conventions" title="Notational Conventions">

<t>In this document, the key words “MUST”, “MUST NOT”, “REQUIRED”,
“SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”,
and “OPTIONAL” are to be interpreted as described in BCP 14,
<xref target="RFC2119"/>.</t>

</section>
<section anchor="terminology" title="Terminology">

<t>Issuer: the party issuing the access token, also known as the authorization server.</t>

<t>All other terms are as defined in <xref target="RFC6749"/> and <xref target="RFC6750"/></t>

</section>
<section anchor="protocol-overview" title="Protocol Overview">

<t>Figure 1 shows an abstract flow of distributed OAuth.</t>

<figure><artwork><![CDATA[
 +--------+                               +---------------+
 |        |--(A)-- Discovery Request ---->|   Resource    |
 |        |                               |    Server     |
 |        |<-(B)-- Discovery Response ----|               |
 |        |                               +---------------+
 |        |
 |        |  (client obtains authorization grant)
 |        |
 |        |                               +---------------+
 |        |--(C)- Authorization Request ->| Authorization |
 | Client |                               |     Server    |
 |        |<-(D)----- Access Token -------|               |
 |        |                               +---------------+
 |        |
 |        |                               +---------------+
 |        |--(E)----- Access Token ------>|    Resource   |
 |        |                               |     Server    |
 |        |<-(F)--- Protected Resource ---|               |
 +--------+                               +---------------+

            Figure 1: Abstract Protocol Flow
]]></artwork></figure>

<t>There are three steps where there are changes from the OAuth flow:</t>

<t>1) A discovery request (A) and discovery response (B) where the client discovers what is required to make an authenticated request. The client makes a request to the protected resource without supplying the Authorization header, or supplying an invalid access token. The resource server responds with a HTTP 401 response code and links of relation types “resource_uri” and the “oauth_server_metadata_uri”. The client confirms the “host” value from the TLS connection is contained in the resource URI, and fetches each OAuth Server Metadata URI and per <xref target="OASM"/> discovers one or more authorization server end point URIs.</t>

<t>The client then obtains an authorization grant per one of the grant types in <xref target="RFC6749"/> section 4.</t>

<t>2) An authorization request (C) to an authorization server and includes the “resource_uri” link. The authorization servers provides an access token that is associated to the “resource_uri” value.</t>

<t>3) An authenticated request (E) to the resource server that confirms the “resource_uri” linked to the access token matches expected value.</t>

</section>
</section>
<section anchor="authorization-server-discovery" title="Authorization Server Discovery">

<t>Figure 1, step (A)</t>

<t>To access a protected resource, the client needs to learn the authorization servers or issuers that can issue access tokens that are acceptable to the protected resource. There may be one or more issuers that can issue access tokens for the protected resource. To discover the issuers, the client attempts to make a call to the protected resource URI as defined in <xref target="RFC6750"/> section 2.1, except with an invalid access token or no HTTP “Authorization” request header field. The client notes the hostname of the protected resource that was confirmed by the TLS connection, and saves it as the “host” attribute.</t>

<t>Figure 1, step (B)</t>

<t>The resource server responds with the “WWW-Authenticate” HTTP header that includes the “error” attribute with a value of “invalid_token” and MAY also include the “scope” and “realm” attribute per <xref target="RFC6750"/> section 3, and a “Link” HTTP Header per <xref target="RFC8288"/> that MUST include one link of relation type “resource_uri” and one or more links of type “oauth_server_metadata_uri”.</t>

<t>For example (with extra spaces and line breaks for display purposes only):</t>

<figure><artwork><![CDATA[
    HTTP/1.1 401 Unauthorized
    WWW-Authenticate: Bearer realm="example_realm",
                             scope="example_scope",
                             error="invalid_token"
    Link: <https://api.example.com/resource">; rel="resource_uri",
          <https://as.example.com/.well-known/oauth-authorization-server>; rel="oauth_server_metadata_uri"
]]></artwork></figure>

<t>The client MUST confirm the host portion of the resource URI, as specified in the “resource_uri” link, contains the “host” attribute obtained from the TLS connection in step (A). The client MUST confirm the resource URI is contained in the protected resource URI where access was attempted. The client then retrieves one or more of the OAuth Server Metadata URIs to learn how to interact with the associated authorization server per <xref target="OASM"/> and create a list of one or more authorization server token endpoint URLs.</t>

</section>
<section anchor="authorization-grant" title="Authorization Grant">

<t>The client obtains an authorization grant per any of the mechanisms in <xref target="RFC6749"/> section 4.</t>

</section>
<section anchor="access-token-request" title="Access Token Request">

<t>Figure 1, step (C)</t>

<t>The client makes an access token request to the authorization server token endpoint URL, or if more than URL is available, a randomly selected URL from the list. If the client is unable to connect to the URL, then the client MAY try to connect to another URL from the list.</t>

<t>The client SHOULD authenticate to the issuer using a proof of possession mechanism such as mutual TLS or a signed token containing the issuer as the audience.</t>

<t>Depending on the authorization grant mechanism used per <xref target="RFC6749"/> section 4, the client makes the access token request and MUST include “resource” as an additional parameter with the value of the resource URI. For example, if using the <xref target="RFC6749"/> section 4.4, Client Credentials Grant, the request would be (with extra spaces and line breaks for display purposes only):</t>

<figure><artwork><![CDATA[
POST /token HTTP/1.1
Host: issuer.example.com
Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials
&scope=example_scope
&resource=https%3A%2F%2Fapi.example.com%2Fresource
]]></artwork></figure>

<t>Figure 1, step (D)</t>

<t>The authorization server MUST associate the resource URI with the issued access token in a way that can be accessed and verified by the protected resource. For JWT <xref target="RFC7519"/> formatted access tokens, the “aud” claim MUST be used to convey the resource URI. When Token Introspection <xref target="RFC7662"/> is used, the introspection response MUST containe the “aud” member with the resource URI as its value.</t>

</section>
<section anchor="accessing-protected-resource" title="Accessing Protected Resource">

<t>Figure 1, step (E)</t>

<t>The client accesses the protected resource per <xref target="RFC6750"/> section 2.1. The Distributed OAuth Profile MUST only use the authorization request header field for passing the access token.</t>

<t>Figure 1, step (F)</t>

<t>The protected resource MUST verify the resource URI in or referenced by the access token is the protected resource’s resource URI.</t>

</section>
<section anchor="security-considerations" title="Security Considerations">

<t>Three new threats emerge when the client is dynamically discovering the authorization server and the request attributes: access token reuse, resource server impersonation, and malicious issuer.</t>

<section anchor="access-token-reuse" title="Access Token Reuse">

<t>A malicious resource server impersonates the client and reuses the access token provided by the client to the malicious resource server with another resource server.</t>

<t>This is mitigated by constraining the access token to a specific audience, or to a specific client.</t>

<t>Audience restricting the access token is described in this document where the the resource URI is associated to the access token by inclusion or reference, so that only access tokens with the correct resource URI are accepted at a resource server.</t>

<t>Sender constraining the access token can be done through <xref target="MTLS"/>, <xref target="OATB"/>, or any other mechanism that the resource can use to associate the access token with the client.</t>

</section>
<section anchor="resource-server-impersonation" title="Resource Server Impersonation">

<t>A malicious resource server tells a client to obtain an access token that can be used at a different resource server. When the client presents the access token, the malicious resource server uses the access token to access another resource server.</t>

<t>This is mitigated by the client obtaining the “host” value from the TLS certificate of the resource server, and the client verifying the “host” value is contained in the host portion of the resource URI, rather than the resource URI being any value declared by the resource server.</t>

</section>
<section anchor="malicious-issuer" title="Malicious Issuer">

<t>A malicious resource server could redirect the client to a malicious issuer, or the issuer may be malicious. The malicious issuer may replay the client credentials with a valid issuer and obtain a valid access token for a protected resource.</t>

<t>This attack is mitigated by the client using a proof of possession authentication mechanism with the issuer such as <xref target="MTLS"/> or a signed token containing the issuer as the audience.</t>

</section>
</section>
<section anchor="iana-considerations" title="IANA Considerations">

<t>Pursuant to <xref target="RFC5988"/>, the following link type registrations will be registered by mail to link-relations@ietf.org.</t>

<t><list style="symbols">
  <t>Relation Name: oauth_server_metadata_uri</t>
  <t>Description: An OAuth 2.0 Server Metadata URI.</t>
  <t>Reference: This specification</t>
  <t>Relation Name: resource_uri</t>
  <t>Description: An OAuth 2.0 Resource Endpoint specified in <xref target="RFC6750"/> section 3.2.</t>
  <t>Reference: This specification</t>
</list></t>

</section>
<section anchor="acknowledgements" title="Acknowledgements">

<t>TBD.</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>

&RFC2119;
&RFC5988;
&RFC6749;
&RFC6750;
&RFC7519;
&RFC7662;
&RFC8288;
<reference anchor="MTLS" target="https://datatracker.ietf.org/doc/draft-ietf-oauth-mtls/">
  <front>
    <title>OAuth 2.0 Mutual TLS Client Authentication and Certificate Bound Access Tokens</title>
    <author initials="M." surname="Jones">
      <organization></organization>
    </author>
    <author initials="B." surname="Campbell">
      <organization></organization>
    </author>
    <author initials="J." surname="Bradley">
      <organization></organization>
    </author>
    <author initials="W." surname="Denniss">
      <organization></organization>
    </author>
    <date year="2018" month="October"/>
  </front>
</reference>
<reference anchor="OASM" target="https://datatracker.ietf.org/doc/draft-ietf-oauth-discovery/">
  <front>
    <title>OAuth 2.0 Authorization Server Metadata</title>
    <author initials="M." surname="Jones">
      <organization></organization>
    </author>
    <author initials="B." surname="Campbell">
      <organization></organization>
    </author>
    <author initials="J." surname="Bradley">
      <organization></organization>
    </author>
    <date year="2018" month="October"/>
  </front>
</reference>
<reference anchor="OATB" target="https://datatracker.ietf.org/doc/draft-ietf-oauth-token-binding/">
  <front>
    <title>OAuth 2.0 Token Binding</title>
    <author initials="B." surname="Campbell">
      <organization></organization>
    </author>
    <author initials="J." surname="Bradley">
      <organization></organization>
    </author>
    <author initials="N." surname="Sakimora">
      <organization></organization>
    </author>
    <author initials="T." surname="Lodderstedt">
      <organization></organization>
    </author>
    <date year="2018" month="October"/>
  </front>
</reference>


    </references>



<section anchor="document-history" title="Document History">

<t>[[ to be removed by the RFC Editor before publication as an RFC ]]</t>

<t>draft-ietf-oauth-distributed-00</t>

<t><list style="symbols">
  <t>Initial version adopted from draft-hardt-oauth-distributed-02</t>
</list></t>

</section>


  </back>

<!-- ##markdown-source:
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
0zX1LgJ7Pfz7DySVJcnILwAA

-->

</rfc>

