<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 2.6.10) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-oauth-transaction-tokens-for-agents-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title>Transaction Tokens For Agents</title>

    <author fullname="ASHAY RAUT">
      <organization>Amazon</organization>
      <address>
        <email>asharaut@amazon.com</email>
      </address>
    </author>

    <date year="2025" month="November" day="05"/>

    
    
    <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 title="About This Document" removeInRFC="true">
      <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>

<t><list style="numbers" type="1">
  <t>The actor context, which identifies the AI agent performing
the action</t>
  <t>The principal context, which identifies the human or system
entity on whose behalf the actor operates</t>
</list></t>

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

<t><list style="numbers" type="1">
  <t>The principal invokes the agent application to perform a task.</t>
  <t>The agent application calls an external endpoint. External endpoint throws back OAuth challenges.</t>
  <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>
  <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>
  <t>The Txn-Token Service validates the access token.</t>
  <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>
  <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>
  <t>The Txn-Token Service uses the access token's 'sub' claim to
      populate the Txn-Token's 'principal' context.</t>
</list></t>

</section>
<section anchor="autonomous-flow"><name>Autonomous Flow</name>

<t>When the agent application operates autonomously, the following
   steps occur:</t>

<t><list style="numbers" type="1">
  <t>The agent application initiates a task based on an event or
scheduled assignment.</t>
  <t>The agent application calls an external endpoint. OAuth challenge flow starts.</t>
  <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>
  <t>The agent application uses the access token to call the external endpoint.</t>
  <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>
  <t>The Txn-Token Service validates the access token and extracts
the actor and subject identities.</t>
  <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>
  <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>
</list></t>

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

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

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

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

</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="security-considerations"><name>Security Considerations</name>

<t><list style="numbers" type="1">
  <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>
  <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>
  <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 not replace actor context in the incoming Txn-Token.</t>
  <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 not replace principal context in the incoming Txn-Token.</t>
  <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>
  <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>
  <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>
  <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>
  <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>
</list></t>

</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 406?>

<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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
j7RN/gf8aT1L2UoAAA==

-->

</rfc>

