<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<!-- name="GENERATOR" content="github.com/mmarkdown/mmark Mmark Markdown Processor - mmark.nl" -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" submissionType="IETF" category="info" xml:lang="en" consensus="true" docName="draft-mw-oauth-actor-chain-overview-00" obsoletes="" updates="" tocInclude="true" symRefs="true" sortRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.0 -->
  <front>
    <title abbrev="ACTOR-CHAIN-OVERVIEW">OAuth Actor Chain: Overview and Design</title>
    <seriesInfo name="Internet-Draft" value="draft-mw-oauth-actor-chain-overview-00"/>
    <author initials="A." surname="Prasad" fullname="A Prasad">
      <organization/>
      <address>
        <postal>
          <street/>
        </postal>
        <email>ap1729@gmail.com</email>
      </address>
    </author>
    <author initials="R." surname="Krishnan" fullname="Ram Krishnan">
      <organization/>
      <address>
        <postal>
          <street/>
        </postal>
        <email>ramkri123@gmail.com</email>
      </address>
    </author>
    <author initials="D." surname="Lopez" fullname="Diego R. Lopez">
      <organization/>
      <address>
        <postal>
          <street/>
        </postal>
        <email>diego.r.lopez@telefonica.com</email>
      </address>
    </author>
    <author initials="S." surname="Addepalli" fullname="Srinivasa Addepalli">
      <organization/>
      <address>
        <postal>
          <street/>
        </postal>
        <email>srinivasa.addepalli@aryaka.com</email>
      </address>
    </author>
    <author initials="S." surname="Krishnan" fullname="Suresh Krishnan">
      <organization/>
      <address>
        <postal>
          <street/>
        </postal>
        <email>suresh.krishnan@gmail.com</email>
      </address>
    </author>
    <date year="2026" month="October" day="18"/>
    <area>Security</area>
    <workgroup>OAuth</workgroup>
    <keyword>actor chain</keyword>
    <keyword>oauth</keyword>
    <keyword>token exchange</keyword>
    <keyword>delegation</keyword>
    <abstract>
      <t>A request can pass through several services before reaching an API. OAuth
Token Exchange can represent an actor history in nested <tt>act</tt> claims. It
leaves the rules for constructing that history, limiting its disclosure, and
verifying an actor's own signature to additional profiles. Actor Chain
proposes those rules while keeping the Authorization Server responsible for
issuing tokens and applying policy.</t>
      <t>This document provides a new overview of the authors' Actor Chain proposal,
whose Internet-Draft lineage began in SPICE in February 2026. The companion
OAuth Actor Chain: Protocol and Interoperability specification continues the
existing OAuth draft series and defines wire formats and processing
requirements.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction" numbered="true" toc="default">
      <name>Introduction</name>
      <t>Applications delegate requests across services. Each receiving service
authorizes calls and may need actor identities, participation evidence, and
disclosure policy. Actors are services or agents acting for the token's subject.</t>
      <t>OAuth 2.0 Token Exchange <xref target="RFC8693" format="default"/> can represent history in nested <tt>act</tt>
claims. The Authorization Server (AS) decides whether to include it. Under
RFC 8693 Section 4.1, access control considers top-level claims and the
current actor; earlier actors are informational.</t>
      <t>Actor Chain, this proposal, specifies history construction, disclosure,
and verification. A workflow is a sequence of related authorization
transitions. The AS authenticates each new actor, checks authority, and
issues the next token.</t>
      <t>The companion protocol specification, <xref target="ACTOR-CHAIN-PROTOCOL" format="default"/>, defines the
implementation and interoperability requirements.</t>
      <section anchor="motivation" numbered="true" toc="default">
        <name>Motivation</name>
        <t>A receiving service may trust its immediate caller but still need to know
