<?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.36 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-mcguinness-oauth-client-instance-assertion-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="oauth-client-instance-assertion">OAuth 2.0 Client Instance Assertions using Actor Tokens</title>
    <seriesInfo name="Internet-Draft" value="draft-mcguinness-oauth-client-instance-assertion-00"/>
    <author fullname="Karl McGuinness">
      <organization>Independent</organization>
      <address>
        <email>public@karlmcguinness.com</email>
      </address>
    </author>
    <date year="2026" month="May" day="05"/>
    <area>Security</area>
    <workgroup>Web Authorization Protocol</workgroup>
    <keyword>OAuth</keyword>
    <keyword>CIMD</keyword>
    <keyword>Actor</keyword>
    <keyword>Workload Identity</keyword>
    <keyword>Client Instance</keyword>
    <abstract>
      <?line 66?>

<t>This specification defines a profile for representing OAuth 2.0
client instance identity to an authorization server. It registers a
new <tt>actor_token_type</tt>,
<tt>urn:ietf:params:oauth:token-type:client-instance-jwt</tt>, that carries
the instance identity as a signed JWT presented via the <tt>actor_token</tt>
parameter defined by OAuth 2.0 Token Exchange (RFC 8693). To support
presentation outside token exchange, this specification also permits
<tt>actor_token</tt> and <tt>actor_token_type</tt> on selected additional grant
types.</t>
      <t>The profile does not introduce a new <tt>client_instance</tt> identifier in
protocol messages. Instead, it defines client metadata parameters
(applicable to clients identified by a Client ID Metadata Document
(CIMD) or registered via OAuth Dynamic Client Registration (RFC 7591))
that let a <tt>client_id</tt> identify a logical client whose concrete
runtime instances are authenticated by one or more trusted instance
issuers (for example, workload identity systems).</t>
      <t>The Authorization Server validates the instance assertion and
represents the instance either as an <tt>act</tt> claim, when another
principal is present (e.g., a user delegating to the instance), or as
the access token's <tt>sub</tt>, when the instance itself is the principal
(e.g., a client credentials grant). The issued access token is
sender-constrained to a key the instance possesses.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://mcguinness.github.io/draft-mcguinness-oauth-client-instance-assertion/draft-mcguinness-oauth-client-instance-assertion.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-mcguinness-oauth-client-instance-assertion/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Web Authorization Protocol Working Group mailing list (<eref target="mailto:oauth@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/oauth/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/oauth/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/mcguinness/draft-mcguinness-oauth-client-instance-assertion"/>.</t>
    </note>
  </front>
  <middle>
    <?line 94?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>OAuth 2.0 <xref target="RFC6749"/> defines <tt>client_id</tt> as the identifier of a client.
In modern deployments such as agentic workloads, autoscaled services,
and ephemeral function executions, a single logical client routinely
corresponds to many concrete runtime instances that come and go on a
short timescale. Resource servers and authorization servers
increasingly need to know not only <em>which</em> client made a request but
<em>which instance</em> of that client made it. Instances may be acting on a
user's behalf or as the principal themselves; this profile covers
both.</t>
      <t>OAuth 2.0 Token Exchange <xref target="RFC8693"/> defines the <tt>actor_token</tt> and
<tt>actor_token_type</tt> token request parameters and the <tt>act</tt> claim for
representing an actor in an issued token. The OAuth Actor Profile
<xref target="ACTOR-PROFILE"/> further constrains the <tt>act</tt> claim and registers
actor-related claims, but explicitly leaves out a token request
parameter for proving an actor in flows other than token exchange.</t>
      <t>This document defines a profile for representing client instance
identity at the OAuth 2.0 token endpoint. It:</t>
      <ul spacing="normal">
        <li>
          <t>Recognizes that an OAuth <tt>client_id</tt> commonly abstracts over many
concrete runtime instances (a relationship already implicit in
deployed OAuth practice; see <xref target="client-instance-model"/>), and
defines client metadata describing the <em>instance issuers</em> trusted
to attest those instances. The metadata applies whether
the client is identified by a Client ID Metadata Document <xref target="CIMD"/>
or registered via <xref target="RFC7591"/>; see <xref target="registration-models"/>.</t>
        </li>
        <li>
          <t>Registers a new <tt>actor_token_type</tt>,
<tt>urn:ietf:params:oauth:token-type:client-instance-jwt</tt>, that
carries the instance identity as a JSON Web Token (JWT) <xref target="RFC7519"/>
signed by an instance issuer published in the client's metadata.</t>
        </li>
        <li>
          <t>Requires issued access tokens to be sender-constrained to a key
the instance possesses, and specifies how the instance
assertion's <tt>cnf</tt> claim drives that binding in the interoperable
re-minted assertion format.</t>
        </li>
        <li>
          <t>Registers <tt>client_instance_jwt</tt> as a <tt>token_endpoint_auth_method</tt>
value, allowing deployments without an online client-controlled
credential to authenticate the client via the instance assertion
alone.</t>
        </li>
        <li>
          <t>Defines first-class support for SPIFFE workload identity, including
optional direct presentation of JWT-SVIDs as <tt>actor_token</tt>.</t>
        </li>
        <li>
          <t>Defines authorization server metadata so that clients can
discover support.</t>
        </li>
      </ul>
      <t>To enable instance assertions to be presented outside token exchange,
this document also extends <xref target="RFC8693"/>'s <tt>actor_token</tt> and
<tt>actor_token_type</tt> parameters to selected additional grant types
(<tt>authorization_code</tt>, <tt>client_credentials</tt>, <tt>refresh_token</tt>, and
the JWT bearer grant <xref target="RFC7523"/>). See <xref target="grant-extension"/>; the
extension is independent of any specific <tt>actor_token_type</tt> and may
be used by other profiles.</t>
      <t>What this document does <em>not</em> do:</t>
      <ul spacing="normal">
        <li>
          <t>It does not introduce a <tt>client_instance</tt> or
<tt>client_instance_assertion</tt> request parameter (see
<xref target="rationale-no-instance-assertion-param"/>).</t>
        </li>
        <li>
          <t>It does not change the syntax or processing of the <tt>act</tt> claim
beyond what <xref target="ACTOR-PROFILE"/> already defines.</t>
        </li>
        <li>
          <t>It does not define authorization endpoint interactions for
conveying actor identity; like <xref target="ACTOR-PROFILE"/>, this is left for
future work.</t>
        </li>
      </ul>
    </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?>

<t>This document uses the following terms:</t>
      <dl>
        <dt>OAuth Client:</dt>
        <dd>
          <t>As defined in <xref target="RFC6749"/>, identified by a <tt>client_id</tt> (a CIMD
URL or a registered <tt>client_id</tt> under <xref target="RFC7591"/>; see
<xref target="registration-models"/>). In this profile, the OAuth client
publishes the set of instance issuers permitted to authenticate
its runtime instances (<xref target="client-instance-model"/>).</t>
        </dd>
        <dt>Client Instance:</dt>
        <dd>
          <t>A concrete runtime of an OAuth client (for example, a particular
process, container, function invocation, or session). See
<xref target="client-instance-model"/> for the class-and-instance relationship
between an OAuth client and its instances.</t>
        </dd>
        <dt>Instance Issuer:</dt>
        <dd>
          <t>An authority trusted by the client to authenticate client
instances and issue instance assertions for those instances. Examples include
workload identity providers (e.g., a SPIFFE control plane
<xref target="SPIFFE"/>) and platform-managed identity services.</t>
        </dd>
        <dt>Client Instance Assertion:</dt>
        <dd>
          <t>A JWT issued by an instance issuer asserting the identity of a
client instance, presented as the <tt>actor_token</tt> in a token request.
This document distinguishes "<tt>actor_token</tt>" (the RFC 8693 request
parameter, always typeset in backticks) from "Client Instance
Assertion" or "instance assertion" in prose (the JWT artifact
defined by this profile, which is what the <tt>actor_token</tt> parameter
carries when its <tt>actor_token_type</tt> is
<tt>urn:ietf:params:oauth:token-type:client-instance-jwt</tt>).</t>
        </dd>
        <dt>Actor Token Grant Extension:</dt>
        <dd>
          <t>The wire-level extension defined in <xref target="grant-extension"/> permitting
<tt>actor_token</tt> and <tt>actor_token_type</tt> (<xref target="RFC8693"/>) on the grant
types listed in <xref target="permitted-grants"/>. This document's
<tt>client-instance-jwt</tt> actor token type builds on the extension;
other profiles may define their own actor token types under it.</t>
        </dd>
        <dt>Delegation Case:</dt>
        <dd>
          <t>A token request whose grant produces a principal distinct from the
instance presenting the <tt>actor_token</tt> (for example, a user under
authorization_code or jwt-bearer). The issued access token's <tt>sub</tt>
is the principal and the instance appears in <tt>act</tt> per
<xref target="access-token-delegation"/>.</t>
        </dd>
        <dt>Self-Acting Case:</dt>
        <dd>
          <t>A token request whose grant produces no principal distinct from
the instance (notably <tt>client_credentials</tt>). The issued access
token's <tt>sub</tt> is the instance and <tt>act</tt> is omitted per
<xref target="access-token-self-acting"/>.</t>
        </dd>
      </dl>
    </section>
    <section anchor="relationships">
      <name>Relationship to Other Specifications</name>
      <t><strong>RFC 8693 (Token Exchange).</strong> <xref target="RFC8693"/> defines <tt>actor_token</tt> and
<tt>actor_token_type</tt> only on the token-exchange grant. This document
permits these parameters on additional grant types
(<xref target="grant-extension"/>) and registers a new <tt>actor_token_type</tt> for
asserting client instance identity (<xref target="client-instance-jwt"/>); the
two contributions are separable. For the <tt>client-instance-jwt</tt>
token type, delegation requests represent the instance in <tt>act</tt>
(<xref target="access-token-delegation"/>) and self-acting requests (notably
<tt>client_credentials</tt>) represent it in top-level <tt>sub</tt>
(<xref target="access-token-self-acting"/>); <xref target="RFC8693"/>'s "actor" framing
strictly addresses only the delegation case, but this profile
reuses the <tt>actor_token</tt> wire artifact for both, with classification
determined by the grant (see <xref target="rationale-self-acting"/>). Use on a
token-exchange request remains governed by <xref target="RFC8693"/>.</t>
      <t><strong>OAuth Actor Profile.</strong> <xref target="ACTOR-PROFILE"/> defines the structure of
the <tt>act</tt> claim, the <tt>sub_profile</tt> claim, and nested actor
representation. This document does not redefine those constructs;
it defines how a client instance proves itself at the token
endpoint and how the Authorization Server (AS) represents the
validated assertion in issued access tokens (<tt>act</tt> for delegation,
top-level <tt>sub</tt> for self-acting). Implementations of this document <bcp14>MUST</bcp14> also implement
<xref target="ACTOR-PROFILE"/>.</t>
      <t><strong>SPIFFE Client Authentication.</strong> <xref target="SPIFFE-CLIENT-AUTH"/> (an OAuth
Working Group document) defines how a SPIFFE workload authenticates
<em>as the OAuth client itself</em> using a JWT-SVID or X.509-SVID in
place of a client secret. This document operates at a different
layer (actor / instance identity, not client authentication) and
on different OAuth parameters and trust sources:</t>
      <table>
        <thead>
          <tr>
            <th align="left">Layer</th>
            <th align="left">SPIFFE Client Auth</th>
            <th align="left">This document</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">What is authenticated</td>
            <td align="left">The OAuth client</td>
            <td align="left">An actor (instance) acting under an OAuth client</td>
          </tr>
          <tr>
            <td align="left">Token request parameter</td>
            <td align="left">
              <tt>client_assertion</tt> / <tt>client_assertion_type</tt></td>
            <td align="left">
              <tt>actor_token</tt> / <tt>actor_token_type</tt></td>
          </tr>
          <tr>
            <td align="left">Trust source (client metadata)</td>
            <td align="left">SPIFFE bundle endpoint and <tt>spiffe_id</tt></td>
            <td align="left">
              <tt>instance_issuers</tt></td>
          </tr>
          <tr>
            <td align="left">Where the SPIFFE ID surfaces</td>
            <td align="left">Validated against <tt>spiffe_id</tt>; not propagated</td>
            <td align="left">Surfaced in <tt>act.sub</tt> or top-level <tt>sub</tt> of issued access tokens</td>
          </tr>
        </tbody>
      </table>
      <t>The two specifications are orthogonal and <bcp14>MAY</bcp14> be combined: a
typical combined deployment uses <xref target="SPIFFE-CLIENT-AUTH"/> (with a
wildcard <tt>spiffe_id</tt>) to authenticate the OAuth client and this
profile to surface and bind the specific instance. The same SVID
<bcp14>MAY</bcp14> be presented as both <tt>client_assertion</tt> and <tt>actor_token</tt> in a
single request when both profiles' audience, client-binding, and
sender-constraint requirements are satisfied. This document does
not require SPIFFE; instance issuers may use any <tt>subject_syntax</tt>,
and the client may authenticate via any registered method. SPIFFE
deployments get first-class support (<xref target="instance-issuers"/>,
<xref target="spiffe-compatibility"/>).</t>
      <t><strong>WIMSE Workload Credentials.</strong> The IETF WIMSE working group is
defining specifications for workload identity (<xref target="WIMSE-CREDS"/>,
<xref target="WIMSE-ARCH"/>); WIMSE work is in progress. This profile's Client
Instance Assertion is the OAuth-aware projection of the same
workload identity model, carrying OAuth-specific bindings
(<tt>client_id</tt>, <tt>aud</tt>) needed at the OAuth token endpoint. Deployments
holding a WIMSE workload credential, SPIFFE JWT-SVID, Kubernetes
projected service-account token, or other workload credential
<bcp14>SHOULD</bcp14> use the OAuth-aware adapter pattern (<xref target="adoption"/>) to mint
a Client Instance Assertion. For sender-constraint, this
profile pins the binding member of <tt>cnf</tt> to <tt>jkt</tt> (<xref target="RFC9449"/>) or
<tt>x5t#S256</tt> (<xref target="RFC8705"/>); WIMSE-defined binding mechanisms (for
example, a future Workload Proof Token) can be added by a companion
profile when those mechanisms reach deployment maturity.</t>
    </section>
    <section anchor="grant-extension">
      <name>Actor Token Grant Extension</name>
      <t>This section defines a grant extension for carrying actor tokens at
the OAuth token endpoint. It is independent of the client instance
model defined later in this document: any profile that defines an
<tt>actor_token_type</tt>, including profiles based on <xref target="ACTOR-PROFILE"/>,
can use this extension to present actor tokens on the grant types
listed below. This document's <tt>client-instance-jwt</tt> actor token type
(<xref target="client-instance-jwt"/>) is one such profile; its token-type-specific
processing rules are defined in <xref target="token-endpoint"/>.</t>
      <t><xref target="RFC8693"/> provides a general-purpose way to present an actor token
to the AS, but scopes <tt>actor_token</tt> and <tt>actor_token_type</tt> to the
token-exchange grant. Actor identity is also useful when an AS issues
tokens directly from other grants: for example, an agent may redeem
an authorization code on behalf of a user, a service may request a
self-acting client credentials token, a delegated actor may refresh a
token while preserving actor identity, or a JWT bearer assertion may
identify one principal while the request still identifies the actor
performing the operation.</t>
      <t>Defining new request parameters for each grant or actor-token profile
would fragment the token endpoint surface. This extension instead
reuses the existing <tt>actor_token</tt> and <tt>actor_token_type</tt> parameters
as a common presentation mechanism. The extension does not define a
universal actor-token validation model or access-token representation;
those remain the responsibility of each <tt>actor_token_type</tt> profile.</t>
      <section anchor="permitted-grants">
        <name>Permitted Grant Types</name>
        <t><xref target="RFC8693"/> defines <tt>actor_token</tt> and <tt>actor_token_type</tt> only on
the token-exchange grant. This document permits these parameters
on the following additional token endpoint grant types:</t>
        <ul spacing="normal">
          <li>
            <t><tt>authorization_code</tt> (<xref target="RFC6749"/>)</t>
          </li>
          <li>
            <t><tt>client_credentials</tt> (<xref target="RFC6749"/>)</t>
          </li>
          <li>
            <t><tt>refresh_token</tt> (<xref target="RFC6749"/>)</t>
          </li>
          <li>
            <t><tt>urn:ietf:params:oauth:grant-type:jwt-bearer</tt> (<xref target="RFC7523"/>)</t>
          </li>
        </ul>
        <t>Token-exchange (<xref target="RFC8693"/>) is also in scope; processing under
<xref target="RFC8693"/> continues to apply unchanged for any <tt>actor_token_type</tt>
the AS supports.</t>
        <t>This actor token grant extension defines only where the <tt>actor_token</tt> and
<tt>actor_token_type</tt> parameters may appear. Each <tt>actor_token_type</tt>
profile defines how the AS validates that actor token, how it
represents the actor in issued tokens, and how refresh-token
requests are processed for that token type.</t>
        <t>This document does not define behavior for the implicit grant or
for the device authorization grant; specifying those is left to
future work.</t>
      </section>
      <section anchor="other-actor-token-types">
        <name>Other Actor Token Types</name>
        <t>The actor token grant extension is independent of any specific
<tt>actor_token_type</tt>. Any profile <bcp14>MAY</bcp14> register an <tt>actor_token_type</tt>
value suitable for its actor model (for example, AI agents acting on
behalf of a user, services acting under a delegation grant, or
workload identities outside the OAuth client-class model). Such
profiles can use this document's actor token grant extension to present
their actor tokens on the same set of grants without re-specifying
the grant-level actor-token presentation interaction.</t>
        <t>This document defines and registers
<tt>urn:ietf:params:oauth:token-type:client-instance-jwt</tt> for asserting
client instance identity (<xref target="client-instance-jwt"/>).</t>
        <t>At the token endpoint, the AS dispatches by <tt>actor_token_type</tt>:
tokens of type
<tt>urn:ietf:params:oauth:token-type:client-instance-jwt</tt> are
processed under this document's rules in <xref target="token-endpoint"/>, while
tokens of other registered types are processed under their own
specifications. An AS <bcp14>MAY</bcp14> support multiple <tt>actor_token_type</tt>
values concurrently and <bcp14>SHOULD</bcp14> advertise them via
<tt>actor_token_types_supported</tt> (<xref target="as-metadata"/>).</t>
        <t>A profile defining a new <tt>actor_token_type</tt> for use under the
actor token grant extension <bcp14>MUST</bcp14> specify the validation, trust
resolution, access-token representation, sender-constraint,
refresh-token, and security rules for that token type. Such profiles
can reference this actor token grant extension for the wire-level
permission to carry <tt>actor_token</tt> and <tt>actor_token_type</tt> on the
grant types listed in <xref target="permitted-grants"/>.</t>
        <t>Some of the processing rules in <xref target="token-endpoint"/> (notably
<xref target="sender-constrained"/>, <xref target="access-token"/>, and <xref target="refresh"/>) describe
behavior that is not specific to the <tt>client-instance-jwt</tt> token
type. Other actor-token profiles may find them reusable as a
starting point, but this document does not prescribe their reuse;
each new <tt>actor_token_type</tt> profile defines its own validation,
representation, and security rules.</t>
      </section>
    </section>
    <section anchor="client-instance-model">
      <name>Client Instance Model</name>
      <t>A registered OAuth client commonly abstracts over many concrete
runtimes (e.g., the Slack OAuth client across iOS, Android, web, and
server-side; an agent platform across each running agent or session).
This profile makes that class-and-instance relationship explicit so
each runtime can be named, attested, and bound to access tokens
individually. For agent platforms, a sub-agent spawned by an agent
is represented as a nested actor via token-exchange
(<xref target="chain-merging"/>).</t>
      <t>The remainder of this section covers the architecture
(<xref target="architecture"/>), registration models (<xref target="registration-models"/>),
and trust delegation model (<xref target="trust-model"/>).</t>
      <section anchor="architecture">
        <name>Architecture</name>
        <t>Three roles cooperate to authenticate a client instance:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Role</th>
              <th align="left">Responsibility</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">OAuth Client</td>
              <td align="left">Logical OAuth client identified by a <tt>client_id</tt> (CIMD URL or RFC 7591-registered identifier). Publishes the list of trusted instance issuers in its registered client metadata.</td>
            </tr>
            <tr>
              <td align="left">Instance Issuer</td>
              <td align="left">Authenticates concrete runtime instances and issues short-lived JWT instance assertions describing them.</td>
            </tr>
            <tr>
              <td align="left">Authorization Server (AS)</td>
              <td align="left">Authenticates the client per its registered client authentication method; resolves the client metadata (via CIMD dereference or local registration storage); verifies the instance assertion against a trusted instance issuer; mints an access token whose <tt>act</tt> claim or top-level <tt>sub</tt> represents the instance.</td>
            </tr>
          </tbody>
        </table>
        <t>A high-level flow:</t>
        <artwork type="ascii-art"><![CDATA[
+-----------+   actor token   +------------+
|  Client   |<----------------|  Instance  |
|  Instance |                 |   Issuer   |
+-----------+                 +------------+
      |
      | token request:
      |  - client authentication (e.g., private_key_jwt)
      |  - actor_token (instance JWT)
      |  - actor_token_type =
      |      urn:...:client-instance-jwt
      v
+--------------------+
| Authorization      |  -> resolves client metadata
| Server             |  -> validates actor token
|                    |  -> issues access token with act or sub
+--------------------+
]]></artwork>
        <t>The client identifier (the CIMD URL or RFC 7591 <tt>client_id</tt>) is
