<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.1 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-parecki-oauth-metadata-for-nested-flows-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.2 -->
  <front>
    <title abbrev="Metadata for Nested Flows">OAuth Client and Device Metadata for Nested Flows</title>
    <seriesInfo name="Internet-Draft" value="draft-parecki-oauth-metadata-for-nested-flows-00"/>
    <author fullname="Aaron Parecki">
      <organization>Okta</organization>
      <address>
        <email>aaron@parecki.com</email>
        <uri>https://aaronparecki.com</uri>
      </address>
    </author>
    <date year="2023" month="October" day="23"/>
    <area>Security</area>
    <workgroup>Web Authorization Protocol</workgroup>
    <keyword>oauth</keyword>
    <keyword>delegation</keyword>
    <abstract>
      <?line 50?>

<t>This specification defines a vocabulary and method of transmitting
information about an OAuth client when a user is redirected through one
or more authorization servers during an OAuth flow. This
provides the deeper nested authorization servers with additional context
that they can use for informational or revocation purposes.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://aaronpk.github.io/oauth-metadata-for-nested-flows/draft-parecki-oauth-metadata-for-nested-flows.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-parecki-oauth-metadata-for-nested-flows/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Web Authorization Protocol Working Group mailing list (<eref target="mailto:oauth@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/oauth/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/oauth/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/aaronpk/oauth-metadata-for-nested-flows"/>.</t>
    </note>
  </front>
  <middle>
    <?line 59?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>In a typical OAuth flow, the OAuth client redirects the user agent to the
authorization server where the user logs in and (optionally) approves the
request. The OAuth framework describes the interaction between the Client,
the Authorization Server, and the Resource Server. The interaction between
the End-User and the Authorization Server, when the user logs in,
is intentionally out of scope of OAuth. In practice, user authentication at
the Authorization Server happens via a wide variety of methods, including
simple username/password login, as well as redirecting to additional OAuth
or OpenID Connect servers, such as when using consumer social login providers
or enterprise identity providers.</t>
      <t>When user authentication happens via an external identity provider, it
takes place as a brand new OAuth flow from the initial authorization server to the
external identity provider. The initial authorizaiton server acts as an OAuth
client to the external identity provider. Because this is a new flow, the context of the
original OAuth flow is lost, and the external identity provider is unable
to take actions or record information based on the actual OAuth client the
End-User is using.</t>
      <t>This specification introduces a vocabulary and method of transmitting
information about an OAuth client to an external identity provider when
used in nested flows.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<section anchor="terminology">
        <name>Terminology</name>
        <t>This specification uses the terms "Access Token", "Authorization Code",
"Authorization Endpoint", "Authorization Server" (AS), "Client", "Client Authentication",
"Client Identifier", "Client Secret", "End-User", "Grant Type", "Protected Resource",
"Redirection URI", "Refresh Token", "Resource Owner", "Resource Server" (RS)
and "Token Endpoint" defined by <xref target="RFC6749"/>,
and the terms "OpenID Provider" (OP) and "ID Token" defined by <xref target="OpenID"/>.</t>
        <t>TODO: Replace RFC6749 references with OAuth 2.1</t>
        <t>This specification defines the following terms:</t>
        <dl>
          <dt>"Application Class":</dt>
          <dd>
            <t>The type of application the End-User is logging in to, as defined by the AS
in the first OAuth flow.</t>
          </dd>
          <dt>"Device":</dt>
          <dd>
            <t>The physical device the End-User is interacting with when authorizing a Client.</t>
          </dd>
        </dl>
        <t>This specification uses the term "Identity Provider" (IdP) to refer to
