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

<t>This document specifies an extension to the OAuth Transaction Tokens
framework (https://drafts.oauth.net/oauth-transaction-tokens/draft-ietf-oauth-transaction-tokens.html)
to support agent context propagation within Transaction
Tokens for agent-based workloads. The extension defines two new
context fields: 'actor' and 'principal'. The 'actor' field identifies
the agent performing the action, while the 'principal' field identifies
the human or system entity that initiated the agent's action. For
autonomous agents operating independently, the 'principal' field MAY
be omitted. These additional context fields 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-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 51?>

<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 two new contexts within the Transaction Token
   to address these limitations:</t>
      <ol spacing="normal" type="1"><li>
          <t>The actor context, which identifies the AI agent performing
the action</t>
        </li>
        <li>
          <t>The principal context, which identifies the human or system
entity on whose behalf the actor operates</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>
      <t>There is an opportunity here to add 'agentic context' in the Txn Token too.
   The Txn-Token MAY contain an agentic_ctx claim. The value of this claim, if present, MUST be a JSON object. T
   The agentic_ctx claim conveys attributes about the agent and its operational constraints that are relevant to authorization, auditing, and policy evaluation.</t>
    </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 to the
Txn-Token Service. Note that this received access token is different rather the access token which
external endpoint has available to call Txn-Token Service itself. So the received access token is actually a parameter required
to call Txn-token Service</t>
            </li>
            <li>
              <t>The Txn-Token Service validates the access token.</t>
            </li>
            <li>
              <t>As specified in <eref target="https://drafts.oauth.net/oauth-transaction-tokens/draft-ietf-oauth-transaction-tokens.html">OAUTH-TXN-TOKENS</eref>, the Txn-Token Service uses
the access token's 'aud' claim to populate the Txn-Token's
'sub' claim.</t>
            </li>
            <li>
              <t>The Txn-Token Service copies the access token's 'actor' or 'clientId' claim
to the Txn-Token's 'actor' context. Any nested structure within
the 'actor' claim is preserved.</t>
            </li>
            <li>
              <t>The Txn-Token Service uses the access token's 'sub' claim to
      populate the Txn-Token's 'principal' context.</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 to the
Txn-Token Service. Note that this received access token is different rather the access token which
external endpoint has available to call Txn-Token Service itself. So the received access token is actually a parameter required
to call Txn-token Service</t>
            </li>
            <li>
              <t>The Txn-Token Service validates the access token and extracts
the actor and subject identities.</t>
            </li>
            <li>
              <t>As specified in <eref target="https://drafts.oauth.net/oauth-transaction-tokens/draft-ietf-oauth-transaction-tokens.html">OAUTH-TXN-TOKENS</eref>, the Txn-Token Service uses
      the access token's 'aud' claim to populate the Txn-Token's
      'sub' claim.</t>
            </li>
            <li>
              <t>The Txn-Token Service copies the 'sub' field from within the
      access token's 'actor' claim to the Txn-Token's 'actor' context.
      Any nested structure is preserved.</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)       |             |
   |            | sub, clientId claims     |             |
   |            |<-------------------------|             |
   |            |           |              |             |
   |            | Call with AT1            |             |
   |            |---------->|              |             |
   |            |           |              |             |
   |            |           | Request Txn-Token          |
   |            |           | with AT1 as param          |
   |            |           |--------------------------->|
   |            |           |              |             |
   |            |           |              |    Validate AT1
   |            |           |              |    Extract claims
   |            |           |              |    Set sub from aud
   |            |           |              |    Set actor from
   |            |           |              |    clientId
   |            |           |              |    Set principal
   |            |           |              |    from sub
   |            |           |              |             |
   |            |           | 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 as param          |
    |           |--------------------------->|
    |           |              |             |
    |           |              |    Validate AT1
    |           |              |    Extract claims
    |           |              |    Set sub from aud
    |           |              |    Set actor from
    |           |              |    sub in actor
    |           |              |    claim
    |           |              |             |
    |           | 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 its own credentials for 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', 'sub' 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 two new top-level claims for agent context: <tt>actor</tt> and <tt>principal</tt>. Existing claims like <tt>txn</tt>, <tt>sub</tt>, <tt>aud</tt>, <tt>iss</tt>, <tt>iat</tt>, <tt>exp</tt>, <tt>purp</tt>, <tt>tctx</tt>, and <tt>req_wl</tt> retain identical semantics, population rules, and immutability guarantees.</t>
          <sourcecode type="json"><![CDATA[
{
  "txn": "c2dc3992-2d65-483a-93b5-2dd9f02c276e",
  "sub": "api-gw.trust-domain.example",
  "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",
  "actor": {
    "agent_id": "agent-1234",
    "version": "v2.1.0",
    "deployment": "prod-us-east-1"
  },
  "principal": "user:alice@example.com"
}
]]></sourcecode>
        </section>
      </section>
      <section anchor="agentic-context">
        <name>Agentic Context</name>
        <t>The Txn-Token MAY contain an agentic_ctx 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>
        <sourcecode type="json"><![CDATA[
"agentic_ctx": {
  "agent_type": "planner+tool-orchestrator", // A string describing the functional role of the agent (for example, “planner”, “tool-orchestrator”, “data-assistant”, “code-execution-agent”). The semantics and allowed values are deployment-specific.
  "agent_version": "3.4.2", // A string indicating a version or configuration identifier for the agent. This value can be used to associate the transaction with a particular, reviewed agent policy or release
  "intent": "enumerate and validate production search services before Q4 traffic spike", // A string describing the high-level purpose of the transaction from the agent’s perspective (for example, “trade.stocks”, “enumerate.search.services”, “generate.billing.report”). This value is intended to support coarse-grained, intent-aware authorization policies.
  "allowed_actions": ["read"],
  "environment_constraints": { "environment": "prod", "region": "us" },
}
]]></sourcecode>
      </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:
2.1 Implementing token tracking mechanisms within trust domains
2.2 Validating token usage context</t>
        </li>
        <li>
          <t>Actor Identity Security
3.1. Implementations MUST validate actor claims in tokens
3.2. The Txn-Token Service MUST verify the authenticity of actor context before token issuance
3.3. During replacement flow, Txn-Token Service MUST avoid replacing actor context in the incoming Txn-Token.</t>
        </li>
        <li>
          <t>Principal Context Protection
4.1. Systems MUST prevent unauthorized modifications to principal context during token propagation. Txn-Token is cryptographically signed.
4.3. During replacement flow, Txn-Token Service MUST avoid replacing principal context in the incoming Txn-Token.</t>
        </li>
        <li>
          <t>Transaction Chain Integrity
5.1. Implementations MUST maintain cryptographic integrity of the token chain
5.2. Services MUST validate tokens at trust domain boundaries
5.3. Systems MUST implement protection against token tampering during service-to-service communication</t>
        </li>
        <li>
          <t>AI Agent Specific Controls
6.1. Implementations MUST enforce scope boundaries for AI agent operations
6.2. Systems SHOULD implement behavioral monitoring for AI agent activities by logging actor, principal in logs.
6.3. Systems MUST maintain audit trails of AI agent activities</t>
        </li>
        <li>
          <t>Token Transformation Security
7.1. The Txn-Token Service MUST validate all claims during access token to Txn-Token conversion
7.2. Implementations MUST verify signatures and formats of all tokens
7.3. Systems MUST prevent unauthorized manipulation during token transformation</t>
        </li>
        <li>
          <t>Replacement Token Considerations
8.1. Systems MUST verify the authenticity and validity of original tokens before replacement
8.2. Systems MUST implement controls to prevent unauthorized replacement requests</t>
        </li>
        <li>
          <t>Infrastructure Security
9.1. All component communications MUST use secure channels
9.2. Implementations MUST enforce strong authentication of the Authorization Server
9.3. Systems MUST implement regular rotation of cryptographic keys
9.4. Trust domain boundaries MUST be clearly defined and enforced</t>
        </li>
      </ol>
    </section>
    <section anchor="references">
      <name>References</name>
      <section anchor="normative-references">
        <name>Normative References</name>
        <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/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 458?>

<section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank the contributors and the OAuth working group members who gave valuable input to this draft.</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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
dlrksc6i/wFoUnIDelYAAA==

-->

</rfc>