the OAuth client identifier; the instance issuer identifier is the
JWT <tt>iss</tt> of the instance assertion. They are distinct trust anchors: the AS
authenticates the client using its registered client
authentication method (typically <tt>private_key_jwt</tt> with keys from the
client's registered <tt>jwks_uri</tt>) and authenticates the instance
through the instance assertion.</t>
        <t>When the client registers <tt>token_endpoint_auth_method</tt>
          <tt>client_instance_jwt</tt> (<xref target="instance-assertion-auth"/>), these two trust
anchors collapse onto a single artifact: the instance assertion
both authenticates the client (via the client metadata
endorsement of its issuer) and identifies the instance. In that mode the request
carries no separate <tt>client_assertion</tt>. See <xref target="instance-assertion-auth"/>
for the token request and validation procedure.</t>
      </section>
      <section anchor="registration-models">
        <name>Client Registration Models</name>
        <t>This profile applies to OAuth clients regardless of how their
metadata is registered with the AS. For most existing OAuth
deployments, this means RFC 7591-style static registration
administered by the AS operator (whether via the dynamic
registration endpoint or pre-registered out of band); CIMD is the
more recent option that adds public discovery and cross-organization
auditability where those are required. The descriptor format and
processing rules are identical in both cases.</t>
        <dl>
          <dt>Static registration (<xref target="RFC7591"/>):</dt>
          <dd>
            <t>The <tt>client_id</tt> is opaque or AS-assigned. Metadata is registered
via the dynamic registration endpoint or out of band, and stays
internal to the AS. Updates take effect when the registration
store is updated. This model integrates with existing RFC
7591-based registration toolchains and is the typical mode for
closed or managed deployments where the trust relationship does
not need to be publicly discoverable.</t>
          </dd>
          <dt>Client ID Metadata Document (<xref target="CIMD"/>):</dt>
          <dd>
            <t>The <tt>client_id</tt> is an HTTPS URL that dereferences to a metadata
document. The AS fetches the document on demand and caches it;
updates take effect after the cache window expires (or upon
explicit re-fetch). This model suits cross-organization
deployments where the trust relationship between the OAuth
client and its instance issuers must be auditable in a publicly
resolvable document, and is operationally easier for
cross-organization
SPIFFE federation (<xref target="cross-org-federation"/>) because the foreign
organization can publicly publish its bundle endpoint and instance
descriptors. Under static registration, equivalent federation
requires manual coordination of registration between
organizations.</t>
          </dd>
        </dl>
        <t>The descriptor format (<xref target="instance-issuers"/>), the instance-assertion
auth mode (<xref target="instance-assertion-auth"/>), the SPIFFE compatibility
features (<xref target="spiffe-compatibility"/>), and the AS processing rules
(<xref target="as-processing"/>) all apply uniformly to both models. The only
deployment-time differences are how metadata updates propagate (cache
TTL versus admin update) and whether the trust relationship is
publicly discoverable.</t>
      </section>
      <section anchor="trust-model">
        <name>Trust Delegation Model</name>
        <t>This profile defines a three-party trust delegation between the
client, the instance issuer, and the AS. The client
<em>delegates</em> attestation of its runtime instances to one or more
instance issuers; the AS <em>relies on</em> that delegation as expressed
in the client's registered metadata.</t>
        <section anchor="trust-model-delegation">
          <name>Delegation by the OAuth Client</name>
          <t>By listing an instance issuer in its <tt>instance_issuers</tt> metadata
(<xref target="instance-issuers"/>), a client delegates to that issuer the
authority to attest that a concrete runtime is an instance of the
client. The descriptor bounds the delegation: <tt>trust_domain</tt>,
<tt>subject_syntax</tt>, <tt>spiffe_id</tt>, and <tt>signing_alg_values_supported</tt>
constrain what the issuer may assert and what the AS will accept
(<xref target="instance-issuers"/>). The issuer's per-client minting obligations
are in <xref target="issuer-obligations"/>; client-side guidance on choosing
issuers is in <xref target="security-trust-model"/>.</t>
          <t>The per-client minting requirement (an issuer mints assertions
naming a given <tt>client_id</tt> only for runtimes authorized as
instances of that client) prevents cross-client instance
impersonation when the same instance issuer is listed by multiple
OAuth clients.</t>
          <t>Because the <tt>instance_issuers</tt> listing endorses the issuer to mint
tokens naming this <tt>client_id</tt>, an instance assertion signed by
such an issuer is itself attributable to the client. This makes the
assertion usable as the client credential under
<xref target="instance-assertion-auth"/>.</t>
        </section>
        <section anchor="trust-model-as">
          <name>Authority of the Authorization Server</name>
          <t>The AS treats the registered <tt>instance_issuers</tt> list as
authoritative: it derives its trust in an instance assertion solely
from the descriptor whose issuer member matches the instance
assertion's <tt>iss</tt> claim. This document
does not define out-of-band or AS-side configuration of additional
instance issuers for a <tt>client_id</tt>; deployments requiring such
configuration <bcp14>MUST</bcp14> do so via a separate specification.</t>
        </section>
        <section anchor="trust-lifecycle">
          <name>Trust Lifecycle</name>
          <t>The trust relationship between client and instance issuer is
mutable. When the client's metadata changes (for example, an
instance issuer is removed, its <tt>jwks_uri</tt> or <tt>jwks</tt> rotates, its
<tt>trust_domain</tt> or <tt>spiffe_id</tt> is replaced, or its
<tt>signing_alg_values_supported</tt> narrows), updates take effect
according to the registration model: for CIMD, the AS applies the
same freshness and re-fetch rules it applies to other
CIMD-published trust material such as <tt>jwks_uri</tt> (see <xref target="CIMD"/>);
for static registration, updates take effect when the AS's
registration store is updated and re-read.</t>
          <t>While the AS may continue to honor a stale descriptor within the
propagation window, this profile imposes no additional revocation
requirement on previously issued access tokens. AS treatment of
access tokens whose validated instance identity is no longer
endorsed after the update is governed by <xref target="revocation"/>; sizing
the resulting trust-withdrawal latency is in
<xref target="security-trust-withdrawal-latency"/>.</t>
        </section>
        <section anchor="cross-org-federation">
          <name>Cross-Organization Federation</name>
          <t>A client <bcp14>MAY</bcp14> list instance issuers operated by a different
organization, including cases where SPIFFE trust domains differ.
The per-client minting rule (<xref target="trust-model-delegation"/>) applies
unchanged. For SPIFFE cross-trust-domain deployments, the
descriptor's <tt>spiffe_bundle_endpoint</tt> <bcp14>MUST</bcp14> be operated by the
foreign organization or its delegate.</t>
        </section>
      </section>
    </section>
    <section anchor="metadata">
      <name>Metadata and Discovery</name>
      <t>This section defines client metadata used to delegate instance
attestation and authorization server metadata used by clients to
discover support.</t>
      <section anchor="client-metadata">
        <name>Client Metadata Extensions</name>
        <t>This document defines client metadata parameters describing the
trust relationship between a client and the instance issuers
that authenticate its runtime instances. These parameters are
registered in the OAuth Dynamic Client Registration Metadata
registry (<xref target="iana-client-metadata"/>) and apply to clients regardless
of how their metadata reaches the AS:</t>
        <ul spacing="normal">
          <li>
            <t>For clients identified by a Client ID Metadata Document <xref target="CIMD"/>,
these parameters appear in the CIMD document and the AS resolves
them by dereferencing the CIMD URL.</t>
          </li>
          <li>
            <t>For clients registered via OAuth Dynamic Client Registration
<xref target="RFC7591"/> (or admin-registered with RFC 7591-shaped metadata),
these parameters appear in the registered client metadata stored
by the AS.</t>
          </li>
        </ul>
        <t>The descriptor format and processing rules are identical in both
cases. <xref target="registration-models"/> discusses the trade-offs between the
two registration models.</t>
        <section anchor="instance-issuers">
          <name>instance_issuers</name>
          <t><bcp14>OPTIONAL</bcp14>. A non-empty JSON array of <em>instance issuer descriptor</em>
objects. Each descriptor declares an issuer that the client
trusts to authenticate its instances. If this parameter is absent,
or is present as an empty array, the AS <bcp14>MUST NOT</bcp14> accept instance assertions
of type <tt>urn:ietf:params:oauth:token-type:client-instance-jwt</tt> for this
client; the AS <bcp14>SHOULD</bcp14> treat an empty array as a metadata error and
log it for the client operator.</t>
          <t>An instance issuer descriptor has the following members:</t>
          <dl>
            <dt>issuer (<bcp14>REQUIRED</bcp14>):</dt>
            <dd>
              <t>A StringOrURI <xref target="RFC7519"/> identifying the instance issuer. This
value <bcp14>MUST</bcp14> exactly match the <tt>iss</tt> claim of accepted instance
assertions and <bcp14>MUST</bcp14> be unique within the <tt>instance_issuers</tt> array.
</t>
              <t>For raw JWT-SVID compatibility (<xref target="spiffe-compatibility"/>), this
value is the SPIFFE JWT-SVID issuer for the trust domain. For
re-minted Client Instance Assertions, this value identifies the
OAuth-aware adapter or instance issuer that signed the assertion;
<tt>trust_domain</tt> and <tt>spiffe_id</tt> then bound the SPIFFE subject
space that issuer is allowed to assert.</t>
            </dd>
          </dl>
          <t>A descriptor <bcp14>MUST</bcp14> contain exactly one of <tt>jwks_uri</tt>, <tt>jwks</tt>, and
<tt>spiffe_bundle_endpoint</tt>. If two or more are present, or all are
absent, the AS <bcp14>MUST</bcp14> reject the descriptor as invalid client metadata.</t>
          <dl>
            <dt><tt>jwks_uri</tt>:</dt>
            <dd>
              <t>An HTTPS URL of a JWK Set <xref target="RFC7517"/> containing the public keys
used to verify signatures of instance assertions issued by this issuer.</t>
            </dd>
            <dt><tt>jwks</tt>:</dt>
            <dd>
              <t>An inline JWK Set serving the same purpose as <tt>jwks_uri</tt>.</t>
            </dd>
            <dt><tt>spiffe_bundle_endpoint</tt>:</dt>
            <dd>
              <t>An HTTPS URL of a SPIFFE trust bundle endpoint <xref target="SPIFFE"/> from
which the AS resolves verification keys for instance assertions
issued by this issuer. When present, <tt>subject_syntax</tt> <bcp14>MUST</bcp14> be
"spiffe".
</t>
              <t>This descriptor field is intended for JWT-SVID validation and for
other assertions signed with keys distributed in the SPIFFE
bundle for the relevant trust domain. OAuth-aware adapters that
sign re-minted Client Instance Assertions with separate OAuth
signing keys use <tt>jwks_uri</tt> or <tt>jwks</tt> instead.</t>
              <t>Bundle endpoint format and resolution rules are governed by
SPIFFE; see <xref target="SPIFFE-CLIENT-AUTH"/> for the analogous use in
client authentication.</t>
            </dd>
            <dt><tt>signing_alg_values_supported</tt> (<bcp14>OPTIONAL</bcp14>):</dt>
            <dd>
              <t>A JSON array of JSON Web Signature (JWS) <xref target="RFC7515"/> <tt>alg</tt> values the AS accepts for
instance assertions issued by this issuer. If present, the AS <bcp14>MUST</bcp14>
reject instance assertions whose <tt>alg</tt> is not listed. Issuers <bcp14>SHOULD</bcp14>
publish only algorithms they actually use.</t>
            </dd>
            <dt><tt>subject_syntax</tt> (<bcp14>OPTIONAL</bcp14>):</dt>
            <dd>
              <t>A short identifier indicating the syntactic profile of the <tt>sub</tt>
claim used by this issuer. This document defines two values: "uri"
(default, arbitrary StringOrURI) and "spiffe" (a SPIFFE ID
<xref target="SPIFFE"/>; see also <xref target="SPIFFE-CLIENT-AUTH"/> for the related
SPIFFE-based client authentication profile). An AS that does not
understand the value <bcp14>MUST</bcp14> reject instance assertions for that
descriptor with <tt>invalid_grant</tt>.</t>
            </dd>
            <dt><tt>trust_domain</tt> (<bcp14>OPTIONAL</bcp14>):</dt>
            <dd>
              <t>When <tt>subject_syntax</tt> is "spiffe", a SPIFFE trust domain that the
<tt>sub</tt> claim <bcp14>MUST</bcp14> belong to. The AS <bcp14>MUST</bcp14> reject any instance
assertion whose <tt>sub</tt> does not lie within this trust domain.
</t>
              <t>A SPIFFE ID lies within a trust domain only when it parses as a
valid SPIFFE ID whose trust-domain component exactly equals
<tt>trust_domain</tt>; ASes <bcp14>MUST NOT</bcp14> use case folding, Unicode
normalization, or percent-decoding to make a non-matching trust
domain match.</t>
              <t><tt>trust_domain</tt> is meaningful only when <tt>subject_syntax</tt> is
"spiffe"; an AS <bcp14>MUST</bcp14> ignore <tt>trust_domain</tt> in descriptors whose
<tt>subject_syntax</tt> is any other value. A descriptor's
<tt>trust_domain</tt> is independent of any SPIFFE trust domain
associated with the client itself under <xref target="SPIFFE-CLIENT-AUTH"/>;
the two <bcp14>MAY</bcp14> differ.</t>
            </dd>
            <dt><tt>spiffe_id</tt> (<bcp14>OPTIONAL</bcp14>):</dt>
            <dd>
              <t>When <tt>subject_syntax</tt> is "spiffe", a SPIFFE ID that further
bounds which workloads this issuer may attest as instances of
this client. The value is a SPIFFE ID, optionally with a trailing
"/*" wildcard.
</t>
              <t>Without "/<em>", the instance assertion's <tt>sub</tt> <bcp14>MUST</bcp14> equal this
value exactly; with "/</em>", matching follows the <tt>spiffe_id</tt>
matching rule of <xref target="SPIFFE-CLIENT-AUTH"/>. If both <tt>spiffe_id</tt> and
<tt>trust_domain</tt> are present, the trust domain in <tt>spiffe_id</tt> <bcp14>MUST</bcp14>
equal <tt>trust_domain</tt>.</t>
              <t>When present, this member structurally binds a workload subtree
to this client; see <xref target="spiffe-client-id-omission"/>. If
<tt>subject_syntax</tt> is "spiffe" and <tt>spiffe_id</tt> is absent,
<tt>trust_domain</tt> <bcp14>MUST</bcp14> be present and the descriptor delegates the
entire trust domain to this instance issuer.</t>
              <t>Clients <bcp14>SHOULD</bcp14> include <tt>spiffe_id</tt>; omitting it is appropriate
only when every workload in the SPIFFE trust domain is authorized
to act as an instance of the client.</t>
            </dd>
          </dl>
          <t>Example client metadata document with a SPIFFE instance issuer:</t>
          <sourcecode type="json"><![CDATA[
{
  "client_id": "https://openai.example.com/codex",
  "jwks_uri": "https://openai.example.com/codex/jwks.json",
  "token_endpoint_auth_method": "private_key_jwt",
  "instance_issuers": [
    {
      "issuer": "https://workload.openai.example.com",
      "jwks_uri": "https://workload.openai.example.com/jwks.json",
      "subject_syntax": "spiffe",
      "trust_domain": "openai.example.com",
      "spiffe_id": "spiffe://openai.example.com/codex/*",
      "signing_alg_values_supported": ["ES256"]
    }
  ]
}
]]></sourcecode>
        </section>
      </section>
      <section anchor="as-metadata">
        <name>Authorization Server Metadata</name>
        <t>This document defines the following AS metadata parameters for
<xref target="RFC8414"/> (see <xref target="iana-as-metadata"/>):</t>
        <dl>
          <dt><tt>actor_token_types_supported</tt>:</dt>
          <dd>
            <t>A JSON array of <tt>actor_token_type</tt> values supported by the AS at the
token endpoint. An AS implementing this profile <bcp14>MUST</bcp14> publish this
parameter and include
<tt>urn:ietf:params:oauth:token-type:client-instance-jwt</tt> in it. This is
the only AS-side discovery signal for support of this profile;
clients use it to decide whether to assemble token requests
carrying an instance assertion. This signal is intentionally coarse:
it does not describe grant-specific enablement, raw JWT-SVID support,
accepted sender-constraint methods, refresh-token behavior, or
client-specific registration policy. Clients may still need
registration-time or deployment agreement with the AS for those
details.</t>
          </dd>
        </dl>
        <t>Other values <bcp14>MAY</bcp14> appear and are processed under their own
specifications; their trust resolution is not via <tt>instance_issuers</tt>.</t>
        <t>In addition, an AS that supports <xref target="instance-assertion-auth"/> <bcp14>MUST</bcp14>