which earlier services participated in the request. Different recipients
need different parts of that history. These examples illustrate why:</t>
        <table align="center">
          <thead>
            <tr>
              <th align="left">Disclosure</th>
              <th align="left">Example authorization need</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">"Full"</td>
              <td align="left">A production executor checks the initiating planner and immediate policy broker. The release gateway additionally checks the executor and accepted route through all three.</td>
            </tr>
            <tr>
              <td align="left">"Subset"</td>
              <td align="left">A connector checks the request agent and planner. The repository checks the agent and connector without needing the planner's identity.</td>
            </tr>
            <tr>
              <td align="left">"Actor-Only"</td>
              <td align="left">An external payroll API authorizes the registered payroll connector without learning the internal HR agents that prepared the request.</td>
            </tr>
          </tbody>
        </table>
        <t>Each recipient applies normal OAuth authorization and its configured evidence
policy. Earlier identities in nested <tt>act</tt> remain informational; any required
direct verification uses the applicable actor evidence. Participation does not
prove business approval or successful execution.</t>
        <t>Workflow accountability is a separate need. Retained records can help an
authorized auditor correlate accepted actor steps across a workflow, even
when an individual resource needs only its immediate caller.</t>
      </section>
    </section>
    <section anchor="request-example" numbered="true" toc="default">
      <name>Illustrative Workflow</name>
      <t>For a report request, orchestrator A asks planner B to select documents;
B invokes connector C, which retrieves records from API D.</t>
      <t>For illustration, A/B use Agent2Agent (A2A) <xref target="A2A-SPEC" format="default"/>, B/C use remote Model
Context Protocol (MCP) <xref target="MCP-AUTH" format="default"/>, and D runs on Kubernetes. These are
optional deployment choices.</t>
      <artwork type="text" name="" align="left" alt=""><![CDATA[A orchestrator --A2A--> B planner
B planner --MCP--> C connector --HTTPS--> D document API
]]></artwork>
      <t>With exchange permissions configured, A obtains a token for B; B exchanges
it for a token addressed to C, and C exchanges that for one addressed to D. Each exchange records its
requesting actor; each receiver checks its token. Reusing a token for status
checks adds no step.</t>
      <t>For "Verified" assurance, C signs an actor proof requesting access to D
from B's accepted step. The AS checks the proof and authority, then signs an
acceptance. C signs the request; the AS signs its acceptance.</t>
    </section>
    <section anchor="choices" numbered="true" toc="default">
      <name>Assurance and Disclosure</name>
      <t><strong>Assurance models:</strong></t>
      <ul spacing="normal">
        <li>
          <t><strong>Declared:</strong> The Authorization Server asserts actor-chain history and continuity.</t>
        </li>
        <li>
          <t><strong>Verified:</strong> Each actor signs its transition request, and the AS signs an acceptance. Evidence coverage determines which actor signatures and links the recipient independently verifies.</t>
        </li>
      </ul>
      <t><strong>Disclosure</strong> determines what actor history is visible to the recipient, while assurance determines how that history is substantiated. Verified assurance does not require the recipient to see or independently verify the complete chain.</t>
      <t>For the A → B → C → D illustrative workflow:</t>
      <table align="center">
        <thead>
          <tr>
            <th align="left">Disclosure</th>
            <th align="left">History visible to D</th>
            <th align="left">Assurance</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Full</td>
            <td align="left">A, B, C</td>
            <td align="left">Declared or Verified</td>
          </tr>
          <tr>
            <td align="left">Subset</td>
            <td align="left">A and C (illustrative, if authorized)</td>
            <td align="left">Declared or Verified</td>
          </tr>
          <tr>
            <td align="left">Actor-Only</td>
            <td align="left">C</td>
            <td align="left">Declared or Verified</td>
          </tr>
        </tbody>
      </table>
      <t>The six assurance/disclosure profiles are selected at workflow start and remain
