<?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.14 (Ruby 2.6.10) -->
<?rfc {"toc"=>nil, "sortrefs"=>nil, "symrefs"=>nil}="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-burgin-jenkins-identity-chaining-00" category="std" consensus="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.15.2 -->
  <front>
    <title abbrev="OAuth Identity Chaining">OAuth Identity Chaining</title>
    <seriesInfo name="Internet-Draft" value="draft-burgin-jenkins-identity-chaining-00"/>
    <author initials="M." surname="Jenkins" fullname="Mike Jenkins">
      <organization>National Security Agency</organization>
      <address>
        <email>mjjenki@cyber.nsa.gov</email>
      </address>
    </author>
    <author initials="K." surname="Burgin" fullname="Kelley Burgin">
      <organization/>
      <address>
        <email>kelley.burgin@gmail.com</email>
      </address>
    </author>
    <date year="2022" month="November" day="08"/>
    <area>General</area>
    <workgroup>OAuth Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This specification defines a new OAuth claim that allows a proxying OAuth client to pass identity information for a different OAuth client to an OAuth authorization server during a token request. The authorization server uses this additional identity information when populating the "client_id" and "cnf" fields of the returned access token instead of the identity information about the proxying client requesting the token.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="intro">
      <name>Introduction</name>
      <t>The Mutual TLS Profile for OAuth 2.0 specification <xref target="RFC8705"/> states that when a client authenticates to the token endpoint of an authorization server using mTLS, the confirmation ("cnf") claim in the returned token is populated with the SHA-256 thumbprint of the client's X.509 certificate when the authorization server issues sender constrained tokens.</t>
      <t>This document defines a new OAuth claim, "chained_id", that allows a client to pass the "client_id" and "cnf" values for a different OAuth client in a token request. The authorization server uses the values in the "chained_id" claim to populate the "client_id" and "cnf" claims in the returned access token instead of those of the requesting client.</t>
      <section anchor="Notation">
        <name>Conventions and Terminology</name>
        <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, RFC 2119