advertise <tt>client_instance_jwt</tt> in
<tt>token_endpoint_auth_methods_supported</tt> (<xref target="RFC8414"/>).</t>
        <t>Example AS metadata document (abridged):</t>
        <sourcecode type="json"><![CDATA[
{
  "issuer": "https://as.example.com",
  "token_endpoint": "https://as.example.com/token",
  "token_endpoint_auth_methods_supported": [
    "private_key_jwt",
    "client_instance_jwt"
  ],
  "actor_token_types_supported": [
    "urn:ietf:params:oauth:token-type:client-instance-jwt"
  ],
  "dpop_signing_alg_values_supported": ["ES256", "RS256"]
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="client-instance-jwt">
      <name>Client Instance Assertion Format</name>
      <t>This section defines <tt>client-instance-jwt</tt>, a specific
<tt>actor_token_type</tt> registered under this document for asserting
client instance identity. Tokens of this type are presented under
the actor token grant extension defined in
<xref target="grant-extension"/>; their AS-side processing is
specified in <xref target="token-endpoint"/>.</t>
      <t>A <em>Client Instance Assertion</em> is a JWT <xref target="RFC7519"/> that asserts the
identity of a client instance. It is presented as the <tt>actor_token</tt>
parameter (<xref target="RFC8693"/>) with <tt>actor_token_type</tt> set to
<tt>urn:ietf:params:oauth:token-type:client-instance-jwt</tt> (see
<xref target="iana-token-type"/>). The assertion serves two purposes: it
authenticates the runtime instance (workload identity), and it
asserts that the instance is a member of the named OAuth client.
This document defines a single JWT carrying both, signed by the
instance issuer. This matches the prevailing pattern in workload
identity systems, which already issue audience-scoped, signed
assertions of runtime identity (e.g., JWT-SVIDs in <xref target="SPIFFE"/>).</t>
      <section anchor="issuer-obligations">
        <name>Issuer Obligations</name>
        <t>The instance issuer is the trust authority for the assertion and
<bcp14>MUST</bcp14>, before minting an instance assertion under this profile:</t>
        <ul spacing="normal">
          <li>
            <t>Authenticate the runtime instance (e.g., via attestation,
platform-level identity, or possession of an instance key); and</t>
          </li>
          <li>
            <t>Verify, under issuer-side policy, that the runtime is permitted
to claim the <tt>client_id</tt> named in the token. This typically
means the runtime is operationally part of the client's
deployment. An instance issuer <bcp14>MUST</bcp14> refuse to mint an instance
assertion whose <tt>client_id</tt> claim names a client for which the
runtime has not been authorized, by issuer-side policy, as a
member.</t>
          </li>
        </ul>
        <t>An instance issuer <bcp14>MUST NOT</bcp14> reassign an active or audit-relevant
<tt>sub</tt> value to a different runtime. Issuers <bcp14>SHOULD</bcp14> use stable,
non-reassigned subjects, or include sufficient generation or
session uniqueness in <tt>sub</tt> to distinguish runtime incarnations.
If subject reassignment is unavoidable, the client, issuer, and AS
audit logs need enough lifecycle metadata to distinguish the old
and new runtimes.</t>
        <t>How the issuer internally authenticates the runtime is out of
scope. Common deployment patterns (adapter, raw JWT-SVID
compatibility, X.509-SVID binding) are described in <xref target="adoption"/>.</t>
      </section>
      <section anchor="claims">
        <name>JWT Claims</name>
        <t>The following claims are defined for client instance assertions.</t>
        <dl>
          <dt><tt>iss</tt> (<bcp14>REQUIRED</bcp14>):</dt>
          <dd>
            <t>The instance issuer identifier. <bcp14>MUST</bcp14> exactly match an issuer
member of an <tt>instance_issuers</tt> descriptor in the client's
registered metadata.</t>
          </dd>
          <dt><tt>sub</tt> (<bcp14>REQUIRED</bcp14>):</dt>
          <dd>
            <t>The identifier of the client instance, in the syntax declared by
the descriptor's <tt>subject_syntax</tt> (default: arbitrary StringOrURI).
Sub-uniqueness considerations for self-acting tokens are addressed
in <xref target="access-token-self-acting"/>.</t>
          </dd>
          <dt><tt>aud</tt> (<bcp14>REQUIRED</bcp14>):</dt>
          <dd>
            <t>The intended audience, identifying the AS. The AS validates <tt>aud</tt>
per <xref target="RFC7523"/> Section 3, accepting its own issuer identifier or
token endpoint URL; if multiple values are present, at least one
<bcp14>MUST</bcp14> match.
</t>
            <t>Each AS <bcp14>SHOULD</bcp14> specify a single canonical <tt>aud</tt> format (typically
its issuer identifier) and document it; instance issuers <bcp14>SHOULD</bcp14>
use that canonical form. Where instance assertions are scoped per
AS, instance issuers <bcp14>SHOULD</bcp14> mint an AS-specific instance assertion
rather than a multi-<tt>aud</tt> JWT, to limit the replay surface.</t>
          </dd>
          <dt><tt>client_id</tt> (<bcp14>REQUIRED</bcp14> unless the SPIFFE compatibility conditions of <xref target="spiffe-client-id-omission"/> are met):</dt>
          <dd>
            <t>The <tt>client_id</tt> of the client to which this instance belongs.
This claim uses the JSON Web Token <tt>client_id</tt> claim registered
by <xref target="RFC9068"/> Section 2.2 (which itself defers to <xref target="RFC8693"/>
Section 4.3 for the underlying definition). Note that RFC 9068
defines <tt>client_id</tt> as the OAuth client to which a JWT access
token was issued; in this profile, the claim instead names the
OAuth client to which the asserted instance belongs.
</t>
            <t>The claim binds the actor token to a specific client and is not
part of the actor's identity (per <xref target="ACTOR-PROFILE"/>, <tt>client_id</tt>
identifies an OAuth client, not an actor). When present, the AS
<bcp14>MUST</bcp14> reject the token if this value does not exactly equal the
<tt>client_id</tt> of the authenticated client.</t>
            <t>When omitted under <xref target="spiffe-client-id-omission"/>, the binding is
established structurally by the matched descriptor's SPIFFE scope
(<tt>spiffe_id</tt> when present, otherwise <tt>trust_domain</tt>) rather than
by a JWT claim, and a SPIFFE JWT-SVID may be presented as the
<tt>actor_token</tt> directly without re-minting.</t>
          </dd>
          <dt><tt>exp</tt> (<bcp14>REQUIRED</bcp14>):</dt>
          <dd>
            <t>Expiration time. Issuers <bcp14>SHOULD</bcp14> set short lifetimes (e.g., five
minutes or less); see <xref target="security-replay"/>.</t>
          </dd>
          <dt><tt>iat</tt> (<bcp14>REQUIRED</bcp14>):</dt>
          <dd>
            <t>Issued-at time.</t>
          </dd>
          <dt><tt>jti</tt> (<bcp14>REQUIRED</bcp14>):</dt>
          <dd>
            <t>A unique identifier used for replay prevention; see
<xref target="security-replay"/>.</t>
          </dd>
          <dt><tt>sub_profile</tt> (<bcp14>RECOMMENDED</bcp14>):</dt>
          <dd>
            <t>One or more OAuth Entity Profile names <xref target="ENTITY-PROFILES"/>
classifying the actor. <xref target="ENTITY-PROFILES"/> defines this claim as
<bcp14>OPTIONAL</bcp14>; this profile elevates it to <bcp14>RECOMMENDED</bcp14> so resource
servers can apply actor-class-aware policy without bespoke
configuration.
</t>
            <t>Its syntax (a space-delimited string of profile names) is the one
defined by <xref target="ACTOR-PROFILE"/>. This document registers the value
<tt>client_instance</tt> (<xref target="iana-entity-profile"/>). Issuers <bcp14>MAY</bcp14> include
additional values registered with the "Actor Profile" usage
location in the OAuth Entity Profiles registry, or privately
defined collision-resistant values, per <xref target="ACTOR-PROFILE"/>.</t>
          </dd>
          <dt><tt>cnf</tt> (<bcp14>REQUIRED</bcp14> unless the token is a raw JWT-SVID accepted under <xref target="spiffe-client-id-omission"/>):</dt>
          <dd>
            <t>A confirmation claim <xref target="RFC7800"/> carrying a key bound to this
instance. The <tt>cnf</tt> value <bcp14>MUST</bcp14> contain exactly one of <tt>jkt</tt> (a
JWK SHA-256 thumbprint per <xref target="RFC9449"/> Section 3.1) or
<tt>x5t#S256</tt> (an X.509 certificate SHA-256 thumbprint per
<xref target="RFC8705"/> Section 3.1) as the binding member; other
confirmation methods registered under <xref target="RFC7800"/> <bcp14>MAY</bcp14> appear
alongside but are not the binding and do not change this
profile's sender-constraint verification requirement.
</t>
            <t>The instance issuer <bcp14>MUST</bcp14> mint <tt>cnf</tt> from a key the named runtime
instance demonstrably possesses (e.g., an instance-attested key,
a per-instance workload key, or a Demonstration of
Proof-of-Possession (DPoP, <xref target="RFC9449"/>) public key presented to
the issuer at attestation time). Binding rules and AS
verification are defined in <xref target="sender-constrained"/>.</t>
            <t>Raw JWT-SVID compatibility is the only exception to this claim
requirement, because the AS validates the SVID without
re-minting; see <xref target="spiffe-client-id-omission"/> and
<xref target="sender-constrained"/>.</t>
          </dd>
          <dt><tt>nbf</tt> (<bcp14>OPTIONAL</bcp14>):</dt>
          <dd>
            <t>Not-before time. If present, the AS <bcp14>MUST</bcp14> reject the token before
this time.</t>
          </dd>
        </dl>
        <t>When validating <tt>exp</tt>, <tt>nbf</tt>, and <tt>iat</tt>, ASes <bcp14>SHOULD</bcp14> permit a small
clock skew tolerance, typically no more than 60 seconds, applied
symmetrically. This bound is consistent with the short-lifetime
recommendation in <xref target="security-replay"/> and prevents brittle
inter-clock failures across deployments.</t>
        <t>A client instance assertion <bcp14>MUST NOT</bcp14> contain an <tt>act</tt> claim. The
instance assertion is a direct identity assertion of a single party (the
instance); per <xref target="ACTOR-PROFILE"/>, an <tt>actor_token</tt> that carries an
<tt>act</tt> claim represents a delegation chain rather than a direct
identity, and the AS <bcp14>MUST</bcp14> reject such a token with <tt>invalid_grant</tt>
(<xref target="chain-merging"/>, <xref target="errors"/>).</t>
        <t>Additional claims <bcp14>MAY</bcp14> be present and <bcp14>MUST</bcp14> be ignored if not
understood, except where this document or <xref target="ACTOR-PROFILE"/> specifies
processing rules. Future profiles requiring AS understanding of a
new claim <bcp14>SHOULD</bcp14> use the JWS <tt>crit</tt> header parameter (<xref target="RFC7515"/>
Section 4.1.11) to mark it must-understand; ASes <bcp14>MUST</bcp14> reject
assertions whose <tt>crit</tt> header is malformed or includes claims they
do not implement, per <xref target="RFC7515"/> Section 4.1.11.</t>
      </section>
      <section anchor="signing">
        <name>Signing and JOSE Header</name>
        <t>A Client Instance Assertion <bcp14>MUST</bcp14> be signed using an asymmetric JWS
<xref target="RFC7515"/> algorithm; <tt>none</tt> and symmetric (HMAC-based)
algorithms (<tt>HS256</tt>, <tt>HS384</tt>, <tt>HS512</tt>) <bcp14>MUST NOT</bcp14> be used and ASes
<bcp14>MUST</bcp14> reject assertions signed with them. The descriptor's
<tt>signing_alg_values_supported</tt> (<xref target="instance-issuers"/>), when present,
<bcp14>MUST</bcp14> contain only asymmetric algorithm identifiers. Implementations
<bcp14>SHOULD</bcp14> follow the JWT BCP guidance in <xref target="RFC8725"/>. For
interoperability, ASes <bcp14>SHOULD</bcp14> support at least <tt>RS256</tt> and <tt>ES256</tt>. Issuers <bcp14>SHOULD</bcp14> include a
<tt>kid</tt> in the JWS protected header; ASes <bcp14>SHOULD</bcp14> use <tt>kid</tt> for key
selection.</t>
        <t>Issuers minting a Client Instance Assertion under this profile <bcp14>MUST</bcp14>
set the JWS <tt>typ</tt> (type) protected header parameter to
<tt>client-instance+jwt</tt> per <xref target="RFC8725"/> Section 3.11, and ASes <bcp14>MUST</bcp14>
reject such assertions whose <tt>typ</tt> is anything else. Explicit typing
prevents JWT confusion attacks where a token of a different type
(for example, a WIMSE workload identity credential <xref target="WIMSE-CREDS"/>,
a JWT-SVID outside the SPIFFE compatibility mode, or an OAuth JWT
access token <xref target="RFC9068"/>) is mistaken for a Client Instance
Assertion.</t>
        <t>The only exception is the SPIFFE compatibility mode in
<xref target="spiffe-client-id-omission"/>, where a raw JWT-SVID is intentionally
presented without re-minting. In that mode, the AS <bcp14>MUST</bcp14> validate the
token as a JWT-SVID according to <xref target="SPIFFE-CLIENT-AUTH"/> and
<xref target="spiffe-bundle-resolution"/>, and <bcp14>MUST NOT</bcp14> require the JWS <tt>typ</tt>
header to be <tt>client-instance+jwt</tt>.</t>
        <t>Verification keys are obtained from the descriptor's <tt>jwks_uri</tt>,
<tt>jwks</tt>, or <tt>spiffe_bundle_endpoint</tt> for the issuer that matches the
<tt>iss</tt> claim; the AS <bcp14>MUST</bcp14> verify <tt>alg</tt> against
<tt>signing_alg_values_supported</tt> when present.</t>
      </section>
      <section anchor="example-assertion">
        <name>Example Assertion</name>
        <t>A decoded re-minted Client Instance Assertion (JWS protected header
and JWT payload):</t>
        <sourcecode type="json"><![CDATA[
{ "alg": "ES256", "kid": "4vC8agycHu6rnkE...", "typ": "client-instance+jwt" }
]]></sourcecode>
        <sourcecode type="json"><![CDATA[
{
  "iss":         "https://workload.openai.example.com",
  "sub":         "spiffe://openai.example.com/codex/session-abc",
  "aud":         "https://as.example.com",
  "client_id":   "https://openai.example.com/codex",
  "sub_profile": "client_instance",
  "iat":         1770000000,
  "exp":         1770000300,
  "jti":         "1a2b3c4d-5e6f",
  "cnf":         { "jkt": "0ZcOCORZNYy...iguA4I" }
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="token-endpoint">
      <name>Token Endpoint Processing</name>
      <t>This section specifies AS-side processing for token requests
carrying an <tt>actor_token</tt> of type
<tt>urn:ietf:params:oauth:token-type:client-instance-jwt</tt>. It builds on
the actor token grant extension in <xref target="grant-extension"/> by
defining the validation, authorization-time consistency, sender-
constraint, representation, refresh, client authentication, SPIFFE
compatibility, and error rules specific to the <tt>client-instance-jwt</tt>
token type.</t>
      <t>This profile applies whether the AS issues JWT access tokens
(<xref target="RFC9068"/>) or opaque (reference) access tokens. The
representation rules in <xref target="access-token"/> describe the <em>claims</em> an
issued access token carries (<tt>act</tt>, <tt>sub</tt>, <tt>client_id</tt>, <tt>cnf</tt>,
<tt>sub_profile</tt>); for JWT access tokens these appear directly in the
token payload, while for opaque access tokens they <bcp14>MUST</bcp14> be reflected
in introspection responses (<xref target="RFC7662"/>, <xref target="introspection-on-revocation"/>). The
sender-constraint binding in <xref target="sender-constrained"/> applies to both
formats; the binding key is verified at presentation regardless of
whether the access token is self-contained or requires introspection.</t>
      <section anchor="token-request">
        <name>Token Request</name>
        <t>A client presents a client instance assertion at the token endpoint
by adding the <tt>actor_token</tt> and <tt>actor_token_type</tt> parameters defined by
<xref target="RFC8693"/> to a token request of any grant type listed in
<xref target="grant-extension"/>.</t>
        <t>The following example shows a client credentials grant carrying a
client instance assertion. The client authenticates with
<tt>private_key_jwt</tt>; line breaks are for readability:</t>
        <sourcecode type="http-message"><![CDATA[
POST /token HTTP/1.1
Host: as.example.com
Content-Type: application/x-www-form-urlencoded
DPoP: <DPoP proof bound to the instance's key>

grant_type=client_credentials
&scope=repo.write
&client_id=https%3A%2F%2Fopenai.example.com%2Fcodex
&client_assertion_type=
  urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer
&client_assertion=eyJhbGciOiJFUzI1NiIsImtpZCI6...
&actor_token=eyJhbGciOiJFUzI1NiIsImtpZCI6...
&actor_token_type=
  urn%3Aietf%3Aparams%3Aoauth%3Atoken-type%3Aclient-instance-jwt
]]></sourcecode>
      </section>
      <section anchor="as-processing">
        <name>Authorization Server Processing</name>
        <t>When evaluating a token request for this profile, an AS implementing
this document <bcp14>MUST</bcp14> perform the following checks and steps in addition
to grant-type-specific processing.</t>
        <t>Before the steps below, the AS <bcp14>MUST</bcp14> reject the request with
<tt>invalid_request</tt> if any of the following pre-conditions hold:</t>
        <ul spacing="normal">
          <li>
            <t>exactly one of <tt>actor_token</tt> and <tt>actor_token_type</tt> is present;</t>
          </li>
          <li>
            <t><tt>actor_token_type</tt> is
<tt>urn:ietf:params:oauth:token-type:client-instance-jwt</tt> but
<tt>actor_token</tt> is absent;</t>
          </li>
          <li>
            <t><tt>actor_token_type</tt> is
<tt>urn:ietf:params:oauth:token-type:client-instance-jwt</tt> and
<tt>actor_token</tt> is present but is not a syntactically valid JWT.</t>
          </li>
        </ul>
        <ol spacing="normal" type="1"><li>
            <t><strong>Authenticate the client.</strong> Authenticate the client using
its registered <tt>token_endpoint_auth_method</tt> per <xref target="RFC6749"/> and, if
applicable, <xref target="RFC7523"/>. The <tt>client_id</tt> identifies the OAuth
client. When the registered method is <tt>client_instance_jwt</tt>,
follow <xref target="instance-assertion-auth"/> instead of presenting a
separate client-controlled credential.</t>
          </li>
          <li>
            <t><strong>Match the token type.</strong> If <tt>actor_token_type</tt> is not
<tt>urn:ietf:params:oauth:token-type:client-instance-jwt</tt>, processing
under this document does not apply. If the AS does not support the
supplied <tt>actor_token_type</tt> for the requested grant, it <bcp14>MUST</bcp14> reject
the request with <tt>unsupported_token_type</tt> (<xref target="errors"/>). Other
registered <tt>actor_token_type</tt> values <bcp14>MAY</bcp14> be processed under their
own specifications (<xref target="other-actor-token-types"/>).</t>
          </li>
          <li>
            <t><strong>Resolve client metadata.</strong> Retrieve the client metadata for the
authenticated <tt>client_id</tt>. For clients identified by <xref target="CIMD"/>,
dereference the CIMD document subject to its caching rules. For
clients registered via <xref target="RFC7591"/> or pre-registered with the AS,
read the stored metadata. The remaining steps operate on the
resolved metadata regardless of source.</t>
          </li>
          <li>
            <t><strong>Locate the instance issuer descriptor.</strong> Parse the <tt>actor_token</tt>
as a JWT and read its <tt>iss</tt> claim. Find the descriptor in
<tt>instance_issuers</tt> whose issuer member exactly equals <tt>iss</tt>. If no
descriptor is found, or <tt>instance_issuers</tt> is absent, reject the
request with <tt>invalid_grant</tt> (<xref target="errors"/>).</t>
          </li>
          <li>
            <t><strong>Verify the signature.</strong> Using the descriptor's <tt>jwks_uri</tt>, <tt>jwks</tt>,
or <tt>spiffe_bundle_endpoint</tt>, verify the JWS signature per
<xref target="RFC7515"/>, <xref target="signing"/>, and, when applicable,
<xref target="spiffe-bundle-resolution"/>.</t>
          </li>
          <li>
            <t><strong>Validate JWT claims.</strong> Validate <tt>iss</tt>, <tt>sub</tt>, <tt>aud</tt>, <tt>exp</tt>, <tt>iat</tt>, <tt>nbf</tt>,
and <tt>jti</tt> per <xref target="claims"/> and <xref target="RFC7523"/> Section 3, subject to the
raw JWT-SVID exceptions in <xref target="spiffe-client-id-omission"/>. Enforce
<tt>subject_syntax</tt>, <tt>trust_domain</tt>, <tt>spiffe_id</tt>, and
<tt>signing_alg_values_supported</tt> when present in the descriptor. If
<tt>subject_syntax</tt> is "spiffe" and <tt>spiffe_id</tt> is absent, require
<tt>trust_domain</tt> and treat the descriptor as delegating the whole
trust domain. Validate the JWS <tt>typ</tt> per <xref target="signing"/> and reject
unrecognized <tt>crit</tt> header parameters per <xref target="claims"/>.</t>
          </li>
          <li>
            <t><strong>Verify <tt>client_id</tt> binding.</strong> If the instance assertion contains a
<tt>client_id</tt> claim, it <bcp14>MUST</bcp14> exactly equal the authenticated
<tt>client_id</tt>; reject with <tt>invalid_grant</tt> otherwise. If the
instance assertion has no <tt>client_id</tt> claim, the AS <bcp14>MUST</bcp14> verify that the
matched descriptor satisfies the SPIFFE compatibility conditions
(<xref target="spiffe-client-id-omission"/>); if not, reject with
<tt>invalid_grant</tt>. When the descriptor satisfies those conditions,
the AS <bcp14>MUST</bcp14> verify that the <tt>actor_token</tt>'s <tt>sub</tt> falls under the
descriptor's SPIFFE scope: <tt>spiffe_id</tt> when present, otherwise the
descriptor's <tt>trust_domain</tt>; if not, reject with <tt>invalid_grant</tt>.
After <tt>client_id</tt> binding succeeds, apply replay checking per
<xref target="security-replay"/>; reject with <tt>invalid_grant</tt> if a previously
seen tuple is found. For raw JWT-SVIDs, this replay check applies
only when <tt>jti</tt> is present.
The replay check follows <tt>client_id</tt> binding so that an attacker
cannot burn a legitimate client's <tt>jti</tt> by presenting the assertion
under a mismatched <tt>client_id</tt>.</t>
          </li>
          <li>
            <t><strong>Enforce delegation policy.</strong> Apply the AS's local maximum
delegation depth per <xref target="ACTOR-PROFILE"/>.</t>
          </li>
          <li>
            <t><strong>Check authorization-time consistency.</strong> For grants that
originate from a prior authorization step (notably
authorization_code), apply the rules of
<xref target="auth-time-consistency"/>.</t>
          </li>
          <li>
            <t><strong>Bind the instance.</strong> If issuance succeeds, represent the
instance in the access token per <xref target="access-token"/>, applying
<xref target="sender-constrained"/> for token binding. Reflect any prior
actor chain present in input tokens by nesting per
<xref target="ACTOR-PROFILE"/>; chain merging rules are given in
<xref target="chain-merging"/>.</t>
          </li>
        </ol>
        <t>If validation succeeds, the AS issues an access token (and optionally
a refresh token) per the requested grant.</t>
      </section>
      <section anchor="instance-assertion-auth">
        <name>Client Authentication via Instance Assertion</name>
        <t>A client <bcp14>MAY</bcp14> register the <tt>token_endpoint_auth_method</tt> value
<tt>client_instance_jwt</tt> in its registered metadata (whether published
as a CIMD document or stored at the AS) to indicate that the AS
authenticates the client implicitly from a presented instance
assertion, without requiring a separate <tt>client_assertion</tt> or other
credential controlled by the client itself.</t>
        <t>This mode is the natural choice for workload-only deployments (for
example, agentic services, autoscaled microservices, or ephemeral
functions) where there is no human user authorizing operations and
the team operating the runtime is also the natural owner of the
workload identity provider. For these deployments, requiring a
separate client-level credential typically means provisioning a
private key into every pod alongside the instance-attested
<tt>actor_token</tt>, which (per <xref target="security-instance-assertion-auth"/>) does
not meaningfully improve defense against runtime compromise. The
mode is also appropriate where the client identifier is a logical
CIMD URL with client-key custody centralized away from the runtime,
or where the workload identity provider trusted to attest instances
is the only authority the client wishes to publish.</t>
        <t>The trust chain to the client is preserved: the client's listing of
the instance issuer in its registered metadata is itself the
endorsement, and a token signed by such an issuer naming this
<tt>client_id</tt> is attributable to the client.
When <tt>token_endpoint_auth_method</tt> is <tt>client_instance_jwt</tt>, every
accepted instance issuer for the client is also a client
authentication trust root. Clients <bcp14>MUST NOT</bcp14> enable this method unless
each listed issuer is authorized for that role.</t>
        <section anchor="instance-assertion-auth-request">
          <name>Request Format</name>
          <t>A request using this auth method <bcp14>MUST</bcp14> include the <tt>client_id</tt> form
parameter, the <tt>actor_token</tt>, and <tt>actor_token_type</tt>. It <bcp14>MUST NOT</bcp14>
carry <tt>client_assertion</tt> or any other client authentication
credential. The <tt>client_id</tt> form parameter is required so the AS
can resolve client metadata before validating the assertion; the
assertion's <tt>client_id</tt> claim (<xref target="claims"/>) is then matched against
this value. Example, using the
<tt>client_credentials</tt> grant:</t>
          <sourcecode type="http-message"><![CDATA[
POST /token HTTP/1.1
Host: as.example.com
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials
&scope=repo.write
&client_id=https%3A%2F%2Fopenai.example.com%2Fcodex
&actor_token=eyJhbGciOiJFUzI1NiIsImtpZCI6...
&actor_token_type=
  urn%3Aietf%3Aparams%3Aoauth%3Atoken-type%3Aclient-instance-jwt
]]></sourcecode>
        </section>
        <section anchor="instance-assertion-auth-validation">
          <name>Validation Procedure</name>
          <t>When the registered <tt>token_endpoint_auth_method</tt> for the <tt>client_id</tt> is
<tt>client_instance_jwt</tt>, the pre-conditions of <xref target="as-processing"/> (rejecting
mismatched or malformed <tt>actor_token</tt>/<tt>actor_token_type</tt>) still apply,
and the AS replaces step 1 of <xref target="as-processing"/> ("Authenticate the
client") with the following procedure:</t>
          <ol spacing="normal" type="1"><li>
              <t>Resolve client metadata for <tt>client_id</tt> (per the registration
model: dereference the CIMD URL or read stored registration data).</t>
            </li>
            <li>
              <t>Validate the presented <tt>actor_token</tt> using the token-type check,
instance issuer descriptor lookup, signature verification, and JWT
claim validation rules in <xref target="as-processing"/>.</t>
            </li>
            <li>
              <t>Verify that the <tt>actor_token</tt>'s <tt>client_id</tt> claim exactly equals
the request's <tt>client_id</tt> parameter.</t>
            </li>
            <li>
              <t>Apply the replay check in <xref target="security-replay"/> after <tt>client_id</tt>
binding succeeds.</t>
            </li>
            <li>
              <t>Verify proof-of-possession of the <tt>actor_token</tt> at presentation per
<xref target="sender-constrained"/>. In this mode the <tt>actor_token</tt> serves as the
sole client authentication credential, so the bearer-replay
considerations in <xref target="security-replay"/> apply with no fallback
credential; ASes <bcp14>MUST</bcp14> reject requests in this mode whose
<tt>actor_token</tt> lacks a <tt>cnf</tt> claim, and <bcp14>MUST</bcp14> verify possession of the
<tt>cnf</tt> key.</t>
            </li>
            <li>
              <t>Reject the request with <tt>invalid_client</tt> if any of the above fails.</t>
            </li>
            <li>
              <t>Treat the client as authenticated. The validated <tt>actor_token</tt> also
satisfies the <tt>actor_token</tt> requirement of this profile and is used
for instance representation per <xref target="access-token"/>.</t>
            </li>
          </ol>
          <t>Because the <tt>actor_token</tt> is the client authentication credential in
this mode, validation failures that would otherwise be returned as
<tt>invalid_grant</tt> under <xref target="as-processing"/> are returned as
<tt>invalid_client</tt>.</t>
          <t>The <tt>actor_token</tt>'s <tt>aud</tt> claim serves both purposes (the
<xref target="RFC7523"/> client-assertion audience and this profile's actor-token
audience). A single value identifying the AS satisfies both.</t>
          <t>The SPIFFE <tt>client_id</tt> claim omission mode
(<xref target="spiffe-client-id-omission"/>) does not apply to
<tt>client_instance_jwt</tt> client authentication. Because the same JWT is
the sole client authentication credential, the assertion <bcp14>MUST</bcp14> contain
the <tt>client_id</tt> claim and the AS <bcp14>MUST</bcp14> verify it exactly as described
above.</t>
          <t>After this procedure completes, processing continues with step 8 of
<xref target="as-processing"/> ("Enforce delegation policy") and onward, reusing
the validated instance assertion. The AS <bcp14>MUST NOT</bcp14> re-apply the
token-type check, descriptor lookup, signature verification, claim
validation, or <tt>client_id</tt> binding checks to the same <tt>actor_token</tt>
in a way that would cause the request to fail replay detection for
its own presentation.</t>
        </section>
      </section>
      <section anchor="auth-time-consistency">
        <name>Authorization-Time Consistency</name>
        <t>When a token request is made under the authorization_code grant
(<xref target="RFC6749"/> Section 4.1), the user has authorized the <em>client</em>
identified by <tt>client_id</tt>, not any specific client instance. The AS
<bcp14>MUST</bcp14> ensure that the instance introduced at the token endpoint is
consistent with that authorization:</t>
        <ul spacing="normal">
          <li>
            <t>The <tt>client_id</tt> authenticated at the token endpoint <bcp14>MUST</bcp14> match the
<tt>client_id</tt> that received the authorization_code (<xref target="RFC6749"/>
Section 4.1.3). Combined with the <tt>client_id</tt>-binding requirement
in <xref target="as-processing"/>, this prevents an instance assertion from
another client from being attached to a code.</t>
          </li>
          <li>
            <t>The AS <bcp14>MUST NOT</bcp14> permit the instance identity to bypass standard
authorization-code controls (single-use redemption, redirect URI
matching, and any code challenge bound to the original
authorization request).</t>
          </li>
          <li>
            <t>If the AS has any authorization-time policy that depends on the
instance (for example, a per-instance allow-list), the AS <bcp14>MUST</bcp14>
evaluate that policy against the instance assertion presented at /token
and reject inconsistent requests with <tt>invalid_grant</tt>.</t>
          </li>
        </ul>
        <t>When the issued access token is to be DPoP-bound, clients <bcp14>SHOULD</bcp14>
include the <tt>dpop_jkt</tt> parameter (<xref target="RFC9449"/> Section 10) on the
authorization request, naming the same public key whose thumbprint
will appear in the instance assertion's <tt>cnf.jkt</tt> at the token endpoint.
When <tt>dpop_jkt</tt> is present, the AS binds the authorization code to
that key per <xref target="RFC9449"/>, and at the token endpoint <bcp14>MUST</bcp14> verify that
the DPoP proof, the authorization code's <tt>dpop_jkt</tt>, and the
instance assertion's <tt>cnf.jkt</tt> all reference the same key. This provides
cryptographic continuity from /authorize to /token bound to a
specific instance: only the instance that holds the named DPoP
private key can redeem the resulting code, even if the code is
intercepted or transferred to another runtime under the same
client.</t>
        <t>If <tt>dpop_jkt</tt> is absent, DPoP still sender-constrains the issued
access token at the token endpoint, but this profile does not provide
cryptographic continuity between the authorization endpoint and the
token endpoint for that authorization code.</t>
        <t>For Mutual-TLS-bound access tokens (<xref target="RFC8705"/>), authorization-code
continuity is deployment-specific. If the AS binds the authorization
request or authorization code to a client certificate seen at the
authorization endpoint, then at the token endpoint the AS <bcp14>MUST</bcp14> verify
that the certificate used to redeem the code and the instance
assertion's <tt>cnf.x5t#S256</tt> match the certificate bound at
authorization time. Otherwise, mTLS sender-constraint is established
at the token endpoint and does not by itself provide authorization-
to-token endpoint continuity.</t>
        <t>User consent under this profile applies to the client as a
whole; consent thereby covers all instances attested by listed
instance issuers. The key-bound continuity above adds cryptographic
guarantees about <em>which</em> instance redeems a code, but does not by
itself constitute per-instance consent.</t>
        <t>An AS <bcp14>MAY</bcp14> require per-instance or per-key authorization policy when
the authorization request includes a sender-constraining key such as
<tt>dpop_jkt</tt>. Such policy is deployment-specific: <tt>dpop_jkt</tt>
identifies a key, not an instance, unless the AS has an
authorization-time mapping from that key to an instance identity. In
those deployments, the AS can require user or administrator approval
for the specific instance or key and then verify at the token
endpoint that the DPoP proof, authorization code binding, and
instance assertion <tt>cnf.jkt</tt> all reference the approved key.</t>
        <t>ASes that record consent <bcp14>SHOULD</bcp14> record the descriptor scope under
which consent was granted (in particular, the descriptor's issuer
and <tt>trust_domain</tt>), and <bcp14>MAY</bcp14> refuse access tokens for the same
client issued under a different descriptor scope than the one
consented. This matters for clients deployed across multiple
trust domains (for example, "production" vs. "staging" SPIFFE trust
domains, or distinct PaaS environments) where the user's consent to
one is not necessarily consent to another.</t>
        <t>This document does not define a general authorization endpoint
mechanism for presenting instance identity. Deployments requiring
standardized per-instance consent without an authorization-time key
mapping need a separate extension.</t>
      </section>
      <section anchor="sender-constrained">
        <name>Sender-Constrained Access Tokens</name>
        <t>When the AS issues an access token under this profile, whether the
instance is represented in <tt>act</tt> (delegation case;
<xref target="access-token-delegation"/>) or in <tt>sub</tt> (self-acting case;
<xref target="access-token-self-acting"/>), the AS <bcp14>MUST</bcp14> issue a
sender-constrained access token bound to a key the instance
possesses. Established mechanisms include <tt>DPoP</tt> <xref target="RFC9449"/> and
Mutual-TLS-bound access tokens <xref target="RFC8705"/>.</t>
        <t>The AS <bcp14>MUST NOT</bcp14> issue a bearer access token under this profile.
Sender-constraint is a structural prerequisite, not a preference:
per-instance non-repudiation depends on binding the access token
to a key the validated instance possesses. Deployments adopting
this profile therefore require AS and RS support for DPoP
(<xref target="RFC9449"/>), Mutual-TLS-bound access tokens (<xref target="RFC8705"/>), or
both, and <bcp14>SHOULD</bcp14> verify implementation support before committing.
Adoption guidance for DPoP or mTLS rollout is outside the scope
of this document; deployments unable to deploy either mechanism
within their adoption timeline should defer adopting this profile.</t>
        <t>If the instance assertion includes a <tt>cnf</tt> claim (<xref target="claims"/>), the AS <bcp14>MUST</bcp14>:</t>
        <ul spacing="normal">
          <li>
            <t>bind the issued access token to the same key by setting the access
token's top-level <tt>cnf</tt> to the instance assertion's <tt>cnf</tt> value;</t>
          </li>
          <li>
            <t>verify possession of the <tt>cnf</tt> key at the token endpoint, matching
the binding member used in <tt>cnf</tt> per <xref target="RFC7800"/>. For <tt>cnf.jkt</tt>,
the JWK thumbprint of the <tt>DPoP</tt> proof's public key <xref target="RFC9449"/> <bcp14>MUST</bcp14>
equal <tt>cnf.jkt</tt>. For <tt>cnf.x5t#S256</tt>, the certificate authenticated at
the TLS layer <xref target="RFC8705"/> <bcp14>MUST</bcp14> match <tt>cnf.x5t#S256</tt>. Other
confirmation methods present in <tt>cnf</tt> are not binding members for
this profile and <bcp14>MAY</bcp14> be ignored unless local policy or their defining
specifications require additional processing;</t>
          </li>
          <li>
            <t>reject the request with <tt>invalid_request</tt> if verification fails.</t>
          </li>
        </ul>
        <t>This protects the instance assertion from bearer-style replay within its
validity window (<xref target="security-replay"/>); without it, the instance assertion
would be a bearer credential whose replay is bounded only by <tt>exp</tt>
and the <tt>jti</tt> cache.</t>
        <t>The binding key <bcp14>MUST</bcp14> be specific to the validated client instance.
A credential shared by the client as a whole, such as the
client-level mTLS certificate authenticated under <xref target="RFC8705"/>, the
client's <tt>private_key_jwt</tt> key, or any other client-controlled key
not provisioned per-instance, is not sufficient.</t>
        <t>A re-minted Client Instance Assertion <bcp14>MUST</bcp14> contain <tt>cnf</tt> so that
the binding key is supplied by the same authority that named the
instance. The only profile-defined case where <tt>cnf</tt> can be absent
is raw-JWT-SVID compatibility, where the AS establishes an
instance-specific binding through a channel independent of the
SVID; rules are in <xref target="spiffe-binding"/>.</t>
        <t>Deployments combining client-level Mutual-TLS-bound client
authentication (<xref target="RFC8705"/>) with this profile <bcp14>MUST</bcp14> establish
instance binding through a separate, instance-specific key. The
typical configuration uses the client's mTLS certificate at the TLS
layer for client authentication and a <tt>cnf.jkt</tt> in the instance assertion
paired with <tt>DPoP</tt> <xref target="RFC9449"/> at the token endpoint for instance
binding. Per-instance mTLS certificates issued by the instance
issuer (or otherwise bound to instance attestation) are an
alternative; in that case the same TLS certificate satisfies both
client authentication and instance binding only if the AS treats it
as belonging to the instance for binding purposes.</t>
      </section>
      <section anchor="access-token">
        <name>Access Token Representation</name>
        <t>A client instance may be acting on behalf of another principal
(<em>delegation case</em>; e.g., a user authorized the request through an
authorization_code grant) or acting as itself with no other
principal involved (<em>self-acting case</em>; e.g., a <tt>client_credentials</tt>
grant). The AS <bcp14>MUST</bcp14> classify each request as delegation or
self-acting before populating the issued access token's claims. In
both cases the access token's <tt>client_id</tt> remains the client, the
access token <bcp14>MUST</bcp14> be sender-constrained per <xref target="sender-constrained"/>,
and any upstream actor chain <bcp14>MUST</bcp14> be preserved by nesting per
<xref target="ACTOR-PROFILE"/> (merge rules in <xref target="chain-merging"/>).</t>
        <section anchor="access-token-classification">
          <name>Classification</name>
          <t>The AS classifies the request based on whether the grant produces
a principal distinct from the client instance presenting the
<tt>actor_token</tt>:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Grant</th>
                <th align="left">Principal</th>
                <th align="left">Classification</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">authorization_code (<xref target="RFC6749"/>)</td>
                <td align="left">the user who authorized the code</td>
                <td align="left">delegation</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>client_credentials</tt> (<xref target="RFC6749"/>)</td>
                <td align="left">none</td>
                <td align="left">self-acting</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>refresh_token</tt> (<xref target="RFC6749"/>)</td>
                <td align="left">inherited from the original grant</td>
                <td align="left">inherited</td>
              </tr>
              <tr>
                <td align="left">jwt-bearer (<xref target="RFC7523"/>)</td>
                <td align="left">the assertion's <tt>sub</tt></td>
                <td align="left">delegation</td>
              </tr>
              <tr>
                <td align="left">token-exchange (<xref target="RFC8693"/>)</td>
                <td align="left">the <tt>subject_token</tt>'s subject</td>
                <td align="left">delegation</td>
              </tr>
            </tbody>
          </table>
          <t>The jwt-bearer and token-exchange rows always classify as delegation
under this profile. <xref target="RFC7523"/> requires a JWT-bearer assertion that
identifies a principal, and <xref target="RFC8693"/> Section 2.1 requires a
<tt>subject_token</tt>; in both cases another party is present and named, so
the issued access token's <tt>sub</tt> is that party and the actor appears
in <tt>act</tt>. ASes <bcp14>MUST NOT</bcp14> classify these grants as self-acting based
on heuristic matching of subject identifiers; see
<xref target="security-mode-switch"/>. This rule applies even when the
<tt>subject_token</tt> was itself a self-acting access token whose <tt>sub</tt>
named the same instance now presenting the <tt>actor_token</tt> (e.g., a
client-credentials token from an upstream AS exchanged at a
downstream AS): the resulting access token has <tt>sub</tt> and <tt>act.sub</tt>
naming the same instance. This is benign chain self-reference and
is not an error; the AS <bcp14>MUST NOT</bcp14> collapse the two into a self-
acting representation.</t>
          <t>When neither delegation nor self-acting cleanly applies (for example,
custom or experimental grants), the AS <bcp14>MUST</bcp14> refuse to issue the
access token rather than guess; reject with <tt>invalid_grant</tt>
(<xref target="errors"/>).</t>
        </section>
        <section anchor="access-token-delegation">
          <name>Delegation Case</name>
          <t>When the request is classified as delegation, the AS <bcp14>MUST</bcp14> populate
the issued access token's <tt>act</tt> claim per <xref target="ACTOR-PROFILE"/> from the
validated client instance assertion:</t>
          <ul spacing="normal">
            <li>
              <t><tt>act.iss</tt> = <tt>actor_token</tt>'s <tt>iss</tt></t>
            </li>
            <li>
              <t><tt>act.sub</tt> = <tt>actor_token</tt>'s <tt>sub</tt></t>
            </li>
            <li>
              <t><tt>act.sub_profile</tt> = <tt>actor_token</tt>'s <tt>sub_profile</tt> (if present);
the value <tt>client_instance</tt> <bcp14>SHOULD</bcp14> be included.</t>
            </li>
            <li>
              <t><tt>act.cnf</tt> = <tt>actor_token</tt>'s <tt>cnf</tt>, if present.</t>
            </li>
          </ul>
          <t>The access token's <tt>sub</tt> <bcp14>MUST</bcp14> be the principal identified by the
grant (e.g., the authenticated user). Sender-constraint binding
(top-level <tt>cnf</tt> and PoP verification) is governed by
<xref target="sender-constrained"/>. Note that the instance assertion's <tt>aud</tt>,
<tt>client_id</tt>, <tt>exp</tt>, <tt>iat</tt>, and <tt>jti</tt> are validated and consumed by
the AS but do not appear in the issued access token (<tt>client_id</tt>
appears at the top level as a property of the token, not as an
actor claim).</t>
          <t>For a worked example see <xref target="appendix-examples-auth-code"/>; for a
nested actor chain (token-exchange whose <tt>subject_token</tt> already
carries an <tt>act</tt> chain), see <xref target="appendix-examples-token-exchange"/>.</t>
        </section>
        <section anchor="access-token-self-acting">
          <name>Self-Acting Case</name>
          <t>When the request is classified as self-acting, the instance is the
principal and there is no other party on whose behalf it acts. The
AS <bcp14>MUST</bcp14> populate the issued access token from the validated
instance assertion:</t>
          <ul spacing="normal">
            <li>
              <t><tt>sub</tt> = <tt>actor_token</tt>'s <tt>sub</tt> (optionally with AS-applied
namespacing, see below)</t>
            </li>
            <li>
              <t><tt>sub_profile</tt> = <tt>actor_token</tt>'s <tt>sub_profile</tt> (if present); the
value <tt>client_instance</tt> <bcp14>SHOULD</bcp14> be included</t>
            </li>
            <li>
              <t><tt>cnf</tt> is set per <xref target="sender-constrained"/></t>
            </li>
            <li>
              <t><tt>act</tt> <bcp14>MUST</bcp14> be omitted</t>
            </li>
          </ul>
          <t>The instance issuer's identifier (the assertion's <tt>iss</tt>) is not
represented as a standard access-token claim in the self-acting
case; trust in the issuer is structural via the descriptor
(<xref target="instance-issuers"/>). The AS <bcp14>MUST</bcp14> nevertheless retain the
validated issuer with its token state when needed for revocation,
introspection, audit, or issuer-aware resource-server policy. For
JWT access tokens consumed without introspection, if resource
servers need issuer context and the client lists multiple issuers
with potentially colliding subject spaces, the AS <bcp14>SHOULD</bcp14> either
apply AS-scoped namespacing to <tt>sub</tt> as described below or expose
issuer context using a deployment-specific claim understood by the
resource server. For raw JWT-SVIDs that do not carry <tt>sub_profile</tt>,
the AS <bcp14>SHOULD</bcp14> set the access token's <tt>sub_profile</tt> to
<tt>client_instance</tt> after successful validation, unless local policy
intentionally suppresses that signal.</t>
          <t>A client that lists multiple instance issuers <bcp14>MUST</bcp14> ensure those
issuers' <tt>sub</tt> spaces do not collide (for example, by using
disjoint naming conventions, prefixes, or a SPIFFE trust-domain
split); when the client cannot guarantee disjointness, the AS
<bcp14>SHOULD</bcp14> apply namespacing (e.g., prefixing <tt>sub</tt> with the
descriptor's issuer such as <tt>&lt;issuer&gt;#&lt;sub&gt;</tt>) to prevent a
compromised issuer from spoofing another's <tt>sub</tt>. Such namespacing
is a deployment-side choice and does not affect the wire format of
the <tt>actor_token</tt>. AS-applied namespacing produces an AS-scoped
subject identifier; resource-server policy and audit tooling need
to treat it as AS-issued rather than issuer-native.</t>
          <t>For a worked example see <xref target="appendix-examples-client-credentials"/>.</t>
        </section>
        <section anchor="chain-merging">
          <name>Actor Chain Merging</name>
          <t>The AS constructs the issued access token's <tt>act</tt> chain per
<xref target="ACTOR-PROFILE"/>'s Delegation Chain Validation and Construction
algorithm: the validated client instance assertion is the new
outermost actor, and any <tt>subject_token</tt> <tt>act</tt> chain (only
applicable to token-exchange) is preserved verbatim under it.
Depth limits and rejection on overflow follow <xref target="ACTOR-PROFILE"/>.</t>
          <t>In the self-acting case (<xref target="access-token-self-acting"/>) the <tt>act</tt>
claim is omitted.</t>
        </section>
      </section>
      <section anchor="refresh">
        <name>Refresh Tokens</name>
        <t>When an access token is refreshed (<xref target="RFC6749"/> Section 6), the AS
reuses the classification (<xref target="access-token-classification"/>) of the
original grant to shape the refreshed access token; the original
classification is <em>inherited</em> and is not re-derived from the refresh
request itself.</t>
        <t>Refresh tokens issued under this profile <bcp14>MUST</bcp14> be sender-constrained
to the originating instance's <tt>cnf</tt> key, by the same mechanism used
to sender-constrain the access token (<xref target="sender-constrained"/>). Only
the originating instance can present the refresh token. A refresh
request <bcp14>MUST NOT</bcp14> introduce a client instance identity if the refresh
token was not originally issued under this profile.</t>
        <t>A client <bcp14>MAY</bcp14> include <tt>actor_token</tt> and <tt>actor_token_type</tt>
(<xref target="token-request"/>) on a refresh request to supply a fresh instance
assertion (for example, to rotate the underlying assertion before
its <tt>exp</tt>). When present, the <tt>actor_token</tt> <bcp14>MUST</bcp14>:</t>
        <ul spacing="normal">
          <li>
            <t>be bound to the same <tt>cnf</tt> key as the refresh token;</t>
          </li>
          <li>
            <t>have <tt>(iss, sub)</tt> matching those recorded at the refresh token's
original issuance; and</t>
          </li>
          <li>
            <t>pass the token-type check, instance issuer descriptor lookup,
signature verification, JWT claim validation, and <tt>client_id</tt>
binding checks defined in <xref target="as-processing"/>.</t>
          </li>
        </ul>
        <t>If the presented <tt>actor_token</tt> is a raw JWT-SVID without <tt>cnf</tt>, the
AS <bcp14>MUST</bcp14> establish the binding key per <xref target="spiffe-binding"/> and verify
that the established binding key matches the refresh token's
binding. The AS <bcp14>MUST</bcp14> reject with <tt>invalid_grant</tt> any refresh
request whose presented <tt>actor_token</tt> is not bound to the same
<tt>cnf</tt> key, or whose <tt>(iss, sub)</tt> differ from those recorded at
issuance.</t>
        <t>Because the refresh token is bound to the originating instance, it
is implicitly invalidated when that instance terminates. This keeps
<tt>act.sub</tt> (delegation) or <tt>sub</tt> (self-acting) stable across the
refresh chain, matching the expectation of audit pipelines that a
token's actor identity does not change after issuance.</t>
        <t>For SPIFFE deployments, the cnf binding key <bcp14>SHOULD</bcp14> outlive the
JWT-SVID rotation cycle (typically 5-10 minutes in default SPIRE)
when refresh tokens are issued. Deployments that bind <tt>cnf</tt> to a
per-instance DPoP or mTLS key held by the workload satisfy this
naturally; deployments that attempt to bind <tt>cnf</tt> to the SVID's
signing key directly will lose refresh-token continuity at every
rotation and <bcp14>SHOULD NOT</bcp14> use that pattern.</t>
        <t>Deployments requiring cross-instance session continuity (for
example, agent platforms whose runtime is recycled but whose session
should continue) handle this at the deployment layer rather than
through refresh-token semantics. Suitable mechanisms include:</t>
        <ul spacing="normal">
          <li>
            <t>re-authorizing the client through a fresh authorization
grant (e.g., a new authorization_code flow with passive sign-in);</t>
          </li>
          <li>
            <t>using token-exchange (<xref target="RFC8693"/>) to mint a new instance-bound
token chain in the successor instance from a long-lived parent
token held by the platform; or</t>
          </li>
          <li>
            <t>persisting session state outside the refresh token (e.g., in a
shared store keyed by the user-and-client pair) and obtaining new tokens
through a fresh grant.</t>
          </li>
        </ul>
        <t>This profile does not extend refresh-token semantics to
cross-instance succession; doing so would break the per-instance
audit-stability invariant the profile is designed to provide.</t>
      </section>
      <section anchor="spiffe-compatibility">
        <name>SPIFFE Compatibility</name>
        <t>A SPIFFE workload typically obtains a JWT-SVID from the SPIFFE
Workload API. JWT-SVIDs carry <tt>iss</tt> (the trust domain), <tt>sub</tt> (the
SPIFFE ID), <tt>aud</tt>, <tt>exp</tt>, and a signature, and may carry additional
registered claims such as <tt>iat</tt> and <tt>jti</tt>; they do not carry an
OAuth <tt>client_id</tt> claim. To allow such SVIDs to be presented as
<tt>actor_token</tt> without re-minting, this profile defines an optional
SPIFFE compatibility mode driven entirely by descriptor
configuration. An AS is not required to support raw JWT-SVID
compatibility in order to support re-minted Client Instance
Assertions with <tt>subject_syntax</tt> = "spiffe".</t>
        <t>This profile uses JWT-format actor tokens. X.509-SVIDs are not
presented as <tt>actor_token</tt>; SPIFFE deployments using X.509-SVIDs
authenticate at the TLS layer (per <xref target="RFC8705"/>) and obtain a
JWT-SVID separately for <tt>actor_token</tt> presentation. The X.509-SVID
certificate thumbprint <bcp14>MAY</bcp14> serve as <tt>cnf.x5t#S256</tt> in either the
re-minted assertion or the issued access token's binding.</t>
        <t>The AS <bcp14>MUST</bcp14> select exactly one validation mode before accepting the
assertion and <bcp14>MUST</bcp14> apply that mode's rules exclusively:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Mode</th>
              <th align="left">Selected when</th>
              <th align="left">Key source</th>
              <th align="left">Claim requirements</th>
              <th align="left">Binding</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Raw JWT-SVID mode</td>
              <td align="left">The token has no <tt>client_id</tt> claim and satisfies <xref target="spiffe-client-id-omission"/></td>
              <td align="left">
                <tt>spiffe_bundle_endpoint</tt></td>
              <td align="left">SPIFFE JWT-SVID claims; <tt>client_id</tt>, <tt>typ</tt>, <tt>cnf</tt>, and <tt>jti</tt> are not required</td>
              <td align="left">Established separately per <xref target="spiffe-binding"/></td>
            </tr>
            <tr>
              <td align="left">Re-minted assertion mode</td>
              <td align="left">The token contains <tt>client_id</tt>, or raw JWT-SVID mode does not apply</td>
              <td align="left">
                <tt>jwks_uri</tt>, <tt>jwks</tt>, or <tt>spiffe_bundle_endpoint</tt> when the signing key is distributed in the SPIFFE bundle</td>
              <td align="left">Full Client Instance Assertion claims and <tt>typ</tt> per <xref target="claims"/> and <xref target="signing"/></td>
              <td align="left">The assertion's <tt>cnf</tt> drives binding per <xref target="sender-constrained"/></td>
            </tr>
          </tbody>
        </table>
        <t>In raw JWT-SVID mode, the AS <bcp14>MUST</bcp14>:</t>
        <ol spacing="normal" type="1"><li>
            <t>match the descriptor by exact comparison of the JWT-SVID <tt>iss</tt> to
the descriptor's <tt>issuer</tt>;</t>
          </li>
          <li>
            <t>require <tt>subject_syntax</tt> = "spiffe";</t>
          </li>
          <li>
            <t>validate the token as a JWT-SVID using SPIFFE JWT-SVID validation
rules and the descriptor's <tt>spiffe_bundle_endpoint</tt>;</t>
          </li>
          <li>
            <t>validate the SPIFFE JWT-SVID claims required by SPIFFE and ignore
unrecognized claims unless local policy rejects them;</t>
          </li>
          <li>
            <t>validate <tt>aud</tt> and <tt>exp</tt>;</t>
          </li>
          <li>
            <t>validate <tt>iat</tt> if present;</t>
          </li>
          <li>
            <t>validate <tt>nbf</tt> if present;</t>
          </li>
          <li>
            <t>enforce the descriptor's <tt>signing_alg_values_supported</tt> when
present;</t>
          </li>
          <li>
            <t>apply the replay-cache rule in <xref target="security-replay"/> if <tt>jti</tt> is
present;</t>
          </li>
          <li>
            <t>validate <tt>sub</tt> as a SPIFFE ID and enforce the descriptor's
   <tt>spiffe_id</tt>, or <tt>trust_domain</tt> when <tt>spiffe_id</tt> is absent; and</t>
          </li>
          <li>
            <t>establish an instance-specific sender-constraint binding per
   <xref target="spiffe-binding"/>.</t>
          </li>
        </ol>
        <t>In raw JWT-SVID mode, the JWT-SVID's <tt>iss</tt> claim <bcp14>MUST</bcp14> identify the
SPIFFE JWT-SVID issuer for the trust domain and <bcp14>MUST</bcp14> exactly match
the descriptor's <tt>issuer</tt> member. Because raw JWT-SVIDs do not
require <tt>jti</tt>, an AS that accepts a raw JWT-SVID without <tt>jti</tt> <bcp14>MUST</bcp14>
rely on sender-constraint and short SVID lifetimes for replay
protection.</t>
        <t>In re-minted assertion mode, the AS <bcp14>MUST</bcp14>:</t>
        <ol spacing="normal" type="1"><li>
            <t>match the descriptor by exact comparison of the assertion's <tt>iss</tt>
to the descriptor's <tt>issuer</tt>;</t>
          </li>
          <li>
            <t>verify the JWS signature using the descriptor key source;</t>
          </li>
          <li>
            <t>validate <tt>typ</tt> = <tt>client-instance+jwt</tt> per <xref target="signing"/>;</t>
          </li>
          <li>
            <t>require and validate the claims defined in <xref target="claims"/>, including
<tt>client_id</tt>, <tt>exp</tt>, <tt>iat</tt>, <tt>jti</tt>, and <tt>cnf</tt>;</t>
          </li>
          <li>
            <t>verify that <tt>client_id</tt> equals the authenticated client;</t>
          </li>
          <li>
            <t>apply the replay-cache rule in <xref target="security-replay"/>;</t>
          </li>
          <li>
            <t>if <tt>subject_syntax</tt> is "spiffe", validate <tt>sub</tt> as a SPIFFE ID
and enforce <tt>spiffe_id</tt>, or <tt>trust_domain</tt> when <tt>spiffe_id</tt> is
absent; and</t>
          </li>
          <li>
            <t>verify possession of the <tt>cnf</tt> key per <xref target="sender-constrained"/>.</t>
          </li>
        </ol>
        <t>A deployment that re-mints an SVID into a Client Instance Assertion
<bcp14>MUST</bcp14> include the claims required by <xref target="claims"/> and <bcp14>MUST</bcp14> use <tt>typ</tt> =
<tt>client-instance+jwt</tt> per <xref target="signing"/>.</t>
        <section anchor="spiffe-client-id-omission">
          <name>Client ID Claim Omission</name>
          <t>Raw JWT-SVID mode applies when the <tt>actor_token</tt> has no <tt>client_id</tt>
claim and all of the following hold for the descriptor that matches
the <tt>actor_token</tt>'s <tt>iss</tt>:</t>
          <ul spacing="normal">
            <li>
              <t><tt>subject_syntax</tt> is "spiffe";</t>
            </li>
            <li>
              <t>either (a) a <tt>spiffe_id</tt> member is present and the <tt>actor_token</tt>'s
<tt>sub</tt> satisfies the <tt>spiffe_id</tt> matching rule of <xref target="instance-issuers"/>
(exact match, or with "/*", path-segment prefix match per
<xref target="SPIFFE-CLIENT-AUTH"/>), or (b) <tt>spiffe_id</tt> is absent,
<tt>trust_domain</tt> is present, and the <tt>actor_token</tt>'s <tt>sub</tt> falls
within that trust domain;</t>
            </li>
          </ul>
          <t>the AS <bcp14>MUST</bcp14> treat the descriptor as the per-client binding for the
raw JWT-SVID. In this mode:</t>
          <ul spacing="normal">
            <li>
              <t>The AS <bcp14>MUST</bcp14> verify that the <tt>actor_token</tt>'s <tt>sub</tt> satisfies the
descriptor's SPIFFE scope: <tt>spiffe_id</tt> when present, otherwise the
descriptor's whole <tt>trust_domain</tt>.</t>
            </li>
            <li>
              <t>All other JWT claims and validation rules of <xref target="claims"/> continue
to apply unchanged, except that a raw JWT-SVID is not required to
carry <tt>iat</tt> or <tt>jti</tt>; if either claim is present, the AS <bcp14>MUST</bcp14>
validate it per <xref target="claims"/> and <xref target="security-replay"/>.</t>
            </li>
          </ul>
          <t>A token that contains a <tt>client_id</tt> claim is processed as a
re-minted Client Instance Assertion, not under this omission mode;
that claim <bcp14>MUST</bcp14> equal the request's <tt>client_id</tt> parameter
(<xref target="as-processing"/>).</t>
          <t>The security rationale is that the descriptor's SPIFFE scope,
present in the client's registered metadata (whether published as a
CIMD document or stored at the AS), is itself the per-client binding:
a workload's SPIFFE ID is bound to a client by the client explicitly
listing the prefix that contains it, or by omitting <tt>spiffe_id</tt> and
thereby delegating the whole trust domain. This is the same model
<xref target="SPIFFE-CLIENT-AUTH"/> uses for client authentication, applied here to
actor identity. Clients <bcp14>SHOULD</bcp14> include <tt>spiffe_id</tt> unless
whole-domain delegation is intentional.</t>
        </section>
        <section anchor="spiffe-bundle-resolution">
          <name>SPIFFE Trust Bundle Resolution</name>
          <t>When a descriptor specifies <tt>spiffe_bundle_endpoint</tt> instead of
<tt>jwks_uri</tt> or <tt>jwks</tt>, the AS resolves verification keys via the SPIFFE
trust bundle endpoint. The AS <bcp14>MUST</bcp14> validate the bundle's freshness
and applicability to the trust domain in the descriptor's
<tt>trust_domain</tt> (or the trust domain implied by <tt>spiffe_id</tt>). The AS
<bcp14>MUST</bcp14> verify JWT signatures with JWT authority keys from the bundle
for the relevant trust domain, and <bcp14>MUST</bcp14> separately require the
assertion's <tt>iss</tt> and <tt>sub</tt> to satisfy the descriptor's issuer and
SPIFFE scope constraints. The bundle endpoint format, freshness,
rotation rules, and TLS authentication (WebPKI) follow
<xref target="SPIFFE-CLIENT-AUTH"/>, the same handling used for client
authentication. When the AS uses an X.509-SVID at the TLS layer for
sender-constraint binding under raw-JWT-SVID compatibility
(<xref target="spiffe-binding"/>), the X.509-SVID is validated against the
X.509 trust anchors served by the same SPIFFE bundle.</t>
        </section>
        <section anchor="spiffe-binding">
          <name>Sender-Constraint Binding for Raw JWT-SVIDs</name>
          <t>A raw JWT-SVID accepted under <xref target="spiffe-client-id-omission"/> does
not include a <tt>cnf</tt> claim. The AS <bcp14>MUST</bcp14> establish an
instance-specific binding through some other means whose key is
attributable to the validated instance. The AS <bcp14>MUST</bcp14> reject the
request unless the presented DPoP key or mTLS certificate is bound,
by the AS's local policy, to the same runtime named by the
JWT-SVID's <tt>sub</tt>. The binding mechanism <bcp14>MUST</bcp14> establish key custody
through a channel independent of the JWT-SVID itself (for example,
issuer-provisioned per-instance credentials or a workload
attestation channel that names the same <tt>sub</tt>); accepting a DPoP
key solely because it accompanied a valid JWT-SVID is not a binding
and reduces this mode to bearer-with-<tt>aud</tt>.</t>
          <t>Acceptable binding mechanisms include:</t>
          <ul spacing="normal">
            <li>
              <t>a per-instance mTLS client certificate provisioned by the
instance issuer (or otherwise tied to instance attestation) and
presented under <xref target="RFC8705"/>; when the certificate is an
X.509-SVID, the AS <bcp14>MUST</bcp14> verify that its SAN URI exactly equals
the JWT-SVID's <tt>sub</tt>; or</t>
            </li>
            <li>
              <t>a <tt>DPoP</tt> key <xref target="RFC9449"/> that the AS confirms, through
deployment-specific attestation or out-of-band binding to the
instance issuer, represents the same runtime named by the
instance assertion's <tt>sub</tt>.</t>
            </li>
          </ul>
          <t>In raw-JWT-SVID mode, the AS <bcp14>MUST</bcp14> set the issued access token's
top-level <tt>cnf</tt> to a confirmation member identifying the binding
key established above (<tt>cnf.x5t#S256</tt> for an X.509-SVID, <tt>cnf.jkt</tt>
for a DPoP key). Access tokens bound via <tt>cnf.x5t#S256</tt> to a
rotating X.509-SVID are usable only while the workload holds that
specific certificate; deployments <bcp14>SHOULD</bcp14> size access-token TTL
with the SVID rotation cycle in mind.</t>
          <t>The AS <bcp14>SHOULD</bcp14> record which mechanism established the binding and
which key or certificate was bound to the instance, to support
incident response and per-instance revocation
(<xref target="per-instance-revocation"/>). If the AS cannot establish an
instance-specific binding, it <bcp14>MUST</bcp14> reject the request with
<tt>invalid_request</tt> (<xref target="errors"/>).</t>
        </section>
      </section>
      <section anchor="errors">
        <name>Error Responses</name>
        <t>Errors are returned per <xref target="RFC6749"/> Section 5.2 and <xref target="RFC8693"/>
Section 2.2.2. This profile uses the existing OAuth error codes:</t>
        <ul spacing="normal">
          <li>
            <t><tt>invalid_request</tt>: pre-condition and request-shape failures,
including missing or mismatched <tt>actor_token</tt>/<tt>actor_token_type</tt>,
malformed JWT, JWS <tt>typ</tt> mismatch (<xref target="signing"/>), sender-constraint
binding failures (<xref target="sender-constrained"/>), and chain depth
exceeding the AS local maximum (<xref target="ACTOR-PROFILE"/>).</t>
          </li>
          <li>
            <t><tt>invalid_grant</tt>: failures of instance-assertion validation,
including signature, JWT claim validation, descriptor lookup or
shape, <tt>client_id</tt> binding, SPIFFE compatibility conditions,
classification ambiguity, and <tt>actor_token</tt> carrying an <tt>act</tt>
claim.</t>
          </li>
          <li>
            <t><tt>unsupported_token_type</tt> (<xref target="RFC8693"/>): an unrecognized
<tt>actor_token_type</tt> required for the grant.</t>
          </li>
          <li>
            <t><tt>invalid_client</tt>: when the <tt>actor_token</tt> is the client
authentication credential under <xref target="instance-assertion-auth"/>,
validation failures that would otherwise be returned as
<tt>invalid_grant</tt> are returned as <tt>invalid_client</tt>.</t>
          </li>
        </ul>
        <t>The AS <bcp14>MAY</bcp14> return additional information via the error_description
parameter; deployments <bcp14>MUST NOT</bcp14> include sensitive instance details
(e.g., raw SPIFFE IDs of unrelated workloads) in error responses.
To help client-developer debugging, AS implementations <bcp14>SHOULD</bcp14>
include non-sensitive diagnostic context such as which validation
step failed (for example, "issuer not in instance_issuers" or
"cnf possession failed").</t>
      </section>
    </section>
    <section anchor="rs-processing">
      <name>Resource Server Processing</name>
      <t>Resource servers consuming access tokens issued under this profile
follow the resource server processing rules defined in
<xref target="ACTOR-PROFILE"/> (its "Resource Server Processing" section) for
delegated access tokens, including actor authorization, JWT access
token validation, sender-constraint validation against the top-level
<tt>cnf</tt>, error responses (including the <tt>actor_unauthorized</tt> error code),
and introspection. This section adds only the considerations specific
to this profile.</t>
      <t>When the access token carries an <tt>act</tt> claim
(<xref target="access-token-delegation"/>), the resource server processes it
per <xref target="ACTOR-PROFILE"/>; this profile adds no new RS-side requirements
for the delegation case. Resource servers <bcp14>MAY</bcp14> use
<tt>act.sub_profile</tt> = <tt>client_instance</tt> as a signal that the actor is
a concrete runtime of an OAuth client, which can inform
authorization policy. Resource servers <bcp14>MUST NOT</bcp14> rely on <tt>act.iss</tt>
for proof of possession; per <xref target="ACTOR-PROFILE"/>, the top-level <tt>cnf</tt>
is the binding for the current presenter.</t>
      <t>Under this profile, the access token's top-level <tt>cnf</tt> is the
<em>instance's</em> key, not the principal's key (the principal in <tt>sub</tt> is
typically a user, who does not present the token). The instance,
named in <tt>act.sub</tt>, is the bearer; sender-constraint validation
authenticates that instance. This is a deliberate consequence of
binding the access token to the instance that holds the
authorization, not to the principal who delegated to it.</t>
      <t>Resource-server authorization policies <bcp14>SHOULD</bcp14> evaluate the logical
client (<tt>client_id</tt>), the instance identity (<tt>act.sub</tt> in delegation
tokens or <tt>sub</tt> in self-acting tokens), actor/subject profile signals
such as <tt>sub_profile</tt>, granted scopes, and issuer context where it is
available. Policies that authorize solely on <tt>client_id</tt> lose the
instance-level distinction this profile is designed to provide.</t>
      <t>In the self-acting case (<xref target="access-token-self-acting"/>), the access
token carries no <tt>act</tt> claim. From the resource server's perspective,
the access token is a non-delegated token whose top-level claims have
the following semantics under this profile:</t>
      <ul spacing="normal">
        <li>
          <t><tt>sub</tt> names the <em>client instance</em> (typically a SPIFFE ID or other
workload identifier), not a human user.</t>
        </li>
        <li>
          <t><tt>sub_profile</tt> = <tt>client_instance</tt> signals that the subject is a runtime
instance and resource servers <bcp14>SHOULD</bcp14> apply policy appropriate to
workload identities (for example, scope-restricted machine-to-
machine policies, rate limits, or workload-specific audit).</t>
        </li>
        <li>
          <t><tt>client_id</tt> names the <em>client</em> (the logical OAuth client to
which the instance belongs), not the instance. Resource servers
<bcp14>MUST NOT</bcp14> treat <tt>client_id</tt> as the actor identifier in the self-
acting case; the actor identifier is <tt>sub</tt>. (When delegation is
also present, this distinction is moot; <tt>client_id</tt> remains the
OAuth client identifier and <tt>act.sub</tt> names the actor.)</t>
        </li>
        <li>
          <t><tt>cnf</tt> binds the token to the instance's key; PoP validation follows
the access token's binding mechanism (<tt>DPoP</tt> <xref target="RFC9449"/> or
Mutual-TLS-bound <xref target="RFC8705"/>).</t>
        </li>
      </ul>
      <t>Resource servers that distinguish "human-delegated" from "workload-
