<?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.36 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-fletcher-transaction-token-chaining-profile-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="Txn-Token Chaining Profile">Transaction Token Authorization Grant Profile for OAuth Identity and Authorization Chaining</title>
    <seriesInfo name="Internet-Draft" value="draft-fletcher-transaction-token-chaining-profile-00"/>
    <author initials="G." surname="Fletcher" fullname="George Fletcher">
      <organization>Practical Identity LLC</organization>
      <address>
        <email>george@practicalidentity.com</email>
      </address>
    </author>
    <date year="2026" month="May" day="12"/>
    <workgroup>Web Authorization Protocol</workgroup>
    <keyword>oauth</keyword>
    <keyword>transaction tokens</keyword>
    <keyword>identity chaining</keyword>
    <keyword>cross-domain</keyword>
    <keyword>trust domain</keyword>
    <abstract>
      <?line 142?>

<t>This specification defines a profile of the OAuth Identity and
Authorization Chaining Across Domains
<xref target="I-D.ietf-oauth-identity-chaining"/> mechanism that uses a Transaction
Token (Txn-Token) <xref target="I-D.ietf-oauth-transaction-tokens"/> as the subject
token in a Token Exchange <xref target="RFC8693"/> request to obtain a JWT
Authorization Grant for crossing a trust boundary.</t>
      <t>A Txn-Token is scoped to a single trust domain and represents the
full authorization context of an in-progress transaction, regardless
of whether that transaction was initiated by a human user calling an
external API, by an internal system event, or by an automated
workload.  This profile specifies how a service operating within that
trust domain can present its Txn-Token to obtain a JWT Authorization
Grant that carries the necessary context across a trust boundary,
enabling an access token to be issued for a partner service,
without exposing internal trust-domain credentials or token formats
beyond the trust boundary.</t>
    </abstract>
    <note>
      <name>Note to Readers</name>
      <?line 162?>

<t><em>RFC EDITOR: please remove this section before publication</em></t>
      <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/">https://mailarchive.ietf.org/arch/browse/oauth/</eref>.</t>
      <t>Source for this draft and an issue tracker can be found at
<eref target="https://github.com/george-fletcher/draft-fletcher-transaction-token-chaining-profile">https://github.com/george-fletcher/draft-fletcher-transaction-token-chaining-profile</eref>.</t>
    </note>
  </front>
  <middle>
    <?line 173?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Organizations routinely deploy services that, in fulfilling a
transaction for a user or an automated process, must call one or more
partner APIs that lie outside the organization's own trust boundary.
The challenge is to carry the authorization context of the original
transaction — including the identity and authorization of the
Initiating Principal — across that boundary in a way that is
trustworthy to the partner, without leaking internal credentials or
internal token formats.</t>
      <t>Transaction Tokens (Txn-Tokens) <xref target="I-D.ietf-oauth-transaction-tokens"/>
address the first half of this problem.  A Txn-Token is a
short-lived, cryptographically signed JWT scoped to a single trust
domain (for example, an enterprise or a cloud service provider's
internal environment).  It is minted by a Transaction Token Service
(TTS) at the point where a transaction enters the trust domain and
captures, in immutable form, the identity of the initiating
principal, the purpose of the transaction, and relevant request
parameters.  Every workload within the trust domain that handles the
transaction receives and validates this Txn-Token, ensuring a
consistent and authoritative authorization context throughout the
internal call chain.</t>
      <t>A Txn-Token may represent any of several originating contexts:</t>
      <dl>
        <dt>External User Request:</dt>
        <dd>
          <t>A human user or external client calls an API exposed at the
trust domain's perimeter (e.g., a financial services API that
adds a stock to a watch list on behalf of the user, authenticated
via an OAuth 2.0 access token).  The TTS mints a Txn-Token
anchored to the user's identity and the authorized scope of that
external access token.</t>
        </dd>
        <dt>Internal System Event:</dt>
        <dd>
          <t>An internal system triggers processing that has no direct external