<xref target="RFC2119"/>.</t>
        <t>This specification uses the terms "Access Token", "Authorization Server", "Client", "Protected Resource", "Resource Server", and "Token Endpoint" defined by OAuth 2.0 <xref target="RFC6749"/>, the term "Assertion" defined by <xref target="RFC7521"/>, the term "Token Endpoint" defined by <xref target="RFC7662"/>, the term "Token Exchange" defined by <xref target="RFC8693"/>, and the terms defined by OpenID Connect Core 1.0 <xref target="OIDC-Core"/>.</t>
      </section>
    </section>
    <section anchor="use-cases">
      <name>Use Case</name>
      <t>The primary use case is a situation where a protected resource (PR1) may need to call a second protected resource (PR2) in a different ICAM ecosystem to satisfy a query received from a client. PR1 cannot simply relay the token, Token 1, it received from the client to PR2 since PR2 trusts a different authorization server (AS2). Also, when PR1 presents its token to PR2, we want PR2 to be able to make authorization decisions based on PR1's identity as asserted by the "client_id" and "cnf" fields in the token.</t>
      <t>Before presenting the proposed solution, we state some assumptions used in this use case. The first is that OAuth clients authenticate to authorization servers using mTLS which allows the authorization servers to sender constrain tokens by populating a "cnf" field in issued tokens. The second is that protected resources make authorization decisions based upon certain claims that identify the client presenting the token.</t>
      <t>The method proposed in this specification that enables PR1 to obtain a sender constrained token that contains PR1 identity information necessary for authorization decisions at PR2 is as follows and is shown in <xref target="AS2-gen-flow"/>.</t>
      <t>PR1 performs token exchange with its authorization server (AS1) to exchange Token 1 for a second token, Token 2, that is valid at PR2 and contains the identity information for PR1.</t>
      <t>However, when AS1 receives the token exchange request from PR1, AS1 does not generate the token, Token 2, that is returned to PR1 to complete the token exchange request. Instead, AS1 generates a JWT assertion and, acting as an OAuth client, issues an assertion grant request to AS2 using the generated JWT assertion. AS2 then generates Token 2, returns it to AS1 to complete the assertion grant request, and AS1 returns Token 2 to PR1 to complete the token exchange request.</t>
      <t>Under normal circumstances, AS2 will populate the "client_id" and "cnf" fields with the values for AS1 since it, acting as an OAuth client, issued the assertion grant request to AS2. We define a new OAuth parameter in the next section to allow AS2 to populate these fields with the values for PR1 so Token 2 will pass the authorization checks at PR2.</t>
      <figure anchor="AS2-gen-flow">
        <name>Token Exchange Protocol Flow when AS2 Generates Token 2</name>
        <artwork><![CDATA[
                       Org 1                      Org 2

 +------+              +---+                      +---+
 |      |              |   |-----(7)-Token 2----->|   |
 |Client|-(1)-Token 1->|PR1|                      |PR2|
 |      |              |   |                      |   |
 +------+              +---+                      +---+
                        | ^                          
     (2) Token Exchange | |             
                Request | |                 
                        | | (6) Return               
                        | |     Token 2              
                        v |
                       +---+                      +---+
     (3) Generate      |   |--(4)-JWT Assertion-->|   |
         JWT Assertion |AS1|      Grant Request   |AS2|
                       |   |<-----(5)-Token 2-----|   |
                       +---+                      +---+ 

]]></artwork>
      </figure>
    </section>
    <section anchor="claim">
      <name>"chained_id" Claim</name>
      <t>The "chained_id" claim value in a token request is a JSON
   object that contains claims about an OAuth client that is different from a proxying OAuth client making the token request.  For the use case
   described in <xref target="use-cases"/>, the requesting client (AS1) includes the
   "client_id" and "cnf" claims of a different client (PR1) in a "chained_id" claim  in the request.  If the proxying client (AS1) making the request is registered with the authorization server (AS2), the authorization server (AS2) populates the
   "client_id" and "cnf" claims in the returned access token with the values
   in the "chained_id" claim in the request (those identifying PR1) instead of those of the proxying client making the request (AS1).</t>
    </section>
    <section anchor="non-normative-example">
      <name>Non-normative Example</name>
      <t>The following is a non-normative example using the example in <xref target="use-cases"/> Where AS1 makes an assertion grant request to AS2 on behalf of PR1. In the example,  "A4DtL2JmUMhAsvJj5tKyn64SqzmuXbMrJa0n761y5v0" is the hash of PR1's X.509 certificate.</t>
      <t>When AS1 receives a token exchange request from PR1, it generates a JWT assertion that includes a "chained_id" claim that identifies PR1 in the "client_id" and "cnf" sub-claims.</t>
      <figure anchor="Assertion">
        <name>Example JWT Assertion Using the chained_id claim</name>
        <artwork><![CDATA[
{
  "sub": "user@example.com",
  "aud": "https://as2.example2.com",
  "iss": "https://as1.example1.com",
    "chained_id": {
      "client_id": "https://pr1.example1.com",
      "cnf":{
        "x5t#S256": "A4DtL2JmUMhAsvJj5tKyn64SqzmuXbMrJa0n761y5v0"
      }
    }
}
]]></artwork>
      </figure>
      <t>When AS2 receives the assertion grant request from AS1, it populates the fields of a token that includes PR1's values in the "client_id" and "cnf" fields and returns the token to AS1.</t>
      <figure anchor="Returned-token">
        <name>Token returned by AS2 to AS1 for PR1</name>
        <artwork><![CDATA[
{
  "sub":"user@example.com"
  "aud":"https://pr2.example2.com"
  "iss":"https://as2.example2.com"
  "client_id: "https://pr1.example1.com"
  "cnf":{
    "x5t#S256":"A4DtL2JmUMhAsvJj5tKyn64SqzmuXbMrJa0n761y5v0"
  }
}
]]></artwork>
      </figure>
      <t>AS1 returns the token to PR1 to complete the token exchange request.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>To ensure the proxying OAuth client requesting the second token (AS1) is trusted by the authorization server generating the second token (AS2) to make token requests that include a "chained_id" claim, we assume that AS1 has a pre-existing trust relationship with AS2.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>Normative References</name>
      <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/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="RFC6749" target="https://www.rfc-editor.org/info/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="RFC7521" target="https://www.rfc-editor.org/info/rfc7521">
        <front>
          <title>Assertion Framework for OAuth 2.0 Client Authentication and Authorization Grants</title>
          <author fullname="B. Campbell" initials="B." surname="Campbell">
            <organization/>
          </author>
          <author fullname="C. Mortimore" initials="C." surname="Mortimore">
            <organization/>
          </author>
          <author fullname="M. Jones" initials="M." surname="Jones">
            <organization/>
          </author>
          <author fullname="Y. Goland" initials="Y." surname="Goland">
            <organization/>
          </author>
          <date month="May" year="2015"/>
          <abstract>
            <t>This specification provides a framework for the use of assertions with OAuth 2.0 in the form of a new client authentication mechanism and a new authorization grant type.  Mechanisms are specified for transporting assertions during interactions with a token endpoint; general processing rules are also specified.</t>
            <t>The intent of this specification is to provide a common framework for OAuth 2.0 to interwork with other identity systems using assertions and to provide alternative client authentication mechanisms.</t>
            <t>Note that this specification only defines abstract message flows and processing rules.  In order to be implementable, companion specifications are necessary to provide the corresponding concrete instantiations.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7521"/>
        <seriesInfo name="DOI" value="10.17487/RFC7521"/>
      </reference>
      <reference anchor="RFC7662" target="https://www.rfc-editor.org/info/rfc7662">
        <front>
          <title>OAuth 2.0 Token Introspection</title>
          <author fullname="J. Richer" initials="J." role="editor" surname="Richer">
            <organization/>
          </author>
          <date month="October" year="2015"/>
          <abstract>
            <t>This specification defines a method for a protected resource to query an OAuth 2.0 authorization server to determine the active state of an OAuth 2.0 token and to determine meta-information about this token. OAuth 2.0 deployments can use this method to convey information about the authorization context of the token from the authorization server to the protected resource.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7662"/>
        <seriesInfo name="DOI" value="10.17487/RFC7662"/>
      </reference>
      <reference anchor="RFC8693" target="https://www.rfc-editor.org/info/rfc8693">
        <front>
          <title>OAuth 2.0 Token Exchange</title>
          <author fullname="M. Jones" initials="M." surname="Jones">
            <organization/>
          </author>
          <author fullname="A. Nadalin" initials="A." surname="Nadalin">
            <organization/>
          </author>
          <author fullname="B. Campbell" initials="B." role="editor" surname="Campbell">
            <organization/>
          </author>
          <author fullname="J. Bradley" initials="J." surname="Bradley">
            <organization/>
          </author>
          <author fullname="C. Mortimore" initials="C." surname="Mortimore">
            <organization/>
          </author>
          <date month="January" year="2020"/>
          <abstract>
            <t>This specification defines a protocol for an HTTP- and JSON-based Security Token Service (STS) by defining how to request and obtain security tokens from OAuth 2.0 authorization servers, including security tokens employing impersonation and delegation.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8693"/>
        <seriesInfo name="DOI" value="10.17487/RFC8693"/>
      </reference>
      <reference anchor="RFC8705" target="https://www.rfc-editor.org/info/rfc8705">
        <front>
          <title>OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens</title>
          <author fullname="B. Campbell" initials="B." surname="Campbell">
            <organization/>
          </author>
          <author fullname="J. Bradley" initials="J." surname="Bradley">
            <organization/>
          </author>
          <author fullname="N. Sakimura" initials="N." surname="Sakimura">
            <organization/>
          </author>
          <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt">
            <organization/>
          </author>
          <date month="February" year="2020"/>
          <abstract>
            <t>This document describes OAuth client authentication and certificate-bound access and refresh tokens using mutual Transport Layer Security (TLS) authentication with X.509 certificates.  OAuth clients are provided a mechanism for authentication to the authorization server using mutual TLS, based on either self-signed certificates or public key infrastructure (PKI). OAuth authorization servers are provided a mechanism for binding access tokens to a client's mutual-TLS certificate, and OAuth protected resources are provided a method for ensuring that such an access token presented to it was issued to the client presenting the token.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8705"/>
        <seriesInfo name="DOI" value="10.17487/RFC8705"/>
      </reference>
      <reference anchor="RFC8259" target="https://www.rfc-editor.org/info/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="RFC9068" target="https://www.rfc-editor.org/info/rfc9068">
        <front>
          <title>JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens</title>
          <author fullname="V. Bertocci" initials="V." surname="Bertocci">
            <organization/>
          </author>
          <date month="October" year="2021"/>
          <abstract>
            <t>This specification defines a profile for issuing OAuth 2.0 access tokens in JSON Web Token (JWT) format. Authorization servers and resource servers from different vendors can leverage this profile to issue and consume access tokens in an interoperable manner.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9068"/>
        <seriesInfo name="DOI" value="10.17487/RFC9068"/>
      </reference>
      <reference anchor="OIDC-Core">
        <front>
          <title>OpenID Connect Core 1.0 incorporating errata set 1</title>
          <author initials="" surname="OpenID_Foundation" fullname="OpenID_Foundation">
            <organization/>
          </author>
          <date year="2014" month="November" day="10"/>
        </front>
      </reference>
    </references>
  </back>
  <!-- ##markdown-source:
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
9sOOD/T0PzADzaEKIAAA

-->

</rfc>