self-acting" requests <bcp14>SHOULD</bcp14> make the determination based on the
presence or absence of <tt>act</tt>, not on the format of <tt>sub</tt>. In both
cases the top-level <tt>client_id</tt> names the client, not the
instance; when the instance is a SPIFFE workload, the SPIFFE ID is
conveyed via <tt>act.sub</tt> (delegation) or <tt>sub</tt> (self-acting), never
via <tt>client_id</tt>.</t>
    </section>
    <section anchor="adoption">
      <name>Adoption and Migration</name>
      <t>This profile is designed for incremental adoption. Existing client
metadata (CIMD documents or static registrations) that does not
declare <tt>instance_issuers</tt> continues to work unchanged, and existing
access tokens in circulation when a client adds <tt>instance_issuers</tt>
remain valid for their original lifetime.</t>
      <t>An AS <bcp14>MAY</bcp14> implement this profile while continuing to serve clients
that do not use it. Token requests are dispatched on
<tt>actor_token_type</tt>, with
<tt>urn:ietf:params:oauth:token-type:client-instance-jwt</tt> triggering
this profile's processing (<xref target="as-processing"/>) and other (or absent)
values processed under their own specifications.</t>
      <t>ASes <bcp14>SHOULD</bcp14> advertise support via <tt>actor_token_types_supported</tt>
