<?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.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-fletcher-oauth-txn-token-chaining-profile-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="Txn-Token Chaining Profile">Transaction Token JWT Authorization Grant Profile for OAuth Identity and Authorization Chaining</title>
    <seriesInfo name="Internet-Draft" value="draft-fletcher-oauth-txn-token-chaining-profile-01"/>
    <author initials="G." surname="Fletcher" fullname="George Fletcher">
      <organization>Practical Identity LLC</organization>
      <address>
        <email>george@practicalidentity.com</email>
      </address>
    </author>
    <author initials="P." surname="Kasselman" fullname="Pieter Kasselman">
      <organization>Defakto Security</organization>
      <address>
        <email>pieter@defakto.security</email>
      </address>
    </author>
    <author initials="S." surname="O'Dell" fullname="Sean O'Dell">
      <organization>CVS Health</organization>
      <address>
        <email>sean.odell@cvshealth.com</email>
      </address>
    </author>
    <date year="2026" month="October" day="26"/>
    <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 149?>

<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>
      <t>Agentic systems are one class of deployment that depends on this capability. The AI Identity Management System <xref target="I-D.ietf-wimse-aims"/> describes AI agents as workloads that use Transaction Tokens to carry authorization context between the services implementing a task, and that frequently need to reach resources protected by an authorization server in another trust domain. Its treatment of cross-domain access directs such an agent to use <xref target="I-D.ietf-oauth-identity-chaining"/> or a profile of it as defined in this document.</t>
    </abstract>
    <note>
      <name>Note to Readers</name>
      <?line 171?>

<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/gffletch/tt_xdomain">https://github.com/gffletch/tt_xdomain</eref>.</t>
    </note>
  </front>
  <middle>
    <?line 182?>