human caller (e.g., an SMTP server receiving an inbound message
and initiating storage of that message in the recipient's mailbox).
The TTS mints a Txn-Token representing the system's identity and
the purpose of the transaction.</t>
        </dd>
        <dt>Automated Workload Request:</dt>
        <dd>
          <t>One workload within the trust domain invokes another as part of
an automated pipeline (e.g., a scheduled job triggering a data
aggregation service).  The Txn-Token represents the workload
identity and the pipeline's authorization scope.</t>
        </dd>
      </dl>
      <t>In all three cases, the Txn-Token provides a uniform, internal
representation of the authorization context.  The problem this
specification addresses is what happens when a service within the
trust domain, in the course of executing such a transaction, needs
to call a service in a <em>different</em> trust domain — a partner
organization, a SaaS provider, or a third-party API — in order to
complete the transaction.</t>
      <t>Consider a mail service within an enterprise trust domain.  Upon
receiving an inbound message via SMTP, the mail service is issued a
Txn-Token representing the mail delivery transaction on behalf of the
recipient user.  Before storing the message, the mail service must
call a partner spam-rating API in the spam service's trust domain.
The mail service cannot present its internal Txn-Token to the spam
service — the Txn-Token is scoped to the enterprise trust domain and
carries internal context that must not be disclosed externally.
Instead, the mail service must obtain a credential that is meaningful
to the spam service's authorization server while preserving the
relevant authorization context of the original transaction.</t>
      <t>The OAuth Identity and Authorization Chaining Across Domains
specification <xref target="I-D.ietf-oauth-identity-chaining"/> defines a general
mechanism by which a client in Trust Domain A can obtain a JWT
Authorization Grant from the Authorization Server of Trust Domain A
and present it to the Authorization Server of Trust Domain B to
receive an access token.  The base specification deliberately leaves
the choice of subject token type open, allowing profiles to constrain
and specialize the mechanism for specific deployment scenarios.</t>
      <t>This specification defines the additional details necessary to use a
Txn-Token as the <tt>subject_token</tt> in the Token Exchange request
described in Section 2.3 of <xref target="I-D.ietf-oauth-identity-chaining"/>.
The Txn-Token is consumed by the Authorization Server of Trust Domain
A, which validates it, applies claims transcription and minimization
policy, and issues a JWT Authorization Grant targeted at the
Authorization Server of Trust Domain B.  The JWT Authorization Grant
crosses the trust boundary carrying only the context that Trust
Domain B is authorized to see.  The Txn-Token itself never leaves
Trust Domain A.</t>
      <t>This profile is complementary to the Identity Assertion JWT
Authorization Grant profile
<xref target="I-D.ietf-oauth-identity-assertion-authz-grant"/>, which targets
deployments where the target authorization server already trusts a
common IdP for SSO and subject resolution, using an OpenID Connect
ID Token or SAML 2.0 assertion as the subject token.  That profile
is optimized for the human-user, single-sign-on scenario, where the
trust relationship between AS-A and AS-B is mediated through a
shared identity provider.  This profile addresses scenarios where
the trust relationship between AS-A and AS-B is established through a
bilateral or federated Cross-Domain Trust Agreement, and where the
input credential is a Txn-Token representing any authorized
transaction within Trust Domain A.</t>
      <t>A detailed structural comparison of the two profiles appears in
<xref target="relationship-to-related-specifications"/>.</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="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>",
"<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", "<bcp14>MAY</bcp14>", and
"<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as described in
BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all
capitals, as shown here.</t>
      <section anchor="roles">
        <name>Roles</name>
        <t>The following roles are used in this document.  They extend the
OAuth 2.0 roles defined in <xref target="RFC6749"/> as used in
<xref target="I-D.ietf-oauth-identity-chaining"/>.</t>
        <dl>
          <dt>Initiating Principal:</dt>
          <dd>
            <t>The entity whose authorization context is captured in the Txn-Token.
The Initiating Principal may be a human user who made an external
request to Trust Domain A, an internal system acting on its own
behalf, or an automated workload operating within Trust Domain A.
The Initiating Principal is not necessarily the same entity as the
Requesting Workload that performs the cross-domain token exchange.</t>
          </dd>
          <dt>Requesting Workload:</dt>
          <dd>
            <t>A service operating inside Trust Domain A that, in the course of
processing a transaction, needs to call a Protected Resource in
Trust Domain B.  The Requesting Workload holds a Txn-Token
representing the current transaction context and acts as the OAuth
2.0 client in the Token Exchange flow with AS-A.</t>
          </dd>
          <dt>Transaction Token Service (TTS):</dt>
          <dd>
            <t>The service within Trust Domain A that mints and signs Txn-Tokens.
The TTS is the authoritative source of transaction authorization
context within Trust Domain A.  In some deployments the TTS and
AS-A <bcp14>MAY</bcp14> be co-located; in others they are separate services within
the same Trust Domain.</t>
          </dd>
          <dt>Authorization Server of Trust Domain A (AS-A):</dt>
          <dd>
            <t>The OAuth 2.0 Authorization Server within Trust Domain A that
receives the Token Exchange request from the Requesting Workload,
validates the presented Txn-Token, applies claims transcription and
minimization policy, and issues the JWT Authorization Grant targeted
at AS-B.</t>
          </dd>
          <dt>Authorization Server of Trust Domain B (AS-B):</dt>
          <dd>
            <t>The OAuth 2.0 Authorization Server within Trust Domain B that
receives the JWT Authorization Grant from the Requesting Workload
and issues an access token for the Protected Resource.</t>
          </dd>
          <dt>Protected Resource:</dt>
          <dd>
            <t>The resource server in Trust Domain B that the Requesting Workload
needs to call in order to complete the transaction in progress in
Trust Domain A.</t>
          </dd>
        </dl>
      </section>
      <section anchor="terms">
        <name>Terms</name>
        <dl>
          <dt>Transaction:</dt>
          <dd>
            <t>A unit of work initiated by an Initiating Principal that may span
multiple workloads within Trust Domain A and that has a single,
coherent authorization context.  A transaction is identified by the
<tt>txn</tt> claim in the Txn-Token.</t>
          </dd>
          <dt>Trust Domain:</dt>
          <dd>
            <t>A deployment-specific security and administrative boundary within
which services, identifiers, credentials, and policy decisions are
mutually trusted.  This term is used in
<xref target="I-D.ietf-oauth-identity-chaining"/> without a formal definition;
this profile formalizes it.  Txn-Tokens are scoped to a single
Trust Domain.  In this specification, Trust Domain A is the Trust
Domain in which the transaction originates and in which the
Requesting Workload operates.  Trust Domain B is the Trust Domain
in which the Protected Resource and AS-B operate.</t>
          </dd>
          <dt>Cross-Domain Trust Agreement:</dt>
          <dd>
            <t>A bilateral or federated configuration through which AS-A and AS-B
establish mutual trust, permitting AS-A to issue JWT Authorization
Grants that AS-B will accept, and defining the subject identifier
mappings, permitted claims, and authorization policy that apply to
cross-domain requests.  The mechanism for establishing this trust
is out of scope for this specification, but <bcp14>MUST</bcp14> be established
prior to any cross-domain token exchange under this profile.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="overview">
      <name>Overview</name>
      <section anchor="transaction-token-context-within-a-trust-domain">
        <name>Transaction Token Context Within a Trust Domain</name>
        <t>A transaction enters Trust Domain A at its perimeter.  The
initiating event may be:</t>
        <t>(a) <strong>An inbound API call from an external client</strong>, in which case
  the external client presents an OAuth 2.0 access token or similar
  credential at the trust domain's API gateway;</t>
        <t>(b) <strong>An internal system event</strong>, such as an SMTP server receiving
  an inbound message, where the triggering input arrives from outside
  the enterprise boundary; or</t>
        <t>(c) <strong>An automated workload trigger</strong>, with no direct external caller,
  such as a scheduled job or an event-driven pipeline invocation.</t>
        <t>In all cases, the workload that first handles the transaction requests
a Txn-Token from the TTS, presenting whatever inbound credential or
context is available.  The TTS validates the inbound context and
mints a Txn-Token that captures the Initiating Principal's identity
(which may be a user identity, a system identity, or a workload
identity), the purpose of the transaction (<tt>scope</tt>), and relevant
request parameters (<tt>rctx</tt>).  The Txn-Token is propagated to all
downstream workloads within Trust Domain A that participate in
processing the transaction.</t>
      </section>
      <section anchor="cross-domain-invocation">
        <name>Cross-Domain Invocation</name>
        <t>When a Requesting Workload within Trust Domain A determines that it
needs to call a Protected Resource in Trust Domain B in order to
complete the transaction, it follows the flow defined in this profile.
The complete end-to-end sequence is illustrated in <xref target="fig-flow"/>.</t>
        <figure anchor="fig-flow">
          <name>Transaction Token Chaining Flow</name>
          <artwork type="ascii-art"><![CDATA[
+----------+  +-----------+  +----------+  +---------+  +---------+
|Initiating|  |Requesting |  |  TTS /   |  |  AS-B   |  |Protected|
| Request  |  | Workload  |  |  AS-A    |  |(Trust B)|  |Resource |
|(Perimeter|  |(Trust A)  |  |(Trust A) |  |         |  |(Trust B)|
| Trust A) |  |           |  |          |  |         |  |         |
+----+-----+  +-----+-----+  +----+-----+  +----+----+  +----+----+
     |               |            |              |             |
     | (1) Inbound   |            |              |             |
     |   Request     |            |              |             |
     | (any origin)  |            |              |             |
     |-------------->|            |              |             |
     |               |            |              |             |
     |               | (2) Request|              |             |
     |               |  Txn-Token |              |             |
     |               |----------->|              |             |
     |               |            |              |             |
     |               | (3) Txn-   |              |             |
     |               |   Token    |              |             |
     |               |<- - - - - -|              |             |
     |               |            |              |             |
     |               | (4) Discover AS-B         |             |
     |               |...(RFC9728)...............|             |
     |               |            |              |             |
     |               | (5) Token Exchange        |             |
     |               |   [RFC8693]|              |             |
     |               | subject_token=Txn-Token   |             |
     |               | audience=AS-B issuer URL  |             |
     |               |----------->|              |             |
     |               |            |              |             |
     |               | (6) JWT Authorization     |             |
     |               |    Grant   |              |             |
     |               |<- - - - - -|              |             |
     |               |            |              |             |
     |               | (7) Present JWT Grant     |             |
     |               |   [RFC7523]               |             |
     |               |-------------------------->|             |
     |               |            |              |             |
     |               | (8) Access Token          |             |
     |               |<- - - - - - - - - - - - - |             |
     |               |            |              |             |
     |               | (9) Call Protected Resource             |
     |               |---------------------------------------->|
     |               |            |              |             |
]]></artwork>
        </figure>
        <t>The steps are as follows:</t>
        <ol spacing="normal" type="1"><li>
            <t>An inbound request arrives at the Requesting Workload's perimeter.
This may be an OAuth 2.0-protected API call from an external user
or client, an SMTP message delivery, a scheduled job trigger, or
any other initiating event.</t>
          </li>
          <li>
            <t>The Requesting Workload (or the first workload within Trust Domain
A that receives the transaction) requests a Txn-Token from the TTS,
presenting the available inbound context (e.g., the external OAuth
2.0 access token, an internal system credential, or a workload
identity), following the Txn-Token issuance procedures defined in
<xref target="I-D.ietf-oauth-transaction-tokens"/>.  The TTS records the
Initiating Principal's identity in the <tt>sub</tt> claim and the
transaction purpose in the <tt>scope</tt> claim of the Txn-Token.</t>
          </li>
          <li>
            <t>The TTS issues a Txn-Token to the Requesting Workload.  The
Txn-Token is scoped to Trust Domain A and <bcp14>MUST NOT</bcp14> be presented
to any entity outside Trust Domain A.</t>
          </li>
          <li>
            <t>The Requesting Workload discovers AS-B using the mechanisms defined
in Section 2.2 of <xref target="I-D.ietf-oauth-identity-chaining"/>, such as
the <tt>authorization_servers</tt> metadata property in the Protected
Resource Metadata <xref target="RFC9728"/> published by the Protected Resource.
The Requesting Workload obtains AS-B's issuer URL for use as the
<tt>audience</tt> parameter in the Token Exchange request.</t>
          </li>
          <li>
            <t>The Requesting Workload presents the Txn-Token as the <tt>subject_token</tt>
in an OAuth 2.0 Token Exchange <xref target="RFC8693"/> request to AS-A,
identifying AS-B in the <tt>audience</tt> parameter and optionally
specifying the target Protected Resource in the <tt>resource</tt>
parameter.  See <xref target="token-exchange-request-parameters"/> for the
full parameter specification.</t>
          </li>
          <li>
            <t>AS-A validates the Txn-Token, verifies that a Cross-Domain Trust
Agreement exists with the indicated AS-B, applies subject
identifier mapping (<xref target="subject-identifier-mapping"/>) and claims
minimization (<xref target="claims-transcription"/>), and issues a signed JWT
Authorization Grant.  The Txn-Token is consumed entirely within
Trust Domain A and is not forwarded.</t>
          </li>
          <li>
            <t>The Requesting Workload presents the JWT Authorization Grant to
AS-B using the JWT Profile for OAuth 2.0 Authorization Grants
<xref target="RFC7523"/>.</t>
          </li>
          <li>
            <t>AS-B validates the JWT Authorization Grant and issues an access
token for the Protected Resource.</t>
          </li>
          <li>
            <t>The Requesting Workload calls the Protected Resource with the
access token, completing the cross-domain portion of the
transaction.</t>
          </li>
        </ol>
      </section>
    </section>
    <section anchor="transaction-token-as-subject-token">
      <name>Transaction Token as Subject Token</name>
      <section anchor="subject-token-requirements">
        <name>Subject Token Requirements</name>
        <t>When this profile is used, the <tt>subject_token</tt> in the Token Exchange
request (Step 5 of <xref target="fig-flow"/>) <bcp14>MUST</bcp14> be a Txn-Token as defined in
<xref target="I-D.ietf-oauth-transaction-tokens"/>.</t>
        <t>The <tt>subject_token_type</tt> parameter <bcp14>MUST</bcp14> be:</t>
        <sourcecode type="abnf"><![CDATA[
subject_token_type =
    "urn:ietf:params:oauth:token-type:txn_token"
]]></sourcecode>
        <t>This value is defined in <xref target="I-D.ietf-oauth-transaction-tokens"/>.</t>
        <t>The Txn-Token presented as the <tt>subject_token</tt> <bcp14>MUST</bcp14> satisfy all of
the validity requirements specified in
<xref target="I-D.ietf-oauth-transaction-tokens"/>, including:</t>
        <ul spacing="normal">
          <li>
            <t>The Txn-Token <bcp14>MUST NOT</bcp14> be expired.</t>
          </li>
          <li>
            <t>The Txn-Token <bcp14>MUST</bcp14> be signed and verifiable by AS-A using keys
published by the TTS.</t>
          </li>
          <li>
            <t>The Txn-Token's <tt>aud</tt> claim <bcp14>MUST</bcp14> identify AS-A (or a value that
AS-A accepts as a valid audience for presented subject tokens).</t>
          </li>
        </ul>
        <t>A Txn-Token failing any of the above checks <bcp14>MUST</bcp14> be rejected per
