<?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.38 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-araut-oauth-transaction-tokens-for-agents-01" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title>Transaction Tokens For Agents</title>
    <seriesInfo name="Internet-Draft" value="draft-araut-oauth-transaction-tokens-for-agents-01"/>
    <author fullname="ASHAY RAUT">
      <organization/>
      <address>
        <email>asharaut@amazon.com</email>
      </address>
    </author>
    <date year="2026" month="May" day="12"/>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 36?>

<t>This document specifies an extension to the <eref target="https://drafts.oauth.net/oauth-transaction-tokens/draft-ietf-oauth-transaction-tokens.html">OAUTH-TXN-TOKENS</eref> to support agent context propagation within Transaction Tokens for agent-based workloads. The extension defines the use of the <tt>act</tt> field to identify the agent performing the action, and leverages the existing <tt>sub</tt> field (as defined in the base Transaction Tokens specification) to represent the principal. The <tt>sub</tt> field is populated according to the rules specified in <eref target="https://drafts.oauth.net/oauth-transaction-tokens/draft-ietf-oauth-transaction-tokens.html">OAUTH-TXN-TOKENS</eref>, based on the 'subject_token' provided in the token request. For autonomous agents operating independently, the <tt>sub</tt> field represents the agent itself. These mechanisms enable services within the call graph to make more granular access control decisions, thereby enhancing security.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://ashayraut.github.io/oauth-transactiontokens-for-agents/draft-oauth-transaction-tokens-for-agents.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-araut-oauth-transaction-tokens-for-agents/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ashayraut/oauth-transactiontokens-for-agents"/>.</t>
    </note>
  </front>
  <middle>
    <?line 40?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Traditional zero trust authorization systems face new challenges when
   applied to AI agent workloads. Unlike conventional web services,
   AI agents possess capabilities for autonomous operation, behavioral
   adaptation, and dynamic integration with various data sources. These
   characteristics may lead to decisions that extend beyond their
   initial operational boundaries.</t>
      <t>Existing zero trust models, which effectively manage permissions and
   access scopes for traditional web services, require enhancement to
   address the unique properties of AI agents. Authorization systems
   must evaluate each AI agent interaction independently, considering
   both the immediate context and intended action. This necessitates
   more sophisticated approaches to policy enforcement, behavioral
   monitoring, and audit tracking to maintain security governance.</t>
      <t>Transaction Tokens (Txn-Tokens) are short-lived, signed JSON Web
   Tokens <eref target="https://tools.ietf.org/html/rfc7519">RFC7519</eref> that convey identity and authorization context.
   However, the current Txn-Token format lacks sufficient context for
   services within the call chain to implement fine-grained access
   control policies for agent-based workflows. Specifically, it does
   not provide adequate information about the AI agent's identity or
   its initiating entity, limiting transaction traceability. With this
   extension, Transaction Tokens will carry agent identity information
   which will help in better traceability for AI Agent's actions
   deep down the web service graph connecting multiple web services
   involved in completing a transaction in distributed systems.</t>
      <t>This document defines three new contexts within the Transaction Token
   to address these limitations:</t>
      <ol spacing="normal" type="1"><li>
          <t>The <tt>act</tt> claim, which identifies the AI agent performing the action, aligning with OAuth 2.0 Token Exchange <eref target="https://tools.ietf.org/html/rfc8693">RFC8693</eref> terminology for actor tokens</t>
        </li>
        <li>
          <t>The <tt>sub</tt> claim, as defined in <eref target="https://drafts.oauth.net/oauth-transaction-tokens/draft-ietf-oauth-transaction-tokens.html">OAUTH-TXN-TOKENS</eref>, which represents the principal on whose behalf the transaction is being performed. The population of this field follows the rules specified in the base Transaction Tokens specification, based on the 'subject_token' provided in the token request.</t>
        </li>
        <li>
          <t>An optional <tt>agentic_ctx</tt> claim. The value of this claim, if present, MUST be a JSON object. The <tt>agentic_ctx</tt> claim conveys attributes about the agent and its operational constraints that are relevant to authorization, auditing, and policy evaluation.</t>
        </li>
      </ol>
      <t>This extension leverages the existing Txn-Token infrastructure to
   enable secure propagation of AI agent context throughout the
   service graph.</t>
      <section anchor="conventions-and-terminology">
        <name>Conventions and Terminology</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 <eref target="https://datatracker.ietf.org/doc/html/rfc2119">RFC2119</eref> <eref target="https://datatracker.ietf.org/doc/html/rfc8174">RFC8174</eref> when, and only when, they appear in all capitals, as shown here.</t>
      </section>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>Agentic-AI: AI Agentic applications are software applications that utilize
Large Language Models (LLM)s and plans, reasons,and takes actions independently
to achieve complex, multi-step goals with minimal human oversight.</t>
      <t>Workload:
An independent computational unit that can autonomously receive and process
invocations, and can generate invocations of other workloads.
Examples of workloads include containerized microservices,
monolithic services and infrastructure services such as managed databases.</t>
      <t>Trust Domain:
A collection of systems, applications, or workloads that share a
common security policy. In practice this may include a virtually or
physically separated network, which contains two or more workloads.
The workloads within a Trust Domain may be invoked only through published
interfaces.</t>
      <t>Call Chain:
A sequence of synchronous invocations that results from the invocation of an external endpoint.</t>
      <t>External Endpoint:
A published interface to a Trust Domain that results in the invocation
of a workload within the Trust Domain. This is the first service in the
call chain where request starts.</t>
      <t>Transaction Token (Txn-Token):
A signed JWT with a short lifetime, providing immutable information about the user or workload,
certain parameters of the call, and specific contextual attributes of the call.
The Txn-Token is used to authorize subsequent calls in the call chain.</t>
      <t>Transaction Token Service (Txn-Token Service):
A special service within the Trust Domain that issues Txn-Tokens to requesting
workloads. Each Trust Domain using Txn-Tokens MUST have exactly one logical
Txn-Token Service.</t>
    </section>
    <section anchor="protocol-overview">
      <name>Protocol overview</name>
      <section anchor="transaction-flow">
        <name>Transaction Flow</name>
        <t>This section describes the process by which an agent application
   obtains a Transaction Token, either acting autonomously or on behalf
   of a principal. The external endpoint requests a Txn-Token following
   the procedures defined in <eref target="https://drafts.oauth.net/oauth-transaction-tokens/draft-ietf-oauth-transaction-tokens.html">OAUTH-TXN-TOKENS</eref>, augmented with additional
   context for agent identity and, when applicable, principal identity.</t>
      </section>
      <section anchor="agent-application-transaction-flows">
        <name>Agent Application Transaction Flows</name>
        <t>The Transaction Token creation process varies depending on the
   presence of a principal.</t>
        <section anchor="principal-initiated-flow">
          <name>Principal-Initiated Flow</name>
          <t>When a principal initiates the workflow, the following steps occur:</t>
          <ol spacing="normal" type="1"><li>
              <t>The principal invokes the agent application to perform a task.</t>
            </li>
            <li>
              <t>The agent application calls an external endpoint. External endpoint throws back OAuth challenges.</t>
            </li>
            <li>
              <t>The agent application authenticates using an OAuth 2.0 Auth code flow <eref target="https://tools.ietf.org/html/rfc6749">RFC6749</eref>
access token. The access token contains subject and clientId claims as per <eref target="https://datatracker.ietf.org/doc/rfc9068">RFC9068</eref>.</t>
            </li>
            <li>
              <t>The external endpoint submits the received access token along with its Subject token to the
Txn-Token Service. Subject token requirements are specified in <eref target="https://drafts.oauth.net/oauth-transaction-tokens/draft-ietf-oauth-transaction-tokens.html">OAUTH-TXN-TOKENS</eref>.</t>
            </li>
            <li>
              <t>The Txn-Token Service validates the access token.</t>
            </li>
            <li>
              <t>The Txn-Token Service populates the Txn-Token's <tt>sub</tt> claim following the rules specified in <eref target="https://drafts.oauth.net/oauth-transaction-tokens/draft-ietf-oauth-transaction-tokens.html">OAUTH-TXN-TOKENS</eref>. The <tt>sub</tt> claim is determined based on the subject_token provided in the request, according to the conditions and rules defined in the base Transaction Tokens specification. This ensures that the principal is properly represented in the Txn-Token.</t>
            </li>
            <li>
              <t>The Txn-Token Service copies the access token's <tt>clientId</tt> claim to the Txn-Token's <tt>act</tt> field. Any nested structure within the <tt>clientId</tt> claim is preserved. If the access token contains an <tt>act</tt> claim, that value MAY be used instead of <tt>clientId</tt>.</t>
            </li>
            <li>
              <t>The Txn-Token Service issues the Txn-Token to the requesting workload.</t>
            </li>
          </ol>
        </section>
        <section anchor="autonomous-flow">
          <name>Autonomous Flow</name>
          <t>When the agent application operates autonomously, the following
   steps occur:</t>
          <ol spacing="normal" type="1"><li>
              <t>The agent application initiates a task based on an event or
scheduled assignment.</t>
            </li>
            <li>
              <t>The agent application calls an external endpoint. OAuth challenge flow starts.</t>
            </li>
            <li>
              <t>The agent application authenticates using an OAuth 2.0 <eref target="https://tools.ietf.org/html/rfc6749">RFC6749</eref>. When an autonomous agent
(no human resource owner) needs to call another resource server using OAuth,
it follows the Client Credentials Grant defined explicitly in <eref target="https://tools.ietf.org/html/rfc6749">RFC6749</eref>.</t>
            </li>
            <li>
              <t>The agent application uses the access token to call the external endpoint.</t>
            </li>
            <li>
              <t>The external endpoint submits the received access token along with its Subject token to the