(<xref target="as-metadata"/>). Clients <bcp14>SHOULD</bcp14> verify that
<tt>urn:ietf:params:oauth:token-type:client-instance-jwt</tt> is present in
the AS's <tt>actor_token_types_supported</tt> before sending an
<tt>actor_token</tt> on a token request, since RFC 6749 permits ASes that
do not implement this extension to silently ignore unrecognized
parameters and issue an unbound access token. The
<tt>actor_token_types_supported</tt> value is a coarse capability signal;
clients may still need registration-time or deployment agreement
for grant-specific use, raw JWT-SVID compatibility, accepted
sender-constraint methods, and refresh-token behavior.</t>
      <t>A client <bcp14>MAY</bcp14> add <tt>instance_issuers</tt> at any time. A client that wants
to mandate instance assertions for every issued access token can
register <tt>token_endpoint_auth_method</tt> = <tt>client_instance_jwt</tt>
(<xref target="instance-assertion-auth"/>), which intrinsically requires the
<tt>actor_token</tt>.</t>
      <t>Re-minted Client Instance Assertions require <tt>cnf</tt> (<xref target="claims"/>).
A deployment whose workload identity system does not yet emit
per-instance keys has three options:</t>
      <ul spacing="normal">
        <li>
          <t><strong>Adapter pattern</strong>: an OAuth-aware adapter wraps an existing
