<?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.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-wimse-aims-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="AIMS">AI Identity Management System</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-aims-00"/>
    <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="September" day="15"/>
    <workgroup>WIMSE</workgroup>
    <keyword>OAuth</keyword>
    <keyword>WIMSE</keyword>
    <keyword>SPIFFE</keyword>
    <keyword>Secure Signals Framework</keyword>
    <keyword>AI Agent Authentication and Authorization</keyword>
    <abstract>
      <?line 125?>

<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://ietf-wg-wimse.github.io/draft-ietf-wimse-aims/draft-ietf-wimse-aims.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-wimse-aims/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        WIMSE Working Group mailing list (<eref target="mailto:wimse@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/wimse/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/wimse/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ietf-wg-wimse/draft-ietf-wimse-aims"/>.</t>
    </note>
  </front>
  <middle>
    <?line 129?>

<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="document-status">
      <name>Document Status</name>
      <t>This document profiles existing standards and emerging specifications from the IETF, CNCF, and OpenID Foundation, as well as third-party protocols and mechanisms, for the AI agent use case. It defines best current practices for combining these and identifies new requirements specific to agent authentication and authorization.</t>
    </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 instance of the WIMSE identifier model <xref target="WIMSE-ID"/>. 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 defines two credential formats in <xref target="WIMSE-CRED"/>: the Workload Identity Token (WIT) and the transport-layer X.509 Workload Identity Certificate (WIC), both of which bind a cryptographic key to a workload identifier for use in authentication. SPIFFE defines three credential formats: the X.509-SVID <xref target="SPIFFE-X509-SVID"/>, WIT-SVID <xref target="SPIFFE-WIT-SVID"/>, and JWT-SVID <xref target="SPIFFE-JWT-SVID"/>. X.509-SVID is compatible with WIC, while WIT-SVID profiles WIT. JWT-SVIDs are short-lived bearer credentials used for JWT-based authentication. The choice of credential format depends on the deployment’s 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>
      <t>The Large Language Model <bcp14>MUST NOT</bcp14> have access to an agent's credentials or to credentials that may be needed to access tools and services. This prevents the Large Language Model from using, exposing, or being manipulated via prompt injection into disclosing the credentials.</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 Authorization Code Grant as described in Section 4.1 of <xref target="OAUTH-FRAMEWORK"/> is the appropriate mechanism. 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 Figure 1 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"/> or , Transaction Token Authorization Grant Profile for OAuth Identity and Authorization Chaining <xref target="OAUTH-TXN-ASSERTION"/>, to obtain an access token from the relevant authorization servers. The agent first exchanges its current access token or transaction token for a JWT authorization grant (Section 2.3 of <xref target="OAUTH-ID-CHAIN"/>) and then presents that grant to obtain an access token for the target resource (Section 2.4 of <xref 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, can use the OpenID Client Initiated Backchannel Authentication (CIBA) protocol (<xref target="OpenIDConnect.CIBA"/>). 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. As recommended in <xref target="OAUTH-BCP"/>, resource servers 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 authorization <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="SPIFFE-X509-SVID" target="https://github.com/spiffe/spiffe/blob/main/standards/X509-SVID.md">
          <front>
            <title>The X.509 SPIFFE Verifiable Identity Document</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="SPIFFE-JWT-SVID" target="https://github.com/spiffe/spiffe/blob/main/standards/JWT-SVID.md">
          <front>
            <title>The JWT SPIFFE Verifiable Identity Document</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="SPIFFE-WIT-SVID" target="https://github.com/spiffe/spiffe/blob/draft-wit-svid/standards/WIT-SVID.md">
          <front>
            <title>The WIT SPIFFE Verifiable Identity Document</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>Palo Alto Networks</organization>
            </author>
            <date day="6" month="July" 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 Workload Identity
   Credentials, including X.509 certificates and JWT-based 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-03"/>
        </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="2" month="July" 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-02"/>
        </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="30" month="July" 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-11"/>
        </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>Palo Alto Networks</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 the Bundeswehr Munich</organization>
            </author>
            <date day="6" month="July" 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-08"/>
        </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="27" month="August" 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-layer 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-02"/>
        </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>Palo Alto Networks</organization>
            </author>
            <author fullname="Yaron Sheffer" initials="Y." surname="Sheffer">
              <organization>Intuit</organization>
            </author>
            <date day="4" month="August" 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-06"/>
        </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>
            <author fullname="Nancy Cam-Winget" initials="N." surname="Cam-Winget">
              <organization>Cisco Systems</organization>
            </author>
            <date day="15" month="June" 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-02"/>
        </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="19" month="July" year="2026"/>
            <abstract>
              <t>   This specification describes a mechanism for preserving identity and
   authorization information across trust domains that use the OAuth 2.0
   Framework.  A JSON Web Token (JWT) authorization grant, obtained
   through an intra-domain OAuth 2.0 Token Exchange, facilitates the
   cross-domain acquisition of an access token.  The relevant identity
   and authorization information is chained throughout the flow by being
   conveyed in the respective artifacts exchanged at each step of the
   process.  Chaining across multiple domains is achieved by using the
   same protocol every time a trust domain boundary is crossed.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-identity-chaining-17"/>
        </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-TXN-ASSERTION">
          <front>
            <title>Transaction Token Authorization Grant Profile for OAuth Identity and Authorization Chaining</title>
            <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>
            <author fullname="Sean O'Dell" initials="S." surname="O'Dell">
              <organization>CVS Health</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   This specification defines a profile of the OAuth Identity and
   Authorization Chaining Across Domains
   [I-D.ietf-oauth-identity-chaining] mechanism that uses a Transaction
   Token (Txn-Token) [I-D.ietf-oauth-transaction-tokens] as the subject
   token in a Token Exchange [RFC8693] request to obtain a JWT
   Authorization Grant for crossing a trust boundary.

   A Txn-Token is scoped to a single trust domain and represents the
   full authorization context of an in-progress transaction, regardless
   of whether that transaction was initiated by a human user calling an
   external API, by an internal system event, or by an automated
   workload.  This profile specifies how a service operating within that
   trust domain can present its Txn-Token to obtain a JWT Authorization
   Grant that carries the necessary context across a trust boundary,
   enabling an access token to be issued for a partner service, without
   exposing internal trust-domain credentials or token formats beyond
   the trust boundary.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-fletcher-transaction-token-chaining-profile-02"/>
        </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="6" month="July" 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-02"/>
        </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 455?>