Txn-Token Service. Subject token requirements are specified in <eref target="https://drafts.oauth.net/oauth-transaction-tokens/draft-ietf-oauth-transaction-tokens.html">OAUTH-TXN-TOKENS</eref>.</t>
            </li>
            <li>
              <t>The Txn-Token Service validates the access token.</t>
            </li>
            <li>
              <t>The Txn-Token Service populates the Txn-Token's <tt>sub</tt> claim following the rules specified in <eref target="https://drafts.oauth.net/oauth-transaction-tokens/draft-ietf-oauth-transaction-tokens.html">OAUTH-TXN-TOKENS</eref>. The <tt>sub</tt> claim is determined based on the subject_token provided in the request. For autonomous agents, this typically represents the agent's own identity.</t>
            </li>
            <li>
              <t>The Txn-Token Service copies the access token's <tt>sub</tt> or <tt>clientId</tt> claim to the Txn-Token's <tt>act</tt> field. Any nested structure is preserved. The <tt>act</tt> field identifies the agent performing the autonomous action.</t>
            </li>
          </ol>
        </section>
      </section>
      <section anchor="flow-diagrams">
        <name>Flow Diagrams</name>
        <section anchor="principal-initiated-flow-1">
          <name>Principal-Initiated Flow</name>
          <t>Based on the updated flow, here's a more detailed RFC-style flow diagram:</t>
          <artwork type="ascii-art"><![CDATA[
Principal    Agent App    External    Authorization   Txn-Token
                         Endpoint        Server        Service
   |            |           |              |             |
   | Invoke     |           |              |             |
   | agent task |           |              |             |
   |----------->|           |              |             |
   |            |           |              |             |
   |            | Call external API        |             |
   |            |---------->|              |             |
   |            |           |              |             |
   |            |   OAuth Challenge        |             |
   |            |<----------|              |             |
   |            |           |              |             |
   |            | Initiate Auth Code Flow  |             |
   |            |------------------------->|             |
   |            |           |              |             |
   |            | Auth Code                |             |
   |            |<-------------------------|             |
   |            |           |              |             |
   |            | Exchange code for token  |             |
   |            |------------------------->|             |
   |            |           |              |             |
   |            | Access Token (AT1)       |             |
   |            | w/ sub, clientId claims  |             |
   |            |<-------------------------|             |
   |            |           |              |             |
   |            | Call with AT1            |             |
   |            |---------->|              |             |
   |            |           |              |             |
   |            |           | Request Txn-Token          |
   |            |           | with AT1, Subject token    |
   |            |           | as param     |             |
   |            |           |--------------------------->|
   |            |           |              |             |
   |            |           |              |    Validate AT1
   |            |           |              |    Extract claims
   |            |           |              |    Set sub from Subject token
   |            |           |              |    Set act from AT1.clientId
   |            |           |              |             |
   |            |           |              |             |
   |            |           |              |             |
   |            |           |              |             |
   |            |           | Txn-Token    |             |
   |            |           |<---------------------------|
   |            |           |              |             |

Legend:
----> : Request flow
<---- : Response flow
  |   : Component boundary
]]></artwork>
          <t>Notes:
1. AT1 refers to the access token obtained by Agent App
2. The External Endpoint uses its own access token to call Txn-Token Service
3. AT1 is passed as a parameter in the Txn-Token request
4. The flow shows detailed OAuth 2.0 Authorization Code flow steps
5. Token validation and claim extraction steps are shown in the Txn-Token Service</t>
        </section>
        <section anchor="autonomous-flow-1">
          <name>Autonomous Flow</name>
          <artwork type="ascii-art"><![CDATA[
Agent App    External    Authorization   Txn-Token
            Endpoint        Server        Service
    |           |              |             |
    | Self-     |              |             |
    | triggered |              |             |
    | event     |              |             |
    |--+        |              |             |
    |  |        |              |             |
    |<-+        |              |             |
    |           |              |             |
    | Call external API        |             |
    |---------->|              |             |
    |           |              |             |
    |   OAuth Challenge        |             |
    |<----------|              |             |
    |           |              |             |
    | Client Credentials Grant |             |
    |------------------------->|             |
    |           |              |             |
    | Access Token (AT1)       |             |
    |  sub, aud claims         |             |
    |<-------------------------|             |
    |           |              |             |
    | Call with AT1            |             |
    |---------->|              |             |
    |           |              |             |
    |           | Request Txn-Token          |
    |           | with AT1, Subject token    |
    |           | as param     |             |
    |           |--------------------------->|
    |           |              |             |
    |           |              |    Validate AT1
    |           |              |    Extract claims
    |           |              |    Set sub from aud
    |           |              |    Set act.sub from clientId or sub
    |           |              |             |
    |           |              |             |
    |           |              |             |
    |           | Txn-Token    |             |
    |           |<---------------------------|
    |           |              |             |

Legend:
----> : Request flow
<---- : Response flow
  |   : Component boundary
  +   : Internal process
--+   : Self-triggered event

Notes:
* AT1: Access token obtained via Client Credentials Grant
* External Endpoint uses subject token for authenticating itself to Txn-Token Service
* AT1 is included as parameter in Txn-Token request
* Self-triggered events can be scheduled tasks or external triggers
* Token validation includes signature and claims verification
]]></artwork>
        </section>
      </section>
      <section anchor="replacement-tokens">
        <name>Replacement tokens</name>
        <t>Txn-Token Service provides capability to get a replacement Txn-Token as defined in the <eref target="https://drafts.oauth.net/oauth-transaction-tokens/draft-ietf-oauth-transaction-tokens.html#name-creating-replacement-txn-to">OAUTH-TXN-TOKENS.replacement flow</eref>. If the original Txn-Token used to get replacement token contains 'actor' and 'principal' claims then in the replaced Txn-Token, the values of the 'actor' and 'principal' MUST remain unchanged similar to 'txn', <tt>sub</tt> and 'aud' claims.</t>
      </section>
      <section anchor="txn-token-format">
        <name>Txn-Token Format</name>
        <section anchor="jwt-header">
          <name>JWT Header</name>
          <t>No changes to the JWT header from the base specification: <tt>typ</tt> MUST be <tt>txntoken+jwt</tt>, with a signing key identifier such as <tt>kid</tt>.</t>
        </section>
        <section anchor="jwt-body-claims">
          <name>JWT Body Claims</name>
          <t>The Txn-Token body augments the base claim set with the <tt>act</tt> field for agent context. Existing claims like txn, sub, aud, iss, iat, exp, scope, tctx, and req_wl retain identical semantics, population rules, and immutability guarantees as defined in <eref target="https://drafts.oauth.net/oauth-transaction-tokens/draft-ietf-oauth-transaction-tokens.html">OAUTH-TXN-TOKENS</eref>.</t>
          <t>In this example, the agent is 3rd party and not part of trust domain. It hits API Gateway in trust domain and API Gateway requests Txn-Token from Txn-token Service using