Section 2.2.2 of <xref target="RFC8693"/>.</t>
      </section>
      <section anchor="txn-token-initiating-principal-context">
        <name>Txn-Token Initiating Principal Context</name>
        <t>The Txn-Token's <tt>sub</tt> claim identifies the Initiating Principal of
the transaction.  The Initiating Principal type is not constrained
by this profile; a Txn-Token may represent any originating context
defined by the Transaction Token specification
<xref target="I-D.ietf-oauth-transaction-tokens"/>.  The following are common
examples:</t>
        <dl>
          <dt>Human User Identity:</dt>
          <dd>
            <t>The <tt>sub</tt> claim identifies a human user whose identity was
established when the transaction entered Trust Domain A via an
OAuth 2.0-protected API call.  In this case the <tt>sub</tt> value is
typically derived from the user's identity in the external access
token presented at the API gateway, and the Txn-Token's <tt>rctx</tt>
claim captures relevant attributes of the external request (such
as the OAuth client identifier and originating IP address).</t>
          </dd>
          <dt>System Identity:</dt>
          <dd>
            <t>The <tt>sub</tt> claim identifies an internal system component (such as
an SMTP server or a messaging gateway) acting in its own right,
with no external user as the Initiating Principal.  The <tt>scope</tt>
claim is particularly significant in this case, as it conveys the
reason for the transaction in the absence of a user-facing
authorization context.</t>
          </dd>
          <dt>Workload Identity:</dt>
          <dd>
            <t>The <tt>sub</tt> claim identifies an automated workload (such as a
scheduled job or pipeline service).  Workload identifiers <bcp14>MAY</bcp14> take
the form of SPIFFE URIs <xref target="I-D.ietf-wimse-arch"/> when
WIMSE-compatible infrastructure is in use within Trust Domain A.</t>
          </dd>
        </dl>
        <t>The above examples are illustrative; other Initiating Principal types
are possible.  The claims transcription rules in
<xref target="claims-transcription"/> and the subject identifier mapping rules in
<xref target="subject-identifier-mapping"/> apply regardless of which Initiating
Principal type the Txn-Token represents.  AS-A <bcp14>MUST</bcp14> map the <tt>sub</tt>
claim to an identifier appropriate for Trust Domain B, applying the
mapping logic defined in the Cross-Domain Trust Agreement for the
Initiating Principal type in question.</t>
      </section>
      <section anchor="token-exchange-request-parameters">
        <name>Token Exchange Request Parameters</name>
        <t>In addition to the subject token requirements in
<xref target="subject-token-requirements"/>, the Token Exchange request
(<xref target="RFC8693"/> Section 2.1) <bcp14>MUST</bcp14> include the following parameters when
this profile is in use.</t>
        <section anchor="identifying-the-target-authorization-server-and-resource">
          <name>Identifying the Target Authorization Server and Resource</name>
          <t>This profile uses the <tt>audience</tt> and <tt>resource</tt> parameters following
the convention in <xref target="I-D.ietf-oauth-identity-assertion-authz-grant"/>
Section 4.3.  The two parameters serve distinct purposes and <bcp14>MUST NOT</bcp14>
be conflated.</t>
          <dl>
            <dt><tt>audience</tt>:</dt>
            <dd>
              <t><bcp14>REQUIRED</bcp14>.  The <tt>issuer</tt> identifier of AS-B (<xref target="RFC8414"/> Section 2).
Becomes the <tt>aud</tt> claim of the JWT Authorization Grant.
Implementations <bcp14>MUST</bcp14> use this parameter to identify AS-B and <bcp14>MUST
NOT</bcp14> pass the AS-B issuer URL as <tt>resource</tt>.</t>
            </dd>
            <dt><tt>resource</tt>:</dt>
            <dd>
              <t><bcp14>OPTIONAL</bcp14>.  A URI identifying the Protected Resource (resource
server) in Trust Domain B, as defined in <xref target="RFC8707"/> Section 2.
When present, AS-A <bcp14>SHOULD</bcp14> propagate this value into the <tt>resource</tt>
claim of the JWT Authorization Grant.</t>
            </dd>
          </dl>
        </section>
        <section anchor="remaining-parameters">
          <name>Remaining Parameters</name>
          <dl>
            <dt><tt>grant_type</tt>:</dt>
            <dd>
              <t><bcp14>REQUIRED</bcp14>.  The value <bcp14>MUST</bcp14> be
<tt>urn:ietf:params:oauth:grant-type:token-exchange</tt>.</t>
            </dd>
            <dt><tt>subject_token</tt>:</dt>
            <dd>
              <t><bcp14>REQUIRED</bcp14>.  The Txn-Token as described in
<xref target="subject-token-requirements"/>.</t>
            </dd>
            <dt><tt>subject_token_type</tt>:</dt>
            <dd>
              <t><bcp14>REQUIRED</bcp14>.  The value <bcp14>MUST</bcp14> be
<tt>urn:ietf:params:oauth:token-type:txn_token</tt>.</t>
            </dd>
            <dt><tt>requested_token_type</tt>:</dt>
            <dd>
              <t><bcp14>OPTIONAL</bcp14>.  When present, the value <bcp14>MUST</bcp14> be
<tt>urn:ietf:params:oauth:token-type:jwt</tt>.  If absent, AS-A <bcp14>MUST</bcp14>
still produce a JWT Authorization Grant conforming to this profile
when the other parameters conform to this profile.</t>
            </dd>
            <dt><tt>scope</tt>:</dt>
            <dd>
              <t><bcp14>OPTIONAL</bcp14>.  Space-separated list of scopes requested for the JWT
Authorization Grant.  AS-A <bcp14>MUST NOT</bcp14> issue a grant with scope
exceeding the <tt>scope</tt> claim of the presented Txn-Token (see
<xref target="claims-transcription"/>).</t>
            </dd>
          </dl>
          <t>The <tt>actor_token</tt> and <tt>actor_token_type</tt> parameters defined in
<xref target="RFC8693"/> are not used in this profile.</t>
        </section>
        <section anchor="example-token-exchange-request">
          <name>Example Token Exchange Request</name>
          <t>The following is a non-normative example conforming to this profile.
A mail service workload in an enterprise (Trust Domain A) has
received an SMTP message and holds a Txn-Token representing a
<tt>mail-delivery</tt> transaction.  The mail service needs to call a
spam-rating API operated by a partner spam service whose
Authorization Server is <tt>https://as.spamsvc.example</tt> and whose
spam-rating API is <tt>https://api.spamsvc.example/spam-rating</tt>.</t>
          <sourcecode type="http-message"><![CDATA[
POST /token HTTP/1.1
Host: as.enterprise.example
Content-Type: application/x-www-form-urlencoded
Authorization: Bearer <mail-service-client-credential>

grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Atoken-exchange
&subject_token=<txn-token>
&subject_token_type=urn%3Aietf%3Aparams%3Aoauth%3Atoken-type%3Atxn_token
&audience=https%3A%2F%2Fas.spamsvc.example
&resource=https%3A%2F%2Fapi.spamsvc.example%2Fspam-rating
&scope=spam.rating.read
]]></sourcecode>
        </section>
        <section anchor="token-exchange-response">
          <name>Token Exchange Response</name>
          <t>If the request is valid and the Requesting Workload is authorized to
receive a JWT Authorization Grant for the indicated audience, AS-A
returns a Token Exchange response as defined in Section 2.2 of
<xref target="RFC8693"/>.</t>
          <dl>
            <dt><tt>access_token</tt>:</dt>
            <dd>
              <t><bcp14>REQUIRED</bcp14>.  The JWT Authorization Grant.  (Token Exchange uses the
<tt>access_token</tt> field for the returned token for historical
compatibility reasons; this is not an OAuth access token.)</t>
            </dd>
            <dt><tt>issued_token_type</tt>:</dt>
            <dd>
              <t><bcp14>REQUIRED</bcp14>.  The value <bcp14>MUST</bcp14> be
<tt>urn:ietf:params:oauth:token-type:jwt</tt>.</t>
            </dd>
            <dt><tt>token_type</tt>:</dt>
            <dd>
              <t><bcp14>REQUIRED</bcp14>.  The value <bcp14>MUST</bcp14> be <tt>N_A</tt>.</t>
            </dd>
            <dt><tt>expires_in</tt>:</dt>
            <dd>
              <t><bcp14>RECOMMENDED</bcp14>.  The lifetime of the JWT Authorization Grant in
seconds.  This value <bcp14>SHOULD</bcp14> reflect the <tt>exp</tt> claim of the
returned grant JWT and <bcp14>SHOULD</bcp14> be short (see
<xref target="jwt-claims-requirements"/>).</t>
            </dd>
            <dt><tt>refresh_token</tt>:</dt>
            <dd>
              <t>This parameter <bcp14>SHOULD NOT</bcp14> be present.</t>
            </dd>
          </dl>
          <t>On error, AS-A returns an error response as defined in Section 5.2