the Authorization Server or OpenID Provider that is used for End-User authentication.</t>
      </section>
    </section>
    <section anchor="overview">
      <name>Protocol Overview</name>
      <t>For the sake of simplicity, we will refer to the parties involved in the flow as:</t>
      <ul spacing="normal">
        <li>
          <t>User Agent: The browser used by the End-User</t>
        </li>
        <li>
          <t>Client: The OAuth client that is being used by the End-User</t>
        </li>
        <li>
          <t>Authorization Server (AS): The authorization server the Client interacts with and is expecting to receive tokens from</t>
        </li>
        <li>
          <t>Identity Provider (IdP): The authorization server where the End-User has an account and logs in</t>
        </li>
      </ul>
      <t>(In practice, in the inner OAuth flow, the Authorization Server is acting as an OAuth Client to the Identity Provider.)</t>
      <t>TODO: Convert to ASCII art</t>
      <t>https://github.com/aaronpk/oauth-metadata-for-nested-flows/blob/main/nested-oauth-flow.svg</t>
      <ol spacing="normal" type="1"><li>
          <t>The OAuth Client initiates an OAuth flow by redirecting the User Agent to the Authorization Server.</t>
        </li>
        <li>
          <t>The User Agent visits the Authorization Server.</t>
        </li>
        <li>
          <t>The Authorization Server initiates a new OAuth flow as the OAuth client to the Identity Provider by redirecting the User Agent to the Identity Provider, and provides the additional parameters defined in <xref target="parameters"/>.</t>
        </li>
        <li>
          <t>The User Agent visits the Identity Provider.</t>
        </li>
        <li>
          <t>The Identity Provider authenticates the End-User.</t>
        </li>
        <li>
          <t>The Identity Provider issues an authorization code and redirects the User Agent back to the Authorization Server.</t>
        </li>
        <li>
          <t>The User Agent visits the Authorization Server carrying the authorization code from the Identity Provider.</t>
        </li>
        <li>
          <t>The Authorization Server exchanges the authorization code at the Identity Provider for an access token and optional ID token.</t>
        </li>
        <li>
          <t>The Identity Provider responds with the tokens.</t>
        </li>
        <li>
          <t>The Authorization Server consumes the tokens and issues its own authorization code, and redirects the User Agent back to the Client.</t>
        </li>
        <li>
          <t>The User Agent visits the Client carrying the authorization code from the Authorization Server.</t>
        </li>
        <li>
          <t>The Client exchanges the authorization code for an access token at the Authorization Server.</t>
        </li>
        <li>
          <t>The Authorization Server responds with the tokens.</t>
        </li>
      </ol>
      <t>In this example, the two OAuth flows are authorization code flows. In practice, the inner flow can often be the OpenID Connect Implicit Flow (with <tt>response_type=id_token</tt>) where there is no intermediate authorization code issued. This distinction is not relevant to the rest of this specification.</t>
      <t>Either or both OAuth flows may also be using other OAuth extensions, such as Pushed Authorization Requests <xref target="RFC9126"/>, JWT-Secured Authorization Request <xref target="RFC9101"/> or others. While these extensions may change the example sequence above slightly, they do not fundamentally change the need for the additional context added by this specification. See <xref target="use-in-flows"/> for examples of how to provide the properties defined in this specification along with other OAuth extensions.</t>
    </section>
    <section anchor="parameters">
      <name>Parameters</name>
      <t>This specification introduces new parameters in the authorization request to the Identity Provider
to indicate information about the downstream OAuth client:</t>
      <dl>
        <dt>"application_class_id":</dt>
        <dd>
          <t>An identifier for the Application Class, unique within the Authorization Server</t>
        </dd>
        <dt>"application_class_name":</dt>
        <dd>
          <t>A human-readable name describing the Application Class, e.g. "Chat App for iOS"</t>
        </dd>
        <dt>"device_id":</dt>
        <dd>
          <t>An identifier for the Device the End-User is using</t>
        </dd>
        <dt>"device_name":</dt>
        <dd>
          <t>A human-readable name describing the End-User's device, e.g. "Alice's iPhone"</t>
        </dd>
        <dt>"session_ref":</dt>
        <dd>
          <t>A reference to the End-User session at the OAuth Authorization Server. This <bcp14>MUST NOT</bcp14>