access token received from 3P agent and its own subject token (to authenticate with Txn-Token Service). Requesting workload is API Gateway. Agent is agent-identity-1 (clientId in the access token issued to 3P agent to act on behalf of user:alice)</t>
          <sourcecode type="json"><![CDATA[
{
  "txn": "c2dc3992-2d65-483a-93b5-2dd9f02c276e",
  "sub": "user:alice@example.com", // if its human initiated
  "aud": "https://trading.trust-domain.example/stocks",
  "iss": "https://txn-svc.trust-domain.example",
  "iat": 1697059200,
  "exp": 1697059500,
  "purp": "trade.stocks",
  "tctx": {
    "action": "BUY",
    "ticker": "MSFT",
    "quantity": "100"
  },
  "req_wl": "apigateway.trust-domain.example", // API gateway requests Txn-token
  "act": {
     "sub":"agent-identity-1" // 3P agent hitting API gateway owned by trust domain
  }
}
]]></sourcecode>
        </section>
      </section>
      <section anchor="agentic-context">
        <name>Agentic Context</name>
        <t>The Txn-Token MAY contain an <tt>agentic_ctx</tt> claim. Txn-Tokens are increasingly used in environments where transactions are executed by or with the assistance of autonomous or semi-autonomous agents (for example, Large Language Model (LLM)–based agents, workflow orchestrators, and policy-driven automation components). In such deployments, relying exclusively on subject identity and generic transaction parameters is insufficient to make robust authorization decisions. Additional information about the agent that is interpreting and acting on the transaction is often required.</t>
        <section anchor="field-definitions-and-population">
          <name>Field definitions and population</name>
          <t>All fields are OPTIONAL as some of these fields may not be avaiable for 3P (third party agents) connecting to your external service (edge) within trust domain. However, for internal agents within trust domain, you MAY get following information. For 3P agents outside your trust domain, as called out above, you will be able to get <tt>act</tt> claim information using access token and rest of the below fields in <tt>agentic_context</tt> may or may not be available.</t>
          <ul spacing="normal">
            <li>
              <t><strong>prov (Provenance)</strong>: Defines the "Behavioral DNA" of the agent. The <tt>manifest_hash</tt> is a cryptographic digest of the agent’s system instructions and core logic, ensuring the agent’s "guardrails" have not been modified. The <tt>manifest_hash</tt> is an opaque key. Resource Servers are expected to resolve this hash against a local or remote policy store to determine the specific behavioral guardrails applied to the agent at that version.</t>
            </li>
            <li>
              <t><strong>posture (Environmental Integrity)</strong>: Details the security tier of the runtime. This includes hardware-backed proof (e.g., TEE) that the agent is isolated from the host OS or cloud provider.</t>
            </li>
            <li>
              <t><strong>identity (Workload Origin)</strong>: Captures the specific machine-actor instance. The <tt>workload_id</tt> distinguishes the instrument (the agent software) from the subject (the end-user).</t>
            </li>
          </ul>
          <t>The <tt>agentic_ctx</tt> claim is populated during the token exchange process by the Transaction Token Service (TTS), which serves as the authoritative source for the agent’s operational identity. This context MAY be derived from various but not limited to sources such as : (1) Static Manifests, which include cryptographic hashes of the agent’s system prompt, model configuration, and registered source code identifiers; (2) Environmental Posture, consisting of telemetry injected by the execution environment or API gateway, such as the hardware security level (e.g., TEE measurements) or network origin; and (3) Workload Mapping, where attributes are mirrored from the agent’s primary workload identity (e.g., SPIFFE or OIDC claims). By centralizing this population at the TTS, the <tt>agentic_ctx</tt> provides a consistent and tamper-resistant representation of the agent’s "persona." This allows downstream resource servers to evaluate the agent’s integrity and origin against local safety policies independently of the specific actions or permissions requested in the transaction.</t>
          <t>To ensure the integrity of the <tt>agentic_ctx</tt>, the Transaction Token Service (TTS) MUST not rely on self-reported data from the agent. Instead, it populates these fields through a Verified Exchange model. Hardware-backed fields like <tt>posture</tt> and <tt>tee</tt> are derived from cryptographic Attestation Documents generated by the agent's execution environment (e.g., a Trusted Execution Environment) and verified by the TTS against cloud provider roots of trust. Software-related fields, such as the <tt>manifest_hash</tt>, are retrieved via a Registry-First approach: the TTS performs an out-of-band lookup in a secure Agent Registry using the agent’s authenticated client_id, ensuring that the "behavioral fingerprint" in the token matches the developer’s registered configuration rather than a potentially tampered runtime state. Finally, the identity claims are mirrored from the transport layer (e.g., mTLS certificates or SPIFFE SVIDs), binding the token to the specific verified workload instance.</t>
        </section>
        <section anchor="example-of-agenticctx-with-additional-context">
          <name>Example of <tt>agentic_ctx</tt> with additional context</name>
          <sourcecode type="json"><![CDATA[
{
  "agentic_ctx": {
    "prov": {
      "manifest_hash": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
      "model_id": "llama-3.1-70b-v1",
      "version": "2.4.1"
    },
    "posture": {
      "tee": "aws-nitro-enclave",
      "assurance": "high",
      "boot_gold": true
    },
    "identity": {
      "workload_id": "spiffe://prod.acme.com/billing-agent",
      "origin_node": "node-77-east-1"
    }
  }
}
]]></sourcecode>
        </section>
        <section anchor="implementation-note-integrity-and-resolution">
          <name>Implementation Note: Integrity and Resolution</name>
          <t>The fields within <tt>agentic_ctx</tt> represent a "Statement of Posture" rather than a set of permissions. To avoid authorization failure, implementations should ensure that:
* <strong>Registry Synchronization</strong>: The <tt>manifest_hash</tt> is treated as a lookup key. Resource Servers should maintain or have access to a known-good database of hashes to map cryptographic signatures to behavioral guardrails.
* <strong>Hardware Roots of Trust</strong>: When <tt>posture</tt> claims are present, the Transaction Token Service MUST verify the underlying attestation document against the hardware manufacturer's public keys.
* <strong>Non-Collusion</strong>: The <tt>agentic_ctx</tt> is distinct from the <tt>sub</tt> claim. While the <tt>sub</tt> identifies the authorizing principal, the <tt>agentic_ctx</tt> identifies the machine-actor. Authorization logic SHOULD evaluate the intersection of both identities.</t>
        </section>
      </section>
    </section>
    <section anchor="multi-agent-flows">
      <name>Multi-agent flows</name>
      <t>In complex agentic workflows, a transaction often originates from a 3rd-party (3P) agent and propagates through one or more 1st-party (1P) agents within the local trust domain. To maintain Zero Trust integrity, this specification uses a structured Postured Lineage within the <tt>agentic_ctx</tt>. This ensures that downstream Resource Servers can evaluate the security posture of the entire chain, rather than relying solely on the identity of the immediate caller.</t>
      <section anchor="the-bifurcated-trust-model">
        <name>The Bifurcated Trust Model</name>
        <t>The <tt>agentic_ctx</tt> differentiates between two types of actors in a chain:</t>
        <ul spacing="normal">
          <li>
            <t><strong>The Originator (External/3P)</strong>: The entry point of the request into the trust domain. Because the hardware and software of 3P agents are outside local control, their context is Asserted via identity federation. Posture and provenance fields for these actors are typically marked as unverified or none.</t>
          </li>
          <li>
            <t><strong>The Current Actor (Internal/1P)</strong>: The agent currently executing the request. For internal agents, the context is Verified by the Transaction Token Service (TTS) using hardware attestation and registry-based manifest lookups.</t>
          </li>
        </ul>
      </section>
      <section anchor="monotonic-attenuation-of-trust">
        <name>Monotonic Attenuation of Trust</name>
        <t>A chain’s security posture is only as strong as its weakest link. The TTS MUST calculate a min_assurance_level during every token replacement flow. If a "High-Trust" internal agent is triggered by a "Low-Trust" 3P originator, the transaction’s overall assurance level remains low. This prevents Identity Laundering, where unverified external agents bypass security guardrails by proxying requests through internal services. The Transaction Token Service (TTS) determines the <tt>min_assurance_level</tt> by performing a comparative risk analysis during the token replacement flow. It essentially identifies the "weakest link" in the execution chain by comparing the posture of the incoming token with the verified posture of the new requesting agent.</t>
        <section anchor="delegation-via-replacement-flow">
          <name>Delegation via Replacement Flow</name>
          <t>When an internal agent (the "Delegatee") requires a Transaction Token to continue a chain initiated by another actor (the "Delegator"), it MUST follow the replacement flow procedures defined in <eref target="https://drafts.oauth.net/oauth-transaction-tokens/draft-ietf-oauth-transaction-tokens.html">OAUTH-TXN-TOKENS</eref> with the following modifications:</t>
          <ul spacing="normal">
            <li>
              <t><strong>Subject Immutability</strong>: The <tt>txn</tt> and <tt>sub</tt> (principal) claims MUST be copied from the subject_token to the new Transaction Token without modification.</t>
            </li>
            <li>
              <t><strong>Lineage Preservation</strong>: The TTS MUST extract the identity of the Delegator from the incoming token and append it to the <tt>txn_path</tt> array.</t>
            </li>
            <li>
              <t><strong>Context Enrichment</strong>: The TTS MUST populate the <tt>current_actor</tt> object with verified telemetry (TEE posture, manifest hashes) corresponding to the Delegatee.</t>
            </li>
          </ul>
        </section>
        <section anchor="multi-agent-example-jwt-body-claims">
          <name>Multi-agent example JWT body claims</name>
          <t>This example represents a delegated state: a 3rd-party Assistant (3p-assistant-ext-99) has initiated a task, which is now being executed by an internal, 1st-party Billing Agent (1p-billing-svc-v2) running in a secure enclave.</t>
          <sourcecode type="json"><![CDATA[
{
  "txn": "abc-123-xyz",
  "sub": "user_8821@example.com",
  "iss": "[https://txn-svc.trust-domain.example](https://txn-svc.trust-domain.example)",
  "iat": 1712850000,
  "exp": 1712850300,
  "req_wl": "apigateway.trust-domain.example", // API gateway requests Txn-token
  "agentic_ctx": {
    "current_actor": {
      "identity": { 
        "workload_id": "1p-billing-svc-v2",
        "origin_node": "internal-cluster-alpha-node-4"
      },
      "posture": { 
        "tee": "aws-nitro-enclave", 
        "assurance": "high" 
      },
      "prov": { 
        "manifest_hash": "sha256:4455..." 
      }
    },
    "originator": {
      "identity": { "workload_id": "3p-assistant-ext-99" },
      "posture": { 
        "tee": "unverified", 
        "assurance": "low" 
      },
      "prov": { "manifest_hash": "none" }
    },
    "chain_metadata": {
      "hop_count": 2,
      "min_assurance_level": "low",
      "txn_path": ["3p-assistant-ext-99", "1p-billing-svc-v2"]
    }
  }
}
]]></sourcecode>
        </section>
        <section anchor="loop-prevention">
          <name>Loop prevention</name>
          <t>To prevent infinite recursion in autonomous agentic loops, the <tt>txn_path</tt> MUST be updated at every hop. The TTS MUST append the current workload_id to the path. If an agent receives a token where its own <tt>workload_id</tt> is already present in the <tt>txn_path</tt>, the request MUST be rejected.</t>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <ol spacing="normal" type="1"><li>
          <t>All the security considerations mentioned in <eref target="https://drafts.oauth.net/oauth-transaction-tokens/draft-ietf-oauth-transaction-tokens.html">OAUTH-TXN-TOKENS</eref> apply.</t>
        </li>
        <li>
          <t>Token Replay Protection Implementations MUST enforce strict token lifetime validation. The short-lived nature of Transaction Tokens helps mitigate replay attacks, but implementations SHOULD also consider:
          </t>
          <ul spacing="normal">
            <li>
              <t>Implementing token tracking mechanisms within trust domains</t>
            </li>
            <li>
              <t>Validating token usage context</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Actor Identity Security
          </t>
          <ul spacing="normal">
            <li>
              <t>Implementations MUST validate <tt>act</tt> claims in tokens</t>
            </li>
            <li>
              <t>The Txn-Token Service MUST verify the authenticity of actor context before token issuance</t>
            </li>
            <li>
              <t>During replacement flow, Txn-Token Service MUST NOT modify the <tt>act</tt> field in the incoming Txn-Token</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Principal Context Protection
          </t>
          <ul spacing="normal">
            <li>
              <t>Systems MUST prevent unauthorized modifications to the <tt>sub</tt> claim during token propagation. Txn-Tokens are cryptographically signed to ensure integrity.</t>
            </li>
            <li>
              <t>During replacement flow, Txn-Token Service MUST NOT modify the <tt>sub</tt> claim in the incoming Txn-Token</t>
            </li>
            <li>
              <t>The Txn-Token Service MUST follow the subject population rules defined in <eref target="https://drafts.oauth.net/oauth-transaction-tokens/draft-ietf-oauth-transaction-tokens.html">OAUTH-TXN-TOKENS</eref> to ensure proper principal representation</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Transaction Chain Integrity
          </t>
          <ul spacing="normal">
            <li>
              <t>Implementations MUST maintain cryptographic integrity of the token chain</t>
            </li>
            <li>
              <t>Services MUST validate tokens at trust domain boundaries</t>
            </li>
            <li>
              <t>Systems MUST implement protection against token tampering during service-to-service communication</t>
            </li>
          </ul>
        </li>
        <li>
          <t>AI Agent Specific Controls
          </t>
          <ul spacing="normal">
            <li>
              <t>Implementations MUST enforce scope boundaries for AI agent operations</t>
            </li>
            <li>
              <t>Systems SHOULD implement behavioral monitoring for AI agent activities by logging <tt>act</tt> and <tt>sub</tt> claims in audit logs</t>
            </li>
            <li>
              <t>Systems MUST maintain audit trails of AI agent activities</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Token Transformation Security
          </t>
          <ul spacing="normal">
            <li>
              <t>The Txn-Token Service MUST validate all claims during access token to Txn-Token conversion</t>
            </li>
            <li>
              <t>Implementations MUST verify signatures and formats of all tokens</t>
            </li>
            <li>
              <t>Systems MUST prevent unauthorized manipulation during token transformation</t>
            </li>
            <li>
              <t>The Txn-Token Service MUST ensure that the <tt>act</tt> field accurately represents the agent identity from the access token</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Replacement Token Considerations
          </t>
          <ul spacing="normal">
            <li>
              <t>Systems MUST verify the authenticity and validity of original tokens before replacement</t>
            </li>
            <li>
              <t>Systems MUST implement controls to prevent unauthorized replacement requests</t>
            </li>
            <li>
              <t>The immutability of <tt>act</tt> and <tt>sub</tt> claims during replacement ensures consistent identity context throughout the transaction lifecycle</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Infrastructure Security
          </t>
          <ul spacing="normal">
            <li>
              <t>All component communications MUST use secure channels</t>
            </li>
            <li>
              <t>Implementations MUST enforce strong authentication of the Authorization Server</t>
            </li>
            <li>
              <t>Systems MUST implement regular rotation of cryptographic keys</t>
            </li>
            <li>
              <t>Trust domain boundaries MUST be clearly defined and enforced</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Prevention of Identity Laundering
          </t>
          <ul spacing="normal">
            <li>
              <t>Implementations MUST enforce Monotonic Attenuation of the min_assurance_level.</t>
            </li>
            <li>
              <t>The TTS MUST NOT allow a replacement token to have a higher assurance level than the incoming subject token, even if the current actor is running in a   High-Assurance environment.</t>
            </li>
            <li>
              <t>This prevents a low-trust 3rd-party originator from "laundering" its identity through a high-trust internal agent to bypass security guardrails at the Resource Server.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Integrity of the Agent Registry
          </t>
          <ul spacing="normal">
            <li>
              <t>The security of the prov (Provenance) claims relies entirely on the integrity of the Agent Registry. If an attacker can modify the registry to associate a malicious <tt>manifest_hash</tt> with a legitimate <tt>workload_id</tt>, they can trick the TTS into asserting high software integrity for tampered code.</t>
            </li>
            <li>
              <t>Access to the Agent Registry MUST be restricted to authorized deployment pipelines and protected with strong integrity controls.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Hardware Attestation Forgery
          </t>
          <ul spacing="normal">
            <li>
              <t>When <tt>posture</tt> claims indicate the use of a Trusted Execution Environment (TEE), the TTS MUST verify the underlying Attestation Document against the hardware manufacturer’s Root of Trust.</t>
            </li>
            <li>
              <t>Failure to verify these signatures allows a compromised host to spoof a "High" assurance posture, leading to unauthorized access to sensitive data.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Loop Detection and Recursion Limits
          </t>
          <ul spacing="normal">
            <li>
              <t>The use of the <tt>txn_path</tt> is REQUIRED to prevent infinite recursion in autonomous agentic workflows.</t>
            </li>
            <li>
              <t>Resource Servers and the TTS SHOULD also enforce a <tt>maximum hop_count</tt> to prevent resource exhaustion attacks. If the path exceeds a defined threshold, the transaction MUST be terminated.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Data Leakage in Lineage Propagation
          </t>
          <ul spacing="normal">
            <li>
              <t>The <tt>agentic_ctx</tt> may contain sensitive internal information, such as origin_node or specific <tt>workload_id</tt> structures.</t>
            </li>
            <li>
              <t>When a 1st-party agent calls an external 3rd-party service, the TTS MUST strip these internal-only fields from the token to prevent infrastructure leakage.</t>
            </li>
            <li>
              <t>Only the minimum necessary identity context should be egressed from the trust domain.</t>
            </li>
          </ul>
        </li>
      </ol>
    </section>
    <section anchor="references">
      <name>References</name>
      <section anchor="normative-references">
        <name>Normative References</name>
        <t><eref target="https://datatracker.ietf.org/doc/html/rfc2119">RFC2119</eref>
    Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, <eref target="https://www.rfc-editor.org/rfc/rfc2119">https://www.rfc-editor.org/rfc/rfc2119</eref>.</t>
        <t><eref target="https://datatracker.ietf.org/doc/html/rfc8174">RFC8174</eref>
     Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, https://www.rfc-editor.org/rfc/rfc8174</t>
        <t><eref target="https://tools.ietf.org/html/rfc6749">RFC6749</eref>
    Hardt, D., Ed., "The OAuth 2.0 Authorization Framework", RFC 6749, DOI 10.17487/RFC6749, October 2012, <eref target="https://www.rfc-editor.org/rfc/rfc6749">https://www.rfc-editor.org/rfc/rfc6749</eref>.</t>
        <t><eref target="https://tools.ietf.org/html/rfc7519">RFC7519</eref>
    Jones, M., Bradley, J., and N. Sakimura, "JSON Web Token (JWT)", RFC 7519, DOI 10.17487/RFC7519, May 2015, <eref target="https://www.rfc-editor.org/rfc/rfc7519">https://www.rfc-editor.org/rfc/rfc7519</eref>.</t>
        <t><eref target="https://tools.ietf.org/html/rfc7515">RFC7515</eref>
    Jones, M., Bradley, J., and N. Sakimura, "JSON Web Signature (JWS)", RFC 7515, DOI 10.17487/RFC7515, May 2015, <eref target="https://www.rfc-editor.org/rfc/rfc7515">https://www.rfc-editor.org/rfc/rfc7515</eref>.</t>
        <t><eref target="https://tools.ietf.org/html/rfc8693">RFC8693</eref>
    Jones, M., Nadalin, A., Campbell, B., Ed., Bradley, J., and C. Mortimore, "OAuth 2.0 Token Exchange", RFC 8693, DOI 10.17487/RFC8693, January 2020, <eref target="https://www.rfc-editor.org/rfc/rfc8693">https://www.rfc-editor.org/rfc/rfc8693</eref>.</t>
        <t><eref target="https://tools.ietf.org/html/rfc9068">RFC9068</eref>
    Bertocci, V., "JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens", RFC 9068, DOI 10.17487/RFC9068, October 2021, <eref target="https://www.rfc-editor.org/rfc/rfc9068">https://www.rfc-editor.org/rfc/rfc9068</eref>.</t>
        <t><eref target="https://datatracker.ietf.org/doc/html/rfc9396">RFC9396</eref>
    T. Lodderstedt, J. Richer, B. Campbell, "OAuth 2.0 Rich Authorization Requests", RFC 9396, DOI 10.17487/RFC9396, May 2023, <eref target="https://www.rfc-editor.org/rfc/rfc9396">https://www.rfc-editor.org/rfc/rfc9396</eref>.</t>
        <t><eref target="https://datatracker.ietf.org/doc/draft-tulshibagwale-oauth-transaction-tokens">OAUTH-TXN-TOKENS</eref>
     Atul Tulshibagwale, George Fletcher, Pieter Kasselman, "OAuth Transaction Tokens", <eref target="https://drafts.oauth.net/oauth-transaction-tokens/draft-ietf-oauth-transaction-tokens.html">https://drafts.oauth.net/oauth-transaction-tokens/draft-ietf-oauth-transaction-tokens.html</eref></t>
      </section>
    </section>
  </middle>
  <back>
    <?line 567?>

<section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>name: Dr. Chunchi (Peter) Liu 
email: Liuchunchi(Peter) &lt;liuchunchi=40huawei.com@dmarc.ietf.org&gt;</t>
    </section>
    <section anchor="contributors">
      <name>Contributors</name>
      <t>name: Atul Tulshibagwale
org: SGNL
email: atul@sgnl.ai</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
no11Ovgfflqjg52JAAA=

-->

</rfc>