fixed. A disclosed subset such as A/C does not establish adjacency or the
absence of intervening actors.</t>
    </section>
    <section anchor="token-format" numbered="true" toc="default">
      <name>Token Claims and Example</name>
      <t>This example uses "Verified" assurance and "Actor-Only" disclosure:</t>
      <table align="center">
        <thead>
          <tr>
            <th align="left">Claim</th>
            <th align="left">Meaning in C's token for D</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">sub</td>
            <td align="left">The party or context represented by the workflow</td>
          </tr>
          <tr>
            <td align="left">aud</td>
            <td align="left">The intended recipient, D</td>
          </tr>
          <tr>
            <td align="left">actp</td>
            <td align="left">The profile: verified-actor-only</td>
          </tr>
          <tr>
            <td align="left">acti</td>
            <td align="left">A random identifier shared by this workflow's tokens</td>
          </tr>
          <tr>
            <td align="left">act</td>
            <td align="left">C's identity: issuer and subject pair</td>
          </tr>
          <tr>
            <td align="left">actc</td>
            <td align="left">The AS-signed acceptance of C's proof</td>
          </tr>
        </tbody>
      </table>
      <t>This partial JSON Web Token (JWT) omits issuer, lifetime, token identifier, and sender binding.
Angle brackets mark placeholders.</t>
      <artwork type="json" name="" align="left" alt=""><![CDATA[{
  "sub": "workflow-subject-alias",
  "aud": ["https://d.example"],
  "actp": "verified-actor-only",
  "acti": "<random workflow identifier>",
  "act": { "iss": "https://actors.example/c", "sub": "C" },
  "actc": "<acceptance_C>"
}
]]></artwork>
      <t><tt>&lt;acceptance_C&gt;</tt> is the complete AS-signed acceptance JWT encoded as a string.
It hashes C's proof and B's acceptance. These fingerprints identify exact
records without embedding them; supplying those records enables substitution
checks.</t>
    </section>
    <section anchor="evidence-choice" numbered="true" toc="default">
      <name>Evidence Delivery</name>
      <t>D checks the AS's <tt>actc</tt>; C's signature additionally needs C's proof.
Resources advertise requirements through authenticated OAuth Protected
Resource Metadata <xref target="RFC9728" format="default"/>. The optional <tt>acte</tt> supplies evidence:</t>
      <table align="center">
        <thead>
          <tr>
            <th align="left">Field</th>
            <th align="left">This example</th>
            <th align="left">Alternative</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">coverage</td>
            <td align="left">current: C's step</td>
            <td align="left">disclosed: actors in act; path: complete "Full" path</td>
          </tr>
          <tr>
            <td align="left">delivery</td>
            <td align="left">inline: inside the token</td>
            <td align="left">introspection: authenticated AS retrieval <xref target="RFC7662" format="default"/></td>
          </tr>
        </tbody>
      </table>
      <t>For "Subset", <tt>disclosed</tt> carries one original proof/acceptance pair per
actor occurrence in <tt>act</tt>. If D requires A/C, it receives and verifies A/C
without B's proof. Another authorized recipient may receive B's evidence
according to its policy. The issuer attests that selected records belong to
this token's accepted path. Signatures prove the requests signed, not adjacency
across omitted actors. <tt>current</tt> verifies C only; <tt>path</tt> independently checks
the complete accepted path.</t>
      <t>Inline delivery avoids retrieval but enlarges tokens. Introspection needs
an available endpoint. Missing required evidence or conflicting disclosure
policy causes failure.</t>
      <t>Here <tt>v=1</tt> identifies the evidence format; <tt>&lt;proof_C&gt;</tt> is C's signed access
request for D. Each <tt>steps</tt> entry pairs a proof with its acceptance:</t>
      <artwork type="json" name="" align="left" alt=""><![CDATA[{
  "acte": {
    "v": 1,
    "coverage": "current",
    "delivery": "inline",
    "steps": [
      { "proof": "<proof_C>", "acceptance": "<acceptance_C>" }
    ]
  }
}
]]></artwork>
      <t>D requires this acceptance to equal token <tt>actc</tt>, verifies both signatures,
and matches the acceptance's proof hash to the supplied proof. Current
evidence can hide A/B. <tt>disclosed</tt> uses envelope version 2; each selected
signature is checked, and the final acceptance equals <tt>actc</tt>. Historical
signed targets may reveal omitted services; conflicting privacy requirements
cause failure.</t>
      <t>SD-JWT could supply selective field disclosure in a future encoding profile
