<?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.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-klrc-aiagent-auth-02" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="AI-Auth">AI Agent Authentication and Authorization</title>
    <seriesInfo name="Internet-Draft" value="draft-klrc-aiagent-auth-02"/>
    <author fullname="Pieter Kasselman">
      <organization>Defakto Security</organization>
      <address>
        <email>pieter@defakto.security</email>
      </address>
    </author>
    <author fullname="Jean-François Lombardo">
      <organization>AWS</organization>
      <address>
        <email>jeffsec@amazon.com</email>
      </address>
    </author>
    <author fullname="Yaroslav Rosomakho">
      <organization>Zscaler</organization>
      <address>
        <email>yrosomakho@zscaler.com</email>
      </address>
    </author>
    <author fullname="Brian Campbell">
      <organization>Ping Identity</organization>
      <address>
        <email>bcampbell@pingidentity.com</email>
      </address>
    </author>
    <author fullname="Nick Steele">
      <organization>OpenAI</organization>
      <address>
        <email>steele@openai.com</email>
      </address>
    </author>
    <author fullname="Aaron Parecki">
      <organization>Okta</organization>
      <address>
        <email>aaron@parecki.com</email>
      </address>
    </author>
    <date year="2026" month="June" day="01"/>
    <keyword>OAuth</keyword>
    <keyword>WIMSE</keyword>
    <keyword>SPIFFE</keyword>
    <keyword>Secure Signals Framework</keyword>
    <keyword>AI Agent Authentication and Authorization</keyword>
    <abstract>
      <?line 115?>

<t>This document proposes best practices for authentication and authorization of AI agent interactions. It leverages existing standards such as the Workload Identity in Multi-System Environments (WIMSE) architecture and OAuth 2.0 family of specifications. Rather than defining new protocols, this document describes how existing and widely deployed standards can be applied or extended to establish agent authentication and authorization. By doing so, it aims to provide a framework within which to use existing standards, identify gaps and guide future standardization efforts for agent authentication and authorization.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://PieterKas.github.io/agent2agent-auth-framework/draft-klrc-aiagent-auth.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-klrc-aiagent-auth/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/PieterKas/agent2agent-auth-framework"/>.</t>
    </note>
  </front>
  <middle>
    <?line 119?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The rapid emergence of AI agents as autonomous workloads has sparked considerable innovation in authentication and authorization approaches. However, many of these efforts develop solutions in isolation, often reinventing existing mechanisms unaware of applicable prior art. This fragmentation risks creating incompatible implementations, duplicated development effort, and missed opportunities to leverage decades of established identity and authorization standards.</t>
      <t>This document aims to help close that gap by providing a comprehensive model demonstrating how existing, well-established standards and some emergent specifications can be composed and applied to solve agent authentication and authorization challenges. Rather than proposing new protocols, this work focuses on integrating proven standards into a coherent framework tailored to the specific requirements of AI agent workloads.</t>
      <t>By doing so, this document serves two complementary goals:</t>
      <ol spacing="normal" type="1"><li>
          <t><strong>Consolidation of prior art</strong>: It establishes a baseline by showing how existing standards address the core identity, authentication, authorization, monitoring and observability needs of agent-based systems. Implementers and standards developers can reference this framework to avoid redundant work and ensure interoperability.</t>
        </li>
        <li>
          <t><strong>Foundation for future work</strong>: As the agent ecosystem matures, having such a framework aids in identifying gaps and clarifies where extensions or profiles of existing standards are needed. This provides a foundation for more focused standardization efforts in areas needing novel work rather than variations of existing approaches.</t>
        </li>
      </ol>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="agents-are-workloads">
      <name>Agents are workloads</name>
      <t>An Agent is a workload that iteratively interacts with a Large Language Model (LLM) and a set of Tools, Services and Resources. An agent performs its operations until a terminating condition, determined either by the LLM or by the agent's internal logic, is reached. It may receive input from a user, or act autonomously. <xref target="fig-ai-agent-workload"/> shows a conceptual model of the AI Agent as a workload and illustrates the high-level interaction model between the User or System, the AI Agent, the Large Language Model (LLM), Tools, Services, and Resources.</t>
      <t>In this document, Tools, Services, and Resources are treated as a single category of external endpoints that an agent invokes or interacts with to complete a task. Communication within or between Tools, Services, and Resources is out of scope.</t>
      <figure anchor="fig-ai-agent-workload">
        <name>AI Agent as a Workload</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="256" width="416" viewBox="0 0 416 256" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,176 L 8,240" fill="none" stroke="black"/>
              <path d="M 80,176 L 80,240" fill="none" stroke="black"/>
              <path d="M 136,32 L 136,80" fill="none" stroke="black"/>
              <path d="M 144,176 L 144,240" fill="none" stroke="black"/>
              <path d="M 184,88 L 184,112" fill="none" stroke="black"/>
              <path d="M 184,144 L 184,168" fill="none" stroke="black"/>
              <path d="M 216,88 L 216,112" fill="none" stroke="black"/>
              <path d="M 216,144 L 216,168" fill="none" stroke="black"/>
              <path d="M 248,176 L 248,240" fill="none" stroke="black"/>
              <path d="M 272,32 L 272,80" fill="none" stroke="black"/>
              <path d="M 312,176 L 312,240" fill="none" stroke="black"/>
              <path d="M 408,176 L 408,240" fill="none" stroke="black"/>
              <path d="M 136,32 L 272,32" fill="none" stroke="black"/>
              <path d="M 136,80 L 272,80" fill="none" stroke="black"/>
              <path d="M 8,176 L 80,176" fill="none" stroke="black"/>
              <path d="M 144,176 L 248,176" fill="none" stroke="black"/>
              <path d="M 312,176 L 408,176" fill="none" stroke="black"/>
              <path d="M 88,192 L 104,192" fill="none" stroke="black"/>
              <path d="M 120,192 L 136,192" fill="none" stroke="black"/>
              <path d="M 256,192 L 272,192" fill="none" stroke="black"/>
              <path d="M 288,192 L 304,192" fill="none" stroke="black"/>
              <path d="M 88,224 L 104,224" fill="none" stroke="black"/>
              <path d="M 120,224 L 136,224" fill="none" stroke="black"/>
              <path d="M 256,224 L 272,224" fill="none" stroke="black"/>
              <path d="M 288,224 L 304,224" fill="none" stroke="black"/>
              <path d="M 8,240 L 80,240" fill="none" stroke="black"/>
              <path d="M 144,240 L 248,240" fill="none" stroke="black"/>
              <path d="M 312,240 L 408,240" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="312,192 300,186.4 300,197.6" fill="black" transform="rotate(0,304,192)"/>
              <polygon class="arrowhead" points="264,224 252,218.4 252,229.6" fill="black" transform="rotate(180,256,224)"/>
              <polygon class="arrowhead" points="224,168 212,162.4 212,173.6" fill="black" transform="rotate(90,216,168)"/>
              <polygon class="arrowhead" points="192,88 180,82.4 180,93.6" fill="black" transform="rotate(270,184,88)"/>
              <polygon class="arrowhead" points="144,192 132,186.4 132,197.6" fill="black" transform="rotate(0,136,192)"/>
              <polygon class="arrowhead" points="96,224 84,218.4 84,229.6" fill="black" transform="rotate(180,88,224)"/>
              <g class="text">
                <text x="168" y="52">Large</text>
                <text x="228" y="52">Language</text>
                <text x="184" y="68">Model</text>
                <text x="232" y="68">(LLM)</text>
                <text x="184" y="132">(2)</text>
                <text x="216" y="132">(3)</text>
                <text x="44" y="196">User</text>
                <text x="112" y="196">1</text>
                <text x="172" y="196">AI</text>
                <text x="208" y="196">Agent</text>
                <text x="280" y="196">4</text>
                <text x="360" y="196">Tools</text>
                <text x="44" y="212">or</text>
                <text x="196" y="212">(workload)</text>
                <text x="356" y="212">Services</text>
                <text x="44" y="228">System</text>
                <text x="112" y="228">6</text>
                <text x="280" y="228">5</text>
                <text x="360" y="228">Resources</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
                +----------------+
                | Large Language |
                |   Model (LLM)  |
                +----------------+
                      ^   |
                      |   |
                     (2) (3)
                      |   |
                      |   v