<section anchor="document-history">
      <name>Document History</name>
      <t>[[ To be removed from the final specification ]]
  -03</t>
      <ul spacing="normal">
        <li>
          <t>Editorial updates</t>
        </li>
        <li>
          <t>Clarify relationship between WIMSE and SPIFFE credentials (https://github.com/PieterKas/agent2agent-auth-framework/issues/136)</t>
        </li>
        <li>
          <t>Clarify that LLMs should not have access to Agent credentials: https://github.com/PieterKas/agent2agent-auth-framework/issues/127</t>
        </li>
        <li>
          <t>Update use of normative language (https://github.com/PieterKas/agent2agent-auth-framework/issues/123)</t>
        </li>
      </ul>
      <t>-03</t>
      <ul spacing="normal">
        <li>
          <t>Include reference to CIBA (see https://github.com/PieterKas/agent2agent-auth-framework/issues/131)</t>
        </li>
      </ul>
      <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:
H4sIAAAAAAAAA8V963IbV5LmfzxFjRyxJtUFUJJlu63t6TFMUTbbunBJatw9
l/UUgCJYJlCFrSqQZqs1Ma+xEbsR+2/fY/dN5kk2v7ycS1WBlNq9PYroNgHU
5Zw8efL6ZZ7xeDxqi3aVP0seTI+T40Ve0sfb5FVWZst8TZ+Ss9umzdcPRtls
VufXfN2rswejedbmy6q+fZYU5UU1Gi2qeZmt6TmLOrtox0XeXoxvinWTjzP6
//GjR6NmO1sXTVNUZXu7oQuPj85fJMknSbZqKnpsUS7yTV5iBA/S5EG+KNqq
LrIVPhxPv6H/VDX9dXr+4sGo3K5nef1stKBBPBvNq7LJy2bbPEvaepuPaJCf
jei5dZ49S6anR9PRTVVfLetqu3mW/ECjPxpd5bf03eLZKBknb6bb9hJ/yE/0
x9nJ8YsX8lc+39Z5clYsSxpm8qKmKeJh+I3oNV2CQrgfdCOS0OSSrFzwVzT6
P/I3o+u83NI4kyQaQ5IIHX6g5xXlMvkWP9K366xYPUuYdl+DjJOqXtLXWT2/
fJZctu2meXZwgIvwTXGdT+yiA3xxMKurmyY/4PsP8M6ivdzOQGBekqWsysHg
Mj2g61dE06al6+1V0X0TedykqIafMPzt5LJdrx6MRhmTBVSnFyXJxXa1EqY5
oRvyOvk+a5p8tc5K/pmmlJVKw2fJ8/wiu2orWRLiUb4kF2I92PD9Xy/kmkmj
1zzov+l3eVaOaR3L//u/q6JJXlbrWVYvqoEXTn84C9/xU35xQc/9Oltnf6zK
ybxa9x/+h6yumlV2nZxWTbXOri6HnvsPzTxb5XX47Nvarv/6j/Lr8PO/oQ1R
JofZejPLV6uBZ5+AkWwXh2+YzfWmrzd0SaFXDL/ldTG/Ss7aPF/lA694Q5t0
ehw+u+FLv67oh6wYfuSUCFMmJ7Ql51fF0EOv2ix8ZIbrv97I9fzIUVnVa7r6
mjeS7NBnfIvJL92rJ3W12M55Jzpx5vZtckFC5Og6r2+rMn8gt2f1Mm/9zmo2
xcVFzgxezZsD2Q767TibVdv2oKIHXBf5zYEbyfj4eTQY9+3gK3QP0bT0ufaf
2aqaYWuXB01LYoQYszlwj5qsF/Q0kP/4+WFVlvm8nUDO/MPR6+jdkexJpifH
yePJo8FxYMWKxaTMMb+cJpuFt46zTTF+/OMj3rx8v9u+9G+cyMq+WddF8m32
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
kHXIzAAA

-->

</rfc>