be the actual session cookie. This identifier enables the IdP to identify a user's session.</t>
        </dd>
      </dl>
    </section>
    <section anchor="use-in-flows">
      <name>Use in OAuth Flows</name>
      <t>These parameters can be used in any authorization request to an OAuth Authorization Server or OpenID Provider. Below are examples of including the new parameters in various OAuth flows and extensions.</t>
      <section anchor="oauth-authorization-request">
        <name>OAuth Authorization Request</name>
        <artwork><![CDATA[
https://idp.example.com/authorize?response_type=code
  &state=af0ifjsldkj
  &client_id=s6BhdRkqt3
  &redirect_uri=https%3A%2F%2Fas.example.org%2Fcb
  &code_challenge=K2-ltc83acc4h0c9w6ESC_rEMTJ3bww-uCHaoeK1t8U
  &code_challenge_method=S256
  &scope=openid+profile
  &application_class_id=1234
  &application_class_name=Chat+for+iOS
  &device_id=9876
  &device_name=Alice's+iPhone
  &session_ref=5124
]]></artwork>
      </section>
      <section anchor="par">
        <name>Pushed Authorization Requests (PAR)</name>
        <t>The parameters defined in <xref target="parameters"/> are added to the Pushed Authorization Request as POST body parameters, as described in Section 2.1 of <xref target="RFC9126"/>.</t>
        <artwork><![CDATA[
POST /par HTTP/1.1
Host: idp.example.com
Content-Type: application/x-www-form-urlencoded

response_type=code
&state=af0ifjsldkj
&client_id=s6BhdRkqt3
&redirect_uri=https%3A%2F%2Fas.example.org%2Fcb
&code_challenge=K2-ltc83acc4h0c9w6ESC_rEMTJ3bww-uCHaoeK1t8U
&code_challenge_method=S256
&scope=openid+profile
&application_class_id=1234
&application_class_name=Chat+for+iOS
&device_id=9876
&device_name=Alice's+iPhone
&session_ref=5124
]]></artwork>
      </section>
      <section anchor="jar">
        <name>JWT-Secured Authorization Request (JAR)</name>
        <t>The parameters defined in <xref target="parameters"/> are added to the Request Object as described in Section 4 of <xref target="RFC9101"/>.</t>
        <t>The following is an example of the Claims in a Request Object before the base64url encoding and signing.</t>
        <artwork><![CDATA[
{
 "iss": "s6BhdRkqt3",
 "aud": "https://idp.example.com",
 "response_type": "code",
 "client_id": "s6BhdRkqt3",
 "redirect_uri": "https://as.example.org/cb",
 "scope": "openid profile",
 "state": "af0ifjsldkj",
 "max_age": 86400,
 "application_class_id": "1234",
 "application_class_name": "Chat for iOS",
 "device_id": "9876",
 "device_name": "Alice's iPhone",
 "session_ref": "5124"
}
]]></artwork>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO</t>
      <section anchor="client-authentication">
        <name>Client Authentication</name>
        <t>Because the parameters defined by this specification are not pre-registered at the Identity Provider, the Identity Provider is trusting the Authorization Server with the values provided in the request.</t>
        <t>For this reason, the Authorization Server <bcp14>MUST</bcp14> be a confidential client and use some form of client authentication to the Identity Provider.</t>
      </section>
      <section anchor="confidentiality">
        <name>Confidentiality</name>
        <t>The parameters defined by this specification may contain sensitive data, and should not be exposed to unnecessary parties. In particular, passing this data via the browser in redirects opens up opportunities for observing or tampering with this data.</t>
        <t>For this reason, Authorization Servers <bcp14>SHOULD</bcp14> use Pushed Authorization Requests <xref target="RFC9126"/> and/or JWT-Secured Authorization Request <xref target="RFC9101"/> to prevent tampering and exfiltration of the data.</t>
      </section>
      <section anchor="session-reference">
        <name>Session Reference</name>
        <t>The <tt>session_ref</tt> parameter is meant to be a pointer to a session, and <bcp14>MUST NOT</bcp14> be the same value as the browser sends to the server as the session cookie.</t>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>TODO</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>TODO</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC6749">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
        <reference anchor="OpenID" target="https://openid.net/specs/openid-connect-core-1_0.html">
          <front>
            <title>OpenID Connect Core 1.0</title>
            <author initials="N." surname="Sakimura">
              <organization/>
            </author>
            <author initials="J." surname="Bradley">
              <organization/>
            </author>
            <author initials="M." surname="Jones">
              <organization/>
            </author>
            <author initials="B." surname="de Medeiros">
              <organization/>
            </author>
            <author initials="C." surname="Mortimore">
              <organization/>
            </author>
            <date year="2014" month="November"/>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9101">
          <front>
            <title>The OAuth 2.0 Authorization Framework: JWT-Secured Authorization Request (JAR)</title>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="August" year="2021"/>
            <abstract>
              <t>The authorization request in OAuth 2.0 described in RFC 6749 utilizes query parameter serialization, which means that authorization request parameters are encoded in the URI of the request and sent through user agents such as web browsers. While it is easy to implement, it means that a) the communication through the user agents is not integrity protected and thus, the parameters can be tainted, b) the source of the communication is not authenticated, and c) the communication through the user agents can be monitored. Because of these weaknesses, several attacks to the protocol have now been put forward.</t>
              <t>This document introduces the ability to send request parameters in a JSON Web Token (JWT) instead, which allows the request to be signed with JSON Web Signature (JWS) and encrypted with JSON Web Encryption (JWE) so that the integrity, source authentication, and confidentiality properties of the authorization request are attained. The request can be sent by value or by reference.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9101"/>
          <seriesInfo name="DOI" value="10.17487/RFC9101"/>
        </reference>
        <reference anchor="RFC9126">
          <front>
            <title>OAuth 2.0 Pushed Authorization Requests</title>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <author fullname="D. Tonge" initials="D." surname="Tonge"/>
            <author fullname="F. Skokan" initials="F." surname="Skokan"/>
            <date month="September" year="2021"/>
            <abstract>
              <t>This document defines the pushed authorization request (PAR) endpoint, which allows clients to push the payload of an OAuth 2.0 authorization request to the authorization server via a direct request and provides them with a request URI that is used as reference to the data in a subsequent call to the authorization endpoint.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9126"/>
          <seriesInfo name="DOI" value="10.17487/RFC9126"/>
        </reference>
      </references>
    </references>
    <?line 293?>

<section anchor="document-history">
      <name>Document History</name>
      <t>(( To be removed from the final specification ))</t>
      <t>-00</t>
      <ul spacing="normal">
        <li>
          <t>Initial Draft</t>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