+--------+       +------------+       +-----------+
|  User  |--(1)->|  AI Agent  |--(4)->|   Tools   |
|   or   |       | (workload) |       | Services  |
| System |<-(6)--|            |<-(5)--| Resources |
+--------+       +------------+       +-----------+
]]></artwork>
        </artset>
      </figure>
      <ol spacing="normal" type="1"><li>
          <t>Optional: The User or System (e.g. a batch job or another Agent) provides an initial request or instruction to the AI Agent.</t>
        </li>
        <li>
          <t>The AI Agent provides the available context to the LLM. Context is implementation, and deployment, specific and may include User or System input, system prompts, Tool descriptions, prior Tool, Service and Resource outputs, and other relevant state.</t>
        </li>
        <li>
          <t>The LLM returns output to the AI Agent facilitating selection of Tools, Services or Resources to invoke.</t>
        </li>
        <li>
          <t>The AI Agent invokes one or more external endpoints of selected Tools, Services or Resources. A Tool endpoint may itself be implemented by another AI agent.</t>
        </li>
        <li>
          <t>The external endpoint of the Tools, Services or Resources returns a result of the operation to the AI Agent, which may send the information as additional context to the Large Language Model, repeating steps 2-5 until the exit condition is reached and the task is completed.</t>
        </li>
        <li>
          <t>Optional: Once the exit condition is reached in step 5, the AI Agent may return a response to the User or System. The AI Agent may also return intermediate results or request additional input.</t>
        </li>
      </ol>
      <t>As shown in <xref target="fig-ai-agent-workload"/>, the AI agent is a workload that needs an identifier and credentials so it can be authenticated by the Tools, Services, Resources, Large Language Model, System and the User (via the underlying operating system or platform, similar to existing applications and services). Once authenticated, these parties determine if the AI Agent is authorized to access the requested Large Language Model, Tools, Services or Resources. If the AI Agent is acting on behalf of a User or System, the User or System needs to delegate authority to the AI Agent, and the User or System context is preserved and used as input to authorization decisions and recorded in audit trails.</t>
      <t>This document describes how AI Agents should leverage existing standards defined by SPIFFE <xref target="SPIFFE"/>, WIMSE, OAuth and OpenID SSF <xref target="SSF"/>.</t>
    </section>
    <section anchor="agent-identity-management-system">
      <name>Agent Identity Management System</name>
      <t>This document defines the term Agent Identity Management System (AIMS) as a conceptual model describing the set of functions required to establish, maintain, and evaluate the identity and permissions of an agent workload. AIMS does not refer to a single product, protocol, or deployment architecture. AIMS may be implemented by one component or distributed across multiple systems (such as identity providers, provisioning services, authorization servers, policy engines, and runtime enforcement points).</t>
      <t>An Agent Identity Management System ensures that the right Agent has access to the right resources and tools at the right time for the right reason. An Agent identity management system depends on the following components to achieve its goals:</t>
      <ul spacing="normal">
        <li>
          <t><strong>Agent Identifiers:</strong> Unique identifier assigned to every Agent.</t>
        </li>
        <li>
          <t><strong>Agent Credentials:</strong> Cryptographic binding between the Agent Identifier and attributes of the Agent.</t>
        </li>
        <li>
          <t><strong>Agent Credential Provisioning:</strong> The mechanism for provisioning credentials to the agent at runtime.</t>
        </li>
        <li>
          <t><strong>Agent Authentication:</strong> Protocols and mechanisms used by the Agent to authenticate itself to Large Language Models or Tools (resource or server) in the system.</t>
        </li>
        <li>
          <t><strong>Agent Authorization:</strong> Protocols and systems used to determine if an Agent is allowed to access a Large Language Model or Tool (resource or server).</t>
        </li>
        <li>
          <t><strong>Agent Observability and Remediation:</strong> Protocols and mechanisms to dynamically modify the authorization decisions based on observed behavior and system state.</t>
        </li>
        <li>
          <t><strong>Agent Authentication and Authorization Policy:</strong> The configuration and rules for each of the Agent Identity Management System.</t>
        </li>
        <li>
          <t><strong>Agent Compliance:</strong> Measurement of the state and functioning of the system against the stated policies.</t>
        </li>
      </ul>
      <t>The components form a logical stack in which higher layers depend on guarantees provided by lower layers, as illustrated in <xref target="fig-agent-identity-management-system"/>.</t>
      <figure anchor="fig-agent-identity-management-system">
        <name>Agent Identity Management System</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="256" width="560" viewBox="0 0 560 256" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,32 L 8,240" fill="none" stroke="black"/>
              <path d="M 128,32 L 128,240" fill="none" stroke="black"/>
              <path d="M 408,32 L 408,240" fill="none" stroke="black"/>
              <path d="M 552,32 L 552,240" fill="none" stroke="black"/>
              <path d="M 8,32 L 552,32" fill="none" stroke="black"/>
              <path d="M 128,80 L 408,80" fill="none" stroke="black"/>
              <path d="M 128,112 L 408,112" fill="none" stroke="black"/>
              <path d="M 128,144 L 408,144" fill="none" stroke="black"/>
              <path d="M 128,176 L 408,176" fill="none" stroke="black"/>
              <path d="M 128,208 L 408,208" fill="none" stroke="black"/>
              <path d="M 8,240 L 552,240" fill="none" stroke="black"/>
              <g class="text">
                <text x="68" y="52">Policy</text>
                <text x="216" y="52">Monitoring,</text>
                <text x="320" y="52">Observability</text>
                <text x="484" y="52">Compliance</text>
                <text x="216" y="68">&amp;</text>
                <text x="272" y="68">Remediation</text>
                <text x="264" y="100">Authorization</text>
                <text x="268" y="132">Authentication</text>
                <text x="260" y="164">Provisioning</text>
                <text x="264" y="196">Credentials</text>
                <text x="260" y="228">Identifier</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
