<?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.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-oauth-identity-chaining-13" category="std" consensus="true" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title>OAuth Identity and Authorization Chaining Across Domains</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-identity-chaining-13"/>
    <author initials="A." surname="Schwenkschuster" fullname="Arndt Schwenkschuster">
      <organization>Defakto Security</organization>
      <address>
        <email>arndts.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="P." surname="Kasselmann" fullname="Pieter Kasselmann">
      <organization>Defakto Security</organization>
      <address>
        <email>pieter@defakto.security</email>
      </address>
    </author>
    <author initials="K." surname="Burgin" fullname="Kelley Burgin">
      <organization>MITRE</organization>
      <address>
        <email>kburgin@mitre.org</email>
      </address>
    </author>
    <author initials="M." surname="Jenkins" fullname="Mike Jenkins">
      <organization>NSA-CCSS</organization>
      <address>
        <email>mjjenki@cyber.nsa.gov</email>
      </address>
    </author>
    <author initials="B." surname="Campbell" fullname="Brian Campbell">
      <organization>Ping Identity</organization>
      <address>
        <email>bcampbell@pingidentity.com</email>
      </address>
    </author>
    <author initials="A." surname="Parecki" fullname="Aaron Parecki">
      <organization>Okta</organization>
      <address>
        <email>aaron@parecki.com</email>
      </address>
    </author>
    <date year="2026" month="June" day="01"/>
    <area>sec</area>
    <workgroup>oauth</workgroup>
    <abstract>
      <?line 64?>