workload identity system (Kubernetes projected service-account
tokens, AWS IMDS, GCP metadata server, Azure managed identity, a
SPIFFE control plane, etc.) and re-mints a Client Instance
Assertion with <tt>cnf</tt> from the underlying credential, signing with
a key registered in the issuer's descriptor. From the AS's
perspective, the adapter is the instance issuer
(<xref target="issuer-obligations"/>); the adapter enforces the per-client
authorization rule, since underlying workload-identity systems
typically do not know about OAuth clients or their
class-and-instance relationship. The adapter holds the
workload-identifier → <tt>client_id</tt> mapping, the OAuth signing
keys, and re-issues at the underlying credential's rotation
cadence. Recommended for non-SPIFFE deployments and for SPIFFE
deployments that can run an adapter.</t>
        </li>
        <li>
          <t><strong>Raw JWT-SVID compatibility</strong>: the SVID is presented as
<tt>actor_token</tt> without re-minting and the AS establishes binding
through a channel independent of the SVID
(<xref target="spiffe-client-id-omission"/>, <xref target="spiffe-binding"/>). This is the
SPIFFE-native path. For workloads with X.509-SVIDs, the
X.509-SVID can serve as the binding key in two shapes:  </t>
          <ul spacing="normal">
            <li>
              <t><strong>Re-minted with <tt>cnf</tt></strong>: an adapter mints a Client Instance
Assertion whose <tt>cnf.x5t#S256</tt> is the SHA-256 thumbprint of
the workload's X.509-SVID certificate. The workload presents
the assertion as <tt>actor_token</tt> and the same X.509-SVID at
TLS under <xref target="RFC8705"/>; the AS verifies that the TLS
certificate thumbprint matches <tt>cnf.x5t#S256</tt>. Use when an
OAuth-aware adapter is available.</t>
            </li>
            <li>
              <t><strong>Raw JWT-SVID with X.509 binding</strong>: the workload presents
its JWT-SVID directly as <tt>actor_token</tt> (no re-mint, no
<tt>cnf</tt>) and its X.509-SVID at TLS; the AS treats the
X.509-SVID as the sender-constraint binding under
<xref target="spiffe-binding"/>. Use when the workload runs against
unmodified SPIFFE infrastructure.</t>
            </li>
          </ul>
          <t>
Both ground the binding in the SPIFFE trust domain that issued
the SVID and avoid a separate DPoP key. Worked example in
<xref target="appendix-examples-spiffe"/>.</t>
        </li>
        <li>
          <t><strong>Defer adoption</strong> until the workload identity system can emit
per-instance keys directly.</t>
        </li>
      </ul>
      <t>ASes and OAuth client operators <bcp14>SHOULD NOT</bcp14> enable the
<tt>client_instance_jwt</tt> authentication method
(<xref target="instance-assertion-auth"/>) without <tt>cnf</tt>: that mode has no
fallback client credential, so a <tt>cnf</tt>-less assertion is fully
bearer at presentation (<xref target="security-instance-assertion-auth"/>).</t>
    </section>
    <section anchor="conformance">
      <name>Conformance</name>
      <t>An AS conforms to this document by implementing the actor token
grant extension (<xref target="grant-extension"/>) and processing for
<tt>urn:ietf:params:oauth:token-type:client-instance-jwt</tt>
(<xref target="token-endpoint"/>, <xref target="access-token"/>, <xref target="errors"/>, plus
<xref target="ACTOR-PROFILE"/>). Raw JWT-SVID compatibility
(<xref target="spiffe-compatibility"/>) and the <tt>client_instance_jwt</tt>
authentication method (<xref target="instance-assertion-auth"/>) are optional
capabilities; an AS that supports either <bcp14>MUST</bcp14> conform to its
respective section. A client using this profile <bcp14>MUST</bcp14> publish or
register <tt>instance_issuers</tt> metadata (<xref target="instance-issuers"/>) and
<bcp14>MUST</bcp14> ensure each listed issuer is authorized to attest its
instances. An instance issuer <bcp14>MUST</bcp14> mint assertions per <xref target="claims"/>,
<xref target="signing"/>, and <xref target="trust-model-delegation"/>. A resource server
<bcp14>MUST</bcp14> process delegated tokens per <xref target="ACTOR-PROFILE"/> and apply the
self-acting semantics in <xref target="rs-processing"/> when <tt>act</tt> is absent.</t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>This document inherits the security considerations of <xref target="RFC6749"/>,
<xref target="RFC7519"/>, <xref target="RFC7523"/>, <xref target="RFC8693"/>, <xref target="RFC8725"/>, <xref target="CIMD"/>, and
<xref target="ACTOR-PROFILE"/>.</t>
      <section anchor="security-trust-model">
        <name>Trust Model</name>
        <t>The normative trust model for this profile is in <xref target="trust-model"/>.
This subsection summarizes the security implications.</t>
        <t>A client delegates the authentication of its instances to one
or more instance issuers. A compromised or misconfigured instance
issuer can mint instance assertions that the AS will accept as legitimate
instances of the named client. Clients <bcp14>SHOULD</bcp14> list only
instance issuers under their own administrative control (or
contractually equivalent), and <bcp14>SHOULD</bcp14> set <tt>spiffe_id</tt>,
<tt>trust_domain</tt>, and <tt>signing_alg_values_supported</tt> to bound what
each issuer is allowed to assert. Clients using SPIFFE <bcp14>SHOULD</bcp14> include
<tt>spiffe_id</tt>; omitting it delegates the whole SPIFFE trust domain and
is appropriate only when every workload in that trust domain is
authorized to act as an instance of the client. After a client
detaches a compromised issuer, tokens
minted under the prior trust may continue to validate up to the
trust-withdrawal latency bound in <xref target="security-trust-withdrawal-latency"/>;
operators <bcp14>SHOULD</bcp14> plan incident response around this window.</t>
        <t>Client metadata is itself trust-affecting: an attacker who can
modify it can add a new instance issuer under their control.
Adding an <tt>instance_issuers</tt> entry, widening a descriptor's
<tt>spiffe_id</tt> or <tt>trust_domain</tt>, changing a descriptor's key source, or
enabling <tt>client_instance_jwt</tt> is equivalent to adding or expanding a
credential issuer for the client and <bcp14>SHOULD</bcp14> require high-assurance
change control by the client operator and AS.
Clients publishing CIMD metadata <bcp14>MUST</bcp14> protect the publication
channel (per <xref target="CIMD"/>'s requirement of HTTPS) and the storage
backing it; deployments using static registration <bcp14>MUST</bcp14> protect the
registration store and any administrative API used to update it.
ASes resolving CIMD documents inherit <xref target="CIMD"/>'s security
considerations covering transport, intermediary caches, and DNS.</t>
      </section>
      <section anchor="security-trust-withdrawal-latency">
        <name>Trust-Withdrawal Latency</name>
        <t>The trust-withdrawal latency, that is, the worst-case time from a
client metadata change to all derived access tokens having expired,
is approximately the sum of the metadata refresh interval (for CIMD,
the cache TTL; for static registration, the expected lag between an
admin update and AS-side propagation), the instance assertion's
<tt>exp</tt> window, the AS's JWKS or SPIFFE-bundle cache TTL for the
issuer, and the access token TTL. ASes <bcp14>SHOULD</bcp14> size these components
together so that the resulting latency matches their
incident-response target.</t>
        <t>Recommended defaults: instance assertion <tt>exp</tt> of 5 minutes or less
(<xref target="security-replay"/>); access-token TTL of 30 minutes or less paired
with a metadata refresh interval of 30 minutes or less, giving a
trust-withdrawal latency of approximately 65 minutes. Tighter
deployments (5-minute access tokens with 5-minute caches,
approximately 15 minutes) and looser deployments (60-minute tokens
with 1-hour caches, approximately 2 hours) are both common; looser
deployments <bcp14>SHOULD</bcp14> support active revocation (<xref target="revocation"/>) and
introspection-based status checks at the resource server. Operators
<bcp14>SHOULD</bcp14> treat this latency as a deployment-time SLO matching their
incident-response requirements.</t>
      </section>
      <section anchor="security-lifecycle">
        <name>Instance Lifecycle</name>
        <t>Client instances are short-lived in many deployments (containers,
function invocations, agent sessions). This profile relies on three
mechanisms to keep actor identity current:</t>
        <dl>
          <dt>Rotation:</dt>
          <dd>
            <t>Instance issuers <bcp14>SHOULD</bcp14> mint short-lived instance assertions
(<xref target="security-replay"/>). New tokens are issued continuously as
instances start, restart, or rotate keys.</t>
          </dd>
          <dt>Revocation within the validity window:</dt>
          <dd>
            <t>Within an instance assertion's <tt>exp</tt> window, the AS prevents reuse via the
<tt>jti</tt> replay rule (<xref target="security-replay"/>). A specific issued access
token, or all tokens associated with an instance, can be revoked
only via the AS's own revocation mechanisms (<xref target="revocation"/>); this
profile does not define a standardized revocation endpoint or
instance revocation list format.</t>
          </dd>
          <dt>Trust withdrawal:</dt>
          <dd>
            <t>To stop accepting instance assertions from an issuer (e.g., after a
workload identity compromise), the client removes the issuer
from <tt>instance_issuers</tt>, replaces or removes <tt>trust_domain</tt>, or
rotates <tt>jwks</tt> at the issuer level. The AS's response is governed
by <xref target="trust-lifecycle"/>: subsequent uses of access tokens whose
<tt>act</tt> references the withdrawn scope are treated as no longer
endorsed.</t>
          </dd>
        </dl>
        <t>Refresh windows are a particular concern: an access token refreshed
without a new instance assertion may carry stale instance identity long after
the original instance has terminated. ASes <bcp14>SHOULD</bcp14> prefer requiring a
fresh instance assertion on refresh (<xref target="refresh"/>), or set short refresh
intervals when instance identity is present.</t>
      </section>
      <section anchor="revocation">
        <name>Token Revocation</name>
        <t>This profile supports two complementary revocation models for access
tokens issued under it. Both build on <xref target="RFC7009"/>; deployments <bcp14>MAY</bcp14>
support either, both, or neither.</t>
        <t>After the AS has adopted updated client metadata
(<xref target="trust-lifecycle"/>), the AS <bcp14>SHOULD</bcp14> treat further use of access
tokens whose validated instance identity is no longer endorsed by
the client as invalid:</t>
        <ul spacing="normal">
          <li>
            <t>for delegation tokens, when the <tt>act</tt> claim names a removed
instance issuer or falls outside the descriptor's updated scope;</t>
          </li>
          <li>
            <t>for self-acting tokens, when the instance issuer recorded by the
AS at issuance time has been removed, or when the access token's
<tt>sub</tt> falls outside the descriptor's updated scope.</t>
          </li>
        </ul>
        <t>Where the deployment supports it, this is naturally enforced by
introspection (<xref target="introspection-on-revocation"/>) and short
access-token lifetimes; AS implementations <bcp14>MAY</bcp14> additionally revoke
such tokens per <xref target="RFC7009"/>, including via the per-instance
mechanism in <xref target="per-instance-revocation"/>. ASes <bcp14>MAY</bcp14> apply the same
policy to changes in a descriptor's <tt>jwks_uri</tt>, <tt>jwks</tt>, or
<tt>spiffe_bundle_endpoint</tt> keys that <xref target="CIMD"/> permits for changes in
client-level keys.</t>
        <section anchor="per-token-revocation">
          <name>Per-Token Revocation</name>
          <t>An AS that supports <xref target="RFC7009"/> revocation <bcp14>MAY</bcp14> accept the access
token (or its associated refresh token) as the token parameter and
revoke that specific issued token. This works unchanged for tokens
issued under this profile; no profile-specific extensions to the
revocation endpoint are required.</t>
        </section>
        <section anchor="per-instance-revocation">
          <name>Per-Instance Revocation</name>
          <t>When an instance is compromised or otherwise needs to be quarantined,
a deployment may need to invalidate all access tokens whose
validated instance issuer and instance subject identify that
instance, without enumerating every issued token. ASes implementing
this profile <bcp14>SHOULD</bcp14> support a per-instance revocation mode keyed by
the pair (instance issuer, instance subject):</t>
          <ul spacing="normal">
            <li>
              <t>for delegation tokens, the key is (<tt>act.iss</tt>, <tt>act.sub</tt>);</t>
            </li>
            <li>
              <t>for self-acting tokens, the key is the instance issuer recorded by
the AS at issuance time together with the access token's <tt>sub</tt>;</t>
            </li>
            <li>
              <t>invalidates all currently-active access tokens matching that key,
with descriptor scope as an optional additional filter;</t>
            </li>
            <li>
              <t>prevents issuance of new access tokens with that instance
issuer-and-subject pair as actor or principal until a follow-up
condition is met (for example, expiration of an internal blocklist
entry, or removal of the instance from the workload identity
system).</t>
            </li>
          </ul>
          <t>The mechanism for triggering per-instance revocation is
deployment-specific and out of scope for this document.</t>
        </section>
        <section anchor="introspection-on-revocation">
          <name>Introspection Behavior on Revocation</name>
          <t>When an AS supports introspection (<xref target="RFC7662"/>), introspection
responses for access tokens issued under this profile <bcp14>MUST</bcp14> honor
both per-token revocation and per-instance revocation: an
introspection response <bcp14>MUST</bcp14> return active = false for any access
token that has been revoked under either model. Introspection <bcp14>MUST</bcp14>
also honor the trust update rules in <xref target="trust-lifecycle"/>: when the
AS has adopted updated client metadata that removes an instance
issuer or narrows a descriptor's scope so that an issued access
token's <tt>act</tt> (or, for self-acting tokens, <tt>sub</tt>) is no longer
endorsed, introspection responses for that access token <bcp14>MUST</bcp14> return
active = false once the AS has applied the update. Active
introspection responses <bcp14>SHOULD</bcp14> include the access token's top-level
<tt>cnf</tt> so that introspection-based PoP has the binding key
(delegation case follows <xref target="ACTOR-PROFILE"/>); for self-acting
tokens, <tt>sub_profile</tt> and <tt>cnf</tt> <bcp14>SHOULD</bcp14> also be returned.</t>
        </section>
        <section anchor="revocation-refresh">
          <name>Revocation and Refresh Tokens</name>
          <t>When a refresh token is sender-constrained to the originating
instance (<xref target="refresh"/>), per-instance revocation <bcp14>MUST</bcp14> also revoke
the refresh token (and prevent any further access tokens it would
mint). This profile does not define successor-instance refresh;
deployments that need cross-instance session continuity use the
separate mechanisms described in <xref target="refresh"/>.</t>
        </section>
      </section>
      <section anchor="security-replay">
        <name>Replay</name>
        <t>Actor tokens <bcp14>MUST</bcp14> include <tt>jti</tt>, <tt>exp</tt>, and <tt>iat</tt> (<xref target="claims"/>),
except for raw JWT-SVIDs accepted under <xref target="spiffe-client-id-omission"/>.</t>
        <t>After identifying the issuer and validating the signature, the AS
<bcp14>MUST</bcp14> reject a token whose (<tt>iss</tt>, <tt>jti</tt>) pair has already been
seen within the token's validity window, and <bcp14>MUST</bcp14> retain
replay-cache entries at least until the token's <tt>exp</tt> plus any
allowed clock skew. For raw JWT-SVIDs, this check applies only
when <tt>jti</tt> is present; otherwise replay is bounded by
sender-constraint, short SVID lifetimes, and audience restriction.</t>
        <t>An AS <bcp14>MAY</bcp14> skip the replay check for cnf-bound assertions that have
been PoP-verified at presentation, treating them as reusable
within their <tt>exp</tt> window, provided the deployment documents this
behavior and applies rate limits, monitoring, and audit logging.
This shifts the blast radius of <tt>cnf</tt>-key compromise from one
access token per assertion to the rate-limit ceiling within <tt>exp</tt>;
the rate limit is therefore the bound on that threat. The <bcp14>MUST</bcp14>
applies unconditionally to assertions without a verified <tt>cnf</tt>.</t>
        <t>Issuers <bcp14>SHOULD</bcp14> use short lifetimes (five minutes or less). On
refresh (<xref target="refresh"/>), AS implementations <bcp14>SHOULD</bcp14> prefer requiring
a fresh instance assertion. Distributed AS deployments <bcp14>MUST</bcp14> share
the replay cache or coordinate to prevent cross-replica replay,
except on cnf-bound paths in reusable mode where cnf+PoP
verification is correctness-preserving across replicas.</t>
        <t>A compromised instance-issuer signing key creates a
denial-of-service surface: an attacker can mint validly-signed
assertions with arbitrary <tt>jti</tt> values. ASes <bcp14>SHOULD</bcp14> apply
per-issuer rate limits and bounded cache caps; a sustained high
rate of distinct <tt>jti</tt> values from a single issuer is a signal of
compromise.</t>
      </section>
      <section anchor="security-audience">
        <name>Audience and Confused Deputy</name>
        <t>The <tt>aud</tt> claim binds the instance assertion to a specific AS, preventing one
AS from replaying it against another (<xref target="RFC7523"/> Section 3). The
<tt>client_id</tt> claim, which this document treats as a binding (not as
actor identity), prevents an instance assertion issued for one client
from being presented under a different client's authentication.</t>
      </section>
      <section anchor="security-instance-assertion-auth">
        <name>Trust-Root Collapse</name>
        <t>The <tt>client_instance_jwt</tt> authentication method
(<xref target="instance-assertion-auth"/>) collapses two trust roots (client
credential and instance issuer) into one. Compromise of any listed
instance issuer is sufficient to mint tokens that authenticate as
the client. Modes such as <tt>private_key_jwt</tt> require an attacker to
possess both the instance issuer's signing key and the client's
private key; that two-key property holds only when the two keys
live in different security domains (e.g., the client's key in an
HSM or signing service distinct from the runtime). Where genuine
separation is not feasible, deployments <bcp14>SHOULD</bcp14> use
<xref target="instance-assertion-auth"/> explicitly rather than rely on nominal
two-key authentication that does not actually separate custody.</t>
        <t>When <tt>client_instance_jwt</tt> is used, clients <bcp14>SHOULD</bcp14> constrain each
instance issuer's authority through <tt>spiffe_id</tt>, <tt>trust_domain</tt>,
and <tt>signing_alg_values_supported</tt>, and <bcp14>SHOULD</bcp14> list only the
minimum set of <tt>instance_issuers</tt> necessary. Trust withdrawal under
this auth method has immediate consequences: removing an instance
issuer from <tt>instance_issuers</tt> (or narrowing its descriptor scope)
invalidates client authentications that depended on that issuer's
endorsement, and the AS <bcp14>MUST</bcp14> stop accepting <tt>client_instance_jwt</tt>
authentications via the removed or narrowed issuer once it has
applied the metadata update (<xref target="trust-lifecycle"/>).</t>
      </section>
      <section anchor="security-mode-switch">
        <name>Mode-Switch Between Delegation and Self-Acting</name>
        <t>Whether an issued access token represents delegation or self-acting
(<xref target="access-token-classification"/>) determines whether the instance is
exposed to resource servers as <tt>act</tt> or as <tt>sub</tt>. An adversary that can
influence classification could escalate privileges, for example by
inducing the AS to drop a <tt>sub</tt> belonging to a user and re-anchor the
token on the instance's <tt>sub</tt>. The classification rule in
<xref target="access-token-classification"/> is determined by the grant type, not
by comparison of attacker-influenceable subject strings; ASes <bcp14>MUST
NOT</bcp14> employ heuristic or fuzzy matching of assertion contents to
override the table. In particular, ASes <bcp14>MUST NOT</bcp14> normalize either
side of any comparison they perform on subject identifiers (no
Unicode normalization, no case folding, no percent-decoding beyond
what <xref target="RFC7519"/> requires for JSON parsing). When classification is
ambiguous (for example, custom grants not listed in the table), the
AS <bcp14>MUST</bcp14> refuse rather than guess.</t>
      </section>
      <section anchor="security-binding">
        <name>Sender-Constraint Requirement</name>
        <t>Without sender-constraint, an <tt>act</tt> claim is an assertion about who
acted, not a binding enforced at the resource server: any party in
possession of the access token can present it as the named actor.
<xref target="sender-constrained"/> therefore requires sender-constrained access
tokens and forbids bearer issuance under this profile. Per
<xref target="ACTOR-PROFILE"/>, the resource server validates proof of
possession against the access token's top-level <tt>cnf</tt> only;
confirmation members inside an <tt>act</tt> object are actor context for
audit and correlation, not a binding the RS independently verifies.</t>
      </section>
      <section anchor="security-delegation-control">
        <name>Delegation Control</name>
        <t>Unbounded delegation chains permit privilege amplification across
boundaries. AS implementations <bcp14>MUST</bcp14> enforce a local maximum
delegation depth (<xref target="ACTOR-PROFILE"/>). <xref target="ACTOR-PROFILE"/> recommends
supporting at least depth 4 for cross-domain interop; deployments
imposing lower ceilings should weigh interoperability against the
privilege-amplification surface they are willing to allow.</t>
      </section>
      <section anchor="security-privacy">
        <name>Privacy</name>
        <t>A client instance assertion reveals fine-grained workload identity
to the AS and, after issuance, to resource servers via the <tt>act</tt> claim
(delegation case) or the access token's top-level <tt>sub</tt> (self-acting
case). Exposing per-instance identity to resource servers is the
deliberate purpose of this profile (it is what enables
instance-level audit, authorization, and binding downstream), but
it has privacy and operational consequences:</t>
        <ul spacing="normal">
          <li>
            <t>Resource servers gain visibility into the deploying organization's