<xref target="RFC9901" format="default"/>; this version preserves ordinary JWT signatures and defines no
SD-JWT wire format.</t>
    </section>
    <section anchor="deployment-fit" numbered="true" toc="default">
      <name>Deployment Requirements</name>
      <t>Clients, ASs, and verifiers need Actor Chain support. Each receiving service
that continues the workflow needs AS authorization to exchange its inbound
token; receiving a sender-bound
token does not transfer the previous actor's key.</t>
      <t>When authorization relies on the immediate actor as the live presenter,
MCP's Bearer presentation <xref target="MCP-AUTH" format="default"/> needs a compatible sender constraint,
such as explicitly agreed certificate-bound mutual TLS <xref target="RFC8705" format="default"/>. This
does not satisfy a resource requirement for DPoP. Kubernetes
credentials <xref target="K8S-SA" format="default"/> authenticate workloads without creating actor proofs.
The protocol specification's "Agent and Workload Integration" section
<xref target="ACTOR-CHAIN-PROTOCOL" format="default"/> details these requirements. Live interoperability
remains untested.</t>
    </section>
    <section anchor="cross-domain" numbered="true" toc="default">
      <name>Cross-Domain Preservation</name>
      <t>Transfer between ASs preserves accepted state and original signatures without
adding an application actor. The protocol specification's "Cross-Domain
Preservation" section <xref target="ACTOR-CHAIN-PROTOCOL" format="default"/> defines it.</t>
      <t>Mapping <tt>read</tt> to destination permission <tt>documents.read</tt> needs destination
authorization. An earlier signature still covers <tt>read</tt>; it does not attest
to the translated meaning. Direct verification of a new step requires its
actor's fresh signature on local values. The same applies to translated
subject and resource names.</t>
    </section>
    <section anchor="security-considerations" numbered="true" toc="default">
      <name>Security and Privacy Considerations</name>
      <t>With uncompromised actor keys, independently authorized ActorID bindings,
and checked proof-to-acceptance linkage, an AS cannot fabricate an actor's
signed request. Under <tt>disclosed</tt> coverage, it can misstate path membership,
misapply policy, issue other tokens, or collude. Evidence does not prove
correct execution or faithful interpretation of user intent.</t>
      <t>C's exchange-time signature does not establish who presents the token now.
The protocol specification <xref target="ACTOR-CHAIN-PROTOCOL" format="default"/> uses Demonstrating Proof
of Possession (DPoP) <xref target="RFC9449" format="default"/> to check control of the token-bound key.
Other sender-binding mechanisms need explicit agreement.</t>
      <t>Exact retries reuse one acceptance. Separate requests can branch; one
verified path does not prove uniqueness. Full evidence reveals relationships
and timing; workflow identifiers permit correlation. Historical verification
needs retained proofs and key history. Introspection and replay state add
live dependencies.</t>
    </section>
    <section anchor="review-focus" numbered="true" toc="default">
      <name>Questions for IETF Review</name>
      <ol spacing="normal" type="1"><li>
          <t>Do these use cases justify a common contract beyond RFC 8693?</t>
        </li>
        <li>
          <t>Does issuer-attested membership meet Subset authorization needs?</t>
        </li>
        <li>
          <t>Are disclosure requirements and recipient policy boundaries sufficient?</t>
        </li>
        <li>
          <t>Does cross-domain preservation accurately describe mappings' assurance?</t>
        </li>
      </ol>
    </section>
    <section anchor="design-lineage" numbered="true" toc="default">
      <name>Design Evolution</name>
      <t>The authors' SPICE <tt>-00</tt> (25 February 2026) carried actor signatures in
self-attested tokens <xref target="SPICE-ACTOR-CHAIN-00" format="default"/>. SPICE <tt>-01</tt> (16 March 2026) moved
them to exchange-time proofs with hash-linked AS acceptances
<xref target="SPICE-ACTOR-CHAIN-01" format="default"/>. OAuth <tt>-01</tt> (15 June 2026) continued this work
<xref target="OAUTH-ACTOR-CHAIN-01" format="default"/>. The companion protocol <tt>-02</tt> continues that series
and specifies evidence delivery.</t>
    </section>
    <section anchor="iana" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>This overview requests no IANA action. Registration requests are defined in