<t>This specification describes a mechanism for preserving identity and authorization information across trust domains that use the OAuth 2.0 Framework.
A JSON Web Token (JWT) authorization grant, obtained through an intra-domain OAuth 2.0 Token Exchange, facilitates the cross-domain acquisition of an access token.
The relevant identity and authorization information is chained throughout the flow by being conveyed in the respective artifacts exchanged at each step of the process. Chaining across multiple domains is achieved by using the same protocol every time a trust domain boundary is crossed.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Web Authorization Protocol Working Group mailing list (oauth@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/oauth/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/oauth-wg/oauth-identity-chaining"/>.</t>
    </note>
  </front>
  <middle>
    <?line 70?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Applications often require access to resources that are distributed across multiple trust domains where each trust domain has its own OAuth 2.0 authorization server. A request may transverse multiple resource servers in multiple trust domains before completing. All protected resources involved in such a request need to know on whose behalf the request was originally initiated (i.e. the user), what authorization was granted and optionally which other resource servers were called prior to making an authorization decision. This information needs to be preserved, even when a request crosses one or more trust domains. This document refers to this as "chaining" and defines a common pattern for combining OAuth 2.0 Token Exchange <xref target="RFC8693"/> and the JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants <xref target="RFC7523"/> to access resources across multiple trust domains while preserving identity and authorization information.</t>
      <section anchor="requirements-language">
        <name>Requirements Language</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>
    </section>
    <section anchor="identity-and-authorization-chaining-across-domains">
      <name>Identity and Authorization Chaining Across Domains</name>
      <t>This specification describes a combination of OAuth 2.0 Token Exchange <xref target="RFC8693"/> and JWT Profile for OAuth 2.0 Client Authentication and Authorization Grants <xref target="RFC7523"/> to achieve identity and authorization chaining across domains.</t>
      <t>A client in trust domain A that needs to access a resource server in trust domain B requests a JWT authorization grant from the authorization server for trust domain A using a profile of OAuth 2.0 Token Exchange <xref target="RFC8693"/>. The client in trust domain A then presents the received grant as an assertion to the authorization server in trust domain B, using the JWT authorization grant feature of <xref target="RFC7523"/>, to obtain an access token for the protected resource in trust domain B.</t>
      <t>In some deployments, the client in trust domain A may obtain a JWT authorization grant using a proprietary API or interface other than the OAuth 2.0 Token Exchange protocol <xref target="RFC8693"/>. The details of such an interface are out of scope for this document but an alternative means of acquiring the JWT authorization grant is not precluded by this document. A JWT authorization grant, regardless of how it was obtained, <bcp14>MUST</bcp14> be used to request an access token from the authorization server in trust domain B as described in <xref target="jwt-authorization-grant"/> of this document.</t>
      <section anchor="overview">
        <name>Overview</name>
        <t>The identity and authorization chaining flow outlined below describes how a combination of OAuth 2.0 Token Exchange <xref target="RFC8693"/> and JWT Profile for OAuth 2.0 Client Authentication and Authorization Grants <xref target="RFC7523"/> are used to address the use cases identified.
Conceptually, this is an exchange within the first domain that produces a JWT authorization grant intended for use in acquiring an access token from the second domain.</t>
        <figure>
          <name>Identity and Authorization Chaining Flow</name>
          <artwork><![CDATA[
+-------------+         +--------+         +-------------+ +---------+
|Authorization|         | Client |         |Authorization| |Protected|
|Server       |         | Trust  |         |Server       | |Resource |
|Trust        |         |Domain A|         |Trust        | |Trust    |
|Domain A     |         |        |         |Domain B     | |Domain B |
+-------------+         +--------+         +-------------+ +---------+
       |                    |                     |             |
       |                    |----+                |             |
       |      (1) discover  |    |                |             |
       |      Authorization |<---+                |             |
       |      Server        |                     |             |
       |      Trust Domain B|                     |             |
       |                    |                     |             |
       | (2) exchange token |                     |             |
       |   [RFC 8693]       |                     |             |
       |<-------------------|                     |             |
       |                    |                     |             |
       | (3) <authorization |                     |             |
       |       grant JWT>   |                     |             |
       | - - - - - - - - - >|                     |             |
       |                    |                     |             |
       |                    | (4) present         |             |
       |                    | authorization grant |             |
       |                    | [RFC 7523]          |             |
       |                    | ------------------->|             |
       |                    |                     |             |
       |                    | (5) <access token>  |             |
       |                    | <- - - - - - - - - -|             |
       |                    |                     |             |
       |                    |               (6) access          |
       |                    | --------------------------------->|
       |                    |                     |             |
]]></artwork>
        </figure>
        <t>The flow illustrated in Figure 1 shows the steps the client in trust domain A needs to perform to access a protected resource in trust domain B. In this flow, the client is in possession of a token that an authorization server will accept as part of a token exchange flow as defined in <xref target="token-exchange">Token Exchange</xref>. How the client obtained this token is out of scope of this specification. The client has a way to discover the authorization server in domain B and a trust relationship exists between domain A and domain B. It includes the following:</t>
        <ol spacing="normal" type="1"><li>
            <t>The client in trust domain A discovers the location of the authorization server of trust domain B. See <xref target="authorization-server-discovery">Authorization Server Discovery</xref>.</t>
          </li>
          <li>
            <t>The client in trust domain A exchanges a token it has in its possession with the authorization server in trust domain A for a JWT authorization grant that can be used at the authorization server in trust domain B. See <xref target="token-exchange">Token Exchange</xref>.</t>
          </li>
          <li>
            <t>The authorization server of trust domain A processes the request and returns a JWT authorization grant that the client can use with the authorization server of trust domain B. This requires a trust relationship between the authorization servers in trust domain A and trust domain B. Such a trust relationship typically manifests as the exchange of key material, whereby the authorization server in domain B trusts the public key(s) of domain A, which are used to verify JWT authorization grants signed with the corresponding private key(s).</t>
          </li>
          <li>
            <t>The client in trust domain A presents the authorization grant to the authorization server of trust domain B. See <xref target="atr">Access Token Request</xref>.</t>
          </li>
          <li>
            <t>Authorization server of trust domain B validates the JWT authorization grant and returns an access token.
 Validating the JWT authorization grant requires trusting the public key(s) of domain A and its authority to issue authorization grants. This might take the form of configuration and policy in domain B that associates a set of public keys with domain A. Or might rely on the keys published at domain A's <tt>jwks_uri</tt> as listed in its Authorization Server Metadata <xref target="RFC8414"/>.</t>
          </li>
          <li>
            <t>The client in trust domain A uses the access token received from the authorization server in trust domain B to access the protected resource in trust domain B.</t>
          </li>
        </ol>
      </section>
      <section anchor="authorization-server-discovery">
        <name>Authorization Server Discovery</name>
        <t>This specification does not define authorization server discovery. A client may use the <tt>authorization_servers</tt> property as defined in OAuth 2.0 Protected Resource Metadata <xref target="RFC9728"/>, maintain a static mapping or use other means to identify the authorization server.</t>
      </section>
      <section anchor="token-exchange">
        <name>Token Exchange</name>
        <t>The client in trust domain A performs token exchange as defined in <xref target="RFC8693"/> with the authorization server in trust domain A in order to obtain a JWT authorization grant that can be used with the authorization server of trust domain B as specified in Section 1.3 of <xref target="RFC6749"/>.</t>
        <section anchor="token-exchange-request">
          <name>Token Exchange Request</name>
          <t>The parameters described in Section 2.1 of <xref target="RFC8693"/> apply here with the following restrictions:</t>
          <dl newline="true">
            <dt>scope</dt>
            <dd>
              <t>Additional scopes to indicate scopes included in the returned JWT authorization grant, if required. See <xref target="claims-transcription">Claims transcription</xref>.</t>
            </dd>
            <dt>resource</dt>
            <dd>
              <t>URI of authorization server for trust domain B.</t>
            </dd>
            <dt>audience</dt>
            <dd>
              <t>Well known/logical name of authorization server for trust domain B.</t>
            </dd>
          </dl>
          <t>One of <tt>resource</tt> or <tt>audience</tt> is <bcp14>REQUIRED</bcp14> to indicate the intended authorization server in trust domain B.</t>
        </section>
        <section anchor="processing-rules">
          <name>Processing rules</name>
          <ul spacing="normal">
            <li>
              <t>If the request itself is not valid or if the given resource or audience are unknown, or are unacceptable based on policy, the authorization server in trust domain A <bcp14>MUST</bcp14> deny the request as defined in Section 2.2.2 of <xref target="RFC8693"/>.</t>
            </li>
            <li>
              <t>The authorization server in trust domain A can add, remove or change claims. See <xref target="claims-transcription">Claims transcription</xref>.</t>
            </li>
          </ul>
        </section>
        <section anchor="token-exchange-response">
          <name>Token Exchange Response</name>
          <t>All of Section 2.2 of <xref target="RFC8693"/> applies. In addition, the following applies to implementations that conform to this specification.</t>
          <ul spacing="normal">
            <li>
              <t>The "aud" claim in the returned JWT authorization grant <bcp14>MUST</bcp14> identify the requested authorization server in trust domain B. This corresponds with <eref target="https://datatracker.ietf.org/doc/html/rfc7523#section-3">RFC 7523 Section 3, Point 3</eref> and is there to reduce misuse and to prevent clients from, among other things, presenting access tokens as an authorization grant to an authorization server in trust domain B.</t>
            </li>
            <li>
              <t>The "aud" claim included in the returned JWT authorization grant can identify multiple authorization servers, provided that trust relationships exist with them. However, it is <bcp14>RECOMMENDED</bcp14> that the "aud" claim is restricted to a single authorization server in trust domain B to prevent an authorization server from presenting the client's authorization grant to an authorization server in a different trust domain. For example, this will prevent the authorization server in trust domain B from presenting the authorization grant it received from the client in trust domain A to the authorization server for trust domain C.</t>
            </li>
          </ul>
        </section>
        <section anchor="example">
          <name>Example</name>
          <t>The example below shows the message invoked by the client in trust domain A to perform token exchange with the authorization server in trust domain A (https://as.a.example/auth) to receive a JWT authorization grant for the authorization server in trust domain B (https://as.b.example/auth).</t>
          <figure>
            <name>Token exchange request</name>
            <artwork><![CDATA[
POST /auth/token HTTP/1.1
Host: as.a.example
Content-Type: application/x-www-form-urlencoded

grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Atoken-exchange
&resource=https%3A%2F%2Fas.b.example%2Fauth
&subject_token=ey...
&subject_token_type=
 urn%3Aietf%3Aparams%3Aoauth%3Atoken-type%3Aaccess_token
]]></artwork>
          </figure>
          <figure>
            <name>Token exchange response</name>
            <artwork><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-cache, no-store

{
  "access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJo
  dHRwczovL2FzLmEub3JnL2F1dGgiLCJleHAiOjE2OTUyODQwOTIsImlhdCI6MTY5N
  TI4NzY5Miwic3ViIjoiam9obl9kb2VAYS5vcmciLCJhdWQiOiJodHRwczovL2FzLm
  Iub3JnL2F1dGgifQ.304Pv9e6PnzcQPzz14z-k2ZyZvDtP5WIRkYPScwdHW4",
  "token_type":"N_A",
  "issued_token_type":"urn:ietf:params:oauth:token-type:jwt",
  "expires_in":60
}
]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="jwt-authorization-grant">
        <name>JWT Authorization Grant</name>
        <t>The client in trust domain A uses the JWT authorization grant obtained from the authorization server in trust domain A as an assertion to request an access token from the authorization server in trust domain B, as described in <xref target="RFC7523"/>.</t>
        <section anchor="atr">
          <name>Access Token Request</name>
          <t>The JWT authorization grant is used to request an access token as defined in Section 2.1 of <xref target="RFC7523"/>. The following required parameters are described additionally here:</t>
          <dl newline="true">
            <dt>grant_type</dt>
            <dd>
              <t>As defined in Section 2.1 of <xref target="RFC7523"/> the value <tt>urn:ietf:params:oauth:grant-type:jwt-bearer</tt> indicates the request is a JWT bearer assertion authorization grant.</t>
            </dd>
            <dt>assertion</dt>
            <dd>
              <t>The JWT authorization grant returned by the authorization server for domain A (see <xref target="token-exchange">Token Exchange</xref> response).</t>
            </dd>
          </dl>
          <t>The client in trust domain A can indicate the protected resource it is trying to access through the <tt>scope</tt> parameter or the <tt>resource</tt> parameter defined in <xref target="RFC8707"/>.</t>
        </section>
        <section anchor="processing-rules-1">
          <name>Processing rules</name>
          <t>The authorization server in trust domain B <bcp14>MUST</bcp14> validate the JWT authorization grant as specified in Sections 3 and 3.1 of <xref target="RFC7523"/>. The following processing rules also apply:</t>
          <ul spacing="normal">
            <li>
              <t>The "aud" claim <bcp14>MUST</bcp14> identify the authorization server in trust domain B as a valid intended audience of the assertion using either the token endpoint as described Section 3 of <xref target="RFC7523"/> or the issuer identifier as defined in Section 2 of <xref target="RFC8414"/>.</t>
            </li>
            <li>
              <t>The authorization server in trust domain B <bcp14>MUST</bcp14> deny the request if it is not able to identify the subject.</t>
            </li>
            <li>
              <t>Due to policy the request <bcp14>MAY</bcp14> be denied (for instance if a trust relationship with trust domain A is not established).</t>
            </li>
          </ul>
          <t>Section 3.1 of <xref target="RFC7523"/> describes the error response used in request denial cases.</t>
        </section>
        <section anchor="access-token-response">
          <name>Access Token Response</name>
          <t>When the authorization grant has been validated, the authorization server in trust domain B responds with an access token as described in Section 5.1 of <xref target="RFC6749"/>.</t>
        </section>
        <section anchor="example-1">
          <name>Example</name>
          <t>The examples below show how the client in trust domain A presents an authorization grant to the authorization server in trust domain B (https://as.b.example/auth) to receive an access token for a protected resource in trust domain B.</t>
          <figure>
            <name>Assertion request</name>
            <artwork><![CDATA[
POST /auth/token HTTP/1.1
Host: as.b.example
Content-Type: application/x-www-form-urlencoded

grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer
&assertion=ey...
]]></artwork>
          </figure>
          <figure>
            <name>Assertion response</name>
            <artwork><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-cache, no-store

{
  "access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJo
  dHRwczovL2FzLmIub3JnL2F1dGgiLCJleHAiOjE2OTUyODQwOTIsImlhdCI6MTY5N
  TI4NzY5Miwic3ViIjoiam9obi5kb2UuMTIzIiwiYXVkIjoiaHR0cHM6Ly9iLm9yZy
  9hcGkifQ.CJBuv6sr6Snj9in5T8f7g1uB61Ql8btJiR0IXv5oeJg",
  "token_type":"Bearer",
  "expires_in":60
}
]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="claims-transcription">
        <name>Claims transcription</name>
        <t>Claims transcription is motivated by the need to propagate user and client identifiers, authorization context, and other relevant information across trust boundaries.
This enables the various entities involved to determine on whose behalf the request is being made, what authorization has been granted, and, potentially, which other resource servers were previously involved.</t>
        <t>Authorization servers may transcribe claims when either producing JWT authorization grants in the token exchange flow or access tokens in the assertion flow. Transcription of claims may be required for the following reasons:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Transcribing the subject identifier</strong>: The subject identifier can differ between the parties involved. For example, a user is identified in trust domain A as "johndoe@a.example" but in trust domain B they are identified as "doe.john@b.example". The mapping from one identifier to the other can either happen in the token exchange step and the updated identifier is reflected in the returned JWT authorization grant or in the assertion step where the updated identifier would be reflected in the access token. To support this, both authorization servers can add, change or remove claims as described above.</t>
          </li>
          <li>
            <t><strong>Data Minimization</strong>: Authorization servers can remove or hide certain claims due to privacy requirements or reduced trust towards the targeting trust domain.
One example is a financial institution that integrates with a third-party payment gateway.
Domain A (the financial institution) includes detailed claims such as "account type: premium" and "transaction limit: $10,000" in the JWT authorization grant.
However, domain B (the payment gateway) only needs claims like "transaction limit" for its access control policies. Domain A transcribes the claims to exclude unnecessary information, ensuring that domain B receives only the claims relevant to its operations.</t>
          </li>
          <li>
            <t><strong>Controlling scope</strong>: Clients can use the scope parameter to control transcribed claims (e.g. downscoping). Authorization Servers <bcp14>SHOULD</bcp14> verify that the requested scopes are not higher privileged than the scopes of the presented subject_token.
For example, a cloud-based development platform that allows developers to access APIs across multiple trust domains where a developer in domain A requests access to an API in domain B but only needs limited permissions, such as "read-only" access.
The authorization server in domain A transcribes the claims into the JWT authorization grant to reflect the downscoped permissions, removing higher-privileged claims like "write" or "admin." This ensures that the access token issued by domain B aligns with the developer's intended scope of access.</t>
          </li>
          <li>
            <t><strong>Including JWT authorization grant claims</strong>: The authorization server in trust domain B which is performing the assertion flow can leverage claims from the JWT authorization grant presented by the client in trust domain A and include them in the returned access token.</t>
          </li>
        </ul>
        <t>The representation of transcribed claims and their format is not defined in this specification.</t>
        <t>When transcribing claims, it's
important that both the place where the claims are given and where they
are interpreted agree on the semantics and that the access controls are
consistent.</t>
      </section>
    </section>
    <section anchor="authorization-server-metadata">
      <name>Authorization Server Metadata</name>
      <t>The following authorization server metadata parameter is defined by this specification and is registered in the "OAuth Authorization Server Metadata" registry established in "OAuth 2.0 Authorization Server Metadata" <xref target="RFC8414"/>.</t>
      <dl newline="true">
        <dt>identity_chaining_requested_token_types_supported</dt>
        <dd>
          <t><bcp14>OPTIONAL</bcp14>. JSON array containing a list of Token Types that can be requested as a <tt>requested_token_type</tt> in the Token Exchange request when performing Identity and Authorization Chaining Across Domains. In situations where it might be an information disclosure concern, authorization servers <bcp14>MAY</bcp14> choose not to advertise some supported requested token types even when this parameter is used, and lack of a value does not necessarily mean that the token type is unsupported.</t>
        </dd>
      </dl>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <section anchor="oauth-authorization-server-metadata-registry">
        <name>OAuth Authorization Server Metadata Registry</name>
        <t>This specification requests registration of the following parameter in the "OAuth Authorization Server Metadata" registry established in <xref target="RFC8414"/>.</t>
        <section anchor="registry-contents">
          <name>Registry Contents</name>
          <ul spacing="normal">
            <li>
              <t>Metadata Name: <tt>identity_chaining_requested_token_types_supported</tt></t>
            </li>
            <li>
              <t>Metadata Description: JSON array containing a list of Token Type Identifiers supported as a <tt>requested_token_type</tt> in an Identity and Authorization Chaining Token Exchange (<xref target="RFC8693"/>) request.</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="authorization-server-metadata"/> of [[this document]]</t>
            </li>
          </ul>
          <t>The parameter indicates the supported token types that can be requested in an <xref target="RFC8693"/> Token Exchange.</t>
        </section>
      </section>
      <section anchor="media-types">
        <name>Media Types</name>
        <t>This specification does not define any new media types.</t>
        <t>Profiles or deployment-specific implementations can adopt explicit typing as defined in JSON Web Token Best Current Practices <xref target="RFC8725"/> and define a new media type <xref target="RFC2046"/> in the "Media Types" registry <xref target="IANA.media-types"/> in the manner described in <xref target="RFC6838"/>.</t>
      </section>
    </section>
    <section anchor="Security">
      <name>Security Considerations</name>
      <section anchor="client-authentication">
        <name>Client Authentication</name>
        <t>Authorization Servers should follow Section 2.5 of the Best Current Practice for OAuth 2.0 Security <xref target="RFC9700"/> for client authentication.</t>
      </section>
      <section anchor="sender-constraining">
        <name>Sender Constraining Tokens</name>
        <t>Authorization Servers should follow the Best Current Practice for OAuth 2.0 Security <xref target="RFC9700"/> for sender constraining tokens,
acknowledging, however, that bearer tokens remain the predominantly deployed access token type.</t>
      </section>
      <section anchor="authorized-use-of-subject-token">
        <name>Authorized use of Subject Token</name>
        <t>The authorization server in trust domain A can perform client authentication and verify that the client in trust domain A is authorized to present the token used as a subject_token in the token exchange flow before issuing an authorization grant. By doing so, it minimizes the risk of an attacker making a lateral move by using a stolen token from trust domain A to obtain an authorization grant with which to authenticate to an authorization server in trust domain B and request an access token for a resource server in trust domain B.
Such authorization policy might not be present in all deployments, and is of reduced utility for public clients, but it is a recommended security measure for deployments that can support it.</t>
      </section>
      <section anchor="refresh-tokens">
        <name>Refresh Tokens</name>
        <t>The authorization server in trust domain B <bcp14>SHOULD NOT</bcp14> issue refresh tokens to the client in trust domain A within the scope of this specification. When the access token has expired, clients can re-submit the original JWT Authorization Grant (if not expired and reuse is allowed) to obtain a new Access Token. If the JWT Authorization Grant is unusable, the client can request a new grant from the authorization server in trust domain A before presenting it to the authorization server in trust domain B. The issuance of Refresh Tokens by the authorization server in trust domain B introduces a redundant credential requiring additional security measures, and creating unnecessary security risks. It also allows the client to obtain access tokens within trust domain B, even if the initial session in trust domain A has finished (e.g. the user has logged out or access has been revoked).
This is consistent with Section 4.1 of <xref target="RFC7521"/> which discourages but does not prohibit the issuance of refresh tokens in the context of assertion grants.</t>
        <t>The advice of this section is only applicable to refresh token issuance across domains in the context of an assertion grant. It does not relate to the issuance of refresh tokens by the authorization server in trust domain A to the client in trust domain A.</t>
      </section>
      <section anchor="replay-of-authorization-grant">
        <name>Replay of Authorization Grant</name>
        <t>The authorization grant obtained from the Token Exchange process is a bearer token. If an attacker obtains an authorization grant issued to a client in trust domain A, it could replay it to an authorization server in trust domain B to obtain an access token. Implementations must evaluate this risk and deploy appropriate mitigations based on their threat model and deployment environment. Mitigations include, but are not limited to:</t>
        <ul spacing="normal">
          <li>
            <t>Issuing short-lived authorization grants to minimize the window of exposure.</t>
          </li>
          <li>
            <t>Limiting authorization grants to a single use to prevent repeated replay.</t>
          </li>
          <li>
            <t>Requiring client authentication to ensure the client presenting the grant is known to the authorization server in trust domain B.</t>
          </li>
        </ul>
        <t>Authorization servers in trust domain B can enforce these mitigations.</t>
        <t>Implementations and profiles of this specification <bcp14>MAY</bcp14> define additional mitigations tailored to specific use cases and operational contexts.</t>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>In addition to the privacy considerations outlined in <xref target="RFC8693"/> and <xref target="RFC7523"/>, additional privacy considerations apply to this specification.</t>
      <t>This specification enables the exchange of tokens and claims between disparate trust domains.
If excessive or unnecessary user data is included in these tokens, it may lead to unintended privacy consequences.
As noted in <xref target="RFC8693"/> and <xref target="RFC7523"/>, deployments should determine the minimum amount of information necessary to complete the exchange and ensure that only that information is included in the token.</t>
      <t>Inconsistent user privacy practices can result from varying interpretations and implementations of the protocol across authorization servers in different trust domains.
This inconsistency can lead to a lack of transparency and user control over what data is shared and with whom.
To mitigate this, trust relationships between domains must be carefully established and maintained with user privacy in mind.
This includes verifying that privacy policies are aligned across trust domains and clearly define how user data is collected, used, and protected.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-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="RFC8693">
          <front>
            <title>OAuth 2.0 Token Exchange</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="A. Nadalin" initials="A." surname="Nadalin"/>
            <author fullname="B. Campbell" initials="B." role="editor" surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
            <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="RFC7521">
          <front>
            <title>Assertion Framework for OAuth 2.0 Client Authentication and Authorization Grants</title>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="Y. Goland" initials="Y." surname="Goland"/>
            <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="RFC7523">
          <front>
            <title>JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>This specification defines the use of a JSON Web Token (JWT) Bearer Token as a means for requesting an OAuth 2.0 access token as well as for client authentication.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7523"/>
          <seriesInfo name="DOI" value="10.17487/RFC7523"/>
        </reference>
        <reference anchor="RFC8707">
          <front>
            <title>Resource Indicators for OAuth 2.0</title>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document specifies an extension to the OAuth 2.0 Authorization Framework defining request parameters that enable a client to explicitly signal to an authorization server about the identity of the protected resource(s) to which it is requesting access.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8707"/>
          <seriesInfo name="DOI" value="10.17487/RFC8707"/>
        </reference>
        <reference anchor="RFC8414">
          <front>
            <title>OAuth 2.0 Authorization Server Metadata</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <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="RFC8725">
          <front>
            <title>JSON Web Token Best Current Practices</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="D. Hardt" initials="D." surname="Hardt"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>JSON Web Tokens, also known as JWTs, are URL-safe JSON-based security tokens that contain a set of claims that can be signed and/or encrypted. JWTs are being widely used and deployed as a simple security token format in numerous protocols and applications, both in the area of digital identity and in other application areas. This Best Current Practices document updates RFC 7519 to provide actionable guidance leading to secure implementation and deployment of JWTs.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="225"/>
          <seriesInfo name="RFC" value="8725"/>
          <seriesInfo name="DOI" value="10.17487/RFC8725"/>
        </reference>
        <reference anchor="RFC2046">
          <front>
            <title>Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="N. Borenstein" initials="N." surname="Borenstein"/>
            <date month="November" year="1996"/>
            <abstract>
              <t>This second document defines the general structure of the MIME media typing system and defines an initial set of media types. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2046"/>
          <seriesInfo name="DOI" value="10.17487/RFC2046"/>
        </reference>
        <reference anchor="RFC6838">
          <front>
            <title>Media Type Specifications and Registration Procedures</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="January" year="2013"/>
            <abstract>
              <t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols. This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="13"/>
          <seriesInfo name="RFC" value="6838"/>
          <seriesInfo name="DOI" value="10.17487/RFC6838"/>
        </reference>
        <reference anchor="RFC9700">
          <front>
            <title>Best Current Practice for OAuth 2.0 Security</title>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="A. Labunets" initials="A." surname="Labunets"/>
            <author fullname="D. Fett" initials="D." surname="Fett"/>
            <date month="January" year="2025"/>
            <abstract>
              <t>This document describes best current security practice for OAuth 2.0. It updates and extends the threat model and security advice given in RFCs 6749, 6750, and 6819 to incorporate practical experiences gathered since OAuth 2.0 was published and covers new threats relevant due to the broader application of OAuth 2.0. Further, it deprecates some modes of operation that are deemed less secure or even insecure.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="240"/>
          <seriesInfo name="RFC" value="9700"/>
          <seriesInfo name="DOI" value="10.17487/RFC9700"/>
        </reference>
        <reference anchor="RFC9728">
          <front>
            <title>OAuth 2.0 Protected Resource Metadata</title>
            <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
            <author fullname="P. Hunt" initials="P." surname="Hunt"/>
            <author fullname="A. Parecki" initials="A." surname="Parecki"/>
            <date month="April" year="2025"/>
            <abstract>
              <t>This specification defines a metadata format that an OAuth 2.0 client or authorization server can use to obtain the information needed to interact with an OAuth 2.0 protected resource.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9728"/>
          <seriesInfo name="DOI" value="10.17487/RFC9728"/>
        </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="IANA.media-types" target="https://www.iana.org/assignments/media-types">
          <front>
            <title>Media Types</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
      </references>
    </references>
    <?line 390?>

<section anchor="use-cases">
      <name>Use cases</name>
      <t>This appendix outlines some use cases where the identity and authorization chaining described in this document can be applied. The use cases described are not exhaustive, but are representative of the type of use cases enabled by this specification. Other use cases may also be supported by this specification.</t>
      <section anchor="preserve-user-context-across-multi-cloud-multi-hybrid-environments">
        <name>Preserve User Context across Multi-cloud, Multi-Hybrid environments</name>
        <t>A user attempts to access a service that is implemented as a number of on-premise and cloud-based workloads. Both the on-premise and cloud-based services are segmented by multiple trust boundaries that span one or more on-premise or cloud service environments. Each workload can apply an authorization policy that takes the context of the original user, as well as intermediary services into account, irrespective of where the workloads are running and even when a workload in one trust domain calls another service in another trust domain.</t>
      </section>
      <section anchor="continuous-integration-accessing-external-resources">
        <name>Continuous Integration Accessing External Resources</name>
        <t>A continuous integration system needs to access external resources, for example to upload an artifact or to run tests. These resources are protected by different authorization servers. The identity information of the build, for example metadata such as commit hashes or repository, should be preserved and carried across the domain boundary. This not just prevents maintaining credentials it also allows fine-grained access control at the resource.</t>
      </section>
      <section anchor="api-security-use-case">
        <name>API Security Use Case</name>
        <t>A home devices company provides a "Camera API" to enable access to home cameras. Partner companies use this Camera API to integrate the camera feeds into their security dashboards. Using OAuth between the partner and the Camera API, a partner can request the feed from a home camera to be displayed in their dashboard. The user has an account with the camera provider. The user may be logged in to view the partner provided dashboard, or they may authorize emergency access to the camera. The home devices company must be able to independently verify that the request originated and was authorized by a user who is authorized to view the feed of the requested home camera.</t>
      </section>
      <section anchor="extend-single-sign-on-to-api-access">
        <name>Extend Single Sign-On to API Access</name>
        <t>A user that authenticated to an enterprise Identity Provider (IdP) does not have to sign in to multiple SaaS applications if the SaaS applications are configured to trust the enterprise IdP. It is possible to extend this SSO relationship to API access by allowing the Client to contact the enterprise IdP and exchange the identity assertion (ID Token or SAML Token) that it previously received from the enterprise IdP for an authorization grant. The authorization grant can be used to obtain an access token from the SaaS application's authorization server, provided that a trust relationship has been established between the enterprise IdP which issues the authorization grant and the SaaS authorization server. As a result SaaS servers that trust the enterprise IdP do not require the user to complete an interactive delegated OAuth 2.0 flow to obtain an access token to access the SaaS provider's APIs.</t>
      </section>
      <section anchor="cross-domain-api-authorization">
        <name>Cross-domain API authorization</name>
        <t>An email client can be used with arbitrary email servers, without requiring pre-established relationships between each email client and each email server. An email client obtains an identity assertion (ID Token or SAML token) from an IdP. When the email client needs access to a separate API, such as a third-party calendaring application, the email client exchanges the identity assertion for an authorization grant and uses this authorization grant to obtain an access token for the third-party calendaring application from the authorization server trusted by the third-party calendaring application. If the authorization server trusts the issuer of the authorization grant, the email client obtains an access token without any additional user interaction.</t>
      </section>
    </section>
    <section anchor="Examples">
      <name>Examples</name>
      <t>This appendix contains two examples, demonstrating how this specification may be used in different environments with specific requirements. The first example shows the resource server acting as the client and the second example shows the authorization server acting as the client.</t>
      <section anchor="resource-server-acting-as-client">
        <name>Resource server acting as client</name>
        <t>As part of completing a request, a resource server in trust domain A may need to access a resource server in trust domain B. This requires the resource server in trust domain A to obtain an Access Token from an authorization server in trust domain B, which it may then present to the resource server in trust domain B. A resource server in trust domain A may use the flows described in this specification by assuming the role of a client when attempting to access the resource server in trust domain B. Resource servers may act as clients if the following is true:</t>
        <ul spacing="normal">
          <li>
            <t>The resource server has the ability to determine the authorization server of the protected resource outside trust domain A.</t>
          </li>
          <li>
            <t>The authorization server in trust domain B is reachable by the resource server in trust domain A and is able to perform the appropriate client authentication (if required).</t>
          </li>
        </ul>
        <t>The flow would look like this:</t>
        <figure>
          <name>Resource server acting as client</name>
          <artwork><![CDATA[
+-------------+       +---------------+     +-------------+ +---------+
|Authorization|       |Resource Server|     |Authorization| |Protected|
|Server       |       |Trust Domain A |     |Server       | |Resource |
|Trust        |       |(acting as     |     |Trust        | |Trust    |
|Domain A     |       | a client)     |     |Domain B     | |Domain B |
+-------------+       +---------------+     +-------------+ +---------+
       |                     |                     |             |
       |                     |   (1) request protected resource  |
       |                     |      metadata                     |
       |                     | --------------------------------->|
       |                     | <- - - - - - - - - - - - - - - - -|
       |                     |                     |             |
       | (2) exchange token  |                     |             |
       |   [RFC 8693]        |                     |             |
       |<--------------------|                     |             |
       |                     |                     |             |
       | (3) <authorization  |                     |             |
       |        grant>       |                     |             |
       | - - - - - - - - -  >|                     |             |
       |                     |                     |             |
       |                     | (4) present         |             |
       |                     |  authorization      |             |
       |                     |  grant [RFC 7523]   |             |
       |                     |-------------------->|             |
       |                     |                     |             |
       |                     | (5) <access token>  |             |
       |                     |<- - - - - - - - - - |             |
       |                     |                     |             |
       |                     |               (6) access          |
       |                     | --------------------------------->|
       |                     |                     |             |
]]></artwork>
        </figure>
        <t>The flow contains the following steps:</t>
        <t>The resource server of trust domain A needs to access protected resource in trust domain B. It requires an access token to do so. In order to obtain the required access token, the resource server in trust domain A will act as a client.</t>
        <ol spacing="normal" type="1"><li>
            <t>The resource server (acting as a client) in trust domain A requests protected resource metadata from the resource server in trust domain B as described in <xref target="RFC9728"/>. It uses the resource metadata to discover information about the authorization server for trust domain B. This step <bcp14>MAY</bcp14> be skipped if discovery is not needed and other means of discovery <bcp14>MAY</bcp14> be used. The protected resource in trust domain B returns its metadata along with the authorization server information in trust domain A.</t>
          </li>
          <li>
            <t>Once the resource server (acting as a client) in trust domain A identified the authorization server for trust domain B, it requests a JWT authorization grant for the authorization server in trust domain B from the authorization server in trust domain A (its own authorization server). This happens via the token exchange protocol (See <xref target="token-exchange">Token Exchange</xref>).</t>
          </li>
          <li>
            <t>If successful, the authorization server in trust domain A returns a JWT authorization grant to the resource server (acting as client) in trust domain A.</t>
          </li>
          <li>
            <t>The resource server (acting as client) in trust domain A presents the JWT authorization grant to the authorization server in trust domain B.</t>
          </li>
          <li>
            <t>The authorization server in trust domain B uses claims from the JWT authorization grant to identify the user and establish additional authorization context. If access is granted, the authorization server in trust domain B returns an access token.</t>
          </li>
          <li>
            <t>The resource server (acting as a client) in trust domain A uses the access token to access the protected resource in trust domain B.</t>
          </li>
        </ol>
      </section>
      <section anchor="authorization-server-acting-as-client">
        <name>Authorization server acting as client</name>
        <t>Authorization servers may act as clients too. This can be necessary because of following reasons:</t>
        <ul spacing="normal">
          <li>
            <t>Clients in trust domain A may not have knowledge of authorization servers in trust domain B.</t>
          </li>
          <li>
            <t>Clients in trust domain A may not have network access to other authorization servers in trust domain B.</t>
          </li>
          <li>
            <t>Strict access control on resources in trust domain B is required. This access control is enforced by authorization servers in trust domain B.</t>
          </li>
          <li>
            <t>Authorization servers in trust domain B require client authentication, but are unable to manage clients outside of trust domain B.</t>
          </li>
        </ul>
        <t>Under these conditions, an authorization server in trust domain A may obtain an access token from an authorization server in trust domain B on-behalf-of any client in trust domain A. This enables clients in trust domain A to access a protected resource server in trust domain B. Resource servers in trust domain A may act as a client to the authorization server in trust domain A in order to obtain an access token to access a protected resource in trust domain B in order to complete a request.</t>
        <t>The authorization server in trust domain A may use the flows described in this specification by acting first as a client to itself to obtain an assertion grant and then act as a client to the authorization server in trust domain B to request an access token for a protected resource in trust domain B. The flow when authorization servers act as a client on-behalf of another client in its own trust domain is shown below:</t>
        <figure>
          <name>Authorization server acting as client</name>
          <artwork><![CDATA[
+--------+          +--------------+       +--------------+ +---------+
|Client  |          |Authorization |       |Authorization | |Protected|
|Trust   |          |Server        |       |Server        | |Resource |
|Domain A|          |Trust Domain A|       |Trust Domain B| |Trust    |
|        |          |(acting as    |       |              | |Domain   |
|        |          |client)       |       |              | |         |
+--------+          +--------------+       +--------------+ +---------+
    |                      |                       |             |
    | (1) request          |                       |             |
    | token for            |                       |             |
    | protected resource   |                       |             |
    | in trust domain B.   |                       |             |
    | -------------------->|                       |             |
    |                      |                       |             |
    |                      |----+                  |             |
    |                      |    | (2) determine    |             |
    |                      |<---+ authorization    |             |
    |                      |      server trust     |             |
    |                      |      domain B         |             |
    |                      |                       |             |
    |                      |----+                  |             |
    |                      |    | (3) generates    |             |
    |                      |<---+ authorization    |             |
    |                      |      grant            |             |
    |                      |                       |             |
    |                      | (4) present           |             |
    |                      |   authorization grant |             |
    |                      |   [RFC 7523]          |             |
    |                      | --------------------->|             |
    |                      |                       |             |
    |                      | (5) <access token>    |             |
    |                      | <- - - - - - - - - - -|             |
    |                      |                       |             |
    |  (6) <access token>  |                       |             |
    | <- - - - - - - - - - |                       |             |
    |                      |                       |             |
    |                      |           (7) access  |             |
    | ---------------------------------------------------------->|
    |                      |                       |             |
]]></artwork>
        </figure>
        <t>The flow contains the following steps:</t>
        <ol spacing="normal" type="1"><li>
            <t>The client in trust domain A requests a token for the protected resource in trust domain B from the authorization server in trust domain A. This specification does not define this step. A profile of Token Exchange <xref target="RFC8693"/> may be used.</t>
          </li>
          <li>
            <t>The authorization server for trust domain A determines the authorization server for trust domain B. This could have been passed by the client, is statically maintained or dynamically resolved.</t>
          </li>
          <li>
            <t>Once the authorization server in trust domain B is determined, the authorization server in domain A generates a JWT authorization grant suitable for presentations to the authorization server in trust domain B.</t>
          </li>
          <li>
            <t>The authorization server in trust domain A acts as a client and presents the JWT authorization grant to the authorization server for trust domain B. This presentation happens between the authorization servers. The authorization server in trust domain A may be required to perform client authentication while doing so. This reflects the <xref target="atr">Access Token Request</xref> in this specification.</t>
          </li>
          <li>
            <t>The authorization server of trust domain B returns an access token for the protected resource in trust domain B to the authorization server (acting as a client) in trust domain A.</t>
          </li>
          <li>
            <t>The authorization server of trust domain A returns the access token to the client in trust domain A.</t>
          </li>
          <li>
            <t>The client in trust domain A uses the received access token to access the protected resource in trust domain B.</t>
          </li>
        </ol>
      </section>
      <section anchor="delegated-key-binding">
        <name>Delegated Key Binding</name>
        <t>In some environments, there is a need to bind the access token issued by the authorization server in trust domain B to a private key held by the client in trust domain A. This is so that the resource server in trust domain B can verify the proof of possession of the private key of the client in trust domain A when the client in trust domain A presents the token to the resource server in trust domain B. Any application in trust domain A may act as a client, including applications that are resource servers in trust domain A and need to access resource servers in trust domain B in order to complete a request.</t>
        <t>In the case where the resource server in trust domain A is acting as the client, the access token may be constrained using existing techniques as described in Security Considerations (See <xref target="sender-constraining">Sender Constraining Tokens</xref>).</t>
        <t>The case where the authorization server in trust domain A is acting as a client is more complicated since the authorization server in trust domain A (acting as client) does not have access to the key material of the client on whose behalf the access token is being requested.</t>
        <t>However, the trust relationship between the authorization server in trust domain A and the authorization server in trust domain B can be leveraged to sender constrain the access token issued by the authorization server in trust domain B. This can be achieved as follows.</t>
        <ul spacing="normal">
          <li>
            <t>The authorization server in trust domain A verifies proof of possession of the key presented by the client.</t>
          </li>
          <li>
            <t>The authorization server in trust domain A then conveys the key of the client in trust domain A in the token request sent to the authorization server in trust domain B. This can, for example, be accomplished by including a "requested_cnf" claim that contains the "cnf" claim of the client in trust domain A, in the assertion authorization grant sent to the authorization server in trust domain B.</t>
          </li>
          <li>
            <t>The authorization server in trust domain B then includes a "cnf" claim that matches the value of the "requested_cnf" claim included in the authorization grant in the returned access token.</t>
          </li>
          <li>
            <t>The client in trust domain A that presents the access token must use the key matching the "cnf" claim to generate a DPoP proof or set up a MTLS session when presenting the access token to a resource server in trust domain B.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="Acknowledgements">
      <name>Acknowledgements</name>
      <t>The editors would like to thank Deb Cooley, Lars Eggert, Patrick Harding, Russ Housley, Joe Jubinski, Watson Ladd, Justin Richer, Adam Rusbridge, and Dean H. Saxe for their valuable input and general support of this work.</t>
    </section>
    <section anchor="document-history">
      <name>Document History</name>
      <t>[[ To be removed from the final specification ]]</t>
      <t>-13</t>
      <ul spacing="normal">
        <li>
          <t>Expand the abstract somewhat to (hopefully) make it more informative</t>
        </li>
      </ul>
      <t>-12</t>
      <ul spacing="normal">
        <li>
          <t>GENART review comments addressed</t>
        </li>
      </ul>
      <t>-11</t>
      <ul spacing="normal">
        <li>
          <t>ARTART review comments addressed</t>
        </li>
      </ul>
      <t>-10</t>
      <ul spacing="normal">
        <li>
          <t>Move Aaron Parecki from contributors to authors in acknowledgement of significant contributions</t>
        </li>
      </ul>
      <t>-09</t>
      <ul spacing="normal">
        <li>
          <t>AD comments (hopefully) addressed</t>
        </li>
      </ul>
      <t>-08</t>
      <ul spacing="normal">
        <li>
          <t>Change some references from informative to normative and remove the unused OAuth 2.1 one</t>
        </li>
      </ul>
      <t>-07</t>
      <ul spacing="normal">
        <li>
          <t>Add a (hopefully helpful) sentence to the end of the first paragraph of the Overview</t>
        </li>
        <li>
          <t>Reword bullet (C) of the Overview (because you cannot use public keys to sign)</t>
        </li>
        <li>
          <t>Explicitly reference RFC8693 Section 2.2.2 for token exchange error</t>
        </li>
        <li>
          <t>Try and better explain that the access token request content is more desricption of Sec 2.1 RFC7523 and delete the empty scope parameter</t>
        </li>
        <li>
          <t>Explicitly reference RFC7523 Section 3.1 for authorization grant error</t>
        </li>
        <li>
          <t>Remove a seemingly nonsensical sentence about preventing injection of invalid claims</t>
        </li>
        <li>
          <t>Try and explain why ASs might not want to advertise some supported requested token types</t>
        </li>
        <li>
          <t>Endeavor to qualify the SHOULDs on client auth and sender constrained tokens</t>
        </li>
        <li>
          <t>Qualify the only <bcp14>SHOULD NOT</bcp14> on RTs from assertion grants being inline with historical decisions in RFC7521</t>
        </li>
        <li>
          <t>Quality the Authorized use of Subject Token security recommendations a bit</t>
        </li>
        <li>
          <t>Change Intended Status to Standards Track from Informational</t>
        </li>
      </ul>
      <t>-06</t>
      <ul spacing="normal">
        <li>
          <t>Use IANA.media-types so the tooling can find the media types registry without an explicit target</t>
        </li>
        <li>
          <t>Mention that the RFC8693 token exchange is not strictly necessary, if trust domain A's platform provides other means to obtain a JWT authorization grant</t>
        </li>
        <li>
          <t>Better describe the trust relationship necessary (domain B has to trusts domain A to issue JWT authz grants and trust its signing key(s)) and mention that AS Metadata's <tt>jwks_uri</tt> can be used to obtain the verification keys for trust domain A</t>
        </li>
        <li>
          <t>add a note about agreeing on semantics etc. when transcribing claims</t>
        </li>
        <li>
          <t>Editorial fixes</t>
        </li>
      </ul>
      <t>-05</t>
      <ul spacing="normal">
        <li>
          <t>Editorial pass on Appendix for consistency</t>
        </li>
        <li>
          <t>Clarified introduction</t>
        </li>
        <li>
          <t>Added security considerations for unconstrained authorization grants.</t>
        </li>
        <li>
          <t>Updated some contributors' affiliation and contact information</t>
        </li>
        <li>
          <t>Added examples in claims transcription text</t>
        </li>
        <li>
          <t>Simplify some text in the JWT Authorization Grant section</t>
        </li>
        <li>
          <t>Fix some toolchain complaints and other nitpicks</t>
        </li>
        <li>
          <t>Added some Privacy Considerations</t>
        </li>
        <li>
          <t>Move Mr. Parecki from acknowledgements to contributors in acknowledgement of his contributions</t>
        </li>
        <li>
          <t>Added Authorization Server Metadata registry to publish supported Token Exchange requested token types</t>
        </li>
      </ul>
      <t>-04</t>
      <ul spacing="normal">
        <li>
          <t>Clarified diagrams and description of authorization server acting as a client.</t>
        </li>
        <li>
          <t>Remove references to sd-jwt.</t>
        </li>
        <li>
          <t>Added text to recommend use of explicit typing.</t>
        </li>
        <li>
          <t>Added security consideration on preventing lateral moves.</t>
        </li>
        <li>
          <t>Editorial updates to be consistent about the trust domain for a client, authorization server or resource server.</t>
        </li>
        <li>
          <t>Added sender constraining of tokens to security considerations</t>
        </li>
      </ul>
      <t>-03</t>
      <ul spacing="normal">
        <li>
          <t>Editorial updates</t>
        </li>
      </ul>
      <t>-02</t>
      <ul spacing="normal">
        <li>
          <t>remove recommendation to not use RFC8693's requested_token_type</t>
        </li>
        <li>
          <t>Corrected discrepancy between alphabetic numbering of the diagram and text in the resource acting as client example</t>
        </li>
      </ul>
      <t>-01</t>
      <ul spacing="normal">
        <li>
          <t>limit the authorization grant format to RFC7523 JWT</t>
        </li>
        <li>
          <t>minor example fixes</t>
        </li>
        <li>
          <t>editorial fixes</t>
        </li>
        <li>
          <t>added Aaron Parecki to acknowledgements</t>
        </li>
        <li>
          <t>renamed section headers to be more explicit</t>
        </li>
        <li>
          <t>use more specific term "JWT authorization grant"</t>
        </li>
        <li>
          <t>changed name to "OAuth Identity and Authorization Chaining Across Domains"</t>
        </li>
        <li>
          <t>move use cases to appendix and add continuous integration use case</t>
        </li>
      </ul>
      <t>-00</t>
      <ul spacing="normal">
        <li>
          <t>initial working group version (previously draft-schwenkschuster-oauth-identity-chaining)</t>
        </li>
      </ul>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="A." surname="Tulshibagwale" fullname="Atul Tulshibagwale">
        <organization>SGNL</organization>
        <address>
          <email>atuls@sgnl.ai</email>
        </address>
      </contact>
      <contact initials="G." surname="Fletcher" fullname="George Fletcher">
        <organization>Practical Identity LLC</organization>
        <address>
          <email>george@practicalidentity.com</email>
        </address>
      </contact>
      <contact initials="R." surname="Shekh-Yusef" fullname="Rifaat Shekh-Yusef">
        <organization>Ciena</organization>
        <address>
          <email>rifaat.s.ietf@gmail.com</email>
        </address>
      </contact>
      <contact initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
        <organization/>
        <address>
          <email>hannes.tschofenig@gmx.net</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