of <xref target="RFC6749"/> and Section 2.2.2 of <xref target="RFC8693"/>.</t>
          <sourcecode type="http-message"><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-cache, no-store

{
  "access_token": "eyJ...<JWT Authorization Grant>...",
  "issued_token_type": "urn:ietf:params:oauth:token-type:jwt",
  "token_type": "N_A",
  "expires_in": 60
}
]]></sourcecode>
        </section>
      </section>
    </section>
    <section anchor="processing-rules">
      <name>Processing Rules</name>
      <section anchor="as-a-processing-rules">
        <name>AS-A Processing Rules</name>
        <t>Upon receipt of a Token Exchange request conforming to this profile,
AS-A <bcp14>MUST</bcp14> perform the following steps:</t>
        <ol spacing="normal" type="1"><li>
            <t>Authenticate the client (Requesting Workload) using the mechanisms
specified in Section 5.1 of <xref target="I-D.ietf-oauth-identity-chaining"/>
and Section 2.5 of <xref target="RFC9700"/>.</t>
          </li>
          <li>
            <t>Validate the Txn-Token signature using the public keys of the TTS
that issued it.  AS-A <bcp14>MUST</bcp14> be configured with the TTS's <tt>jwks_uri</tt>
or equivalent key material.</t>
          </li>
          <li>
            <t>Validate that the Txn-Token is not expired.</t>
          </li>
          <li>
            <t>Validate that the <tt>aud</tt> claim of the Txn-Token identifies AS-A
or a value AS-A is configured to accept as a valid audience for
presented subject tokens.</t>
          </li>
          <li>
            <t>Verify that the <tt>audience</tt> value identifies a known AS-B for which
a Cross-Domain Trust Agreement has been established.  AS-A <bcp14>MUST
NOT</bcp14> accept a resource server URI in <tt>audience</tt> in place of an
AS-B issuer identifier.  If the audience is unknown or disallowed
by policy, AS-A <bcp14>MUST</bcp14> return an error per Section 2.2.2 of
<xref target="RFC8693"/>.</t>
          </li>
          <li>
            <t>If the <tt>resource</tt> parameter is present, validate that it
identifies a Protected Resource within Trust Domain B consistent
with the indicated AS-B.  AS-A <bcp14>SHOULD</bcp14> propagate the <tt>resource</tt>
value into the <tt>resource</tt> claim of the JWT Authorization Grant.</t>
          </li>
          <li>
            <t>Validate that the requested <tt>scope</tt>, if present, does not exceed
the <tt>scope</tt> claim of the Txn-Token.  AS-A <bcp14>MUST NOT</bcp14> issue a JWT
Authorization Grant with broader scope than the Txn-Token asserts.</t>
          </li>
          <li>
            <t>Determine the Initiating Principal type from the Txn-Token and
apply the appropriate subject identifier mapping as described in
<xref target="subject-identifier-mapping"/>.  If no mapping can be determined,
AS-A <bcp14>MUST</bcp14> return an error.</t>
          </li>
          <li>
            <t>Apply claims transcription and minimization policy as described in
<xref target="claims-transcription"/>.</t>
          </li>
          <li>
            <t>Construct and sign the JWT Authorization Grant as described in
<xref target="jwt-authorization-grant"/>, setting the <tt>aud</tt> claim to the AS-B
issuer identifier resolved in step 5.</t>
          </li>
          <li>
            <t>Return the JWT Authorization Grant in the Token Exchange response
as described in <xref target="token-exchange-request-parameters"/>.</t>
          </li>
        </ol>
      </section>
      <section anchor="as-b-processing-rules">
        <name>AS-B Processing Rules</name>
        <t>Upon receipt of a JWT Bearer grant request (<xref target="RFC7523"/>) conforming
to this profile, AS-B <bcp14>MUST</bcp14> perform the following steps in addition
to the processing rules specified in Section 2.4.2 of
<xref target="I-D.ietf-oauth-identity-chaining"/>:</t>
        <ol spacing="normal" type="1"><li>
            <t>Validate the <tt>typ</tt> header of the JWT Authorization Grant.  The
value <bcp14>MUST</bcp14> be <tt>txn-chain+jwt</tt> as defined in <xref target="jwt-authorization-grant"/>.</t>
          </li>
          <li>
            <t>Validate that the <tt>aud</tt> claim matches AS-B's own issuer identifier.</t>
          </li>
          <li>
            <t>Validate that the <tt>iss</tt> claim identifies an AS-A with which a
Cross-Domain Trust Agreement has been established, and validate
the JWT signature using the public keys advertised by that AS-A.</t>
          </li>
          <li>
            <t>Validate that the JWT is not expired and that the <tt>jti</tt> value has
not been previously presented (single-use enforcement).</t>
          </li>
          <li>
            <t>Resolve the subject from the <tt>sub</tt> claim according to the mapping
rules defined in the Cross-Domain Trust Agreement.  AS-B <bcp14>SHOULD</bcp14>
evaluate the <tt>sub</tt> claim against its configured cross-domain
access policy; supplementary identifiers in <tt>txn_claims</tt> (e.g.,
<tt>email</tt>) <bcp14>MAY</bcp14> also be used for subject resolution where the
Cross-Domain Trust Agreement permits.  If subject resolution fails
and the Cross-Domain Trust Agreement does not permit Just-In-Time
provisioning, AS-B <bcp14>MUST</bcp14> return an error.</t>
          </li>
          <li>
            <t>If present, evaluate the <tt>txn_claims</tt> claim to apply
context-aware authorization policy (see <xref target="claims-transcription"/>),
for example verifying that the <tt>scope</tt> value is consistent with
the requested scope.</t>
          </li>
          <li>
            <t>Issue an access token constrained by the <tt>scope</tt> and, if present,
the <tt>resource</tt> claim in the JWT Authorization Grant.  AS-B <bcp14>SHOULD
NOT</bcp14> issue refresh tokens, consistent with Section 5.4 of
<xref target="I-D.ietf-oauth-identity-chaining"/>.</t>
          </li>
        </ol>
      </section>
    </section>
    <section anchor="jwt-authorization-grant">
      <name>JWT Authorization Grant</name>
      <section anchor="grant-format">
        <name>Grant Format</name>
        <t>The JWT Authorization Grant produced by AS-A in response to a Token
Exchange request conforming to this profile is a JWT <xref target="RFC7519"/>
that <bcp14>MUST</bcp14> conform to the JWT Authorization Grant requirements
specified in Section 2.3.3 of <xref target="I-D.ietf-oauth-identity-chaining"/>.</t>
        <section anchor="jwt-header">
          <name>JWT Header</name>
          <dl>
            <dt>typ:</dt>
            <dd>
              <t><bcp14>REQUIRED</bcp14>.  The value <bcp14>MUST</bcp14> be <tt>txn-chain+jwt</tt> (<xref target="RFC8725"/>).</t>
            </dd>
            <dt>alg:</dt>
            <dd>
              <t><bcp14>REQUIRED</bcp14>.  An asymmetric signing algorithm.  Deployments <bcp14>SHOULD</bcp14>
use PS256, PS384, PS512, ES256, ES384, or ES512 as defined in
<xref target="RFC7519"/>.  The <tt>none</tt> algorithm and symmetric algorithms are
prohibited.</t>
            </dd>
            <dt>kid:</dt>
            <dd>
              <t><bcp14>RECOMMENDED</bcp14>.  The key identifier corresponding to the signing key.</t>
            </dd>
          </dl>
        </section>
        <section anchor="jwt-claims-requirements">
          <name>JWT Claims Requirements</name>
          <t>The following claims <bcp14>MUST</bcp14> be present:</t>
          <dl>
            <dt>iss:</dt>
            <dd>
              <t><bcp14>REQUIRED</bcp14>.  The Issuer identifier of AS-A (<xref target="RFC8414"/> Section 2).</t>
            </dd>
            <dt>sub:</dt>
            <dd>
              <t><bcp14>REQUIRED</bcp14>.  The Initiating Principal's identity as mapped by AS-A
according to <xref target="subject-identifier-mapping"/>.  The value <bcp14>MUST</bcp14> be
meaningful to AS-B within the context of the Cross-Domain Trust
Agreement.</t>
            </dd>
            <dt>aud:</dt>
            <dd>
              <t><bcp14>REQUIRED</bcp14>.  The Issuer URL of AS-B, derived from the <tt>audience</tt>
parameter of the Token Exchange request.  <bcp14>MUST</bcp14> be a single value
to prevent grant replay at an unintended authorization server.</t>
            </dd>
            <dt>iat:</dt>
            <dd>
              <t><bcp14>REQUIRED</bcp14>.  Issuance time (<xref target="RFC7519"/> Section 4.1.6).</t>
            </dd>
            <dt>exp:</dt>
            <dd>
              <t><bcp14>REQUIRED</bcp14>.  Expiration time (<xref target="RFC7519"/> Section 4.1.4).  The