internal workload structure, including (depending on <tt>sub</tt>) cluster
names, namespaces, function instance IDs, or session identifiers.
Resource server operators <bcp14>SHOULD</bcp14> treat this information with the
same care as any other identity attribute received from an AS, and
<bcp14>SHOULD NOT</bcp14> log or propagate it more broadly than necessary.</t>
          </li>
          <li>
            <t>Naming conventions in <tt>sub</tt> may inadvertently encode sensitive
details. Issuers and clients <bcp14>SHOULD</bcp14> avoid encoding
identifiers of human users, secret material, or internal
infrastructure topology in <tt>sub</tt>, and <bcp14>SHOULD</bcp14> prefer opaque or
hierarchical identifiers (e.g., a SPIFFE path) whose minimum
granularity matches the auditing need.</t>
          </li>
        </ul>
        <t>The error response guidance in <xref target="errors"/> extends to logs and audit
trails: instance assertion contents <bcp14>SHOULD</bcp14> be logged at a level commensurate
with the sensitivity of the workload identity they convey.</t>
        <t>For incident response, per-instance revocation (<xref target="per-instance-revocation"/>),
and operational audit, ASes issuing access tokens under this
profile <bcp14>SHOULD</bcp14> log enough information at issuance time to support
per-instance revocation (<xref target="per-instance-revocation"/>) and incident
response, subject to the sensitivity guidance above.</t>
      </section>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <section anchor="iana-token-type">
        <name>OAuth Token Type</name>
        <t>IANA is requested to register the following value in the "OAuth URI"
registry established by <xref target="RFC6755"/> (and used by <xref target="RFC8693"/> for
<tt>actor_token_type</tt> values):</t>
        <dl>
          <dt>URN:</dt>
          <dd>
            <t><tt>urn:ietf:params:oauth:token-type:client-instance-jwt</tt></t>
          </dd>
          <dt>Common Name:</dt>
          <dd>
            <t>OAuth 2.0 Client Instance Assertion</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t>This document</t>
          </dd>
        </dl>
      </section>
      <section anchor="iana-client-metadata">
        <name>OAuth Dynamic Client Registration Metadata</name>
        <t>IANA is requested to register the following parameters in the "OAuth
Dynamic Client Registration Metadata" registry established by
<xref target="RFC7591"/>. The Change Controller for each entry is IETF.</t>
        <section anchor="instanceissuers">
          <name>instance_issuers</name>
          <dl>
            <dt>Client Metadata Name:</dt>
            <dd>
              <t><tt>instance_issuers</tt></t>
            </dd>
            <dt>Client Metadata Description:</dt>
            <dd>
              <t>Trusted issuers of client instance assertions for this client.</t>
            </dd>
            <dt>Specification Document(s):</dt>
            <dd>
              <t><xref target="instance-issuers"/> of this document</t>
            </dd>
          </dl>
        </section>
      </section>
      <section anchor="iana-auth-method">
        <name>OAuth Token Endpoint Authentication Method</name>
        <t>IANA is requested to register the following value in the "OAuth Token
Endpoint Authentication Methods" registry established by <xref target="RFC8414"/>:</t>
        <dl>
          <dt>Token Endpoint Authentication Method Name:</dt>
          <dd>
            <t><tt>client_instance_jwt</tt></t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t><xref target="instance-assertion-auth"/> of this document</t>
          </dd>
        </dl>
      </section>
      <section anchor="iana-as-metadata">
        <name>OAuth Authorization Server Metadata</name>
        <t>IANA is requested to register the following parameters in the "OAuth
Authorization Server Metadata" registry established by <xref target="RFC8414"/>.
The Change Controller for each entry is IETF.</t>
        <section anchor="actortokentypessupported">
          <name>actor_token_types_supported</name>
          <dl>
            <dt>Metadata Name:</dt>
            <dd>
              <t><tt>actor_token_types_supported</tt></t>
            </dd>
            <dt>Metadata Description:</dt>
            <dd>
              <t>JSON array of <tt>actor_token_type</tt> values supported at the token
endpoint.</t>
            </dd>
            <dt>Specification Document(s):</dt>
            <dd>
              <t><xref target="as-metadata"/> of this document</t>
            </dd>
          </dl>
        </section>
      </section>
      <section anchor="iana-media-type">
        <name>Media Type</name>
        <t>IANA is requested to register the following media type in the
"Media Types" registry:</t>
        <dl>
          <dt>Type name:</dt>
          <dd>
            <t>application</t>
          </dd>
          <dt>Subtype name:</dt>
          <dd>
            <t>client-instance+jwt</t>
          </dd>
          <dt>Required parameters:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Optional parameters:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Encoding considerations:</dt>
          <dd>
            <t>binary; A Client Instance Assertion is a JWT; JWT values are
encoded as a series of base64url-encoded values separated by
period characters.</t>
          </dd>
          <dt>Security considerations:</dt>
          <dd>
            <t>See <xref target="security"/> of this document.</t>
          </dd>
          <dt>Interoperability considerations:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Published specification:</dt>
          <dd>
            <t>This document.</t>
          </dd>
          <dt>Applications that use this media type:</dt>
          <dd>
            <t>OAuth 2.0 authorization servers and clients implementing this
profile.</t>
          </dd>
          <dt>Fragment identifier considerations:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Additional information:</dt>
          <dd>
            <t>Magic number(s): N/A; File extension(s): N/A; Macintosh file type
code(s): N/A</t>
          </dd>
          <dt>Person &amp; email address to contact for further information:</dt>
          <dd>
            <t>Karl McGuinness <eref target="mailto:public@karlmcguinness.com">public@karlmcguinness.com</eref></t>
          </dd>
          <dt>Intended usage:</dt>
          <dd>
            <t>COMMON</t>
          </dd>
          <dt>Restrictions on usage:</dt>
          <dd>
            <t>none</t>
          </dd>
          <dt>Author:</dt>
          <dd>
            <t>Karl McGuinness</t>
          </dd>
          <dt>Change controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
        </dl>
        <t>This media type, when used as a value of the <tt>typ</tt> JWS protected
header parameter (<xref target="RFC7515"/> Section 4.1.9), <bcp14>MUST</bcp14> be
<tt>client-instance+jwt</tt> (per <xref target="RFC8725"/> Section 3.11; the
<tt>application/</tt> prefix is omitted).</t>
      </section>
      <section anchor="iana-entity-profile">
        <name>OAuth Entity Profile</name>
        <t>IANA is requested to register the following value in the "OAuth
Entity Profiles" registry established by <xref target="ENTITY-PROFILES"/>. This
registration is contingent on the establishment of that registry.</t>
        <dl>
          <dt>Profile Name:</dt>
          <dd>
            <t><tt>client_instance</tt></t>
          </dd>
          <dt>Profile Description:</dt>
          <dd>
            <t>A concrete runtime instance of an OAuth client identified by a
<tt>client_id</tt>.</t>
          </dd>
          <dt>Profile Usage Location:</dt>
          <dd>
            <t>Actor Profile</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t>This document</t>
          </dd>
        </dl>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC6749">
          <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="RFC6755">
          <front>
            <title>An IETF URN Sub-Namespace for OAuth</title>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>This document establishes an IETF URN Sub-namespace for use with OAuth-related specifications. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6755"/>
          <seriesInfo name="DOI" value="10.17487/RFC6755"/>
        </reference>
        <reference anchor="RFC7515">
          <front>
            <title>JSON Web Signature (JWS)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7515"/>
          <seriesInfo name="DOI" value="10.17487/RFC7515"/>
        </reference>
        <reference anchor="RFC7517">
          <front>
            <title>JSON Web Key (JWK)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>A JSON Web Key (JWK) is a JavaScript Object Notation (JSON) data structure that represents a cryptographic key. This specification also defines a JWK Set JSON data structure that represents a set of JWKs. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries established by that specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7517"/>
          <seriesInfo name="DOI" value="10.17487/RFC7517"/>
        </reference>
        <reference anchor="RFC7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7519"/>
          <seriesInfo name="DOI" value="10.17487/RFC7519"/>
        </reference>
        <reference anchor="RFC7523">
          <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="RFC7591">
          <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>
        <reference anchor="RFC7662">
          <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="RFC7800">
          <front>
            <title>Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="April" year="2016"/>
            <abstract>
              <t>This specification describes how to declare in a JSON Web Token (JWT) that the presenter of the JWT possesses a particular proof-of- possession key and how the recipient can cryptographically confirm proof of possession of the key by the presenter. Being able to prove possession of a key is also sometimes described as the presenter being a holder-of-key.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7800"/>
          <seriesInfo name="DOI" value="10.17487/RFC7800"/>
        </reference>
        <reference anchor="RFC8414">
          <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="RFC8693">
          <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="RFC8705">
          <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="RFC8725">
          <front>
            <title>JSON Web Token Best Current Practices</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="D. Hardt" initials="D." surname="Hardt"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>JSON Web Tokens, also known as JWTs, are URL-safe JSON-based security tokens that contain a set of claims that can be signed and/or encrypted. JWTs are being widely used and deployed as a simple security token format in numerous protocols and applications, both in the area of digital identity and in other application areas. This Best Current Practices document updates RFC 7519 to provide actionable guidance leading to secure implementation and deployment of JWTs.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="225"/>
          <seriesInfo name="RFC" value="8725"/>
          <seriesInfo name="DOI" value="10.17487/RFC8725"/>
        </reference>
        <reference anchor="RFC9068">
          <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="RFC9449">
          <front>
            <title>OAuth 2.0 Demonstrating Proof of Possession (DPoP)</title>
            <author fullname="D. Fett" initials="D." surname="Fett"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="D. Waite" initials="D." surname="Waite"/>
            <date month="September" year="2023"/>
            <abstract>
              <t>This document describes a mechanism for sender-constraining OAuth 2.0 tokens via a proof-of-possession mechanism on the application level. This mechanism allows for the detection of replay attacks with access and refresh tokens.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9449"/>
          <seriesInfo name="DOI" value="10.17487/RFC9449"/>
        </reference>
        <reference anchor="ACTOR-PROFILE">
          <front>
            <title>OAuth Actor Profile for Delegation</title>
            <author fullname="Karl McGuinness" initials="K." surname="McGuinness">
              <organization>Independent</organization>
            </author>
            <date day="30" month="April" year="2026"/>
            <abstract>
              <t>   OAuth deployments increasingly involve agents and workloads acting on
   behalf of human users across organizational boundaries.  Existing
   specifications provide relevant building blocks (notably the act
   claim from RFC 8693 Token Exchange) but do not define a consistent
   profile for representing delegated actor relationships across JWT
   assertion grants (RFC 7523), JWT access tokens (RFC 9068), and
   Transaction Tokens, nor for classifying actor entity types or
   signaling support between authorization servers and resource servers.
   The result is inconsistent actor representation and actor-
   representation interoperability gaps that force deployments to rely
   on proprietary conventions.

   This document defines the OAuth Actor Profile for Delegation.  It
   specifies a common act claim structure extended with sub_profile for
   entity-type classification, processing rules for authorization
   servers and resource servers across the three token families and
   their Token Exchange inputs, and OAuth discovery metadata parameters
   for advertising actor-profile support.  The profile applies uniformly
   across token types and integrates with existing sender-constraint
   mechanisms (DPoP, mTLS).  It does not standardize the policies by
   which systems determine whether a given actor is permitted to act for
   a subject; those decisions remain deployment-specific.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mcguinness-oauth-actor-profile-00"/>
        </reference>
        <reference anchor="ENTITY-PROFILES">
          <front>
            <title>OAuth 2.0 Entity Profiles</title>
            <author fullname="Sreyantha Chary Mora" initials="S. C." surname="Mora">
              <organization>Microsoft Corporation</organization>
            </author>
            <author fullname="Pamela Dingle" initials="P." surname="Dingle">
              <organization>Microsoft Corporation</organization>
            </author>
            <author fullname="Karl McGuinness" initials="K." surname="McGuinness">
              <organization>Independent</organization>
            </author>
            <date day="15" month="April" year="2026"/>
            <abstract>
              <t>   This specification introduces Entity Profiles as a mechanism to
   categorize OAuth 2.0 entities—clients and subjects—based on their
   operational context.  Entity Profiles provide structured descriptors
   for the client initiating the OAuth flow and the subject represented
   in tokens.  This document defines new JWT Claim names and metadata
   parameters for use in JWTs issued or consumed in OAuth flows,
   including but not limited to access tokens, ID tokens, JWT
   authorization grant assertions, and transaction tokens, as well as in
   token introspection responses, dynamic client registration, and
   Authorization Server metadata.  It also defines vocabulary for
   classifying acting entities within delegation chains.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mora-oauth-entity-profiles-01"/>
        </reference>
        <reference anchor="SPIFFE-CLIENT-AUTH">
          <front>
            <title>OAuth SPIFFE Client Authentication</title>
            <author fullname="Arndt Schwenkschuster" initials="A." surname="Schwenkschuster">
              <organization>Defakto Security</organization>
            </author>
            <author fullname="Pieter Kasselman" initials="P." surname="Kasselman">
              <organization>Defakto Security</organization>
            </author>
            <author fullname="Scott Rose" initials="S." surname="Rose">
              <organization>NIST</organization>
            </author>
            <author fullname="Stian Thorgersen" initials="S." surname="Thorgersen">
              <organization>IBM</organization>
            </author>
            <date day="2" month="March" year="2026"/>
            <abstract>
              <t>   This specification profiles the Assertion Framework for OAuth 2.0
   Client Authentication and Authorization Grants [RFC7521], the JWT
   Profile for OAuth 2.0 Client Authentication and Authorization Grants
   [RFC7523], and OAuth 2.0 Attestation-Based Client Authentication
   [I-D.draft-ietf-oauth-attestation-based-client-auth] to enable the
   use of SPIFFE Verifiable Identity Documents (SVIDs) as client
   credentials in OAuth 2.0.  It defines how OAuth clients with SPIFFE
   credentials can authenticate to OAuth authorization servers using
   their JWT-SVIDs, WIT-SVIDs, or X.509-SVIDs without the need for
   client secrets.  This approach enhances security by enabling seamless
   integration between SPIFFE-enabled workloads and OAuth authorization
   servers while eliminating the need to distribute and manage shared
   secrets such as static client secrets.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-spiffe-client-auth-01"/>
        </reference>
        <reference anchor="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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC7009">
          <front>
            <title>OAuth 2.0 Token Revocation</title>
            <author fullname="T. Lodderstedt" initials="T." role="editor" surname="Lodderstedt"/>
            <author fullname="S. Dronia" initials="S." surname="Dronia"/>
            <author fullname="M. Scurtescu" initials="M." surname="Scurtescu"/>
            <date month="August" year="2013"/>
            <abstract>
              <t>This document proposes an additional endpoint for OAuth authorization servers, which allows clients to notify the authorization server that a previously obtained refresh or access token is no longer needed. This allows the authorization server to clean up security credentials. A revocation request will invalidate the actual token and, if applicable, other tokens based on the same authorization grant.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7009"/>
          <seriesInfo name="DOI" value="10.17487/RFC7009"/>
        </reference>
        <reference anchor="CIMD">
          <front>
            <title>OAuth Client ID Metadata Document</title>
            <author fullname="Aaron Parecki" initials="A." surname="Parecki">
              <organization>Okta</organization>
            </author>
            <author fullname="Emelia Smith" initials="E." surname="Smith">
         </author>
            <date day="1" month="March" year="2026"/>
            <abstract>
              <t>   This specification defines a mechanism through which an OAuth client
   can identify itself to authorization servers, without prior dynamic
   client registration or other existing registration.  This is through
   the usage of a URL as a client_id in an OAuth flow, where the URL
   refers to a document containing the necessary client metadata,
   enabling the authorization server to fetch the metadata about the
   client as needed.

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

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-workload-creds-01"/>
        </reference>
        <reference anchor="SPIFFE" target="https://spiffe.io/docs/latest/spiffe-about/spiffe-concepts/">
          <front>
            <title>SPIFFE: Secure Production Identity Framework For Everyone</title>
            <author>
              <organization>SPIFFE</organization>
            </author>
            <date year="2024"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 2444?>

<section numbered="false" anchor="design-rationale">
      <name>Design Rationale</name>
      <t>This appendix records design choices that motivated the normative
text.</t>
      <section numbered="false" anchor="why-not-a-clientinstance-request-parameter">
        <name>Why not a <tt>client_instance</tt> request parameter?</name>
        <t>A new top-level <tt>client_instance</tt> parameter would have to flow through
the authorization request, the token request, introspection, the
access token, and several existing extensions. Each is a separate
specification touch-point and a deployment cliff. Reusing <tt>actor_token</tt>
keeps the protocol surface unchanged.</t>
      </section>
      <section numbered="false" anchor="rationale-no-instance-assertion-param">
        <name>Why not a dedicated <tt>client_instance_assertion</tt> request parameter?</name>
        <t>A dedicated <tt>client_instance_assertion</tt> parameter would name what
this profile carries on the wire more directly than a typed
<tt>actor_token</tt>. This document reuses <tt>actor_token</tt> for three reasons.</t>
        <t>First, this document also defines the actor token grant extension
(<xref target="grant-extension"/>): a wire mechanism for any <tt>actor_token_type</tt>
to appear on grants beyond token-exchange. A separate
<tt>client_instance_assertion</tt> parameter would not eliminate
<tt>actor_token</tt>; it would parallel it for one use case, doubling the
wire surface.</t>
        <t>Second, in delegated flows the instance is the actor, and
<tt>actor_token</tt> is already the established wire mechanism for naming
the actor (required by <xref target="RFC8693"/> on token-exchange). Introducing
<tt>client_instance_assertion</tt> alongside <tt>actor_token</tt> would carry the
same JWT in two parameter slots for delegated flows. Using
<tt>actor_token</tt> for both keeps the request side canonical with the
token side, where the validated artifact populates <tt>act</tt> (delegation
case) or <tt>sub</tt> (self-acting case) per <xref target="ACTOR-PROFILE"/>.</t>
        <t>Third, an <tt>actor_token_type</tt> URN is a well-known IANA-registered
extension point; clients with existing <tt>actor_token</tt> plumbing pick
up <tt>client-instance-jwt</tt> without parser changes.</t>
        <t>Profiles that prefer a dedicated request parameter can be defined
later as a wire-syntax sibling without changing the token shape
defined here.</t>
      </section>
      <section numbered="false" anchor="why-extend-actortoken-to-non-token-exchange-grants">
        <name>Why extend <tt>actor_token</tt> to non-token-exchange grants?</name>
        <t><xref target="RFC8693"/> already defines request parameters for presenting an
actor token and identifying its token type. Those parameters are not
specific to token exchange as a protocol concept; token exchange is
only the grant on which <xref target="RFC8693"/> defines them. Other grants also
need a way to identify the actor performing the request. Reusing the
existing parameter machinery avoids grant-specific actor parameters
and gives actor-token profiles a single token endpoint presentation
model.</t>
        <t>Client instance identity is one motivating example: the instance acts
on behalf of the subject (the human user or service principal) under
the authority of the client. Other actor delegation use cases
share the same presentation need. The only normative move in
<xref target="grant-extension"/> is permitting <tt>actor_token</tt> and
<tt>actor_token_type</tt> on additional grants; validation and access-token
representation remain token-type-specific.</t>
        <t>The actor token grant extension is intentionally separable from the specific
<tt>actor_token_type</tt> defined here. By isolating the actor token grant
extension (<xref target="grant-extension"/>), this document provides
future profiles a defined wire mechanism to build on, rather than
each profile re-litigating the question of whether <tt>actor_token</tt> may
appear on <tt>authorization_code</tt> or <tt>client_credentials</tt>. See
<xref target="other-actor-token-types"/>.</t>
        <t>If working group consensus prefers to progress the grant extension
independently from the client instance assertion profile, the
extension can be split into a companion specification without
changing the <tt>client-instance-jwt</tt> token type. In that structure,
this profile would depend on the companion grant-extension
specification for the wire-level permission to carry <tt>actor_token</tt>
and <tt>actor_token_type</tt> on non-token-exchange grants.</t>
      </section>
      <section numbered="false" anchor="why-client-metadata-as-the-trust-anchor-for-instance-issuers">
        <name>Why client metadata as the trust anchor for instance issuers?</name>
        <t>The trust relationship between a client and its instance
issuers is published in the client's registered metadata (either in
a CIMD document or in the AS's registration store). This keeps the
trust relationship auditable alongside other client metadata and
reuses existing freshness, caching, and key-rotation mechanisms.
Locating it elsewhere (in AS-side static configuration unrelated to
the client, or in a separate trust-relationship registry) would
have fragmented the surface and reduced the auditability of who
trusts whom.</t>
      </section>
      <section numbered="false" anchor="why-a-dedicated-actortokentype-urn">
        <name>Why a dedicated actor_token_type URN?</name>
        <t>The general-purpose JWT token type does not signal that the AS
should look up trust via the <tt>instance_issuers</tt> client metadata,
nor that <tt>client_id</tt> binding applies. A dedicated URN lets ASes route processing unambiguously
and lets clients advertise support via <tt>actor_token_types_supported</tt>.</t>
      </section>
      <section numbered="false" anchor="rationale-auth-method">
        <name>Why a <tt>token_endpoint_auth_method</tt> rather than a <tt>client_assertion_type</tt>?</name>
        <t><xref target="SPIFFE-CLIENT-AUTH"/> models its workload-identity-as-client-auth
mechanism as a <tt>client_assertion_type</tt>. The natural question is why
<xref target="instance-assertion-auth"/> does not.</t>
        <t>The two cases differ in what the JWT names. A SPIFFE JWT-SVID
presented as a <tt>client_assertion</tt> under <xref target="SPIFFE-CLIENT-AUTH"/> names
<em>the client</em> (its <tt>sub</tt> is the <tt>spiffe_id</tt> of the workload acting
as the client). The client-metadata listing of <tt>spiffe_id</tt>,
including the permitted "/*" path-segment wildcard, turns the SVID
into a credential for the client. There is no separate notion of
"instance" on the wire.</t>
        <t>A client instance assertion under this profile names <em>the
