<?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-01" 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-01"/>
    <author fullname="ASHAY RAUT">
      <organization>Amazon</organization>
      <address>
        <email>asharaut@amazon.com</email>
      </address>
    </author>
    <date year="2026" month="January" day="10"/>
    <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>
    </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>
        <t>### JWT Header
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 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>
          <t><tt>
{
  "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"
}
</tt></t>
        </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>
    </section>
  </middle>
  <back>
    <?line 436?>

<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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

-->

</rfc>