<xref target="ACTOR-CHAIN-PROTOCOL" format="default"/>.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>Informative References</name>
      <reference anchor="SPICE-ACTOR-CHAIN-01" target="https://datatracker.ietf.org/doc/draft-mw-spice-actor-chain/01/">
        <front>
          <title>Cryptographically Verifiable Actor Chains for OAuth 2.0 Token Exchange</title>
          <author fullname="A Prasad" initials="A." surname="Prasad"/>
          <author fullname="Ram Krishnan" initials="R." surname="Krishnan"/>
          <author fullname="Diego R. Lopez" initials="D." surname="Lopez"/>
          <author fullname="Srinivasa Addepalli" initials="S." surname="Addepalli"/>
          <date year="2026" month="March" day="16"/>
        </front>
      </reference>
      <reference anchor="OAUTH-ACTOR-CHAIN-01" target="https://datatracker.ietf.org/doc/draft-mw-oauth-actor-chain/01/">
        <front>
          <title>Cryptographically Verifiable Actor Chains for OAuth 2.0 Token Exchange</title>
          <author fullname="A Prasad" initials="A." surname="Prasad"/>
          <author fullname="Ram Krishnan" initials="R." surname="Krishnan"/>
          <author fullname="Diego R. Lopez" initials="D." surname="Lopez"/>
          <author fullname="Srinivasa Addepalli" initials="S." surname="Addepalli"/>
          <date year="2026" month="June" day="15"/>
        </front>
      </reference>
      <reference anchor="RFC8705" target="https://www.rfc-editor.org/rfc/rfc8705">
        <front>
          <title>OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens</title>
          <author initials="B." surname="Campbell"/>
          <author initials="J." surname="Bradley"/>
          <author initials="N." surname="Sakimura"/>
          <author initials="T." surname="Lodderstedt"/>
          <date year="2020" month="February"/>
        </front>
      </reference>
      <reference anchor="K8S-SA" target="https://kubernetes.io/docs/concepts/security/service-accounts/">
        <front>
          <title>Kubernetes Service Accounts</title>
          <author>
            <organization>Kubernetes</organization>
          </author>
          <date/>
        </front>
      </reference>
      <reference anchor="RFC9449" target="https://www.rfc-editor.org/info/rfc9449" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9449.xml">
        <front>
          <title>OAuth 2.0 Demonstrating Proof of Possession (DPoP)</title>
          <author fullname="D. Fett" initials="D." surname="Fett"/>
          <author fullname="B. Campbell" initials="B." surname="Campbell"/>
          <author fullname="J. Bradley" initials="J." surname="Bradley"/>
          <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
          <author fullname="M. Jones" initials="M." surname="Jones"/>
          <author fullname="D. Waite" initials="D." surname="Waite"/>
          <date month="September" year="2023"/>
          <abstract>
            <t>This document describes a mechanism for sender-constraining OAuth 2.0 tokens via a proof-of-possession mechanism on the application level. This mechanism allows for the detection of replay attacks with access and refresh tokens.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9449"/>
        <seriesInfo name="DOI" value="10.17487/RFC9449"/>
      </reference>
      <reference anchor="SPICE-ACTOR-CHAIN-00" target="https://datatracker.ietf.org/doc/draft-mw-spice-actor-chain/00/">
        <front>
          <title>Cryptographically Verifiable Actor Chain for OAuth 2.0 Token Exchange</title>
          <author fullname="A Prasad" initials="A." surname="Prasad"/>
          <author fullname="Ram Krishnan" initials="R." surname="Krishnan"/>
          <author fullname="Diego R. Lopez" initials="D." surname="Lopez"/>
          <author fullname="Srinivasa Addepalli" initials="S." surname="Addepalli"/>
          <date year="2026" month="February" day="25"/>
        </front>
      </reference>
      <reference anchor="RFC9728" target="https://www.rfc-editor.org/info/rfc9728" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9728.xml">
        <front>
          <title>OAuth 2.0 Protected Resource Metadata</title>
          <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
          <author fullname="P. Hunt" initials="P." surname="Hunt"/>
          <author fullname="A. Parecki" initials="A." surname="Parecki"/>
          <date month="April" year="2025"/>
          <abstract>
            <t>This specification defines a metadata format that an OAuth 2.0 client or authorization server can use to obtain the information needed to interact with an OAuth 2.0 protected resource.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9728"/>
        <seriesInfo name="DOI" value="10.17487/RFC9728"/>
      </reference>
      <reference anchor="RFC7662" target="https://www.rfc-editor.org/info/rfc7662" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7662.xml">
        <front>
          <title>OAuth 2.0 Token Introspection</title>
          <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
          <date month="October" year="2015"/>
          <abstract>
            <t>This specification defines a method for a protected resource to query an OAuth 2.0 authorization server to determine the active state of an OAuth 2.0 token and to determine meta-information about this token. OAuth 2.0 deployments can use this method to convey information about the authorization context of the token from the authorization server to the protected resource.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7662"/>
        <seriesInfo name="DOI" value="10.17487/RFC7662"/>
      </reference>
      <reference anchor="RFC9901" target="https://www.rfc-editor.org/info/rfc9901" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9901.xml">
        <front>
          <title>Selective Disclosure for JSON Web Tokens</title>
          <author fullname="D. Fett" initials="D." surname="Fett"/>
          <author fullname="K. Yasuda" initials="K." surname="Yasuda"/>
          <author fullname="B. Campbell" initials="B." surname="Campbell"/>
          <date month="November" year="2025"/>
          <abstract>
            <t>This specification defines a mechanism for the selective disclosure