lifetime <bcp14>SHOULD</bcp14> be short.  Deployments <bcp14>SHOULD</bcp14> use a value no
greater than 300 seconds and <bcp14>SHOULD</bcp14> prefer values of 60 seconds or
less, consistent with the short-lived nature of Txn-Tokens.</t>
            </dd>
            <dt>jti:</dt>
            <dd>
              <t><bcp14>REQUIRED</bcp14>.  A unique identifier for this JWT (<xref target="RFC7519"/> Section
4.1.7).  AS-B <bcp14>MUST</bcp14> enforce single-use semantics by tracking
presented <tt>jti</tt> values within the grant's validity window.</t>
            </dd>
            <dt>scope:</dt>
            <dd>
              <t><bcp14>RECOMMENDED</bcp14>.  The authorized scope (<xref target="RFC6749"/> Section 3.3).
<bcp14>MUST NOT</bcp14> be wider than the <tt>scope</tt> claim of the source Txn-Token.</t>
            </dd>
          </dl>
          <t>The following claims <bcp14>SHOULD</bcp14> be present:</t>
          <dl>
            <dt>txn:</dt>
            <dd>
              <t>The unique transaction identifier from the originating Txn-Token
(<xref target="I-D.ietf-oauth-transaction-tokens"/>).  AS-B <bcp14>SHOULD</bcp14> record this
value in its audit logs.</t>
            </dd>
          </dl>
          <t>The following claims <bcp14>MAY</bcp14> be present:</t>
          <dl>
            <dt>resource:</dt>
            <dd>
              <t>A URI or array of URIs identifying the Protected Resource(s) in
Trust Domain B (<xref target="RFC8707"/> Section 2), derived from the <tt>resource</tt>
parameter of the Token Exchange request.  AS-B <bcp14>SHOULD</bcp14> use this to
issue a resource-bound access token.</t>
            </dd>
            <dt>txn_claims:</dt>
            <dd>
              <t>A JSON object containing a curated subset of Txn-Token claims,
selected and minimized per the policy in <xref target="claims-transcription"/>.
AS-B <bcp14>MAY</bcp14> use these claims for context-aware authorization decisions.</t>
            </dd>
            <dt>cnf:</dt>
            <dd>
              <t>If sender-constraining is in use (see <xref target="sender-constraining"/>),
the confirmation method claim conveying the Requesting Workload's
public key, as defined in <xref target="RFC7800"/>.</t>
            </dd>
          </dl>
        </section>
        <section anchor="example-jwt-authorization-grant">
          <name>Example JWT Authorization Grant</name>
          <t>The following is a non-normative example corresponding to the mail