<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 Transaction Token JWT Authorization Grant
(Txn-Token-JAG), targeted at the Authorization Server of Trust
Domain B.  The Txn-Token-JAG 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>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<section anchor="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 Txn-Token-JAG 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 Txn-Token-JAG 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="txn-token-in-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>), the
environmental context of the request (<tt>rctx</tt>), and the authorization
details the TTS determined for the transaction (<tt>tctx</tt>).</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-A   |  |  AS-B   |  |Protected|
| Request  |  | Workload |  |(Trust A)|  |(Trust A)|  |(Trust B)|  |Resource |
|(Perimeter|  |(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.</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.</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"/>.</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.</t>
          </li>
          <li>
            <t>AS-A validates the Txn-Token, applies subject
identifier mapping (<xref target="subject-identifier-mapping"/>) and claims
minimization (<xref target="claims-transcription"/>), and issues a signed
Txn-Token-JAG.  The Txn-Token is consumed entirely within
Trust Domain A and is not forwarded.</t>
          </li>
          <li>
            <t>The Requesting Workload presents the Txn-Token-JAG to
AS-B using the JWT Profile for OAuth 2.0 Authorization Grants
<xref target="RFC7523"/>.</t>
          </li>
          <li>
            <t>AS-B validates the Txn-Token-JAG 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 anchor="chaining-across-multiple-trust-domains">
        <name>Chaining Across Multiple Trust Domains</name>
        <t>Trust Domain A and Trust Domain B are roles when crossing from one Trust Domain to another, not fixed positions in a deployment. The profile in this specification <bcp14>MAY</bcp14> be applied recursively, allowing a single transaction to traverse any number of Trust Domains.</t>
        <t>When the Requesting Workload calls the Protected Resource in Trust Domain B (Step 9 of Figure 1), that call is an ordinary inbound request at Trust Domain B's perimeter (<xref target="txn-token-in-domain"/>). The receiving workload <bcp14>MAY</bcp14> exchange the inbound access token for a Txn-Token issued by Trust Domain B's own TTS, following <xref target="I-D.ietf-oauth-transaction-tokens"/>. If a workload in Trust Domain B's Internal Call Chain subsequently needs to call a Protected Resource in Trust Domain C, it applies this profile unchanged, with Trust Domain B now in the role of Trust Domain A and Trust Domain C in the role of Trust Domain B.</t>
        <t>Each time a Trust Domain boundary is crossed, it is self-contained and is governed solely by the Cross-Domain Trust Agreement between the two Trust Domains directly involved. The originating Authorization Server applies its own claims transcription and minimization policy <xref target="claims-transcription"/>, and no Txn-Token leaves its Trust Domain. Whether Authorization Server B propagates the txn claim it receives (<xref target="mandatory-transcription"/>) into the access token it issues, and whether Trust Domain B's TTS includes it in the Txn-Token it mints, are deployment decisions.  Deployments requiring end-to-end correlation <bcp14>SHOULD</bcp14> specify in the applicable Cross-Domain Trust Agreements how the originating transaction identifier and any other context are carried forward at each crossing. Deployments seeking to limit cross-domain linkability <bcp14>SHOULD</bcp14> instead generate independent transaction identifiers in each Trust Domain (see <xref target="privacy-considerations"/>).</t>
      </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 Txn-Token-JAG.
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 Txn-Token-JAG.</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 Txn-Token-JAG 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 Txn-Token-JAG 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 Txn-Token-JAG.  (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 Txn-Token-JAG 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...<Txn-Token-JAG>...",
  "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 Txn-Token-JAG.</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 Txn-Token-JAG 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 Txn-Token-JAG 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 Txn-Token-JAG.  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 Txn-Token-JAG.  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>Transaction Token JWT Authorization Grant</name>
      <section anchor="grant-format">
        <name>Grant Format</name>
        <t>The Transaction Token JWT Authorization Grant (Txn-Token-JAG) 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.</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>
          <t>A Txn-Token-JAG <bcp14>MAY</bcp14> contain additional claims, including registered claims not listed here and claims specific to a deployment. Claims a recipient does not understand are ignored in accordance with Section 4 of <xref target="RFC7519"/>.</t>
        </section>
        <section anchor="example-txn-token-jag">
          <name>Example Txn-Token-JAG</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-transcription">
        <name>Mandatory Transcriptions</name>
        <t>AS-A <bcp14>MUST</bcp14> derive the <tt>sub</tt> claim of the Txn-Token-JAG 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 Txn-Token-JAG, 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 Txn-Token-JAG <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 Txn-Token-JAG 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 Txn-Token-JAG <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>Scope 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>Transaction Context (<tt>tctx</tt>):Transaction Context (<tt>tctx</tt>):</dt>
          <dd>
            <t><bcp14>MAY</bcp14> be included in a minimized form.  Individual fields such as the
item being purchased, its quantity and unit price <bcp14>MAY</bcp14> be included
only where they are required to authorize or perform the
transaction in Trust Domain B.  Fields that Trust Domain B does not
require <bcp14>MUST</bcp14> be omitted, including other parameters of the same
transaction, internal authorization model artifacts such as policy
or entitlement identifiers, and classifications computed about the
Initiating Principal within Trust Domain A.</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.</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="txn-token-jag-replay-prevention">
        <name>Txn-Token-JAG Replay Prevention</name>
        <t>The Txn-Token-JAG 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 Txn-Token-JAG 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="tctx-minimization">
        <name>Transaction Context Minimization</name>
        <t>AS-A is responsible for reducing the transaction context carried in a Txn-Token-JAG to the fields Trust Domain B is allowed to access (<xref target="claims-minimization"/>). Transcribing <tt>tctx</tt> without removing unnecessary claims risks disclosing internal detail of Trust Domain A's transaction processing, infrastructure, customer and domain specific information that is not needed for authorization or transaction processing in Trust Domain B. The specific claims that may be transcribed are deployment-specific and out of scope for this specification.</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 Txn-Token-JAGs 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 Txn-Token-JAGs 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 anchor="trust-across-multiple-trust-domains">
        <name>Trust Across Multiple Trust Domains</name>
        <t>When this profile is applied recursively (<xref target="chaining-across-multiple-trust-domains"/>), trust remains strictly pairwise. An Authorization Server accepts a Txn-Token-JAG because it trusts the issuing Authorization Server under their Cross-Domain Trust Agreement, not because it has any relationship with Trust Domains further upstream. Because context propagation each time a Trust Domain boundary is crossed is a deployment decision (<xref target="chaining-across-multiple-trust-domains"/>), claims in a Txn-Token-JAG may be derived from context that the issuing Trust Domain itself received from an upstream Trust Domain.</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 Txn-Token-JAG.  Specifically:</t>
      <ul spacing="normal">
        <li>
          <t>Identity claims that are not needed for AS-B to resolve the subject or apply authorization policy <bcp14>SHOULD NOT</bcp14> be included in <tt>txn_claims</tt>.</t>
        </li>
        <li>
          <t>Transaction claims that are not needed to authorize or complete the transaction in Trust Domain B <bcp14>SHOULD NOT</bcp14> be included in <tt>txn_claims</tt>, since such claims may identify the Initiating Principal by correlation with information AS-B already holds, even where the subject identifier is pairwise.</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 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 Txn-Token-JAG 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="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>
        <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="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>
        <reference anchor="I-D.ietf-wimse-aims">
          <front>
            <title>AI Identity Management System</title>
            <author fullname="Pieter Kasselman" initials="P." surname="Kasselman">
              <organization>Defakto Security</organization>
            </author>
            <author fullname="Jeff Lombardo" initials="J." surname="Lombardo">
              <organization>AWS</organization>
            </author>
            <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
              <organization>Zscaler</organization>
            </author>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <author fullname="Nick Steele" initials="N." surname="Steele">
              <organization>OpenAI</organization>
            </author>
            <author fullname="Aaron Parecki" initials="A." surname="Parecki">
              <organization>Okta</organization>
            </author>
            <date day="15" month="September" year="2026"/>
            <abstract>
              <t>   This document proposes best practices for authentication and
   authorization of AI agent interactions.  It leverages existing
   standards such as the Workload Identity in Multi-System Environments
   (WIMSE) architecture and OAuth 2.0 family of specifications.  Rather
   than defining new protocols, this document describes how existing and
   widely deployed standards can be applied or extended to establish
   agent authentication and authorization.  By doing so, it aims to
   provide a framework within which to use existing standards, identify
   gaps and guide future standardization efforts for agent
   authentication and authorization.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-aims-00"/>
        </reference>
      </references>
    </references>
    <?line 1164?>

<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 Txn-Token-JAG 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> and the <tt>ticker</tt> field from <tt>tctx</tt>, which
the market data provider requires in order to return a quote.</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). The Txn-Token's
<tt>tctx</tt> carries the internal routing parameters the TTS determined
for the delivery; the spam service requires none of them, and they
are not transcribed.</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 Txn-Token-JAG 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 Txn-Token-JAG 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 Txn-Token-JAG.</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
Txn-Token-JAG.</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>
      <t>The authors would like to thank Ni Yuan for their review and providing feedback on this specification.</t>
    </section>
    <section numbered="false" anchor="document-history">
      <name>Document History</name>
      <t>[[ To be removed from final specification ]]</t>
      <section numbered="false" anchor="since-draft-02">
        <name>Since Draft 02</name>
        <ul spacing="normal">
          <li>
            <t>Renamed the draft to
<tt>draft-fletcher-oauth-txn-token-chaining-profile</tt></t>
          </li>
          <li>
            <t>Corrected the source and issue tracker URL to the repository for
this draft</t>
          </li>
          <li>
            <t>Consolidated the BCP 14 requirements language into <xref target="conventions-and-definitions"/></t>
          </li>
          <li>
            <t>Made inclusion of transaction context explicit, along with needs for data minimisation, security considerations and privacy considerations (see https://github.com/gffletch/tt_xdomain/issues/18)</t>
          </li>
          <li>
            <t>Refer to the AIMS draft, which depends on this specification (see https://github.com/gffletch/tt_xdomain/issues/6).</t>
          </li>
          <li>
            <t>Clarified that additional claims are permitted (see issue https://github.com/gffletch/tt_xdomain/issues/4)</t>
          </li>
        </ul>
      </section>
      <section numbered="false" anchor="since-draft-01">
        <name>Since Draft 01</name>
        <ul spacing="normal">
          <li>
            <t>Added <xref target="chaining-across-multiple-trust-domains"/> describing
recursive application of this profile across more than two Trust
Domains</t>
          </li>
          <li>
            <t>Added <xref target="trust-across-multiple-trust-domains"/> to the Security
Considerations</t>
          </li>
        </ul>
      </section>
      <section numbered="false" anchor="since-draft-00">
        <name>Since Draft 00</name>
        <ul spacing="normal">
          <li>
            <t>Added Pieter Kasselman and Sean O'Dell as authors</t>
          </li>
          <li>
            <t>Fixed the sequence diagram in section 3.2</t>
          </li>
          <li>
            <t>Streamlined the text descriptions for the sequence in section 3.2</t>
          </li>
          <li>
            <t>Cleaned up language that used purpose instead of scope</t>
          </li>
        </ul>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
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
AGIboQRFkCtMpqf6vzsOL7lK6wAA

-->

</rfc>