of individual elements of a JSON data structure used as the payload
of a JSON Web Signature (JWS). The primary use case is the selective
disclosure of JSON Web Token (JWT) claims.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9901"/>
        <seriesInfo name="DOI" value="10.17487/RFC9901"/>
      </reference>
      <reference anchor="RFC8693" target="https://www.rfc-editor.org/info/rfc8693" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8693.xml">
        <front>
          <title>OAuth 2.0 Token Exchange</title>
          <author fullname="M. Jones" initials="M." surname="Jones"/>
          <author fullname="A. Nadalin" initials="A." surname="Nadalin"/>
          <author fullname="B. Campbell" initials="B." role="editor" surname="Campbell"/>
          <author fullname="J. Bradley" initials="J." surname="Bradley"/>
          <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
          <date month="January" year="2020"/>
          <abstract>
            <t>This specification defines a protocol for an HTTP- and JSON-based Security Token Service (STS) by defining how to request and obtain security tokens from OAuth 2.0 authorization servers, including security tokens employing impersonation and delegation.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8693"/>
        <seriesInfo name="DOI" value="10.17487/RFC8693"/>
      </reference>
      <reference anchor="ACTOR-CHAIN-PROTOCOL" target="https://datatracker.ietf.org/doc/draft-mw-oauth-actor-chain/">
        <front>
          <title>OAuth Actor Chain: Protocol and Interoperability</title>
          <author fullname="A Prasad" initials="A." surname="Prasad"/>
          <author fullname="Ram Krishnan" initials="R." surname="Krishnan"/>
          <author fullname="Diego R. Lopez" initials="D." surname="Lopez"/>
          <author fullname="Srinivasa Addepalli" initials="S." surname="Addepalli"/>
          <date year="2026" month="October" day="4"/>
        </front>
      </reference>
      <reference anchor="A2A-SPEC" target="https://a2a-protocol.org/v1.0.0/specification/">
        <front>
          <title>Agent2Agent Protocol Specification, version 1.0.0</title>
          <author>
            <organization>A2A Project</organization>
          </author>
          <date/>
        </front>
      </reference>
      <reference anchor="MCP-AUTH" target="https://modelcontextprotocol.io/specification/2026-07-28/basic/authorization">
        <front>
          <title>Model Context Protocol Authorization, revision 2026-07-28</title>
          <author>
            <organization>Model Context Protocol</organization>
          </author>
          <date/>
        </front>
      </reference>
    </references>
  </back>
</rfc>