service scenario in <xref target="token-exchange-request-parameters"/>.  The
Initiating Principal is the mail service's system identity
(<tt>mail-gateway@enterprise.example</tt>) and the Txn-Token's <tt>rctx</tt>
carries the SMTP envelope sender.  The <tt>scope</tt> and a minimized <tt>rctx</tt>
are transcribed into <tt>txn_claims</tt>.</t>
          <t>Header:</t>
          <sourcecode type="json"><![CDATA[
{
  "typ": "txn-chain+jwt",
  "alg": "ES256",
  "kid": "as-enterprise-2026-01"
}
]]></sourcecode>
          <t>Claims:</t>
          <sourcecode type="json"><![CDATA[
{
  "iss": "https://as.enterprise.example",
  "sub": "mail-gateway@enterprise.example",
  "aud": "https://as.spamsvc.example",
  "iat": 1746700000,
  "exp": 1746700060,
  "jti": "8f14e45f-ceee-467a-a19e-ab8f290a1f30",
  "scope": "spam.rating.read",
  "resource": "https://api.spamsvc.example/spam-rating",
  "txn": "a9b2c3d4-e5f6-7890-abcd-ef1234567890",
  "txn_claims": {
    "scope": "mail-delivery",
    "rctx": {
      "smtp_from": "sender@external.example"
    }
  }
}
]]></sourcecode>
          <t>The <tt>aud</tt> claim (<tt>https://as.spamsvc.example</tt>) identifies the
authorization server of Trust Domain B.  The <tt>resource</tt> claim
(<tt>https://api.spamsvc.example/spam-rating</tt>) identifies the specific
API endpoint.  These are distinct values serving distinct purposes.</t>
        </section>
      </section>
    </section>
    <section anchor="claims-transcription">
      <name>Claims Transcription</name>
      <t>This profile constrains and extends the claims transcription rules of
Section 2.5 of <xref target="I-D.ietf-oauth-identity-chaining"/> as follows.</t>
      <section anchor="mandatory-transcriptions">
        <name>Mandatory Transcriptions</name>
        <t>AS-A <bcp14>MUST</bcp14> derive the <tt>sub</tt> claim of the JWT Authorization Grant from
the <tt>sub</tt> claim of the Txn-Token, applying the subject identifier
mapping defined in <xref target="subject-identifier-mapping"/>.</t>
        <t>AS-A <bcp14>MUST</bcp14> include the <tt>txn</tt> claim from the Txn-Token as the <tt>txn</tt>
claim in the JWT Authorization Grant, preserving the transaction
correlation identifier across the domain boundary.</t>
      </section>
      <section anchor="constrained-scope-transcription">
        <name>Constrained Scope Transcription</name>
        <t>The scope in the JWT Authorization Grant <bcp14>MUST</bcp14> be the intersection of
the Txn-Token's <tt>scope</tt> claim and the <tt>scope</tt> parameter of the Token
Exchange request (if present).  AS-A <bcp14>MUST NOT</bcp14> expand scope beyond the
Txn-Token's scope under any circumstances.</t>
      </section>
      <section anchor="subject-identifier-mapping">
        <name>Subject Identifier Mapping</name>
        <t>The <tt>sub</tt> claim of the Txn-Token identifies the Initiating Principal
within Trust Domain A's namespace.  AS-A <bcp14>MUST</bcp14> translate this
identifier to a form that is both meaningful and authorized for use
in Trust Domain B, according to the mapping rules defined in the
Cross-Domain Trust Agreement.  The Cross-Domain Trust Agreement <bcp14>MUST</bcp14>
define mapping rules for every Initiating Principal type that may
appear in Txn-Tokens exchanged under this profile.  If no mapping
can be determined for the Initiating Principal presented, AS-A <bcp14>MUST</bcp14>
deny the Token Exchange request.</t>
      </section>
      <section anchor="claims-minimization">
        <name>Claims Minimization</name>
        <t>Txn-Tokens <bcp14>MUST NOT</bcp14> be forwarded across trust boundaries.
The JWT Authorization Grant is the only artifact that crosses the
boundary, and AS-A <bcp14>MUST</bcp14> apply strict claims minimization.</t>
        <t>The optional <tt>txn_claims</tt> object in the JWT Authorization Grant <bcp14>MAY</bcp14>
carry a curated subset of Txn-Token claims that are relevant to
AS-B's authorization policy.  AS-A <bcp14>MUST</bcp14> apply the following
minimization rules:</t>
        <dl>
          <dt>Purpose Claim (<tt>scope</tt>):</dt>
          <dd>
            <t><bcp14>SHOULD</bcp14> be included when it is meaningful to AS-B's authorization
policy (e.g., to enable the Protected Resource to apply different
handling based on transaction type).</t>
          </dd>
          <dt>Requester Context (<tt>rctx</tt>):</dt>
          <dd>
            <t><bcp14>MAY</bcp14> be included in a minimized form.  Information relevant to the
cross-domain request (e.g., the originating client IP address for
a user-initiated transaction, or the SMTP envelope sender address
for a mail delivery transaction) <bcp14>MAY</bcp14> be included.  Internal
network addresses, intermediate workload identifiers, and
internal infrastructure topology details <bcp14>MUST</bcp14> be omitted.</t>
          </dd>
          <dt>Internal Call Chain:</dt>
          <dd>
            <t>Claims that record intermediate workloads or the internal call
chain within Trust Domain A <bcp14>MUST NOT</bcp14> be included in <tt>txn_claims</tt>.</t>
          </dd>
          <dt>Supplementary Identity Claims:</dt>
          <dd>
            <t>For human user Initiating Principals, claims such as <tt>email</tt> <bcp14>MAY</bcp14>
be included in <tt>txn_claims</tt> if the Cross-Domain Trust Agreement
explicitly permits their disclosure and AS-B requires them for
subject resolution.</t>
          </dd>
        </dl>
        <t>The Cross-Domain Trust Agreement <bcp14>SHOULD</bcp14> define the set of claims
permitted to appear in <tt>txn_claims</tt> and their expected semantics,
to ensure that AS-A and AS-B have a shared, normative understanding
of each transcribed claim.</t>
      </section>
    </section>
    <section anchor="authorization-server-metadata">
      <name>Authorization Server Metadata</name>
      <t>This profile adds to the Authorization Server Metadata framework
defined in <xref target="RFC8414"/> and Section 3 of
<xref target="I-D.ietf-oauth-identity-chaining"/>.</t>
      <t>An Authorization Server that supports this profile <bcp14>MUST</bcp14> include the
value <tt>urn:ietf:params:oauth:token-type:txn_token</tt> in its
<tt>identity_chaining_requested_token_types_supported</tt> metadata
parameter.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="client-authentication">
        <name>Client Authentication</name>
        <t>The Requesting Workload <bcp14>MUST</bcp14> authenticate to AS-A when performing
the Token Exchange request.  The use of asymmetric key-based client
authentication (e.g., a JWT client assertion per <xref target="RFC7523"/>) is
<bcp14>RECOMMENDED</bcp14>.  Static shared secrets <bcp14>SHOULD NOT</bcp14> be used.  AS-A <bcp14>SHOULD</bcp14>
follow the client authentication guidance in Section 2.5 of
<xref target="RFC9700"/>.</t>
      </section>
      <section anchor="sender-constraining">
        <name>Sender Constraining Tokens</name>
        <t>AS-B <bcp14>SHOULD</bcp14> issue sender-constrained access tokens.  Both DPoP
(OAuth 2.0 Demonstrating Proof of Possession) and Mutual-TLS
(<xref target="RFC9700"/> Section 2.3) are <bcp14>RECOMMENDED</bcp14> mechanisms.</t>
        <t>When AS-A acts as the client toward AS-B (the authorization-server-
as-client topology described in Appendix B.2 of
<xref target="I-D.ietf-oauth-identity-chaining"/>), the delegated key binding
mechanism described in Appendix B.3 of that document <bcp14>SHOULD</bcp14> be used.
AS-A <bcp14>MUST</bcp14> verify proof of possession of the Requesting Workload's
key and convey it to AS-B using the <tt>cnf</tt> claim in the JWT
Authorization Grant.</t>
      </section>
      <section anchor="txn-token-confidentiality">
        <name>Txn-Token Confidentiality</name>
        <t>A Txn-Token <bcp14>MUST NOT</bcp14> be forwarded to any entity outside Trust Domain A.
All communication between the Requesting Workload and AS-A <bcp14>MUST</bcp14> be
encrypted and the Requesting Workload <bcp14>MUST</bcp14> be authenticated (e.g.,
via mutual TLS; see also <xref target="client-authentication"/>).
Txn-Token lifetimes <bcp14>SHOULD</bcp14> be short.</t>
      </section>
      <section anchor="jwt-authorization-grant-replay-prevention">
        <name>JWT Authorization Grant Replay Prevention</name>
        <t>The JWT Authorization Grant is a bearer token.  AS-B <bcp14>MUST</bcp14> enforce
single-use semantics on the <tt>jti</tt> claim.  AS-A <bcp14>SHOULD</bcp14> set a short
validity lifetime (see <xref target="jwt-claims-requirements"/>).  Additional
guidance is provided in Section 5.5 of
<xref target="I-D.ietf-oauth-identity-chaining"/>.</t>
      </section>
      <section anchor="scope-boundary-enforcement">
        <name>Scope Boundary Enforcement</name>
        <t>AS-A <bcp14>MUST</bcp14> enforce that the JWT Authorization Grant scope does not
exceed the Txn-Token's scope.  AS-B <bcp14>MUST</bcp14> independently enforce that
the access token it issues does not convey scope exceeding the JWT
Authorization Grant.  These controls together prevent the chaining
mechanism from being used to escalate privileges beyond the
originating transaction's authorized scope.</t>
      </section>
      <section anchor="cross-domain-trust-agreement-integrity">
        <name>Cross-Domain Trust Agreement Integrity</name>
        <t>Operators <bcp14>MUST</bcp14> ensure that:</t>
        <ul spacing="normal">
          <li>
            <t>AS-A issues JWT Authorization Grants only for AS-B instances with
which a bilateral Cross-Domain Trust Agreement has been explicitly
established and is actively maintained.</t>
          </li>
          <li>
            <t>AS-B accepts JWT Authorization Grants only from AS-A instances
listed in its trusted issuers configuration.</t>
          </li>
          <li>
            <t>The Cross-Domain Trust Agreement, including subject identifier
mappings and permitted <tt>txn_claims</tt>, is reviewed whenever the
participating services or their authorization policies change.</t>
          </li>
        </ul>
      </section>
      <section anchor="refresh-tokens">
        <name>Refresh Tokens</name>
        <t>AS-B <bcp14>SHOULD NOT</bcp14> issue refresh tokens.  Because Txn-Tokens are
short-lived and transaction-specific, re-obtaining a new Txn-Token
and repeating the chaining flow is the correct renewal mechanism.
Issuing a refresh token would decouple the access lifetime from the
originating transaction's authorization context and create a
persistent credential outside the control of Trust Domain A.</t>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>Txn-Tokens may contain claims that relate to the Initiating
Principal, including personal identity information for
human-user-initiated transactions (e.g., user identifier, email
address, IP address) that may be subject to applicable privacy
regulations.</t>
      <t>AS-A <bcp14>MUST</bcp14> apply claims minimization (<xref target="claims-transcription"/>)
before issuing a JWT Authorization Grant.  Specifically:</t>
      <ul spacing="normal">
        <li>
          <t>Only identity claims necessary for AS-B to resolve the subject and
apply authorization policy <bcp14>SHOULD</bcp14> be included in <tt>txn_claims</tt>.</t>
        </li>
        <li>
          <t>Claims that could be used to reconstruct internal activity patterns
within Trust Domain A <bcp14>MUST NOT</bcp14> be included.</t>
        </li>
        <li>
          <t>The Cross-Domain Trust Agreement <bcp14>MUST</bcp14> specify which identity claims
AS-A is permitted to disclose to AS-B, consistent with the data
handling and privacy policies of both organizations.</t>
        </li>
      </ul>
      <t>The <tt>txn</tt> claim enables end-to-end transaction correlation across the
domain boundary.  Operators <bcp14>SHOULD</bcp14> evaluate whether the auditability
benefits outweigh the privacy implications for their specific
deployment, particularly for human-user-initiated transactions.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="jwt-typ-registration">
        <name>JWT Typ Registration</name>
        <t>This specification requests registration of the following value in
the "JSON Web Signature and Encryption Header Parameters" registry
(maintained by IANA):</t>
        <ul spacing="normal">
          <li>
            <t>Header Parameter Name: <tt>txn-chain+jwt</tt></t>
          </li>
          <li>
            <t>Header Parameter Description: JWT type for a Transaction Token
Chaining Authorization Grant as defined in this document</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="jwt-authorization-grant"/> of this
document</t>
          </li>
        </ul>
      </section>
      <section anchor="jwt-claims-registry">
        <name>JWT Claims Registry</name>
        <t>This specification requests registration of the following claim name
in the "JSON Web Token Claims" registry (maintained by IANA):</t>
        <ul spacing="normal">
          <li>
            <t>Claim Name: <tt>txn_claims</tt></t>
          </li>
          <li>
            <t>Claim Description: Transcribed claims from a Transaction Token,
included in a JWT Authorization Grant to convey cross-domain
authorization context</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="claims-transcription"/> of this
document</t>
          </li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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>
        <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="RFC7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7519"/>
          <seriesInfo name="DOI" value="10.17487/RFC7519"/>
        </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="RFC7800">
          <front>
            <title>Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="April" year="2016"/>
            <abstract>
              <t>This specification describes how to declare in a JSON Web Token (JWT) that the presenter of the JWT possesses a particular proof-of- possession key and how the recipient can cryptographically confirm proof of possession of the key by the presenter. Being able to prove possession of a key is also sometimes described as the presenter being a holder-of-key.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7800"/>
          <seriesInfo name="DOI" value="10.17487/RFC7800"/>
        </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="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="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="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="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="I-D.ietf-oauth-identity-chaining" target="https://datatracker.ietf.org/doc/html/draft-ietf-oauth-identity-chaining-11">
          <front>
            <title>OAuth Identity and Authorization Chaining Across Domains</title>
            <author initials="A." surname="Schwenkschuster" fullname="Arndt Schwenkschuster">
              <organization>Defakto Security</organization>
            </author>
            <author initials="P." surname="Kasselman" fullname="Pieter Kasselman">
              <organization>Defakto Security</organization>
            </author>
            <author initials="K." surname="Burgin" fullname="Kelley Burgin">
              <organization>MITRE</organization>
            </author>
            <author initials="M." surname="Jenkins" fullname="Michael Jenkins">
              <organization>NSA-CCSS</organization>
            </author>
            <author initials="B." surname="Campbell" fullname="Brian Campbell">
              <organization>Ping Identity</organization>
            </author>
            <author initials="A." surname="Parecki" fullname="Aaron Parecki">
              <organization>Okta</organization>
            </author>
            <date year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-identity-chaining-11"/>
        </reference>
        <reference anchor="I-D.ietf-oauth-transaction-tokens" target="https://datatracker.ietf.org/doc/draft-ietf-oauth-transaction-tokens/">
          <front>
            <title>Transaction Tokens</title>
            <author initials="A." surname="Tulshibagwale" fullname="Atul Tulshibagwale">
              <organization>SGNL</organization>
            </author>
            <author initials="G." surname="Fletcher" fullname="George Fletcher">
              <organization>Practical Identity LLC</organization>
            </author>
            <author initials="P." surname="Kasselman" fullname="Pieter Kasselman">
              <organization>Defakto Security</organization>
            </author>
            <date year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-transaction-tokens-08"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9068">
          <front>
            <title>JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens</title>
            <author fullname="V. Bertocci" initials="V." surname="Bertocci"/>
            <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="RFC9396">
          <front>
            <title>OAuth 2.0 Rich Authorization Requests</title>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <author fullname="J. Richer" initials="J." surname="Richer"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <date month="May" year="2023"/>
            <abstract>
              <t>This document specifies a new parameter authorization_details that is used to carry fine-grained authorization data in OAuth messages.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9396"/>
          <seriesInfo name="DOI" value="10.17487/RFC9396"/>
        </reference>
        <reference anchor="I-D.ietf-wimse-arch" target="https://datatracker.ietf.org/doc/draft-ietf-wimse-arch/">
          <front>
            <title>Workload Identity in a Multi System Environment (WIMSE) Architecture</title>
            <author initials="J." surname="Salowey" fullname="Joseph Salowey">
              <organization>CyberArk</organization>
            </author>
            <author initials="Y." surname="Rosomakho" fullname="Yaroslav Rosomakho">
              <organization>Zscaler</organization>
            </author>
            <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
              <organization/>
            </author>
            <date year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-arch-07"/>
        </reference>
        <reference anchor="I-D.ietf-wimse-workload-creds" target="https://datatracker.ietf.org/doc/draft-ietf-wimse-workload-creds/">
          <front>
            <title>WIMSE Workload Credentials</title>
            <author initials="B." surname="Campbell" fullname="Brian Campbell">
              <organization>Ping Identity</organization>
            </author>
            <author initials="J." surname="Salowey" fullname="Joseph Salowey">
              <organization>CyberArk</organization>
            </author>
            <author initials="A." surname="Schwenkschuster" fullname="Arndt Schwenkschuster">
              <organization>Defakto Security</organization>
            </author>
            <author initials="Y." surname="Sheffer" fullname="Yaron Sheffer">
              <organization>Intuit</organization>
            </author>
            <author initials="Y." surname="Rosomakho" fullname="Yaroslav Rosomakho">
              <organization>Zscaler</organization>
            </author>
            <date year="2025"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-workload-creds-00"/>
        </reference>
        <reference anchor="I-D.ietf-oauth-identity-assertion-authz-grant" target="https://datatracker.ietf.org/doc/draft-ietf-oauth-identity-assertion-authz-grant/">
          <front>
            <title>Identity Assertion JWT Authorization Grant</title>
            <author initials="A." surname="Parecki" fullname="Aaron Parecki">
              <organization>Okta</organization>
            </author>
            <author initials="K." surname="McGuinness" fullname="Karl McGuinness">
              <organization>Independent</organization>
            </author>
            <author initials="B." surname="Campbell" fullname="Brian Campbell">
              <organization>Ping Identity</organization>
            </author>
            <date year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-identity-assertion-authz-grant-03"/>
        </reference>
      </references>
    </references>
    <?line 1156?>

<section anchor="use-cases">
      <name>Use Cases</name>
      <t>The following use cases illustrate the three Initiating Principal
types described in <xref target="txn-token-initiating-principal-context"/>, each
demonstrating a scenario where a workload within a Trust Domain must
call a partner service in a separate Trust Domain to complete the
transaction.</t>
      <section anchor="user-initiated-external-api-call-requiring-a-partner-service">
        <name>User-Initiated External API Call Requiring a Partner Service</name>
        <t>A financial services enterprise exposes a portfolio management API to
its customers.  A customer uses a mobile application to add a stock
to their watch list, calling <tt>POST /watchlist</tt> at the enterprise's
API gateway with an OAuth 2.0 access token.</t>
        <t>The API gateway workload requests a Txn-Token from the TTS,
presenting the user's access token as the inbound credential.  The
TTS mints a Txn-Token with <tt>sub</tt> set to the user's enterprise
identifier, <tt>scope</tt> set to <tt>watchlist-update</tt>, and <tt>rctx</tt> capturing
the mobile client's OAuth client identifier and IP address.  This
Txn-Token propagates through the internal portfolio service call
chain.</t>
        <t>To enrich the watch list entry with current market data, the
portfolio service must call a market-data API operated by a partner
financial data provider in Trust Domain B.  The portfolio service
exchanges the Txn-Token for a JWT Authorization Grant using this
profile.  AS-A maps the user's enterprise identifier to a
cross-domain user identifier agreed with the partner (e.g., the
user's email address or a pairwise identifier), and includes a
minimized <tt>txn_claims</tt> carrying <tt>scope: watchlist-update</tt>.</t>
        <t>The partner's authorization server issues an access token that
identifies the user (enabling per-user rate limiting and audit
logging at the partner) without receiving the enterprise's internal
Txn-Token, internal access token, or internal user database
identifiers.</t>
      </section>
      <section anchor="system-initiated-event-requiring-a-partner-service">
        <name>System-Initiated Event Requiring a Partner Service</name>
        <t>An enterprise mail service receives an inbound email message via
SMTP.  The SMTP server is an internal system component operating
under its own system credential; no external OAuth client is
involved.  The SMTP server requests a Txn-Token from the TTS with
<tt>sub</tt> set to its system identity (<tt>system:mail-gateway@enterprise.example</tt>),
<tt>scope</tt> set to <tt>mail-delivery</tt>, and <tt>rctx</tt> carrying the SMTP envelope
sender address and the recipient user's internal identifier.  This
Txn-Token propagates to the mail storage service workload.</t>
        <t>Before storing the message in the recipient's mailbox, the mail
storage service must call a spam-rating API operated by a partner
spam service in Trust Domain B (whose Authorization Server is
<tt>https://as.spamsvc.example</tt> and whose spam-rating API is
<tt>https://api.spamsvc.example/spam-rating</tt>).</t>
        <t>The mail storage service exchanges the Txn-Token for a JWT
Authorization Grant using this profile.  AS-A maps the system
identity to the cross-domain service identifier agreed with the spam
service, and includes a minimized <tt>txn_claims</tt> carrying
<tt>scope: mail-delivery</tt> and <tt>rctx.smtp_from</tt> (the envelope sender
address, stripped of internal routing metadata).</t>
        <t>The spam service's authorization server issues an access token for
the spam-rating API.  The spam service can apply per-sender and
per-recipient policy based on <tt>txn_claims</tt>, enabling personalized
spam filtering without requiring the enterprise to expose internal
user tokens or the Txn-Token outside its trust boundary.</t>
      </section>
      <section anchor="automated-workload-requiring-a-partner-service">
        <name>Automated Workload Requiring a Partner Service</name>
        <t>An enterprise data platform runs a nightly telemetry aggregation job.
The job is an automated workload with no direct external caller,
triggered by an internal scheduler.  The scheduler requests a
Txn-Token from the TTS with <tt>sub</tt> set to the job's SPIFFE workload
URI (<tt>spiffe://enterprise.example/telemetry/nightly-agg</tt>), <tt>scope</tt>
set to <tt>telemetry-aggregation</tt>, and no user context in <tt>rctx</tt>.</t>
        <t>To complete the aggregation, the job must query a third-party
analytics API in Trust Domain B.  The job exchanges the Txn-Token
for a JWT Authorization Grant using this profile.  AS-A maps the
SPIFFE workload URI to a cross-domain workload identifier agreed with
the analytics provider, and includes <tt>scope: telemetry-aggregation</tt>
in <tt>txn_claims</tt>.</t>
        <t>The analytics provider's authorization server issues a scoped access
token.  The <tt>txn</tt> claim in the JWT Authorization Grant allows the
analytics provider to correlate API calls to the originating job run
for billing and audit purposes, without receiving the internal SPIFFE
URI or other Trust Domain A infrastructure details.</t>
      </section>
    </section>
    <section anchor="relationship-to-related-specifications">
      <name>Relationship to Related Specifications</name>
      <t>This specification is one of a family of profiles of
<xref target="I-D.ietf-oauth-identity-chaining"/>.</t>
      <section anchor="identity-assertion-jwt-authorization-grant">
        <name>Identity Assertion JWT Authorization Grant</name>
        <t><xref target="I-D.ietf-oauth-identity-assertion-authz-grant"/> (the "ID-JAG"
specification, adopted by the OAuth Working Group as of April 2026)
targets deployments where AS-B already trusts AS-A (acting as an
IdP) for Single Sign-On (SSO) and subject resolution, using an
OpenID Connect ID Token or SAML 2.0 assertion as the subject token.</t>
        <t>The key structural differences between the two profiles are:</t>
        <dl>
          <dt>Subject Token Type:</dt>
          <dd>
            <t>The ID-JAG profile uses an OpenID Connect ID Token or SAML 2.0
assertion as the <tt>subject_token</tt>.  This profile uses a Txn-Token
(<tt>urn:ietf:params:oauth:token-type:txn_token</tt>).</t>
          </dd>
          <dt>Initiating Principal Scope:</dt>
          <dd>
            <t>The ID-JAG profile is exclusively centered on a human End-User
whose authenticated session at the IdP drives the cross-domain
access.  This profile supports all three Initiating Principal
types — human user, internal system, and automated workload —
uniformly, because Txn-Tokens capture all three.</t>
          </dd>
          <dt>Trust Relationship Basis:</dt>
          <dd>
            <t>The ID-JAG profile relies on a pre-existing SSO trust relationship
between AS-A (the IdP) and AS-B (the Resource AS) for the same
user population.  This profile relies on a bilateral Cross-Domain
Trust Agreement between AS-A and AS-B, which may exist
independently of any shared identity provider.</t>
          </dd>
          <dt><tt>audience</tt> and <tt>resource</tt> Parameters:</dt>
          <dd>
            <t>Both profiles use <tt>audience</tt> to identify AS-B (the target
authorization server) and <tt>resource</tt> (<xref target="RFC8707"/>) optionally to
identify the target Protected Resource.  These parameters serve
the same distinct purposes in both profiles: <tt>audience</tt> → AS-B
issuer URL → <tt>aud</tt> in the grant; <tt>resource</tt> → resource server URI
→ <tt>resource</tt> claim in the grant.</t>
          </dd>
          <dt><tt>client_id</tt> Requirement:</dt>
          <dd>
            <t>The ID-JAG includes a <bcp14>REQUIRED</bcp14> <tt>client_id</tt> claim identifying the
OAuth 2.0 client at AS-B acting on behalf of the resource owner.
This is appropriate where the application has a pre-registered
client relationship with AS-B.  This profile does not require a
pre-registered <tt>client_id</tt> at AS-B; the Requesting Workload's
identity is conveyed through client authentication to AS-A and the
subject mapping in the JWT Authorization Grant.</t>
          </dd>
          <dt>Multi-Tenancy:</dt>
          <dd>
            <t>The ID-JAG profile defines <tt>tenant</tt>, <tt>aud_tenant</tt>, and <tt>aud_sub</tt>
claims for multi-tenant SaaS deployments.  This profile does not
define equivalent tenant-scoping claims, as Trust Domain
boundaries are typically organizational or service-provider
boundaries rather than tenant partitions within a shared platform.</t>
          </dd>
          <dt>Rich Authorization Requests (RAR):</dt>
          <dd>
            <t>The ID-JAG profile supports the optional <tt>authorization_details</tt>
claim (<xref target="RFC9396"/>) in the grant.  This profile does not currently
define RAR integration; a future revision <bcp14>MAY</bcp14> define how
<tt>authorization_details</tt> from a Txn-Token are transcribed into the
JWT Authorization Grant.</t>
          </dd>
          <dt>SAML 2.0 Interoperability:</dt>
          <dd>
            <t>The ID-JAG profile includes SAML 2.0 identity assertion
interoperability.  This profile addresses only JWT-based
Txn-Tokens.</t>
          </dd>
          <dt>Sender Constraining:</dt>
          <dd>
            <t>Both profiles use the <tt>cnf</tt> claim to convey a sender-constraining
key to AS-B.  The ID-JAG profile embeds <tt>cnf</tt> in the ID-JAG
itself; this profile includes <tt>cnf</tt> in the JWT Authorization
Grant, derived from the Requesting Workload's client credential
presented to AS-A (see <xref target="sender-constraining"/>).</t>
          </dd>
        </dl>
        <t>The two profiles are complementary.  A deployment <bcp14>MAY</bcp14> support both:
the ID-JAG profile for human-user cross-domain access coordinated
through a shared identity provider, and this profile for any
transaction-driven cross-domain access (user-initiated,
system-initiated, or workload-initiated) where the trust relationship
is established through a bilateral Cross-Domain Trust Agreement.  An
Authorization Server implementing both <bcp14>MUST</bcp14> distinguish between them
by inspecting the JWT <tt>typ</tt> header: <tt>oauth-id-jag+jwt</tt> for the
ID-JAG profile and <tt>txn-chain+jwt</tt> for this profile.</t>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>The author would like to thank Atul Tulshibagwale, Pieter Kasselman,
Aaron Parecki, Brian Campbell, Arndt Schwenkschuster, Kelley Burgin,
Karl McGuinness, and the members of the IETF OAuth Working Group for
their foundational work on the specifications that this profile
depends on.</t>
      <t>The Transaction Tokens concept was originally developed by Atul
Tulshibagwale, George Fletcher, and Pieter Kasselman.  The OAuth
Identity and Authorization Chaining Across Domains specification was
authored by Arndt Schwenkschuster, Pieter Kasselman, Kelley Burgin,
Michael Jenkins, Brian Campbell, and Aaron Parecki.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9V963IbR5bm/3yKWimmTbhREEndKdvT1MU2bcvSivQ4eic6
xCKQIMssVKGrCqTQsjrm1zzAxjzAPss+Sj/JnlteqwqE5O7eGE3HmACq8nLy
5Ll+eTJNU9XmbaEPklsndVY22bTNqzI5qS51mRyu2ouqzv+S0XffwO9t8rqu
5nmhk3lVJ6/wgeRopktoY51k5Sx65dlFlpd5eX5LZWdntb7CXt6VKbdufjRN
3lKzalpmCxjLrM7mbTovdDu90HXaupGlLb6bTuXddMnvpru7apq1+ryq1wdJ
085Uszpb5E0Dr7TrJTR59OLka5Uv64OkrVdNu7+7+3h3X11X9eV5Xa2WB8nP
+iwaPYyrraZVoS71Gh6cHagkSZMqg4foL29YCQ2roa9zQw8zSPp2WldNk86q
BXwnb8MwEvlCNS1Q721WVCWMda0b1Syyun3751XV6uYgKSu1zLF/GBD/niRN
Vbe1njf283rhPqqMpsJDzkv49ptJ8rUQFL5MEqb0N7qqz3X4C3yTlUKEA6AC
TnGaFW6hf/jhGT2oYezFQXJObfxhaR40BJhMq4VSZVUvoKkrjWN58/Wz/b29
x/Lno72H9+TPBw/vmW8f3t9zf+7vuT/vmj8f7e6aFu7tmRYePXhsHnj0cPeh
/XP/vvz5+KF97fHD/Uf451H6fJLrdp7SoqZm4Ja9DmiaZoNsze7JIa128pwW
t7nFrWRApPYguWjbZXNw584sazPgoOmlrmkMEyDiHdgBdy7aRXGHd8CmsaV7
e9SuW2j8J4t9OEmOpxfXurxsphfAZ7Kybt0P63LWDj4DQzlInut5dtlWybGe
rmroOezh9ST5PmsaXSyyMmr7NQxb1z0/b9Hs95Pk6ao+z+M2v9dFodfxb9Tg
y6OTNy/CVl5Oku9gXjntSL+ZlzmQTxedX6mhH48P02fPjo/Dtp5OkmfZYnkG
A4gae1rnWdn9kdp6jWxgWKWzNq+zWk8v83hNshqlTvQbNffqss3oG+AaeHJ/
d/8BfWx0nesmL+eVYYCjEmhf6jZ9jhxkROnNjBRthY7IbcK90FEWH8vlnXF1
e7yzkb9PVkVzkZ9l59dZoWNKtqti4AEi5/E3P/4QNhhLR9dWn4R0yzwsHP9B
O+W3M0CX0OnuI6WwjVBSP9598Mj8effxg0BgXueLRqdZPb0I+eJnUKhFlc0c
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
L1aZqRXVOR1f9nAKeuNhPuuabtCIZcK+gVjot2OH3aSiXzsICuj4G91iRhPJ
mWlbwiA42x2YgcGCcfP+72j1DYcw1I4fVnC2zJ7Y8WwvatlH9hy5mxFtmNin
4L1B1s9tkQgusnDCkYVeMDlyqXGlohO/K3Mc2Ytn4OMuDuEPy46Vz8jbw2e9
xvtNB36tjXdvcld2IR2qdN2RTsD4GzAKrJLEH5sg4KfoeEQ5pzOWQBs3D5SV
5nybEfkcqjr1OR+2Gfm+smT39u75S0bleJ5qkFkenaKY54CfjG8e2cPUfEaP
Rr1qpK6hc7gQ0+oZ5U/tFKEN9B2WmZRQi/ObWeMtFU7ffqAqPnLujnDkIKGD
aNaAq71jWlCJKOVRF9Y0Dn1Psc4f7j4M2B1F/oUzesYslOQcocWGMS3E2ipl
ZwZxsO2oTdviDd5nwTeSWD4CqhDLsZvbwxbct/ghCKfvd2m5Yi27tIG8IcKH
TmdPL5Hf7p1uxHDMJlHTaf63zqTPORfuIfmlZ3E/HieFS9p+Uq+/XLenaHnP
2SoyrCEcD/sdw5ZUdFJvqNGA+75CkN45C3Qn1+iAgngKbA54YkVei98hKpNJ
GE34eJlNdWoOWc2kjpqAspvE0swafxxT7A8pOr2M+5qB7FlCrMWWLLWKXs+7
qda2lGRvsqXnBBQYe1oTQw1EQU0ACGzTqjYREpL43jdxQCiKMznVhpYUOrDB
4VhHT9yRL9hQG1Dj8XlbOs1fgqqwV84YS2/Dak/UYVQRytqvcVmondCkHOGB
HFM1ZtbJjiJdOucfoxID6hS7Tk0i9bTH/w/GFqFIVVy4SU5dSFlJv7yTmx56
yf3HzoAop6YqbNZM8LXmajoRGp5KMQV8vVMwyn9zmcev3vGePxUIKT6emtp3
r18BT99hS+rbk5PXd/Yme+rbqmkPQN5N3BKYBhVFaECgntDdTpQZ4IDEnXfp
9fV1ioudruoClHk101Fl7wNQysB8dfIFUV8ok7JPm7qk7FdKOdn/Jcilf7l7
iJIJ/sOyCf4g6QT/dfIdPoQSXv0uhCh9YYNKX0U/bdORE4T4wQhg9TuLYqJ1
gN/+Zf9r+F93HdXvjHqMH+0uHHzrLR2MFgXJl/jVhL+aYNUUjsze7jO3G3Da
gV/UEQsdE1NgnZ3PrA/UF9SP69S4Ak3D5xZFiLrUkSELKwloApzFsukWS69l
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

-->

</rfc>