+--------------+----------------------------------+-----------------+
|    Policy    |     Monitoring, Observability    |    Compliance   |
|              |          & Remediation           |                 |
|              +----------------------------------+                 |
|              |          Authorization           |                 |
|              +----------------------------------+                 |
|              |          Authentication          |                 |
|              +----------------------------------+                 |
|              |          Provisioning            |                 |
|              +----------------------------------+                 |
|              |           Credentials            |                 |
|              +----------------------------------+                 |
|              |           Identifier             |                 |
+--------------+----------------------------------+-----------------+
]]></artwork>
        </artset>
      </figure>
    </section>
    <section anchor="agent_identifiers">
      <name>Agent Identifier</name>
      <t>Agents <bcp14>MUST</bcp14> be uniquely identified in order to support authentication, authorization, auditing, and delegation.</t>
      <t>The Workload Identity in Multi-System Environments (WIMSE) identifier as defined by <xref target="WIMSE-ID"/> is the primary identifier for agents in this framework.</t>
      <t>A WIMSE identifier is a URI that uniquely identifies a workload within a trust domain. Authorization decisions, delegation semantics, and audit records rely on this identifier remaining stable for the lifetime of the workload identity.</t>
      <t>The Secure Production Identity Framework for Everyone (<xref target="SPIFFE"/>) identifier is a widely deployed and operationally mature implementation of the WIMSE identifier model. A SPIFFE identifier (<xref target="SPIFFE-ID"/>) is a URI in the form of <tt>spiffe://&lt;trust-domain&gt;/&lt;path&gt;</tt> that uniquely identifies a workload within a trust domain.</t>
      <t>An agent participating in this framework <bcp14>MUST</bcp14> be assigned exactly one WIMSE identifier, which <bcp14>MAY</bcp14> be a SPIFFE ID.</t>
    </section>
    <section anchor="agent_credentials">
      <name>Agent Credentials</name>
      <t>Agents <bcp14>MUST</bcp14> possess credentials that provide a cryptographic binding to the agent identifier. These credentials are considered primary credentials that are provisioned at runtime. An identifier alone is insufficient unless it can be verified to be controlled by the communicating agent through a cryptographic binding.</t>
      <t>WIMSE credentials (<xref target="WIMSE-CRED"/>) are defined as a profile of X.509 certificates and Workload Identity Tokens (WITs), while SPIFFE defines SPIFFE Verified ID (SVID) profiles of JSON Web Token (JWT-SVID), X.509 certificates (X.509-SVID) and WIMSE Workload Identity Tokens (WIT-SVID). SPIFFE SVID credentials are compatible with WIMSE defined credentials. The choice of an appropriate format depends on the trust model and integration requirements.</t>
      <t>Agent credentials <bcp14>SHOULD</bcp14> be short-lived to minimize the risk of credential theft, <bcp14>MUST</bcp14> include an explicit expiration time after which it is no longer accepted, and <bcp14>MAY</bcp14> carry additional attributes relevant to the agent (for example trust domain, attestation evidence, or workload metadata).</t>
      <t>Deployments can improve the assurance of agent identity by protecting private keys using hardware-backed or isolated cryptographic storage such as TPMs, secure enclaves, or platform security modules when such capabilities are available. These mechanisms reduce key exfiltration risk but are not required for interoperability.</t>
      <t>In some cases, agents <bcp14>MAY</bcp14> need secondary credentials to access a proprietary or legacy environment that is not compatible with the X.509, JWT or WIT it is provisioned with. In these cases an agent <bcp14>MAY</bcp14> exchange their primary credentials through a credential exchange mechanisms (e.g., OAuth 2.0 Token Exchange <xref target="OAUTH-TOKEN-EXCHANGE"/>, Transaction Tokens <xref target="OAUTH-TXN-TOKENS"/> or Workload Identity Federation). This allows an agent to obtain a credential targeted to a specific environment by leveraging the primary credential in its possession.</t>
      <t><strong>Note</strong>: Static API keys are an antipattern for agent identity. They are bearer artifacts that are not cryptographically bound, do not convey identity, are typically long-lived and are operationally difficult to rotate, making them unsuitable for secure agent authentication or authorization.</t>
    </section>
    <section anchor="agent_credential_provisioning">
      <name>Agent Credential Provisioning</name>
      <t>Agent credential provisioning refers to the runtime issuance, renewal, lifecycle state and rotation of the credentials an agent uses to authenticate and authorize itself to other agents. Agents may be provisioned with one or more credential types as described in <xref target="agent_credentials"/>. Unlike static secrets, agent credentials are provisioned dynamically and are intentionally short-lived, eliminating the operational burden of manual expiration management and reducing the impact of credential compromise.</t>
      <t>Credential provisioning is also the assessment point to confirm that the Agent and its runtime environment satisfy the posture requirements. In this document, posture assessment refers to the evaluation of signals about the Agent, its software, deployment context, runtime environment, and operational state. These signals can influence whether a credential is issued, which identifier is bound to the credential, what type of credential is issued, what attributes are included in the credential, and how long the credential remains valid.</t>
      <t>Posture assessment mechanisms are deployment and risk specific. They may include hardware-backed evidence, trusted execution environment (TEE) evidence, software integrity measurements, supply-chain provenance, platform or orchestration-layer metadata, workload placement information, configuration state, operator assertions, or other environment-specific signals. Depending on the risk involved, a single signal may be sufficient, while higher-risk deployments may require multiple independent signals before credentials are issued or renewed.</t>
      <t>Deployed workload identity systems commonly perform some form of posture assessment as part of credential provisioning. For example, SPIFFE implementations can evaluate platform and environment-specific information about a workload before binding it to a SPIFFE identifier and issuing an SVID. At a high level, a provisioning component gathers workload and execution context signals, verifies them according to local policy, and, if verification succeeds, issues short-lived credentials for subsequent authentication and authorization.</t>
      <t>An Agent Identity Management System may incorporate multiple posture assessment mechanisms and implementations. The selection of mechanisms depends on deployment constraints, such as the underlying platform, available identity signals, and desired level of trust assurance. This document does not require any particular posture assessment mechanism, evidence format, or verifier architecture.</t>
      <t>Agent credential provisioning must operate autonomously, scale to high-churn environments, and integrate closely with the posture assessment mechanisms used to establish trust in the Agent at each issuance or rotation event.</t>
      <t>Agent credential provisioning typically includes two phases:</t>
      <ol spacing="normal" type="1"><li>
          <t><strong>Initial Provisioning</strong>: The process by which an agent first acquires a credential bound to its identity. This often occurs immediately after deployment or instantiation and is based on verified properties of the agent (e.g., deployment context, posture assessment results, or orchestration metadata).</t>
        </li>
        <li>
          <t><strong>Rotation/Renewal</strong>: The automatic refresh of short-lived credentials before expiration. Continuous rotation ensures that credentials remain valid only for the minimum necessary time and that authorization state reflects current operational conditions.</t>
        </li>
      </ol>
      <t>The use of short-lived credentials provides a significant improvement in the risk profile and risk of credential exposure. It provides an alternative to explicit revocation mechanisms and simplifies lifecycle management in large, automated environments while removing the risks of downtime as a result of credential expiry.</t>
      <t>Deployed frameworks such as <xref target="SPIFFE"/> provide proven mechanisms for automated, short-lived credential provisioning at runtime. In addition to issuing short-lived credentials, <xref target="SPIFFE"/> also provisions ephemeral cryptographic key material bound to each credential, further reducing the risks associated with compromising long-lived keys.</t>
    </section>
    <section anchor="agent_authentication">
      <name>Agent Authentication</name>
      <t>Agents may authenticate using a variety of mechanisms, depending on the credentials they possess, the protocols supported in the deployment environment, and the risk profile of the application. As described in the WIMSE Architecture <xref target="WIMSE-ARCH"/>, authentication can occur at either the transport layer or the application layer, and many deployments rely on a combination of both.</t>
      <section anchor="transport-layer-authentication">
        <name>Transport Layer Authentication</name>
        <t>Transport-layer authentication establishes trust during the establishment of a secure transport channel. The most common mechanism used by agents is mutually-authenticated TLS (mTLS), in which both endpoints present X.509-based credentials and perform a bidirectional certificate exchange as part of the TLS negotiation. When paired with short-lived workload identities, such as those issued by SPIFFE or WIMSE, mTLS provides strong channel binding and cryptographic proof of control over the agent’s private key.</t>
        <t>mTLS is particularly well-suited for environments where transport-level protection, peer authentication, and ephemeral workload identity are jointly required. It also simplifies authorization decisions by enabling agents to associate application-layer requests with an authenticated transport identity. One example of this is the use of mTLS in service mesh architectures such as Istio or LinkerD.</t>
        <section anchor="limitations">
          <name>Limitations</name>
          <t>There are scenarios where transport-layer authentication is not desirable or cannot be relied upon. In architectures involving intermediaries, such as proxies, API gateways, service meshes, load balancers, or protocol translators, TLS sessions are often terminated and re-established, breaking the end-to-end continuity of transport-layer identity. Similarly, some deployment models (such as serverless platforms, multi-tenant edge environments, or cross-domain topologies) may obscure or abstract identity presented at the transport layer, making it difficult to bind application-layer actions to a credential presented at the transport layer. In these cases, application-layer authentication provides a more robust and portable mechanism for expressing agent identity and conveying attestation or policy-relevant attributes.</t>
        </section>
      </section>
      <section anchor="application-layer-authentication">
        <name>Application Layer Authentication</name>
        <t>Application-layer authentication allows agents to authenticate independently of the underlying transport. This enables end-to-end identity preservation even when requests traverse proxies, load balancers, or protocol translation layers.</t>
        <t>The WIMSE working group defines WIMSE Proof Tokens and HTTP Message Signatures as authentication mechanisms that may be used by agents.</t>
        <section anchor="wpt">
          <name>WIMSE Proof Tokens (WPTs)</name>
          <t>WIMSE Workload Proof Tokens (WPTs, <xref target="WIMSE-WPT"/>) are a protocol-independent, application-layer mechanism for proving possession of the private key associated with a Workload Identity Token (WIT). WPTs are generated by the agent, using the private key matching the public key in the WIT. A WPT is defined as a signed JSON Web Token (JWT) that binds an agent’s authentication to a specific message context, for example, an HTTP request, thereby providing proof of possession rather than relying on bearer semantics.</t>
          <t>WPTs are designed to work alongside WITs <xref target="WIMSE-CRED"/> and are typically short-lived to reduce the window for replay attacks. They carry claims such as audience (aud), expiration (exp), a unique token identifier (jti), and a hash of the associated WIT (wth). A WPT may also include hashes of other related tokens (e.g., a Transaction Token) to bind the authentication contexts to specific transaction or authorizations details.</t>
          <t>Although the draft currently defines a protocol binding for HTTP (via a Workload-Proof-Token header), the core format is protocol-agnostic, making it applicable to other protocols. Its JWT structure and claims model allow WPTs to be bound to different protocols and transports, including asynchronous or non-HTTP messaging systems such as Kafka and gRPC, or other future protocol bindings. This design enables receiving systems to verify identity, key possession, and message binding at the application layer even in environments where transport-layer identity (e.g., mutual TLS) is insufficient or unavailable.</t>
        </section>
        <section anchor="http-message-signatures">
          <name>HTTP Message Signatures</name>
          <t>The WIMSE Workload-to-Workload Authentication with HTTP Signatures specification <xref target="WIMSE-HTTPSIG"/> defines an application-layer authentication profile built on the HTTP Message Signatures standard <xref target="HTTP-SIG"/>. It is one of the mechanisms WIMSE defines for authenticating workloads in HTTP-based interactions where transport-layer protections may be insufficient or unavailable. The protocol combines a workload's Workload Identity Token (WIT) (which binds the agent's identity to a public key) with HTTP Message Signatures (using the corresponding private key), thereby providing proof of possession and message integrity for individual HTTP requests and responses. This approach ensures end-to-end authentication and integrity even when traffic traverses intermediaries such as TLS proxies or load balancers that break transport-layer identity continuity. The profile mandates signing of some request components (e.g., method, request-target, content digest, and the WIT itself) and supports optional response signing. Note that @request-target covers only the request-target string (typically path + query) and not the method, scheme, or authority; those are only protected if separately covered (e.g., @method, @scheme, @authority).</t>
        </section>
        <section anchor="limitations-1">
          <name>Limitations</name>
          <t>Unlike transport-layer authentication, application-layer authentication does not inherently provide channel binding to the underlying secure transport. As a result, implementations <bcp14>MUST</bcp14> consider the risk of message relay or replay if tokens or signed messages are accepted outside their intended context. Deployments typically mitigate these risks through short token lifetimes, audience restrictions, nonce or unique identifier checks, and binding authentication to specific requests or transaction parameters.</t>
        </section>
      </section>
    </section>
    <section anchor="agent_authorization">
      <name>Agent Authorization</name>
      <t>Agents act on behalf of a user, a system, or on their own behalf as shown in <xref target="fig-ai-agent-workload"/> and need to obtain authorization when interacting with protected resources.</t>
      <section anchor="agent-mission">
        <name>Agent Mission</name>
        <t>An Agent receives a Mission from a User, a System, or another Agent. The Mission is the task or objective the Agent will pursue. It is typically expressed in natural language and may require decomposition as it is mapped from a broad objective into specific resource requirements and corresponding access requests. The translation of a mission into authorization requirements is expected to occur as a planning step before the Agent requests authorization. The process through which the mission is translated into authorization requriements is out of scope of this specification. Once the required resources and their associated authorization requirements are determined, the Agent <bcp14>SHOULD</bcp14> use the mechanisms described in this section to obtain access.</t>
      </section>
      <section anchor="leverage-oauth-20-as-a-delegation-authorization-framework">
        <name>Leverage OAuth 2.0 as a Delegation Authorization Framework</name>
        <t>The widely deployed OAuth 2.0 Authorization Framework <xref target="OAUTH-FRAMEWORK"/> is a mechanism for delegated authorization that enables an Agent to obtain limited access to a protected resource (e.g., a service or API), intermediated by an Authorization Server, often with the explicit approval of the authenticated User. An Agent uses OAuth 2.0-based mechanisms to obtain authorization from a User, a System, or on its own behalf. OAuth 2.0 defines a wide range of authorization grant flows that supports these scenarios. In these Oauth 2.0 flows, an Agent acts as an OAuth 2.0 Client to an OAuth 2.0 Authorization Server, which receives the request, evaluate the authorization policy and returns an access token, which the Agent presents to the Resource Server (i.e. the protected resources such as the LLM or Tools in <xref target="fig-ai-agent-workload"/>, which can evaluate its authorization policy and complete the request.</t>
      </section>
      <section anchor="use-of-oauth-20-access-tokens">
        <name>Use of OAuth 2.0 Access Tokens</name>
        <t>An OAuth access token represents the authorization granted to the Agent. In many deployments, access tokens are structured as JSON Web Tokens (JWTs) <xref target="OAUTH-ACCESSTOKEN-JWT"/>, which include claims such as 'client_id', 'sub', 'aud', 'scope', and other attributes relevant to authorization. The access token includes the Agent identity as the 'client_id' claim as defined in <xref section="2.2" sectionFormat="of" target="OAUTH-ACCESSTOKEN-JWT"/>.</t>
        <t>When the Agent is acting on-behalf of another User or System, the User or System identifier is conveyed in the 'sub' claim as defined in <xref section="2.2" sectionFormat="of" target="OAUTH-ACCESSTOKEN-JWT"/>. These identifiers <bcp14>MUST</bcp14> be used by resource servers protected by the OAuth 2.0 authorization service, along with other claims in the access token, to determine if access to a resource should be allowed. The access token typically includes additional claims to convey contextual, attestation-derived, or policy-related information that enables fine-grained access control. The resource server uses the access token and the information it contains along with other authorization systems (e.g. policy based, attribute based or role based authorization systems) when enforcing access control. JWT access tokens can be validated directly by resource servers while other formats that are opaque to the resource server can be validated through a mechanism that calls back to the authorization server (the mechanism is called introspection despite the word having nearly the opposite meaning). This framework supports both models and does not require a specific token format, provided that equivalent authorization semantics are maintained.</t>
        <t>A resource server in receipt of tokens opaque to it are able to obtain authorization and other information from the token through OAuth 2.0 Token Introspection <xref target="OAUTH-TOKEN-INTROSPECTION"/>. The introspection response provides the active state of the token and associated authorization attributes equivalent to those conveyed in structured tokens.</t>
      </section>
      <section anchor="obtaining-an-oauth-20-access-token">
        <name>Obtaining an OAuth 2.0 Access Token</name>
        <t>OAuth 2.0 defines a number authorization grant flows in support of different authorization scenarios. The appropriate flow depends on the specific authorization scenario and the nature of User involvement. The following subsections describe the most relevant flows for Agent authorization.</t>
        <section anchor="user_delegates_authorization">
          <name>User Delegates Authorization</name>
          <t>When a User delegates authorization to an Agent, the Agent <bcp14>SHOULD</bcp14> obtain an access token using the Authorization Code Grant as described in <xref section="4.1" sectionFormat="of" target="OAUTH-FRAMEWORK"/>. This redirection-based flow involves an interactive authorization process, typically in a web browser, in which the user authenticates to the authorization server and explicitly approves the requested access. Users <bcp14>SHOULD</bcp14> be authenticated using phishing-resistant authentication mechanisms such as a passkey. Once the user has approved the request, the authorization server returns an authorization code to the Agent via the redirect.</t>
          <t>The Agent, acting as an OAuth client, then makes a token request to the authorization server to redeem the authorization code for an access token. When making this token request, the Agent authenticates itself directly to the authorization server using the credentials described in <xref target="agent_credentials"/> with a compatible OAuth client authentication mechanism, and not with the use of static, long-lived client secrets. Compatible OAuth client authentication mechanisms are defined in <xref target="OAUTH-CLIENTAUTH-JWT"/>, <xref target="OAUTH-CLIENTAUTH-MTLS"/> and <xref target="OAUTH-SPIFFE"/>. The OAuth client authentication step is distinct from, and occurs after, the user authentication and approval described above. The resulting access token reflects the authorization delegated to the Agent by the User and can be used by the Agent to access resources on behalf of the user. The use of OAuth negates the need for the Agent to have access to a User's credentials when accessing a resource on the User's behalf.</t>
        </section>
        <section anchor="agent_obtains_own_access_token">
          <name>Agent Obtains Own Authorization</name>
          <t>Agents obtaining access tokens on their own behalf can use the Client Credentials Grant as described in <xref section="4.4" sectionFormat="of" target="OAUTH-FRAMEWORK"/> or the JWT Authorization Grant as described in <xref section="2.1" sectionFormat="of" target="OAUTH-CLIENTAUTH-JWT"/>. When using the Client Credentials Grant, the Agent authenticates itself using the credentials described in <xref target="agent_credentials"/> with a compatible OAuth client authentication mechanism listed in previous section, and not with the use of static, long-lived client secrets. When using the JWT Authorization Grant, the Agent will be identified in the subject of the JWT assertion.</t>
        </section>
        <section anchor="agents-accessed-by-systems-or-other-agents">
          <name>Agents Accessed by Systems or Other Agents</name>
          <t>Agents themselves can act in the role of an OAuth protected resource and be invoked by a System (e.g. a batch job or another Agent). The System obtains an access token using an appropriate mechanism and then invokes the Agent presenting the access token.</t>
        </section>
        <section anchor="oauth-20-security-best-practices">
          <name>OAuth 2.0 Security Best Practices</name>
          <t>The Best Current Practice for OAuth 2.0 Security as described in <xref target="OAUTH-BCP"/> are applicable when requesting and using access tokens.</t>
        </section>
      </section>
      <section anchor="txn-tokens-risk-reduction">
        <name>Risk Reduction with Transaction Tokens</name>
        <t>Resources servers, whether they are LLMs, Tools or Agents (in the Agent-to-Agent case) may be composed of multiple microservices that are invoked to complete a request. The access tokens presented to the Agent, LLM or Tools can typically be used with multiple transactions and consequently have broader scope than needed to complete any specific transaction. Passing the access token from one microservice to another within an invoked Agent, LLM or the Tools increases the risk of token theft and replay attacks. For example, an attacker may discover and access token passed between microservices in a log file or crash dump, exfiltrate it, and use it to invoke a new transaction with different parameters (e.g. increase the transaction amount, or invoke an unrelated call as part of executing a lateral move).</t>
        <t>To avoid passing access tokens between microservices, the Agent, LLM or Tools can exchange the received access token for a transaction token, as defined in the Transaction Token specification <xref target="OAUTH-TXN-TOKENS"/>. The transaction token allows for identity and authorization information to be passed along the internal call chain of microservices. The transaction token issuer enriches the transaction token with context of the caller that presented the access token (e.g. IP address, etc.), transaction context (transaction amount), identity information and a unique transaction identifier. This results in a downscoped token that is bound to a specific transaction and cannot be used as an access token, with another transaction, or within the same transaction with modified transaction details (e.g. change in transaction amount). Transaction tokens are typically short-lived, further limiting the risk in case they are obtained by an attacker by limiting the time window during which these tokens will be accepted.</t>
        <t>A transaction token <bcp14>MAY</bcp14> be used to obtain an access token to call another service (e.g. another Agent, Tool or LLM) by using OAuth 2.0 Token Exchange as defined in <xref target="OAUTH-TOKEN-EXCHANGE"/>.</t>
      </section>
      <section anchor="cross-domain-access">
        <name>Cross Domain Access</name>
        <t>Agents often require access to resources that are protected by different OAuth 2.0 authorization servers. When the components in <xref target="fig-ai-agent-workload"/> are protected by different logical authorization servers, an Agent <bcp14>SHOULD</bcp14> use OAuth Identity and Authorization Chaining Across Domains as defined in (<xref target="OAUTH-ID-CHAIN"/>), or a derived specification such as the Identity Assertion JWT Authorization Grant <xref target="OAUTH-JWT-ASSERTION"/>, to obtain an access token from the relevant authorization servers.</t>
        <t>When using OAuth Identity and Authorization Chaining Across Domains (<xref target="OAUTH-ID-CHAIN"/>), an Agent <bcp14>SHOULD</bcp14> use the access token or transaction token it received to obtain a JWT authorization grant as described in <xref section="2.3" sectionFormat="of" target="OAUTH-ID-CHAIN"/> and then use the JWT authorization grant it receives to obtain an access token for the resource it is trying to access as defined in <xref section="2.4" sectionFormat="of" target="OAUTH-ID-CHAIN"/>.</t>
        <t>When using the Identity Assertion JWT Authorization Grant <xref target="OAUTH-JWT-ASSERTION"/>, the identity assertion (e.g. the OpenID Connect ID Token or SAML assertion) for the target end-user is used to obtain a JWT assertion as described in <xref section="4.3" sectionFormat="of" target="OAUTH-JWT-ASSERTION"/>, which is then used to obtain an access token as described in <xref section="4.4" sectionFormat="of" target="OAUTH-JWT-ASSERTION"/>.</t>
        <t>OAuth Identity and Authorization Chaining Across Domains (<xref target="OAUTH-ID-CHAIN"/>) provides a general mechanism for obtaining cross-domain access that can be used whether an identity assertion like a SAML or OpenID Connect token is available or not. The Identity Assertion JWT Authorization Grant <xref target="OAUTH-JWT-ASSERTION"/> is optimized for cases where an identity assertion like a SAML or OpenID Connect token is available from an identity provider that is trusted by all the OAuth authorization servers as it removes the need for the user to re-authenticate. This is typically used within enterprise deployments to simplify authorization delegation for multiple software-as-a-service offerings.</t>
      </section>
      <section anchor="human-in-the-loop">
        <name>Human in the Loop</name>
        <t>An OAuth authorization server <bcp14>MAY</bcp14> conclude that the level of access requested by an Agent requires explicit user confirmation. In such cases the authorization server <bcp14>SHOULD</bcp14> either decline the request or obtain additional authorization from the User. An Agent, acting as an OAuth client, may use the OpenID Client Initiated Backchannel Authentication (CIBA) protocol. This triggers an out-of-band interaction allowing the user to approve or deny the requested operation without exposing credentials to the agent (for example a push notification requesting the user to approve a request through an authenticator application on their mobile device).</t>
        <t>Interactive agent frameworks may also solicit user confirmation directly during task execution (for example tool invocation approval or parameter confirmation). Such interactions do not by themselves constitute authorization and <bcp14>MUST</bcp14> be bound to a verifiable authorization grant issued by the authorization server. The agent <bcp14>SHOULD</bcp14> therefore translate user confirmation into an OAuth authorization event (e.g., step-up authorization via CIBA) before accessing protected resources.</t>
        <t>This model aligns with user-solicitation patterns such as those described by the Model Context Protocol (<xref target="MCP"/>), where an agent pauses execution and requests user confirmation before performing sensitive actions. The final authorization decision remains with the authorization server, and the agent <bcp14>MUST NOT</bcp14> treat local UI confirmation alone as sufficient authorization.</t>
        <t><strong>Note:</strong> Additional specification or design work may be needed to define how out-of-band interactions with the User occur at different stages of execution. CIBA itself only accounts for client initiation, which doesn't map well to cases that envision the need for User confirmation to occur mid-execution.</t>
      </section>
      <section anchor="tool-to-service-access">
        <name>Tool-to-Service Access</name>
        <t>Tools expose interfaces to underlying services and resources. Access to the Tools can be controlled by OAuth and augmented by policy, attribute or role based authorization systems (amongst others). If the Tools are implemented as one or more microservices, it should use transaction tokens to reduce risk as described in <xref target="txn-tokens-risk-reduction"/> to avoid passing access tokens around within the Tool implementation.</t>
        <t>Access from the Tools to the resources and services <bcp14>MAY</bcp14> be controlled through a variety of authorization mechanisms, including OAuth. If access is controlled through OAuth, the Tools can use OAuth 2.0 Token Exchange as defined in <xref target="OAUTH-TOKEN-EXCHANGE"/> to exchange the access token it received for a new access token to access the resource or service in question. When the Tool needs access to a resource protected by an authorization server other than the Tool's own authorization server, the OAuth Identity and Authorization Chaining Across Domains (<xref target="OAUTH-ID-CHAIN"/>) can be used to obtain an access token from the authorization server protecting that resource.</t>
        <t><strong>Note:</strong> It is an anti-pattern for Tools to forward access tokens it received from the Agent to Services or Resources. It increases the risk of credential theft and lateral attacks.</t>
      </section>
      <section anchor="privacy">
        <name>Privacy Considerations</name>
        <t>Authorization tokens may contain user identifiers, agent identifiers, audience restrictions, transaction details, and contextual attributes. Deployments <bcp14>SHOULD</bcp14> minimize disclosure of personally identifiable or sensitive information in tokens and prefer audience-restricted and short-lived tokens. Where possible, opaque tokens with introspection <bcp14>SHOULD</bcp14> be preferred when claim minimization is required.</t>
        <t>Agents <bcp14>SHOULD</bcp14> request only the minimum scopes and authorization details necessary to complete a task. Resource servers <bcp14>SHOULD</bcp14> avoid logging full tokens and instead log token identifiers or hashes. When authorization context is propagated across services, derived or down-scoped tokens (such as transaction tokens) <bcp14>SHOULD</bcp14> be used to reduce correlation and replay risk.</t>
        <t>Implementations <bcp14>MUST</bcp14> ensure that user identity information delegated to agents is not exposed to unrelated services and that cross-domain authorization exchanges only disclose information required for the target authorization decision.</t>
      </section>
      <section anchor="oauth-20-discovery-in-dynamic-environments">
        <name>OAuth 2.0 Discovery in Dynamic Environments</name>
        <t>In dynamic Agent deployments (e.g., ephemeral workloads, multi-tenant services, and frequently changing endpoint topology), Agents and other participants <bcp14>MAY</bcp14> use OAuth discovery mechanisms to reduce static configuration and to bind runtime decisions to verifiable metadata.</t>
        <section anchor="authorization-server-capability-discovery">
          <name>Authorization Server Capability Discovery</name>
          <t>An Agent that needs to obtain tokens can discover authorization server endpoints and capabilities using OAuth 2.0 Authorization Server Metadata <xref target="OAUTH-SERVER-METADATA"/> and/or OpenID Connect Discovery <xref target="OpenIDConnect.Discovery"/>. This allows the Agent to learn the authorization server issuer identifier, authorization and token endpoints, supported grant types, client authentication methods, signing keys (via jwks_uri), and other relevant capabilities without preconfiguring them.</t>
        </section>
        <section anchor="protected-resource-capability-discovery">
          <name>Protected Resource Capability Discovery</name>
          <t>When an Agent is invoking a Tool, the Agent <bcp14>MAY</bcp14> use OAuth 2.0 Protected Resource Metadata <xref target="OAUTH-RESOURCE-METADATA"/> to discover how the resource is protected, including the resource identifier and the applicable Authorization Server(s) that protects Tool access. This enables an Agent to select the correct issuer/audience and token acquisition flow at runtime, even when resources are deployed or moved dynamically.</t>
          <t>A Tool that attempts to access and OAuth protected resource <bcp14>MAY</bcp14> use OAuth 2.0 Protected Resource Metadata <xref target="OAUTH-RESOURCE-METADATA"/> in a similar way as an Agent. Similarly, a System may use <xref target="OAUTH-RESOURCE-METADATA"/> when accessing an Agent.</t>
        </section>
        <section anchor="client-capability-discovery">
          <name>Client Capability Discovery</name>
          <t>Other actors (e.g., Authorization Servers, registrars, or policy systems) may need to learn about any entities (System, Agent, Tool) that acts as OAuth clients. Where supported, they <bcp14>MAY</bcp14> use Client ID Metadata Documents <xref target="OAUTH-CLIENT-METADATA"/>, which allow a client to host its metadata at a URL-valued client_id so that the relying party can retrieve client properties (e.g., redirect URIs, display information, and other registered client metadata) without prior bilateral registration.</t>
          <t>As an alternative, entities acting as OAuth clients <bcp14>MAY</bcp14> register their capabilities with authorization servers as defined in the OAuth 2.0 Dynamic Client Registration Protocol <xref target="OAUTH-REGISTRATION"/>.</t>
        </section>
      </section>
    </section>
    <section anchor="agent_monitoring_and_remediation">
      <name>Agent Monitoring, Observability and Remediation</name>
      <t>Because agents may perform sensitive actions autonomously or on behalf of users, deployments <bcp14>MUST</bcp14> maintain sufficient monitoring and observability to reconstruct agent behavior and authorization context after execution. Observability is therefore a security control, not solely an operational feature.</t>
      <t>Any participant in the system, including the Agent, Tool, System, LLM or other resources and service <bcp14>MAY</bcp14> subscribe to change notifications using eventing mechanisms such as the OpenID Shared Signals Framework <xref target="SSF"/> with either the Continuous Access Evaluation Profile <xref target="CAEP"/> or Risk Incident Sharing and Coordination <xref target="RISC"/> to receive security and authorization-relevant signals. Upon receipt of a relevant signal (e.g., session revoked, risk level change, subject disabled, token replay suspected, risk elevated), the recipient <bcp14>SHOULD</bcp14> remediate by attenuating access, such as terminating local sessions, discarding cached tokens, re-acquiring tokens with updated constraints, reducing privileges, or re-running policy evaluation before continuing to allow access. Recipients of such signals <bcp14>MUST</bcp14> ensure that revoked or downgraded authorization is enforced without undue delay. Cached authorization decisions and tokens that are no longer valid <bcp14>MUST NOT</bcp14> continue to be used after a revocation or risk notification is received.</t>
      <t>To support detection, investigation, and accountability, deployments <bcp14>MUST</bcp14> produce durable audit logs covering authorization decisions and subsequent remediations. Audit records <bcp14>MUST</bcp14> be tamper-evident and retained according to the security policy of the deployment.</t>
      <t>At a minimum, audit events <bcp14>MUST</bcp14> record:</t>
      <ul spacing="normal">
        <li>
          <t>authenticated agent identifier</t>
        </li>
        <li>
          <t>delegated subject (user or system), when present</t>
        </li>
        <li>
          <t>resource or tool being accessed</t>
        </li>
        <li>
          <t>action requested and authorization decision</t>
        </li>
        <li>
          <t>timestamp and transaction or request correlation identifier</t>
        </li>
        <li>
          <t>posture assessment or risk state influencing the decision</t>
        </li>
        <li>
          <t>remediation or revocation events and their cause</t>
        </li>
      </ul>
      <t>Monitoring / Observability systems <bcp14>SHOULD</bcp14> correlate events across Agents, Tools, Services, Resources and LLMs to detect misuse patterns such as replay, confused deputy behavior, privilege escalation, or unexpected action sequences.</t>
      <t>End-to-end audit is enabled when Agents, Users, Systems, LLMs, Tools, services and resources have stable, verifiable identifiers that allow auditors to trace "which entity did what, using which authorization context, and why access changed over time."</t>
      <t>Implementations <bcp14>SHOULD</bcp14> provide operators the ability to reconstruct a complete execution chain of an agent task, including delegated authority, intermediate calls, and resulting actions across service boundaries.</t>
    </section>
    <section anchor="agent_auhtentication_and_authorization_policy">
      <name>Agent Authentication and Authorization Policy</name>
      <t>The configuration and runtime parameters for Agent Identifiers <xref target="agent_identifiers"/>, Agent Credentials <xref target="agent_credentials"/>, Agent Credential Provisioning <xref target="agent_credential_provisioning"/>, Agent Authentication <xref target="agent_authentication"/>, Agent Authorization <xref target="agent_authorization"/> and Agent Monitoring, Observability and Remediation <xref target="agent_monitoring_and_remediation"/> collectively constitute the authentication and authorization policy within which the Agent operates.</t>
      <t>Because these parameters are highly deployment and risk-model-specific (and often reflect local governance, regulatory, and operational constraints), the policy model and document format are out of scope for this framework and are not recommended as a target for standardization within this specification. Implementations <bcp14>MAY</bcp14> represent policy in any suitable “policy-as-code” or configuration format (e.g., JSON/YAML), provided it is versioned, reviewable, and supports consistent evaluation across the components participating in the end-to-end flow.</t>
    </section>
    <section anchor="agent_compliance">
      <name>Agent Compliance</name>
      <t>Compliance for Agent-based systems <bcp14>SHOULD</bcp14> be assessed by auditing observed behavior and recorded evidence (logs, signals, and authorization decisions) against the deployment’s Agent Authentication and Authorization Policy <xref target="agent_auhtentication_and_authorization_policy"/>. Since compliance criteria are specific to individual deployments, organizations, industries and jurisdictions, they are out of scope for this framework though implementers <bcp14>SHOULD</bcp14> ensure strong observability and accountable governance, subject to their specific business needs.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document composes existing specifications to enable authentication and authorization between AI agents. The security considerations of each referenced specification apply in full.</t>
      <t>In addition to the guidance included in existing specifications, additional security best practices and profiles have been developed for the Oauth protocol famility. The OAuth 2.0 Security Best Current Practice <xref target="OAUTH-BCP"/> which captures current guidance on threats and mitigations that have emerged since the original OAuth 2.0 specifications were published. The FAPI 2.0 Security Profile  <xref target="OpenIDConnect.FAPI"/> defines a high-assurance profile of OAuth 2.0 suitable for high security applications.</t>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>This document composes existing specifications to enable authentication and authorization between AI agents.</t>
      <t>In addition to the the privacy considerations in <xref target="privacy"/>, the privacy considerations in each referenced specification apply in full.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank:</t>
      <ul spacing="normal">
        <li>
          <t>Sean O'Dell for providing valuable input and feedback on this work.</t>
        </li>
        <li>
          <t>Karl McGuinness for his blog posts on mission shaping as a pre-cursor to authroization <xref target="MissionShaping"/></t>
        </li>
      </ul>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="SPIFFE" target="https://spiffe.io/docs/latest/spiffe-about/overview/">
          <front>
            <title>Secure Production Identity Framework for Everyone</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="SPIFFE-ID" target="https://github.com/spiffe/spiffe/blob/main/standards/SPIFFE-ID.md">
          <front>
            <title>SPIFFE-ID</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="OpenIDConnect.AuthZEN" target="https://openid.net/specs/authorization-api-1_0.html">
          <front>
            <title>Authorization API 1.0</title>
            <author initials="O." surname="Gazitt" fullname="Omri Gazitt" role="editor">
              <organization>Asserto</organization>
            </author>
            <author initials="D." surname="Brossard" fullname="David Brossard" role="editor">
              <organization>Axiomatics</organization>
            </author>
            <author initials="A." surname="Tulshibagwale" fullname="Atul Tulshibagwale" role="editor">
              <organization>SGNL</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="OpenIDConnect.Discovery" target="https://openid.net/specs/openid-connect-discovery-1_0-final.html">
          <front>
            <title>OpenID Connect Discovery 1.0</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="OpenIDConnect.CIBA" target="https://openid.net/specs/openid-client-initiated-backchannel-authentication-core-1_0.html">
          <front>
            <title>OpenID Connect Client-Initiated Backchannel Authentication Flow - Core 1.0</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="OpenIDConnect.FAPI" target="https://openid.net/specs/fapi-security-profile-2_0-final.html">
          <front>
            <title>FAPI 2.0 Security Profile</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="MCP" target="https://modelcontextprotocol.io/specification">
          <front>
            <title>Model Context Protocol</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="SSF" target="https://openid.net/specs/openid-sharedsignals-framework-1_0-final.html">
          <front>
            <title>OpenID Shared Signals Framework Specification 1.0</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="CAEP" target="https://openid.net/specs/openid-caep-1_0-final.html">
          <front>
            <title>OpenID Continuous Access Evaluation Profile 1.0</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="A2A" target="https://github.com/a2aproject/A2A">
          <front>
            <title>Agent2Agent (A2A) Protocol</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="ACP" target="https://www.agenticcommerce.dev/docs">
          <front>
            <title>Agentic Commerce Protocol</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="AP2" target="https://github.com/google-agentic-commerce/AP2">
          <front>
            <title>Agent Payments Protocol (AP2)</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RISC" target="https://openid.net/specs/openid-risc-1_0-final.html">
          <front>
            <title>OpenID Risk Incident Sharing and Coordination Profile 1.0</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="WIMSE-ID">
          <front>
            <title>Workload Identifier</title>
            <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
              <organization>Zscaler</organization>
            </author>
            <author fullname="Joseph A. Salowey" initials="J. A." surname="Salowey">
              <organization>CyberArk</organization>
            </author>
            <date day="2" month="March" year="2026"/>
            <abstract>
              <t>   This document defines a canonical identifier for workloads, referred
   to as the Workload Identifier.  A Workload Identifier is a URI that
   uniquely identifies a workload within the context of a specific trust
   domain.  This identifier can be embedded in digital credentials,
   including X.509 certificates and security tokens, to support
   authentication, authorization, and policy enforcement across diverse
   systems.  The Workload Identifier format ensures interoperability,
   facilitates secure identity federation, and enables consistent
   identity semantics.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-identifier-02"/>
        </reference>
        <reference anchor="WIMSE-CRED">
          <front>
            <title>WIMSE Workload Credentials</title>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <author fullname="Joseph A. Salowey" initials="J. A." surname="Salowey">
              <organization>CyberArk</organization>
            </author>
            <author fullname="Arndt Schwenkschuster" initials="A." surname="Schwenkschuster">
              <organization>Defakto Security</organization>
            </author>
            <author fullname="Yaron Sheffer" initials="Y." surname="Sheffer">
              <organization>Intuit</organization>
            </author>
            <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
              <organization>Zscaler</organization>
            </author>
            <date day="5" month="May" year="2026"/>
            <abstract>
              <t>   The WIMSE architecture defines authentication and authorization for
   software workloads in a variety of runtime environments, from the
   most basic ones up to complex multi-service, multi-cloud, multi-
   tenant deployments.

   This document defines the credentials that workloads use to represent
   their identity.  They can be used in various protocols to
   authenticate workloads to each other.  To use these credentials,
   workloads must provide proof of possession of the associated private
   key material, which is covered in other documents.  This document
   focuses on the credentials alone, independent of the proof-of-
   possession mechanism.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-workload-creds-01"/>
        </reference>
        <reference anchor="OAUTH-TOKEN-EXCHANGE">
          <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="OAUTH-TXN-TOKENS">
          <front>
            <title>Transaction Tokens</title>
            <author fullname="Atul Tulshibagwale" initials="A." surname="Tulshibagwale">
              <organization>CrowdStrike</organization>
            </author>
            <author fullname="George Fletcher" initials="G." surname="Fletcher">
              <organization>Practical Identity LLC</organization>
            </author>
            <author fullname="Pieter Kasselman" initials="P." surname="Kasselman">
              <organization>Defakto Security</organization>
            </author>
            <date day="2" month="March" year="2026"/>
            <abstract>
              <t>   Transaction Tokens (Txn-Tokens) are designed to maintain and
   propagate user identity, workload identity and authorization context
   throughout the Call Chain within a trusted domain during the
   processing of external requests (e.g. such as API calls) or requests
   initiated internally within the trust domain.  Txn-Tokens ensure that
   this context is preserved throughout the Call Chain thereby enhancing
   security and consistency in complex, multi-service architectures.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-transaction-tokens-08"/>
        </reference>
        <reference anchor="WIMSE-ARCH">
          <front>
            <title>Workload Identity in a Multi System Environment (WIMSE) Architecture</title>
            <author fullname="Joseph A. Salowey" initials="J. A." surname="Salowey">
              <organization>CyberArk</organization>
            </author>
            <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
              <organization>Zscaler</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <date day="2" month="March" year="2026"/>
            <abstract>
              <t>   The increasing prevalence of cloud computing and micro service
   architectures has led to the rise of complex software functions being
   built and deployed as workloads, where a workload is defined as
   software executing for a specific purpose, potentially comprising one
   or more running instances.  This document discusses an architecture
   for designing and standardizing protocols and payloads for conveying
   workload identity and security context information.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-arch-07"/>
        </reference>
        <reference anchor="WIMSE-WPT">
          <front>
            <title>WIMSE Workload Proof Token</title>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <author fullname="Arndt Schwenkschuster" initials="A." surname="Schwenkschuster">
              <organization>Defakto Security</organization>
            </author>
            <date day="2" month="March" year="2026"/>
            <abstract>
              <t>   The WIMSE architecture defines authentication and authorization for
   software workloads in a variety of runtime environments, from basic
   deployments to complex multi-service, multi-cloud, multi-tenant
   systems.  This document specifies the Workload Proof Token (WPT), a
   mechanism for workloads to prove possession of the private key
   associated with a Workload Identity Token (WIT).  The WPT is a signed
   JWT that binds the workload's authentication to a specific HTTP
   request, providing application-level proof of possession for
   workload-to-workload communication.  This specification is designed
   to work alongside the WIT credential format defined in draft-ietf-
   wimse-workload-creds and can be combined with other WIMSE protocols
   in multi-hop call chains.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-wpt-01"/>
        </reference>
        <reference anchor="WIMSE-HTTPSIG">
          <front>
            <title>WIMSE Workload-to-Workload Authentication with HTTP Signatures</title>
            <author fullname="Joseph A. Salowey" initials="J. A." surname="Salowey">
              <organization>CyberArk</organization>
            </author>
            <author fullname="Yaron Sheffer" initials="Y." surname="Sheffer">
              <organization>Intuit</organization>
            </author>
            <date day="7" month="April" year="2026"/>
            <abstract>
              <t>   The WIMSE architecture defines authentication and authorization for
   software workloads in a variety of runtime environments, from the
   most basic ones to complex multi-service, multi-cloud, multi-tenant
   deployments.  This document defines one of the mechanisms to provide
   workload authentication, using HTTP Signatures.  While only
   applicable to HTTP traffic, the protocol provides end-to-end
   protection of requests (and optionally, responses), even when service
   traffic is not end-to-end encrypted, that is, when TLS proxies and
   load balancers are used.  Authentication is based on the Workload
   Identity Token (WIT).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-http-signature-03"/>
        </reference>
        <reference anchor="HTTP-SIG">
          <front>
            <title>HTTP Message Signatures</title>
            <author fullname="A. Backman" initials="A." role="editor" surname="Backman"/>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <author fullname="M. Sporny" initials="M." surname="Sporny"/>
            <date month="February" year="2024"/>
            <abstract>
              <t>This document describes a mechanism for creating, encoding, and verifying digital signatures or message authentication codes over components of an HTTP message. This mechanism supports use cases where the full HTTP message may not be known to the signer and where the message may be transformed (e.g., by intermediaries) before reaching the verifier. This document also describes a means for requesting that a signature be applied to a subsequent HTTP message in an ongoing HTTP exchange.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9421"/>
          <seriesInfo name="DOI" value="10.17487/RFC9421"/>
        </reference>
        <reference anchor="OAUTH-FRAMEWORK">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
        <reference anchor="OAUTH-ACCESSTOKEN-JWT">
          <front>
            <title>JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens</title>
            <author fullname="V. Bertocci" initials="V." surname="Bertocci"/>
            <date month="October" year="2021"/>
            <abstract>
              <t>This specification defines a profile for issuing OAuth 2.0 access tokens in JSON Web Token (JWT) format. Authorization servers and resource servers from different vendors can leverage this profile to issue and consume access tokens in an interoperable manner.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9068"/>
          <seriesInfo name="DOI" value="10.17487/RFC9068"/>
        </reference>
        <reference anchor="OAUTH-TOKEN-INTROSPECTION">
          <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="OAUTH-CLIENTAUTH-JWT">
          <front>
            <title>JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>This specification defines the use of a JSON Web Token (JWT) Bearer Token as a means for requesting an OAuth 2.0 access token as well as for client authentication.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7523"/>
          <seriesInfo name="DOI" value="10.17487/RFC7523"/>
        </reference>
        <reference anchor="OAUTH-CLIENTAUTH-MTLS">
          <front>
            <title>OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens</title>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document describes OAuth client authentication and certificate-bound access and refresh tokens using mutual Transport Layer Security (TLS) authentication with X.509 certificates. OAuth clients are provided a mechanism for authentication to the authorization server using mutual TLS, based on either self-signed certificates or public key infrastructure (PKI). OAuth authorization servers are provided a mechanism for binding access tokens to a client's mutual-TLS certificate, and OAuth protected resources are provided a method for ensuring that such an access token presented to it was issued to the client presenting the token.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8705"/>
          <seriesInfo name="DOI" value="10.17487/RFC8705"/>
        </reference>
        <reference anchor="OAUTH-SPIFFE">
          <front>
            <title>OAuth SPIFFE Client Authentication</title>
            <author fullname="Arndt Schwenkschuster" initials="A." surname="Schwenkschuster">
              <organization>Defakto Security</organization>
            </author>
            <author fullname="Pieter Kasselman" initials="P." surname="Kasselman">
              <organization>Defakto Security</organization>
            </author>
            <author fullname="Scott Rose" initials="S." surname="Rose">
              <organization>NIST</organization>
            </author>
            <author fullname="Stian Thorgersen" initials="S." surname="Thorgersen">
              <organization>IBM</organization>
            </author>
            <date day="2" month="March" year="2026"/>
            <abstract>
              <t>   This specification profiles the Assertion Framework for OAuth 2.0
   Client Authentication and Authorization Grants [RFC7521], the JWT
   Profile for OAuth 2.0 Client Authentication and Authorization Grants
   [RFC7523], and OAuth 2.0 Attestation-Based Client Authentication
   [I-D.draft-ietf-oauth-attestation-based-client-auth] to enable the
   use of SPIFFE Verifiable Identity Documents (SVIDs) as client
   credentials in OAuth 2.0.  It defines how OAuth clients with SPIFFE
   credentials can authenticate to OAuth authorization servers using
   their JWT-SVIDs, WIT-SVIDs, or X.509-SVIDs without the need for
   client secrets.  This approach enhances security by enabling seamless
   integration between SPIFFE-enabled workloads and OAuth authorization
   servers while eliminating the need to distribute and manage shared
   secrets such as static client secrets.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-spiffe-client-auth-01"/>
        </reference>
        <reference anchor="OAUTH-BCP">
          <front>
            <title>Best Current Practice for OAuth 2.0 Security</title>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="A. Labunets" initials="A." surname="Labunets"/>
            <author fullname="D. Fett" initials="D." surname="Fett"/>
            <date month="January" year="2025"/>
            <abstract>
              <t>This document describes best current security practice for OAuth 2.0. It updates and extends the threat model and security advice given in RFCs 6749, 6750, and 6819 to incorporate practical experiences gathered since OAuth 2.0 was published and covers new threats relevant due to the broader application of OAuth 2.0. Further, it deprecates some modes of operation that are deemed less secure or even insecure.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="240"/>
          <seriesInfo name="RFC" value="9700"/>
          <seriesInfo name="DOI" value="10.17487/RFC9700"/>
        </reference>
        <reference anchor="OAUTH-ID-CHAIN">
          <front>
            <title>OAuth Identity and Authorization Chaining Across Domains</title>
            <author fullname="Arndt Schwenkschuster" initials="A." surname="Schwenkschuster">
              <organization>Defakto Security</organization>
            </author>
            <author fullname="Pieter Kasselman" initials="P." surname="Kasselman">
              <organization>Defakto Security</organization>
            </author>
            <author fullname="Kelley Burgin" initials="K." surname="Burgin">
              <organization>MITRE</organization>
            </author>
            <author fullname="Michael J. Jenkins" initials="M. J." surname="Jenkins">
              <organization>NSA-CCSS</organization>
            </author>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <author fullname="Aaron Parecki" initials="A." surname="Parecki">
              <organization>Okta</organization>
            </author>
            <date day="11" month="May" year="2026"/>
            <abstract>
              <t>   This specification defines a mechanism to preserve identity and
   authorization information across trust domains that use the OAuth 2.0
   Framework.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Discussion of this document takes place on the Web Authorization
   Protocol Working Group mailing list (oauth@ietf.org), which is
   archived at https://mailarchive.ietf.org/arch/browse/oauth/.

   Source for this draft and an issue tracker can be found at
   https://github.com/oauth-wg/oauth-identity-chaining.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-identity-chaining-12"/>
        </reference>
        <reference anchor="OAUTH-JWT-ASSERTION">
          <front>
            <title>Identity Assertion JWT Authorization Grant</title>
            <author fullname="Aaron Parecki" initials="A." surname="Parecki">
              <organization>Okta</organization>
            </author>
            <author fullname="Karl McGuinness" initials="K." surname="McGuinness">
              <organization>Independent</organization>
            </author>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <date day="21" month="May" year="2026"/>
            <abstract>
              <t>   This specification provides a mechanism for an application to use an
   identity assertion to obtain an access token for a third-party API by
   coordinating through an identity provider that the downstream
   Resource Authorization Server already trusts for single sign-on
   (SSO), using Token Exchange [RFC8693] and JWT Profile for OAuth 2.0
   Authorization Grants [RFC7523].  This pattern is informally referred
   to as Cross-App Access (XAA).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-identity-assertion-authz-grant-04"/>
        </reference>
        <reference anchor="OAUTH-SERVER-METADATA">
          <front>
            <title>OAuth 2.0 Authorization Server Metadata</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <date month="June" year="2018"/>
            <abstract>
              <t>This specification defines a metadata format that an OAuth 2.0 client can use to obtain the information needed to interact with an OAuth 2.0 authorization server, including its endpoint locations and authorization server capabilities.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8414"/>
          <seriesInfo name="DOI" value="10.17487/RFC8414"/>
        </reference>
        <reference anchor="OAUTH-RESOURCE-METADATA">
          <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="OAUTH-CLIENT-METADATA">
          <front>
            <title>OAuth Client ID Metadata Document</title>
            <author fullname="Aaron Parecki" initials="A." surname="Parecki">
              <organization>Okta</organization>
            </author>
            <author fullname="Emelia Smith" initials="E." surname="Smith">
         </author>
            <date day="1" month="March" year="2026"/>
            <abstract>
              <t>   This specification defines a mechanism through which an OAuth client
   can identify itself to authorization servers, without prior dynamic
   client registration or other existing registration.  This is through
   the usage of a URL as a client_id in an OAuth flow, where the URL
   refers to a document containing the necessary client metadata,
   enabling the authorization server to fetch the metadata about the
   client as needed.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-client-id-metadata-document-01"/>
        </reference>
        <reference anchor="OAUTH-REGISTRATION">
          <front>
            <title>OAuth 2.0 Dynamic Client Registration Protocol</title>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="M. Machulak" initials="M." surname="Machulak"/>
            <author fullname="P. Hunt" initials="P." surname="Hunt"/>
            <date month="July" year="2015"/>
            <abstract>
              <t>This specification defines mechanisms for dynamically registering OAuth 2.0 clients with authorization servers. Registration requests send a set of desired client metadata values to the authorization server. The resulting registration responses return a client identifier to use at the authorization server and the client metadata values registered for the client. The client can then use this registration information to communicate with the authorization server using the OAuth 2.0 protocol. This specification also defines a set of common client metadata fields and values for clients to use during registration.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7591"/>
          <seriesInfo name="DOI" value="10.17487/RFC7591"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="MissionShaping" target="https://notes.karlmcguinness.com/notes/the-mission-shaping-problem/">
          <front>
            <title>The Mission Shaping Problem</title>
            <author initials="K." surname="McGuinness" fullname="Karl McGuinness">
              <organization/>
            </author>
            <date year="2026"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 439?>

<section anchor="document-history">
      <name>Document History</name>
      <t>[[ To be removed from the final specification ]]</t>
      <t>-02</t>
      <ul spacing="normal">
        <li>
          <t>Add Aaron Parecki from Okta as co-author.</t>
        </li>
        <li>
          <t>Add reference to phishing resistent credentials (e.g. FIDO passkeys/authenticators) - see https://github.com/PieterKas/agent2agent-auth-framework/issues/106</t>
        </li>
        <li>
          <t>Fold attestation section into provosioning section. Change terminology to posture management.</t>
        </li>
        <li>
          <t>Clarify Oauth authentication mechanisms when an Agent acts as and OAuth client.</t>
        </li>
        <li>
          <t>Update Security Considerations section</t>
        </li>
        <li>
          <t>Add section on Agent Mission (see issue https://github.com/PieterKas/agent2agent-auth-framework/issues/107)</t>
        </li>
      </ul>
      <t>-01</t>
      <ul spacing="normal">
        <li>
          <t>Add Nick Steele from OpenAI as co-author.</t>
        </li>
      </ul>
      <t>-00</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA8V96XIbV5bmfzxFjhwxJl0AaKm8lDXV1YYpymZbC4ek2l29
jDoBJMA0E5mYzARplkod/RoTMRMx/+Y9Zt6kn2TOd5a7ZCZIqaqi2xFVIoBc
7j333LN+59zJZDJq87bIniaPZqfJbJ2VbTLbtVf0b75I27wqk7Rc8ldVnf+B
v3k0SufzOrvheyb46dGIrs3WVX33NMnLVTUaLatFmW7oscs6XbWT66JeTNI8
xfMnKd0x+fzJqNnNN3nT0BPbuy1denpy+TxJPknSoqno2Xm5zLYZ/V/ZPhon
j7Jl3tIQ0gIfTmff0T9VTX+dXz5/NCp3m3lWPx0taRhPR4uqbLKy2TVPk7be
ZSMa6a9H9Nw6S58ms/OTGX24rerrdV3ttk+Tn75PfqJPeblOvsc3o+vsjn5e
Ph0lk+Q15oc/fjp9eXGCPy7OTp8/l7+yxa7Okot8XdKYk+c1zRjPxW8fTM3R
TVbuaNCfJIkbDz4ITeKB0debNC9wybfZL+lmW2TTRbXB92m9uHqaXLXttnl6
dBT8eESPo0fn7dVuTlQ9y7M2q39MmyNejCfBkqxs/I/ohoIo2bR0gz3S3TiV
Z03z6p5HHO1Z9+lVuykejUYpkwAUpnclyWpXFMIv8pqE3tNkxSYt+eeqXqel
0utp8ixbpddtJeTP2zu+JBPCPNry/d8u5Zppo9c86r/pb7K0nNCalf/v/1R5
k7yoNvO0XlYDL5z9dBG+4+dstaLnfptu0j9UJS9A7+G/T+uqKdKb5Lxqqk16
fTX03L9vFmmR1eGz72q7/ts/yK/Dz/+OdkKZHNMqz7OiGHj2GbjmFJunQ6H5
Qm/6dkuX5HrF8Fte5Yvr5KLNsiIbeMVr2p2z0/DZDV/6bUU/pPnwI2dEmDI5
o724uM6HHnrdpuEjU1z/7Vau50eOyqre0NU3tGkS3Y1P+RaTZLovz+pquVvw
rjNC+D2arEh6nNxk9V1VZo/k9rReZ63fRM02X60y8DlJs+ZIdoR+O0nn1a49
qugBN3l2e+RGMjl9Fg3GfTv4Ct1K2KbyXPtnXlTzI6JAedS0JDKIMZsj96jp
ZklPA/lPnx1XZZkt2ilkyt+fvIreHcmZZHZ2mjyefj44DqxYvpyWGeaX0WTT
8NZJus0nj99+zpuX73fbl/6bJLKyrzd1nnyf/iFvW/4+SeoKoxDBrV/RYtO4
aG/XbRXd/Sy9yZfE1lXT0GQfesAveQUWWDTRM2btrkgud0Vzlc/T9W2qXLv/
ORffv3rBn1lvJE8+f/JVj7DP8maBZb6LSCvXJHpR4i76cArLF5OFPGGytCeA
0JNVThrFyB2P5/j0u9l9Qzkucgjb0zJvc5oV0TRdXC+uUvq16Cqj50V1S9Q7
rmi3fPTA5T25vWcy9+9hUe/fQ5Oss5CB4hk9J86MZoQvkifTz52Ex1Ze5bqc
Dw5wBXY1wT/Zyq2TJ12yvjw+i976sloShWhQbfZLize21aIqBl+5waULuXKr
F0JO4P35SmcNkXDxfGipLq5InC37dkNyEd7/0SvS8GMbeapXxX2GOp6dnO1h
oTYvd9WuSWaLRdY0JCDTYiej0SX4eD5Js21/CLMnMROzrfRELKYD+vHw/gUI
5Gb6JKUl+JkY6Yjuw6M768oPzRc0u80mqxfZ/U++vb2dpnLHQm+YLrMbVgF4
+NmT/sNJnd1t6N/GPZrmcPbk8KGhr6tqTZypr5vY+47oXrr1/PTieGiVzvPm
OjktF6y6mZeg6mFXHldktRKV/6z1qkkQdddrBKM+ULovxWynd8OGiJXv5VVm
vyd6AcYyL7LNsJotK9Kr0+u0LjaL9S4nmdA0TB7+4YgEyUTdBHA4noc9jecd
7dVFP9LTkpeL7/VxXRk/nU5Ho8lkkqTzpq3TRTsaXV6RDUiLvMNCJvSCbdVk
TTInlU+f6JKcNgQbDWnfoI+0ZVKtYP3zqpI3RNZoykZIM01O26TISMjTb02S
/ZI3LajjNHzS7BZXSdok9AK2/IsqXXrbJS+Tl7uizScXd2RobZKT8iYn40g4
74D9k0P2A/KWdgMsIIyNHRiWpqt0kxd3GF4kp2hc5ym9sabXkk1JljPJdBpW
md0mJtyaMf0YEmiZNYs6J+okV6RC3FTwwltiTHoNOW9FdUdizk9vQY+f06i2
W9IdS7hvJD/h4S0TMueJ0um8yJsrJd1DdJ4m39FbKqZgNU5yuiPfNHgSjZqM
CXpR4oQgjYomUCa3VzmRmK7ZNdnACtBjmNqru2Sdbht+KfEkPWu1Y4ralbbW
5ApUdauM8WHDFs7b5MslKTRy3U7L1hmq4MMsqYnLl2QAZ7RRShJYAUM1YA96
XlVWG8jpW+USWgf6oSE7+ZqoCQeYBl0TPTNim7K6kcEQAR7kXlqdukoXV7Qn
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
2hEXbZZZFQ9kKMRLxC182+ej/w+/0Pm9pcUAAA==

-->

</rfc>