instance</em>: its <tt>sub</tt> is the instance identifier and its <tt>client_id</tt>
claim names the client. The same JWT is required to do double duty
only when the client chooses
<tt>token_endpoint_auth_method</tt> = <tt>client_instance_jwt</tt>; in every
other auth method, a separate client credential authenticates the
client and the instance assertion names the instance.</t>
        <t>Modeling the dual-use case as a <tt>client_assertion_type</tt> would have
required either (a) inventing a second token type identical to
client-instance-jwt to be the assertion, doubling the wire surface,
or (b) overloading <tt>client_assertion_type</tt> with the actor-token
URN, which conflicts with that URN's role as <tt>actor_token_type</tt>.
Modeling it as a <tt>token_endpoint_auth_method</tt> captures what is
actually happening, namely that the AS authenticates the client
implicitly from its client-metadata endorsement of the instance
assertion's issuer, while keeping <tt>client_assertion</tt> and
<tt>actor_token</tt> semantically distinct.</t>
      </section>
      <section numbered="false" anchor="rationale-self-acting">
        <name>Why reuse <tt>actor_token</tt> in the self-acting case?</name>
        <t>In the self-acting case (<xref target="access-token-self-acting"/>) the issued
access token's principal is the instance itself, not a separate
party. RFC 8693's "actor" framing literally describes the actor as
the party acting on behalf of the subject; with no other subject
present, the framing is technically a stretch.</t>
        <t>Two considerations specific to the self-acting case led to reuse
rather than introducing a parallel "subject_assertion" parameter
(the general argument against a new request parameter is in
<xref target="rationale-no-instance-assertion-param"/>):</t>
        <ol spacing="normal" type="1"><li>
            <t><em>Classification belongs to the grant.</em> Whether the issued access
token represents delegation or self-acting is determined by the
grant (<xref target="access-token-classification"/>), not by the instance assertion.
The same instance assertion can correctly produce either shape depending
on the grant it accompanies.</t>
          </li>
          <li>
            <t><em>Deployment fit.</em> Workload identity systems already issue exactly
this artifact for both purposes. Requiring deployments to re-mint
the same JWT under a different parameter name to satisfy an
academic distinction would not improve security.</t>
          </li>
        </ol>
        <t>The cost is that <xref target="RFC8693"/>'s "actor" terminology must be read with
this profile's classification rules in mind. Implementations and
specification readers should treat <tt>actor_token</tt> in this profile as
"validated instance identity assertion," with the understanding that
its placement in the issued access token (<tt>act</tt> vs. <tt>sub</tt>) is governed by
<xref target="access-token-classification"/>.</t>
      </section>
    </section>
    <section numbered="false" anchor="appendix-examples">
      <name>Worked Examples</name>
      <t>This appendix gives end-to-end worked examples for each grant type
that interacts with this profile. Examples are non-normative and
omit unrelated headers or grant-specific details that do not affect
actor processing. Decoded <tt>actor_token</tt> blocks show only the JWT
payload; re-minted Client Instance Assertions also carry a JWS
protected header with <tt>typ</tt> set to <tt>client-instance+jwt</tt> per
<xref target="signing"/> (see the full example in <xref target="example-assertion"/>).
Timestamps and lifetimes in these examples are illustrative and do
not override the lifetime guidance in
<xref target="security-trust-withdrawal-latency"/> and
<xref target="security-replay"/>.</t>
      <t>The examples use a CIMD-style <tt>client_id</tt> for clarity; the same
flows apply identically to static-registration deployments
(<xref target="registration-models"/>), where the <tt>client_id</tt> is opaque or
AS-assigned and the metadata is read from the AS's registration
store rather than dereferenced.</t>
      <t>The examples share a common deployment:</t>
      <ul spacing="normal">
        <li>
          <t>OAuth client: https://app.example.com/agent</t>
        </li>
        <li>
          <t>Client metadata declares one instance issuer
https://workload.app.example.com (<tt>subject_syntax</tt> "uri",
<tt>signing_alg_values_supported</tt> containing <tt>ES256</tt>).</t>
        </li>
        <li>
          <t>AS: https://as.example.com.</t>
        </li>
        <li>
          <t>Resource server: https://api.example.com.</t>
        </li>
        <li>
          <t>All access tokens are <tt>DPoP</tt>-bound; the instance assertion's <tt>cnf</tt> carries
the instance's <tt>DPoP</tt> key thumbprint.</t>
        </li>
      </ul>
      <section numbered="false" anchor="appendix-examples-auth-code">
        <name>Authorization Code with User Delegation</name>
        <t>Alice authorizes the agent (client) at the AS through a
standard authorization_code flow. The agent runs as instance
inst-01, which presents an instance assertion at the token endpoint to
identify itself.</t>
        <t>Authorization request from the agent (abridged). <tt>dpop_jkt</tt> carries
the thumbprint of inst-01's DPoP key (matching the instance assertion's
<tt>cnf.jkt</tt>) to establish key-bound continuity per
<xref target="auth-time-consistency"/>:</t>
        <sourcecode type="http-message"><![CDATA[
GET /authorize?response_type=code
  &client_id=https%3A%2F%2Fapp.example.com%2Fagent
  &redirect_uri=https%3A%2F%2Fapp.example.com%2Fcb
  &scope=repo.write
  &state=xyz
  &code_challenge=...
  &code_challenge_method=S256
  &dpop_jkt=0ZcOCORZNYy...iguA4I HTTP/1.1
Host: as.example.com
]]></sourcecode>
        <t>The AS authenticates Alice, displays consent for the client
(per <xref target="auth-time-consistency"/> consent applies to the client as a
whole, not per-instance), binds the authorization code to the
<tt>dpop_jkt</tt> value per <xref target="RFC9449"/>, and redirects with an
authorization_code.</t>
        <t>Token request from instance inst-01:</t>
        <sourcecode type="http-message"><![CDATA[
POST /token HTTP/1.1
Host: as.example.com
Content-Type: application/x-www-form-urlencoded
DPoP: <DPoP proof bound to inst-01's key>

grant_type=authorization_code
&code=SplxlOBeZQQYbYS6WxSbIA
&redirect_uri=https%3A%2F%2Fapp.example.com%2Fcb
&client_id=https%3A%2F%2Fapp.example.com%2Fagent
&code_verifier=...
&client_assertion_type=
  urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer
&client_assertion=eyJhbGciOiJFUzI1NiIs... (private_key_jwt)
&actor_token=eyJhbGciOiJFUzI1NiIs...
&actor_token_type=
  urn%3Aietf%3Aparams%3Aoauth%3Atoken-type%3Aclient-instance-jwt
]]></sourcecode>
        <t>Decoded <tt>actor_token</tt>:</t>
        <sourcecode type="json"><![CDATA[
{
  "iss":         "https://workload.app.example.com",
  "sub":         "https://workload.app.example.com/inst-01",
  "aud":         "https://as.example.com",
  "client_id":   "https://app.example.com/agent",
  "sub_profile": "client_instance",
  "iat":         1770000000,
  "exp":         1770000300,
  "jti":         "ac-1a2b3c",
  "cnf":         { "jkt": "0ZcOCORZNYy...iguA4I" }
}
]]></sourcecode>
        <t>AS validation:</t>
        <ol spacing="normal" type="1"><li>
            <t>Authenticates the client (<tt>private_key_jwt</tt>).</t>
          </li>
          <li>
            <t>Recognizes <tt>actor_token_type</tt>.</t>
          </li>
          <li>
            <t>Resolves CIMD for the agent.</t>
          </li>
          <li>
            <t>Locates the descriptor by matching <tt>iss</tt>.</t>
          </li>
          <li>
            <t>Verifies signature via descriptor's <tt>jwks_uri</tt>.</t>
          </li>
          <li>
            <t>Validates JWT claims.</t>
          </li>
          <li>
            <t>Verifies <tt>actor_token</tt>.<tt>client_id</tt> == request <tt>client_id</tt> and
applies the <tt>(iss, jti)</tt> replay check.</t>
          </li>
          <li>
            <t>Applies AS-local maximum delegation depth.</t>
          </li>
          <li>
            <t><xref target="auth-time-consistency"/>: the request's <tt>client_id</tt> matches the
<tt>client_id</tt> that received the code, and the DPoP proof's
thumbprint matches both the code's <tt>dpop_jkt</tt> and the actor
token's <tt>cnf.jkt</tt>.</t>
          </li>
          <li>
            <t>Classifies as delegation; issues sender-constrained access token.</t>
          </li>
        </ol>
        <t>Issued access token:</t>
        <sourcecode type="json"><![CDATA[
{
  "iss":       "https://as.example.com",
  "aud":       "https://api.example.com",
  "sub":       "user:alice@example.com",
  "client_id": "https://app.example.com/agent",
  "scope":     "repo.write",
  "iat":       1770000005,
  "exp":       1770001805,
  "cnf":       { "jkt": "0ZcOCORZNYy...iguA4I" },
  "act": {
    "iss":         "https://workload.app.example.com",
    "sub":         "https://workload.app.example.com/inst-01",
    "sub_profile": "client_instance",
    "cnf":         { "jkt": "0ZcOCORZNYy...iguA4I" }
  }
}
]]></sourcecode>
        <t>The RS authorizes the request based on (alice, inst-01) per
<xref target="rs-processing"/>.</t>
      </section>
      <section numbered="false" anchor="appendix-examples-client-credentials">
        <name>Client Credentials (Self-Acting)</name>
        <t>A workload makes a <tt>client_credentials</tt> request with no human user
involved.</t>
        <t>Token request:</t>
        <sourcecode type="http-message"><![CDATA[
POST /token HTTP/1.1
Host: as.example.com
Content-Type: application/x-www-form-urlencoded
DPoP: <DPoP proof bound to inst-02's key>

grant_type=client_credentials
&scope=repo.read
&client_id=https%3A%2F%2Fapp.example.com%2Fagent
&client_assertion_type=
  urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer
&client_assertion=eyJhbGciOiJFUzI1NiIs...
&actor_token=eyJhbGciOiJFUzI1NiIs...
&actor_token_type=
  urn%3Aietf%3Aparams%3Aoauth%3Atoken-type%3Aclient-instance-jwt
]]></sourcecode>
        <t>Decoded <tt>actor_token</tt>:</t>
        <sourcecode type="json"><![CDATA[
{
  "iss":         "https://workload.app.example.com",
  "sub":         "https://workload.app.example.com/inst-02",
  "aud":         "https://as.example.com",
  "client_id":   "https://app.example.com/agent",
  "sub_profile": "client_instance",
  "iat":         1770000000,
  "exp":         1770000300,
  "jti":         "cc-2b3c4d",
  "cnf":         { "jkt": "PqR...XyZ" }
}
]]></sourcecode>
        <t>Issued access token (self-acting; no user, instance is the
principal):</t>
        <sourcecode type="json"><![CDATA[
{
  "iss":         "https://as.example.com",
  "aud":         "https://api.example.com",
  "sub":         "https://workload.app.example.com/inst-02",
  "sub_profile": "client_instance",
  "client_id":   "https://app.example.com/agent",
  "scope":       "repo.read",
  "iat":         1770000005,
  "exp":         1770001805,
  "cnf":         { "jkt": "PqR...XyZ" }
}
]]></sourcecode>
        <t>The RS treats <tt>sub</tt> as the workload identity (not a human user) per
<xref target="rs-processing"/>.</t>
      </section>
      <section numbered="false" anchor="appendix-examples-token-exchange">
        <name>Token Exchange with Prior Delegation Chain (Agent Spawns Sub-Agent)</name>
        <t>A parent agent's user-delegated access token is exchanged at the AS
for a sub-agent's downstream-resource-scoped token. The sub-agent
runtime presents an instance assertion; the inbound <tt>subject_token</tt>
already carries an <tt>act</tt> chain naming the parent agent. The
<tt>subject_token</tt> was issued by <tt>upstream.example.com</tt>, which
<tt>as.example.com</tt> trusts as a token issuer under local policy.</t>
        <t>Inbound <tt>subject_token</tt> (decoded; issued earlier when a parent agent
"agent-orchestrator-alpha" obtained access on the user's behalf):</t>
        <sourcecode type="json"><![CDATA[
{
  "iss":       "https://upstream.example.com",
  "aud":       "https://app.example.com/agent",
  "sub":       "user:alice@example.com",
  "scope":     "repo.write",
  "act": {
    "iss":         "https://platform.example.com",
    "sub":         "agent:orchestrator-alpha",
    "sub_profile": "client_instance"
  }
}
]]></sourcecode>
        <t>Token request:</t>
        <sourcecode type="http-message"><![CDATA[
POST /token HTTP/1.1
Host: as.example.com
Content-Type: application/x-www-form-urlencoded
DPoP: <DPoP proof bound to inst-03's key>

grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Atoken-exchange
&audience=https%3A%2F%2Fapi.example.com
&subject_token=eyJhbGciOiJFUzI1NiIs...
&subject_token_type=
  urn%3Aietf%3Aparams%3Aoauth%3Atoken-type%3Aaccess_token
&client_id=https%3A%2F%2Fapp.example.com%2Fagent
&client_assertion_type=
  urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer
&client_assertion=eyJhbGciOiJFUzI1NiIs...
&actor_token=eyJhbGciOiJFUzI1NiIs...
&actor_token_type=
  urn%3Aietf%3Aparams%3Aoauth%3Atoken-type%3Aclient-instance-jwt
]]></sourcecode>
        <t>The <tt>actor_token</tt> is the sub-agent runtime inst-03, with no <tt>act</tt> of
its own (per <xref target="ACTOR-PROFILE"/>, <tt>actor_token</tt> <bcp14>MUST NOT</bcp14> carry <tt>act</tt>).
Decoded <tt>actor_token</tt>:</t>
        <sourcecode type="json"><![CDATA[
{
  "iss":         "https://workload.app.example.com",
  "sub":         "https://workload.app.example.com/inst-03",
  "aud":         "https://as.example.com",
  "client_id":   "https://app.example.com/agent",
  "sub_profile": "client_instance",
  "iat":         1770000005,
  "exp":         1770000305,
  "jti":         "tx-3c4d5e",
  "cnf":         { "jkt": "AbC...123" }
}
]]></sourcecode>
        <t>Chain construction per <xref target="chain-merging"/>:</t>
        <ul spacing="normal">
          <li>
            <t>Outermost: the validated <tt>actor_token</tt> (sub-agent inst-03).</t>
          </li>
          <li>
            <t>Inner: the <tt>subject_token</tt>'s <tt>act</tt> chain, preserved
(agent-orchestrator-alpha).</t>
          </li>
        </ul>
        <t>Issued access token:</t>
        <sourcecode type="json"><![CDATA[
{
  "iss":       "https://as.example.com",
  "aud":       "https://api.example.com",
  "sub":       "user:alice@example.com",
  "client_id": "https://app.example.com/agent",
  "scope":     "repo.write",
  "iat":       1770000010,
  "exp":       1770001810,
  "cnf":       { "jkt": "AbC...123" },
  "act": {
    "iss":         "https://workload.app.example.com",
    "sub":         "https://workload.app.example.com/inst-03",
    "sub_profile": "client_instance",
    "cnf":         { "jkt": "AbC...123" },
    "act": {
      "iss":         "https://platform.example.com",
      "sub":         "agent:orchestrator-alpha",
      "sub_profile": "client_instance"
    }
  }
}
]]></sourcecode>
        <t>Resulting chain depth is 2, well within typical AS-local maximums.
The chain reads outward-in as: sub-agent inst-03 acted on behalf of
the parent agent agent-orchestrator-alpha, which acted on behalf of
user alice. Each <tt>act</tt> layer names a distinct runtime; resource
servers and audit pipelines can attribute the request to the
specific sub-agent that performed it.</t>
      </section>
      <section numbered="false" anchor="appendix-examples-spiffe">
        <name>SPIFFE Workload (Self-Acting, JWT-SVID Reuse with X.509-SVID Binding)</name>
        <t>A SPIFFE workload makes a <tt>client_credentials</tt> request. The workload
holds both a JWT-SVID and an X.509-SVID issued by its SPIFFE trust
domain. The workload presents the JWT-SVID directly as <tt>actor_token</tt>
under raw JWT-SVID compatibility (<xref target="spiffe-client-id-omission"/>)
and presents the X.509-SVID at TLS, so the certificate supplies the
sender-constraint binding (<xref target="RFC8705"/>). Because the actor_token is
a raw JWT-SVID, its JOSE header follows SPIFFE conventions and is
not required to carry <tt>typ</tt>=<tt>client-instance+jwt</tt>.</t>
        <t>The descriptor uses <tt>subject_syntax</tt>="spiffe" and the access token
is mTLS-bound, in place of the preamble's URI-syntax descriptor and
DPoP binding.</t>
        <t>Instance issuer descriptor:</t>
        <sourcecode type="json"><![CDATA[
{
  "issuer": "spiffe://example.com",
  "spiffe_bundle_endpoint": "https://example.com/spiffe/bundle",
  "subject_syntax": "spiffe",
  "trust_domain": "example.com",
  "spiffe_id": "spiffe://example.com/agent/*",
  "signing_alg_values_supported": ["ES256"]
}
]]></sourcecode>
        <t>Token request (TLS presents the workload's X.509-SVID; client
authentication uses <xref target="SPIFFE-CLIENT-AUTH"/> X.509 mode, so
<tt>client_assertion</tt> is omitted):</t>
        <sourcecode type="http-message"><![CDATA[
POST /token HTTP/1.1
Host: as.example.com
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials
&scope=repo.read
&client_id=https%3A%2F%2Fapp.example.com%2Fagent
&actor_token=eyJhbGciOiJFUzI1NiIs...
&actor_token_type=
  urn%3Aietf%3Aparams%3Aoauth%3Atoken-type%3Aclient-instance-jwt
]]></sourcecode>
        <t>Decoded <tt>actor_token</tt>:</t>
        <sourcecode type="json"><![CDATA[
{
  "iss":         "spiffe://example.com",
  "sub":         "spiffe://example.com/agent/inst-04",
  "aud":         "https://as.example.com",
  "iat":         1770000000,
  "exp":         1770000300
}
]]></sourcecode>
        <t>The AS verifies the JWT-SVID signature against the trust bundle,
that <tt>sub</tt> falls under the descriptor's <tt>spiffe_id</tt> prefix, that the
TLS-presented X.509-SVID has SAN URI exactly equal to the JWT-SVID's
<tt>sub</tt>, and binds the issued access token via <tt>cnf.x5t#S256</tt> set to
the certificate's SHA-256 thumbprint. Issued access token
(self-acting; TTL kept short relative to the X.509-SVID rotation
cycle):</t>
        <sourcecode type="json"><![CDATA[
{
  "iss":         "https://as.example.com",
  "aud":         "https://api.example.com",
  "sub":         "spiffe://example.com/agent/inst-04",
  "sub_profile": "client_instance",
  "client_id":   "https://app.example.com/agent",
  "scope":       "repo.read",
  "iat":         1770000005,
  "exp":         1770001805,
  "cnf":         { "x5t#S256": "AbCdE...xyz" }
}
]]></sourcecode>
        <t>At the resource server, the workload connects over mTLS with the
same X.509-SVID; the RS verifies that the certificate thumbprint
matches the access token's <tt>cnf.x5t#S256</tt>.</t>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The author thanks participants in the OAuth Working Group for
discussions on client instance identity, workload identity, and
actor-based delegation that informed this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA8y963YbV5Ym+P88RQy1ukywAFiS72RmdtOynFambWlEOd1Z
vWqJQSBIRgpAoBAB0ixZ9XMeYJ6gn6UfZZ5k9v3scyKCkt09vcZdq5MCEBEn
zmVfv/3t2WwWurpbVcfFwfPTfXddPJ4/LJ6s6mrTFc82bVduFlVx2rbVrqub
TVvs23pzVZwuumZXvGreVJv2IJQXF7vqBu7QlHCH2YKuntVy9azUqw/Couyq
q2Z3d1y03TKEZbPYlGt49nJXXnaz9eJqX282VdvO3nOn2cOHod1frOu2hX91
d1u4x7Onr74Nm/36otodhyU86Lh4/PDx57OHn8H/BRjeJ6He7o6Lbrdvu8cP
H3718HEod1UJ4z6rFvtd3d0dhNtm9+Zq1+y38OnP1UWBU9Ls6n8v8anFi13T
NYtmdRDeVHfw0+VxKGYFzRv+8eTZD9/g/9Ls4B8/w91WTbksni3hPeAB9Kt0
csNNtdlXcKPiQ55bFPyyB3hrXIk/40X4+bqsV7oE/6Wuust5s7vCL8rd4hq+
uO66bXv88cf4O/yovqnm+rOP8YOPL3bNbVt9THf4GK+8qrvr/QVcGxfm49+6
UnifFSxG2/kx2OVzfsa8bn7znX/zBfPrbg1TGEqaW1w6GFtRXO5XK96Ffy13
q+KHxZ/lfvQtzE65kXWAPbZZVttqg6tJ31Y869v9xape/Jc3cL17tUWzDmHT
7NZw8Q2t8Mtvn3z+xadf2Z+ffSZ/fvHZI/fnF/HPr+zPx5/Yn1890j8///yx
/vnlw4fy55efPvpU//z8K73syy8efmZ/PtY/v3r4+Zf656c8stMnr56/nL14
+fzbZ98/hVeefTPvzXGJO3y23TWX9aqCa57++OrZq7/rRWdyVbMr5fe8+/UC
nNmzF8++/fbp7Mn3z+Da2elPr77ji3BLykXttr68rHQ98aMQ6s1lNqFfwEnG
P/Hw9W6he2E5W1ddCUKhnIHM2a95/X5+9sPZ09npyyf+2bf1uoVNAwfCfvHk
5dNvzno/uZXDPVvsqmV8pWPaGCpT5bOCJEyFB3m5X9CZVpFQfLuDzYc3K74F
mfr0ptrdNZvqgG9T7q4qODl6cHhK6LQ0i/ZjPljy6ay8aPb2j0UDe3/btR/T
fWzLF7Knj2W09IkJy09DmM1mRXnRdjtY4hBeXddt0W6rRX1ZL1gWLavLGnZC
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

-->

</rfc>
