<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-mcguinness-oauth-client-instance-assertion-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="oauth-client-instance-assertion">OAuth 2.0 Client Instance Assertion</title>
    <seriesInfo name="Internet-Draft" value="draft-mcguinness-oauth-client-instance-assertion-01"/>
    <author fullname="Karl McGuinness">
      <organization>Independent</organization>
      <address>
        <email>public@karlmcguinness.com</email>
      </address>
    </author>
    <date year="2026" month="June" day="23"/>
    <area>Security</area>
    <workgroup>Web Authorization Protocol</workgroup>
    <keyword>OAuth</keyword>
    <keyword>CIMD</keyword>
    <keyword>Workload Identity</keyword>
    <keyword>Client Instance</keyword>
    <keyword>SPIFFE</keyword>
    <abstract>
      <?line 70?>

<t>This specification defines the Client Instance Assertion: a signed
JWT identifying a concrete runtime instance of an OAuth 2.0 client.
It registers the <tt>client_instance_assertion</tt> request parameter for
carrying the assertion at the OAuth 2.0 token endpoint on the
<tt>authorization_code</tt>, <tt>client_credentials</tt>, <tt>refresh_token</tt>, and
JWT bearer (RFC 7523) grants; on the token-exchange grant (RFC
8693), the same assertion is presented as <tt>actor_token</tt> with
<tt>actor_token_type</tt> set to
<tt>urn:ietf:params:oauth:token-type:client-instance-jwt</tt>, also
registered by this specification.</t>
      <t>This specification 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 100?>

<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 deployments where a single OAuth client identifier
represents many short-lived runtime instances, resource servers
and authorization servers 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 specification 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, scoped to the
token-exchange grant. 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>Defines the Client Instance Assertion, a JSON Web Token (JWT)
<xref target="RFC7519"/> signed by an instance issuer published in the client's
metadata, and registers the <tt>client_instance_assertion</tt> request
parameter for carrying it at the OAuth 2.0 token endpoint on the
grants listed in <xref target="permitted-grants"/>. On the token-exchange grant
(<xref target="RFC8693"/>), the same assertion is presented as <tt>actor_token</tt>
with <tt>actor_token_type</tt> set to
<tt>urn:ietf:params:oauth:token-type:client-instance-jwt</tt>, also
registered by this profile.</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_assertion</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 without re-minting.</t>
        </li>
        <li>
          <t>Defines authorization server metadata so that clients can
discover support.</t>
        </li>
      </ul>
      <t>What this document does <em>not</em> do:</t>
      <ul spacing="normal">
        <li>
          <t>It does not introduce a <tt>client_instance</tt> identifier parameter
flowing through the authorization request, token request,
introspection, or access token (see
<xref target="rationale-no-instance-identifier"/>).</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 at the OAuth 2.0 token endpoint as the
<tt>client_instance_assertion</tt> request parameter (<xref target="cia-param"/>) or,
on the token-exchange grant, as the <tt>actor_token</tt> parameter with
<tt>actor_token_type</tt> set to
<tt>urn:ietf:params:oauth:token-type:client-instance-jwt</tt>
(<xref target="token-exchange-presentation"/>). The terms "Client Instance
Assertion" and "instance assertion" are used interchangeably in
prose; "the presented assertion" denotes the JWT carried by either
parameter, with processing identical in both cases.</t>
        </dd>
        <dt>Delegation Case:</dt>
        <dd>
          <t>A token request whose grant produces a principal distinct from the
instance presenting the Client Instance Assertion (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> On the token-exchange grant the
assertion is presented as <tt>actor_token</tt> with <tt>actor_token_type</tt>
set to <tt>urn:ietf:params:oauth:token-type:client-instance-jwt</tt>,
per <xref target="RFC8693"/>'s conventions
(<xref target="token-exchange-presentation"/>); on the other grants in
<xref target="permitted-grants"/> the assertion is the
<tt>client_instance_assertion</tt> request parameter (<xref target="cia-param"/>).
The parameter to use is determined by the grant; the assertion
format, validation, sender-constraint, and access-token surfacing
are identical across both paths
(<xref target="access-token-classification"/>).</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>client_instance_assertion</tt> (or <tt>actor_token</tt> on token-exchange grants)</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>client_instance_assertion</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>OAuth Attestation-Based Client Authentication.</strong>
        <xref target="ATTEST-CLIENT-AUTH"/> (an OAuth Working Group document) defines
how a Client Attester issues a Client Attestation JWT that an OAuth
client uses to authenticate the client instance. That specification
authenticates the client instance for the purposes of client
authentication and does not specify how that instance identity
surfaces to resource servers. This profile addresses that
surfacing gap.</t>
      <table>
        <thead>
          <tr>
            <th align="left">Concern</th>
            <th align="left">Attestation-Based Client Auth</th>
            <th align="left">This document</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Authenticates the client instance</td>
            <td align="left">Yes</td>
            <td align="left">Not by itself; consumes a separately registered client authentication method</td>
          </tr>
          <tr>
            <td align="left">Surfaces instance identity to the access token</td>
            <td align="left">Out of scope</td>
            <td align="left">
              <tt>act.sub</tt> (delegation) or top-level <tt>sub</tt> (self-acting)</td>
          </tr>
          <tr>
            <td align="left">Wire-level presentation</td>
            <td align="left">
              <tt>OAuth-Client-Attestation</tt> plus either <tt>OAuth-Client-Attestation-PoP</tt> or <tt>DPoP</tt></td>
            <td align="left">
              <tt>client_instance_assertion</tt> form parameter (or <tt>actor_token</tt> on token-exchange grants)</td>
          </tr>
          <tr>
            <td align="left">Trust anchor</td>
            <td align="left">AS-to-Attester trust (deployment-defined)</td>
            <td align="left">Per-client <tt>instance_issuers</tt> in client metadata</td>
          </tr>
          <tr>
            <td align="left">Sender-constraint binding</td>
            <td align="left">
              <tt>cnf</tt> per <xref target="RFC7800"/>; PoP via dedicated <tt>-PoP</tt> JWT or DPoP combined mode</td>
            <td align="left">
              <tt>cnf.jkt</tt> or <tt>cnf.x5t#S256</tt> thumbprint</td>
          </tr>
          <tr>
            <td align="left">Primary motivating context</td>
            <td align="left">Mobile/native apps; wallet ecosystems; workload deployments</td>
            <td align="left">Agentic workloads, autoscaled services, ephemeral functions, sub-agents; workload identity</td>
          </tr>
        </tbody>
      </table>
      <t>The two specifications are orthogonal: this profile does not
require <xref target="ATTEST-CLIENT-AUTH"/> and does not redefine or extend it.
Deployments may combine them by presenting a Client Instance
Assertion alongside a Client Attestation, in which case the Client
Attestation continues to authenticate the client instance for
client-authentication purposes while the Client Instance Assertion
provides this profile's resource-server-visible instance identity.</t>
      <t><xref target="ATTEST-CLIENT-AUTH"/> additionally defines a Client Attestation
presentation path directly to a resource server (Client Attestation
PoP <tt>aud</tt> = resource identifier); that path is independent of this
profile's access-token surfacing model.</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 future
specification when those mechanisms reach deployment maturity.</t>
    </section>
    <section anchor="cia-param">
      <name>Client Instance Assertion Request Parameter</name>
      <t>This section defines the <tt>client_instance_assertion</tt> request parameter,
the wire-level mechanism this profile uses to carry a Client Instance
Assertion at the OAuth 2.0 token endpoint on the grant types listed
in <xref target="permitted-grants"/>.</t>
      <t>The parameter carries the Client Instance Assertion JWT defined in
<xref target="client-instance-jwt"/>. The assertion's purpose is to
identify the client instance and bind subsequent proof-of-possession
to the instance's key, independent of how the client itself is
authenticated. Validation, sender-constraint, and access-token
representation rules are defined in <xref target="token-endpoint"/>.</t>
      <t>On token-exchange grants (<xref target="RFC8693"/>), the same assertion is
presented as <tt>actor_token</tt> with <tt>actor_token_type</tt> set to
<tt>urn:ietf:params:oauth:token-type:client-instance-jwt</tt>, per
<xref target="RFC8693"/>'s conventions. See <xref target="token-exchange-presentation"/>. The
two presentation paths produce identical processing outcomes; the
parameter to use is determined by the grant.</t>
      <section anchor="permitted-grants">
        <name>Permitted Grant Types</name>
        <t>The <tt>client_instance_assertion</tt> parameter <bcp14>MAY</bcp14> be presented on the
following 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>The <tt>client_instance_assertion</tt> parameter <bcp14>MUST NOT</bcp14> be presented on
the token-exchange grant (<xref target="RFC8693"/>); on token-exchange grants the
assertion is presented as <tt>actor_token</tt> per
<xref target="token-exchange-presentation"/>. An AS <bcp14>MUST</bcp14> reject a token-exchange
request that includes <tt>client_instance_assertion</tt>.</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="token-exchange-presentation">
        <name>Token-Exchange Presentation</name>
        <t>When the grant is token-exchange (<xref target="RFC8693"/>), the Client Instance
Assertion is presented as the <tt>actor_token</tt> parameter with
<tt>actor_token_type</tt> set to
<tt>urn:ietf:params:oauth:token-type:client-instance-jwt</tt>. This is the
conventional <xref target="RFC8693"/> path; the AS validates the assertion under
the same rules as for the <tt>client_instance_assertion</tt> parameter
(<xref target="as-processing"/>).</t>
        <t>The two parameter names are wire-syntax siblings, not distinct
artifacts: the assertion format (<xref target="client-instance-jwt"/>),
validation procedure, sender-constraint binding, and access-token
representation are identical. The grant determines which parameter
name carries the assertion.</t>
        <t>In the delegation case under token-exchange, the assertion represents
the actor distinct from the subject named in <tt>subject_token</tt>, which
is the conventional <xref target="RFC8693"/> use of <tt>actor_token</tt>. The
self-acting case (<xref target="access-token-self-acting"/>) does not arise on
token-exchange, where <xref target="RFC8693"/> requires a distinct subject.</t>
      </section>
    </section>
    <section anchor="client-instance-model">
      <name>Client Instance Model</name>
      <t>A registered OAuth client commonly abstracts over many concrete
runtimes (for example, a single OAuth client identifier representing
an application across iOS, Android, web, and server-side runtimes;
or 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[
+-----------+ instance assert.+------------+
|  Client   |<----------------|  Instance  |
|  Instance |                 |   Issuer   |
+-----------+                 +------------+
      |
      | token request:
      |  - client authentication (e.g., private_key_jwt)
      |  - client_instance_assertion (instance JWT)
      |    [on token-exchange grants: actor_token /
      |     actor_token_type =
      |     urn:...:client-instance-jwt]
      v
+--------------------+
| Authorization      |  -> resolves client metadata
| Server             |  -> validates the assertion
|                    |  -> issues access token with act or sub
+--------------------+
]]></artwork>
        <t>When the client registers <tt>token_endpoint_auth_method</tt> =
<tt>client_instance_assertion</tt> (<xref target="instance-assertion-auth"/>), the
two trust anchors (client credential and instance issuer)
collapse onto a single artifact: the instance assertion both
authenticates the client (via the client metadata endorsement of
its issuer) and identifies the instance, and the request carries
no separate <tt>client_assertion</tt>.</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. AS-side configuration that augments or
overrides the registered list (for example, an AS-operator-managed
allow-list of additional instance issuers) is out of scope for
this document. Deployments that introduce such configuration
<bcp14>SHOULD</bcp14> document the resulting trust model and ensure it is
consistent with the per-client trust the registered metadata
expresses; in particular, AS-side issuer additions weaken the
client's ability to audit who can act on its behalf.</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>The set of accepted instance issuers for a given <tt>client_id</tt> is a
trust boundary: any listed issuer can mint assertions that the AS
accepts under this client. Deployments that place workloads
belonging to distinct organizations or tenants under a single
<tt>client_id</tt> should consult <xref target="security-multi-tenancy"/> for the
trust-aggregation implications.</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", and the AS <bcp14>MUST</bcp14> validate assertions from this issuer
under SPIFFE semantics: it <bcp14>MUST</bcp14> treat the assertion as a SPIFFE
JWT-SVID (or a re-minted Client Instance Assertion signed with
a key distributed in the SPIFFE bundle) and apply the
validation rules of <xref target="spiffe-compatibility"/>.
</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://app.example.com/agent",
  "jwks_uri": "https://app.example.com/agent/jwks.json",
  "token_endpoint_auth_method": "private_key_jwt",
  "instance_issuers": [
    {
      "issuer": "https://workload.app.example.com",
      "jwks_uri": "https://workload.app.example.com/jwks.json",
      "subject_syntax": "spiffe",
      "trust_domain": "app.example.com",
      "spiffe_id": "spiffe://app.example.com/agent/*",
      "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>client_instance_assertion_supported</tt>:</dt>
          <dd>
            <t>A boolean indicating whether the AS supports the
<tt>client_instance_assertion</tt> request parameter (<xref target="cia-param"/>) on
the grants listed in <xref target="permitted-grants"/>. An AS implementing this
profile <bcp14>MUST</bcp14> publish this parameter set to <tt>true</tt>. Clients use it
to decide whether to assemble token requests carrying a Client
Instance Assertion on non-token-exchange grants. 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>
          <dt><tt>actor_token_types_supported</tt>:</dt>
          <dd>
            <t>A JSON array of <tt>actor_token_type</tt> values supported by the AS on
the token-exchange grant (<xref target="RFC8693"/>). An AS implementing this
profile that supports the token-exchange presentation
(<xref target="token-exchange-presentation"/>) <bcp14>MUST</bcp14> publish this parameter and
include <tt>urn:ietf:params:oauth:token-type:client-instance-jwt</tt> in
it. Other values <bcp14>MAY</bcp14> appear and are processed under their own
specifications; their trust resolution is not via
<tt>instance_issuers</tt>.</t>
          </dd>
        </dl>
        <t>In addition, an AS that supports <xref target="instance-assertion-auth"/> <bcp14>MUST</bcp14>
advertise <tt>client_instance_assertion</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",
  "client_instance_assertion_supported": true,
  "token_endpoint_auth_methods_supported": [
    "private_key_jwt",
    "client_instance_assertion",
    "attest_jwt_client_auth"
  ],
  "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 the format of the Client Instance Assertion,
the signed JWT this profile uses to identify a client instance at
the OAuth 2.0 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>client_instance_assertion</tt> request parameter on the grants listed
in <xref target="permitted-grants"/> (<xref target="cia-param"/>), or as the <tt>actor_token</tt>
parameter 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"/>) on the token-exchange grant
(<xref target="token-exchange-presentation"/>). 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 JWT <tt>client_id</tt> claim defined in
<xref target="RFC8693"/> Section 4.3.
</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
Client Instance Assertion 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
assertion is a direct identity assertion of a single party (the
instance); per <xref target="ACTOR-PROFILE"/>, an assertion 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"/>.</t>
        <t>ASes and instance issuers implementing this profile <bcp14>MUST</bcp14> support
<tt>ES256</tt> (<xref target="RFC7518"/>). This is the mandatory-to-implement baseline
for interoperability. ASes and instance issuers <bcp14>SHOULD</bcp14> additionally
support <tt>RS256</tt> and <bcp14>MAY</bcp14> support other asymmetric JWS algorithms
(<xref target="RFC7518"/>, <xref target="RFC8037"/>) as deployment requirements dictate.</t>
        <t>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.app.example.com",
  "sub":         "spiffe://app.example.com/agent/session-abc",
  "aud":         "https://as.example.com",
  "client_id":   "https://app.example.com/agent",
  "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 that
provide a Client Instance Assertion. The assertion is presented
either as the <tt>client_instance_assertion</tt> request parameter on the
grants in <xref target="permitted-grants"/> (<xref target="cia-param"/>) or as the
<tt>actor_token</tt> parameter with <tt>actor_token_type</tt> =
<tt>urn:ietf:params:oauth:token-type:client-instance-jwt</tt> on the
token-exchange grant (<xref target="token-exchange-presentation"/>). This
section defines the validation, authorization-time consistency,
sender-constraint, representation, refresh, client authentication,
SPIFFE compatibility, and error rules.</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
using the parameter appropriate to the grant:</t>
        <ul spacing="normal">
          <li>
            <t>On the grants listed in <xref target="permitted-grants"/>, the assertion is
presented as the <tt>client_instance_assertion</tt> request parameter
(<xref target="cia-param"/>).</t>
          </li>
          <li>
            <t>On the token-exchange grant (<xref target="RFC8693"/>), the assertion is
presented as the <tt>actor_token</tt> parameter with <tt>actor_token_type</tt>
set to <tt>urn:ietf:params:oauth:token-type:client-instance-jwt</tt>
(<xref target="token-exchange-presentation"/>).</t>
          </li>
        </ul>
        <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%2Fapp.example.com%2Fagent
&client_assertion_type=
  urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer
&client_assertion=eyJhbGciOiJFUzI1NiIsImtpZCI6...
&client_instance_assertion=eyJhbGciOiJFUzI1NiIsImtpZCI6...
]]></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>In this section the term "presented assertion" means the
<tt>client_instance_assertion</tt> parameter (<xref target="cia-param"/>) on the grants
in <xref target="permitted-grants"/>, or the <tt>actor_token</tt> parameter (with
<tt>actor_token_type</tt> set to
<tt>urn:ietf:params:oauth:token-type:client-instance-jwt</tt>) on the
token-exchange grant (<xref target="token-exchange-presentation"/>). Processing
is identical regardless of which parameter carried the assertion.</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><strong>Parameter on the wrong grant.</strong> The Client Instance Assertion
is carried as <tt>client_instance_assertion</tt> on grants in
<xref target="permitted-grants"/> and as <tt>actor_token</tt> (with
<tt>actor_token_type</tt> =
<tt>urn:ietf:params:oauth:token-type:client-instance-jwt</tt>) on the
token-exchange grant. The AS <bcp14>MUST</bcp14> reject a request that
carries <tt>client_instance_assertion</tt> on the token-exchange
grant, carries <tt>client_instance_assertion</tt> on a grant not
listed in <xref target="permitted-grants"/>, or carries <tt>actor_token</tt> with
the client-instance-jwt token type on any grant other than
token-exchange.</t>
          </li>
          <li>
            <t><strong>Token-exchange <tt>actor_token</tt> / <tt>actor_token_type</tt> mismatch.</strong>
The AS <bcp14>MUST</bcp14> reject a token-exchange request in which exactly one
of <tt>actor_token</tt> and <tt>actor_token_type</tt> is present, or in which
<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><strong>Malformed assertion.</strong> The AS <bcp14>MUST</bcp14> reject a request whose
presented assertion 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_assertion</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> On a token-exchange request, 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; the AS processes the request
per <xref target="RFC8693"/>, including handling other registered
<tt>actor_token_type</tt> values under their own specifications. If the
AS does not support
<tt>urn:ietf:params:oauth:token-type:client-instance-jwt</tt> for the
requested grant, it <bcp14>MUST</bcp14> reject the request with
<tt>unsupported_token_type</tt> (<xref target="errors"/>). On the grants in
<xref target="permitted-grants"/>, presence of
<tt>client_instance_assertion</tt> selects processing under this document.</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 presented
assertion 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. "Exactly
equal" means octet-for-octet equality on the UTF-8 encoding of
the two values: ASes <bcp14>MUST NOT</bcp14> apply case folding, Unicode
normalization, percent-decoding, URI canonicalization, or other
string-equivalence transformations before comparison. The same
octet-equality rule applies wherever this document requires
<tt>iss</tt>, <tt>sub</tt>, <tt>client_id</tt>, <tt>aud</tt>, or <tt>spiffe_id</tt> values to "match"
or "exactly equal" another value, except where a specifically
cited matching rule (for example, the SPIFFE "/*" wildcard rule
in <xref target="instance-issuers"/>) defines a different comparison. 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 presented assertion'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>.</t>
          </li>
          <li>
            <t><strong>Verify proof-of-possession of the <tt>cnf</tt> key.</strong> Verify
possession of the assertion's <tt>cnf</tt> key per
<xref target="sender-constrained"/>; reject with <tt>invalid_request</tt> if
verification fails. For raw JWT-SVIDs accepted under
<xref target="spiffe-client-id-omission"/>, establish the binding key per
<xref target="spiffe-binding"/> instead.</t>
          </li>
          <li>
            <t><strong>Apply replay checking.</strong> After <tt>client_id</tt> binding and PoP
verification succeed, apply the replay check per
<xref target="security-replay"/>; reject with <tt>invalid_grant</tt> if a previously
seen <tt>(iss, jti)</tt> 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>. The replay check follows PoP
verification so that the <tt>cnf</tt>-bound reusable-mode optimization
in <xref target="security-replay"/> can be applied.</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 to the issued access token.</strong> If issuance
succeeds, represent the instance in the access token per
<xref target="access-token"/> and apply the sender-constraint binding per
<xref target="sender-constrained"/>, using the key whose possession was
verified in step 8. 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_assertion</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 Client
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
assertion, 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_assertion</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>
        <t><tt>client_instance_assertion</tt> is a confidential-client token-endpoint
authentication method: the AS authenticates the request through the
client's registered endorsement of the presenting instance issuer.
Clients without any registered trust relationship for the AS to
evaluate cannot use it. This exclusion is scoped to this auth
method only; deployments using <xref target="ATTEST-CLIENT-AUTH"/> for client
authentication follow that specification's client-authentication
model, independent of this section.</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 and the assertion under the parameter appropriate to the
grant (<tt>client_instance_assertion</tt> for grants in
<xref target="permitted-grants"/>, or <tt>actor_token</tt> with <tt>actor_token_type</tt> for
the token-exchange grant). 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%2Fapp.example.com%2Fagent
&client_instance_assertion=eyJhbGciOiJFUzI1NiIsImtpZCI6...
]]></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_assertion</tt>, the pre-conditions of
<xref target="as-processing"/> (rejecting malformed or misplaced presented
assertions) 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 assertion using the token-type check
(where applicable), instance issuer descriptor lookup, signature
verification, and JWT claim validation rules in <xref target="as-processing"/>.</t>
            </li>
            <li>
              <t>Verify that the presented assertion's <tt>client_id</tt> claim exactly
equals the request's <tt>client_id</tt> parameter.</t>
            </li>
            <li>
              <t>Verify that the presented assertion contains a <tt>cnf</tt> claim; this
mode does not permit a <tt>cnf</tt>-less assertion, because the
assertion serves as the sole client authentication credential
and the bearer-replay considerations in <xref target="security-replay"/>
apply with no fallback credential.</t>
            </li>
            <li>
              <t>Verify proof-of-possession of the assertion's <tt>cnf</tt> key per
<xref target="sender-constrained"/>.</t>
            </li>
            <li>
              <t>Apply the replay check in <xref target="security-replay"/> after <tt>client_id</tt>
binding and PoP verification succeed.</t>
            </li>
            <li>
              <t>Reject the request with <tt>invalid_client</tt> if any of steps 1-6
fails. This re-code applies to failures that would otherwise be
returned as <tt>invalid_grant</tt> (under <xref target="as-processing"/>) or
<tt>invalid_request</tt> (under <xref target="sender-constrained"/>); pre-condition
failures of <xref target="as-processing"/> (malformed JWT, misplaced
parameter) continue to return <tt>invalid_request</tt>.</t>
            </li>
            <li>
              <t>Treat the client as authenticated. The validated assertion also
satisfies this profile's assertion requirement and is used for
instance representation per <xref target="access-token"/>.</t>
            </li>
          </ol>
          <t>The presented assertion's <tt>aud</tt> claim serves both purposes (the
<xref target="RFC7523"/> client-assertion audience and this profile's assertion
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_assertion</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 the
"Enforce delegation policy" step of <xref target="as-processing"/> 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, <tt>client_id</tt> binding, PoP, or replay checks to the
same assertion 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>This section defines how a validated Client Instance Assertion
surfaces in the issued access token. It does not restate the
generic access-token claim set: JWT access tokens issued under
this profile follow <xref target="RFC9068"/>; opaque (reference) access tokens
carry the same set of claims through introspection per
<xref target="rs-processing-introspection"/>. The profile-specific surfacing
rules are:</t>
        <ul spacing="normal">
          <li>
            <t>The access token <bcp14>MUST</bcp14> be sender-constrained per
<xref target="sender-constrained"/> (i.e., <tt>cnf</tt> is bound to the instance's
key, not bearer).</t>
          </li>
          <li>
            <t>The validated instance identity surfaces in <tt>act</tt> (delegation
case) or top-level <tt>sub</tt> (self-acting case), per the
classification and per-case rules below; <tt>sub_profile</tt>
(<xref target="ACTOR-PROFILE"/>) signals the kind of subject in either case.</t>
          </li>
          <li>
            <t>Any upstream actor chain <bcp14>MUST</bcp14> be preserved by nesting per
<xref target="ACTOR-PROFILE"/>; merge rules are in <xref target="chain-merging"/>.</t>
          </li>
        </ul>
        <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;
the classification rules are in <xref target="access-token-classification"/>.</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
Client Instance Assertion:</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 assertion (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> = the assertion's <tt>iss</tt></t>
            </li>
            <li>
              <t><tt>act.sub</tt> = the assertion's <tt>sub</tt></t>
            </li>
            <li>
              <t><tt>act.sub_profile</tt> = the assertion'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> = the assertion'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> = the assertion's <tt>sub</tt> (optionally with AS-applied
namespacing, see below)</t>
            </li>
            <li>
              <t><tt>sub_profile</tt> = the assertion'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 AS-scoped namespacing that incorporates both the
matched descriptor's <tt>issuer</tt> and the original <tt>sub</tt> value, to
prevent a compromised issuer from spoofing another's <tt>sub</tt>. The
specific encoding is a deployment choice. 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 a fresh Client Instance Assertion on a
refresh request (for example, to rotate the underlying assertion
before its <tt>exp</tt>) via the <tt>client_instance_assertion</tt> parameter
(<xref target="cia-param"/>). When present, the assertion <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;</t>
          </li>
          <li>
            <t>pass the instance issuer descriptor lookup, signature
verification, JWT claim validation, and <tt>client_id</tt> binding checks
defined in <xref target="as-processing"/>; and</t>
          </li>
          <li>
            <t>pass the replay check defined in <xref target="security-replay"/> against its
own <tt>(iss, jti)</tt> tuple. The bound <tt>cnf</tt> of the refresh token
prevents off-instance replay, but does not prevent an attacker
with the same refresh token from replaying a captured fresh
assertion across successive refreshes; the replay check closes
that window.</t>
          </li>
        </ul>
        <t>If the presented assertion 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 assertion 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 a few minutes in default SPIFFE
implementations) 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>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.
Deployments requiring cross-instance session continuity address
it outside refresh-token semantics (the mechanisms are deployment
choices and out of scope for this document).</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
Client Instance Assertions 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 Client Instance Assertions. X.509-SVIDs
are not presented as Client Instance Assertions; SPIFFE deployments
using X.509-SVIDs authenticate at the TLS layer (per <xref target="RFC8705"/>)
and obtain a JWT-SVID separately for 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. Selection
is determined by whether the assertion contains a <tt>client_id</tt>
claim: presence selects re-minted mode unconditionally, even when
the descriptor's SPIFFE conditions would otherwise have permitted
raw mode. This means an OAuth-aware adapter that mints a
Client Instance Assertion with a SPIFFE-formatted <tt>sub</tt> together
with a <tt>client_id</tt> claim is always processed as re-minted, and
the <tt>client_id</tt> value is verified per <xref target="as-processing"/>.</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 presented assertion has no
<tt>client_id</tt> claim and all of the following hold for the descriptor
that matches the assertion'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 assertion'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 assertion'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 assertion'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>client_instance_assertion</tt> (or, on token-exchange grants,
<tt>actor_token</tt>/<tt>actor_token_type</tt>), presence of
<tt>client_instance_assertion</tt> on the token-exchange grant, 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 a presented assertion carrying an
<tt>act</tt> claim.</t>
          </li>
          <li>
            <t><tt>unsupported_token_type</tt> (<xref target="RFC8693"/>): on a token-exchange grant,
an unrecognized <tt>actor_token_type</tt>.</t>
          </li>
          <li>
            <t><tt>invalid_client</tt>: when the presented assertion is the client
authentication credential under <xref target="instance-assertion-auth"/>,
validation failures that would otherwise be returned as
<tt>invalid_grant</tt> (assertion-validation failures) or
<tt>invalid_request</tt> (sender-constraint failures, including a
<tt>cnf</tt>-less assertion) are returned as <tt>invalid_client</tt>. The
pre-condition failures of <xref target="as-processing"/> (malformed JWT,
misplaced parameter, mismatched grant/parameter) continue to be
returned as <tt>invalid_request</tt> even in this mode.</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"/> for delegated access tokens, including actor
authorization, JWT access token validation, sender-constraint
validation against the top-level <tt>cnf</tt>, and introspection. This
section adds three considerations specific to this profile.</t>
      <t><strong><tt>cnf</tt> is the instance's key, not the principal's.</strong> Under this
profile the access token's top-level <tt>cnf</tt> is bound to the
instance that presents the token. In the delegation case the
principal in <tt>sub</tt> (typically a user) does not present the
token; the instance named in <tt>act.sub</tt> does, and
sender-constraint validation authenticates that instance.</t>
      <t><strong>Self-acting access tokens</strong> (<xref target="access-token-self-acting"/>)
carry no <tt>act</tt>. <tt>sub</tt> names the client <em>instance</em> (typically a
SPIFFE ID or other workload identifier), <tt>sub_profile</tt> =
<tt>client_instance</tt> signals that the subject is a runtime instance,
and <tt>client_id</tt> continues to name the OAuth <em>client</em>. 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>. Resource
servers that distinguish workload-self-acting from human-
delegated 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>.</t>
      <t><strong>Authorization policy <bcp14>SHOULD</bcp14> evaluate instance identity.</strong>
Policies that authorize solely on <tt>client_id</tt> lose the
instance-level distinction this profile is designed to provide.</t>
      <section anchor="rs-processing-introspection">
        <name>Introspection Responses</name>
        <t>When the AS issues opaque (reference) access tokens under this
profile, the set of profile-defined claims in the introspection
response (<xref target="RFC7662"/>) <bcp14>MUST</bcp14> be identical to the set that would
appear in the payload of a JWT access token for the same grant,
including <tt>act</tt> (when applicable), <tt>sub</tt>, <tt>sub_profile</tt>, <tt>client_id</tt>,
<tt>cnf</tt>, and any actor-chain members defined by <xref target="ACTOR-PROFILE"/>.
Resource servers that consume introspection apply the same
processing as for JWT access tokens described above; the
representational difference is only in where the claims arrive
(token payload versus introspection response).</t>
        <t>The following example shows an introspection response for an
opaque access token issued under the authorization_code grant
(<xref target="appendix-examples-auth-code"/>). The corresponding self-acting
case (<xref target="appendix-examples-client-credentials"/>) and token-exchange
case (<xref target="appendix-examples-token-exchange"/>) follow the same
pattern: the top-level claims and any <tt>act</tt> chain appear in the
response exactly as they would in a JWT access token payload.</t>
        <sourcecode type="json"><![CDATA[
{
  "active":      true,
  "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,
  "token_type":  "DPoP",
  "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>
      </section>
    </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 the presence of
<tt>client_instance_assertion</tt> (on the grants in <xref target="permitted-grants"/>)
or on <tt>actor_token_type</tt> =
<tt>urn:ietf:params:oauth:token-type:client-instance-jwt</tt> (on the
token-exchange grant). Other (or absent) values are processed under
their own specifications.</t>
      <t>ASes implementing this profile <bcp14>MUST</bcp14> advertise support via the
<tt>client_instance_assertion_supported</tt> AS metadata parameter and, for
token-exchange use, via <tt>actor_token_types_supported</tt>
(<xref target="as-metadata"/>). Clients <bcp14>SHOULD</bcp14> verify the AS's advertised support
before sending a Client Instance Assertion 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 metadata values are coarse capability signals; 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 Client Instance Assertions for every issued access token
can register <tt>token_endpoint_auth_method</tt> =
<tt>client_instance_assertion</tt> (<xref target="instance-assertion-auth"/>), which
intrinsically requires the assertion.</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 two options:</t>
      <ul spacing="normal">
        <li>
          <t><strong>Adapter pattern</strong>: an OAuth-aware adapter wraps an existing
workload identity system (cluster-issued projected
service-account tokens, cloud-instance metadata services, a
SPIFFE control plane, etc.) and re-mints a Client Instance
Assertion with <tt>cnf</tt> from the underlying credential. From the
AS's perspective the adapter is the instance issuer
(<xref target="issuer-obligations"/>) and inherits the obligations and trust
model of that role. The adapter holds the workload-identifier
to <tt>client_id</tt> mapping and the OAuth signing keys, since
underlying workload-identity systems typically do not know
about OAuth clients. 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 the
Client Instance Assertion without re-minting; the AS establishes
sender-constraint binding through a channel independent of the
SVID per <xref target="spiffe-compatibility"/> and <xref target="spiffe-binding"/> (the
X.509-SVID at TLS under <xref target="RFC8705"/> is the common pattern). See
<xref target="appendix-examples-spiffe"/> for a worked example.</t>
        </li>
      </ul>
      <t>ASes and OAuth client operators <bcp14>SHOULD NOT</bcp14> enable the
<tt>client_instance_assertion</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
<tt>client_instance_assertion</tt> request parameter (<xref target="cia-param"/>) and
its token-exchange presentation as <tt>actor_token</tt> with
<tt>actor_token_type</tt> =
<tt>urn:ietf:params:oauth:token-type:client-instance-jwt</tt>
(<xref target="token-exchange-presentation"/>), together with the validation,
representation, and error processing rules in <xref target="token-endpoint"/>,
<xref target="access-token"/>, and <xref target="errors"/>, plus <xref target="ACTOR-PROFILE"/>. Raw
JWT-SVID compatibility (<xref target="spiffe-compatibility"/>) and the
<tt>client_instance_assertion</tt> authentication method
(<xref target="instance-assertion-auth"/>) are optional capabilities; an AS
that supports either <bcp14>MUST</bcp14> conform to the respective section.</t>
      <t>A client using this profile with a Client Instance Assertion <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. Deployments hosting workloads
from multiple tenants under a single <tt>client_id</tt> aggregate those
tenants' trust roots into a single <tt>instance_issuers</tt> list; see
<xref target="security-multi-tenancy"/> for the resulting blast-radius
considerations and the recommendation to issue per-tenant
<tt>client_id</tt> values where tenants are independent trust boundaries.</t>
        <t>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>The per-client minting requirement of <xref target="issuer-obligations"/> is
an operational obligation on the instance issuer, not a check the
AS performs in-band. The AS verifies that a presented assertion's
<tt>client_id</tt> claim matches the authenticated client, but it cannot
detect an issuer that violates its obligation by minting for
runtimes outside the authorized set; such assertions are accepted
as valid. Clients <bcp14>SHOULD</bcp14> list only issuers whose minting policy
they have audited and whose operational practice they trust to
honor <xref target="issuer-obligations"/>.</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_assertion</tt> (as a
<tt>token_endpoint_auth_method</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>Deployments with longer latencies <bcp14>SHOULD</bcp14> support active
revocation (<xref target="revocation"/>) and introspection-based status checks
at the resource server.</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>
        <t>Compromise-response latency under this profile is bounded by the
shortest of: the access token TTL, the introspection cache TTL at
the resource server, and the propagation time of whichever
revocation signal a deployment uses (<xref target="per-instance-revocation"/>).
None of these are defined by this document; deployments with strict
detection-to-revocation latency requirements <bcp14>SHOULD</bcp14> tune them
together and document the resulting end-to-end bound as part of
operational security posture.</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. The
compromise-to-all-tokens-invalid latency is bounded by the
shortest of: the access token TTL, the introspection cache TTL at
any consuming resource server (<xref target="introspection-on-revocation"/>),
and the propagation time of whichever revocation signal the
deployment uses.</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. The claim set
returned in active introspection responses is specified by
<xref target="rs-processing-introspection"/>.</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>The replay-cache key is <tt>(iss, jti)</tt>; ASes <bcp14>MUST NOT</bcp14> widen the key
to include <tt>client_id</tt>. <tt>jti</tt> uniqueness is the responsibility of
the instance issuer within its own <tt>iss</tt> namespace, so two
different OAuth clients that list the same instance issuer share
the same replay state for that issuer. An attacker controlling
traffic under one OAuth <tt>client_id</tt> cannot replay assertions
under another, but high-volume traffic under one client can cause
replay-cache pressure for other clients sharing the same instance
issuer; ASes <bcp14>SHOULD</bcp14> apply per-issuer rate limits and bounded cache
caps. The cache <bcp14>MUST</bcp14> be scoped at least to a single AS instance;
distributed AS deployments share the cache or coordinate as
specified below.</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; when a fresh assertion is presented,
the AS <bcp14>MUST</bcp14> apply the replay check to its <tt>(iss, jti)</tt> per
<xref target="refresh"/>. 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_assertion</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. Where genuine custody
separation between the client credential and the instance issuer
is not available, the security property of <tt>private_key_jwt</tt>
paired with a Client Instance Assertion reduces to that of
<tt>client_instance_assertion</tt> alone.</t>
        <t>When <tt>client_instance_assertion</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_assertion</tt>
authentications via the removed or narrowed issuer once it has
applied the metadata update (<xref target="trust-lifecycle"/>).</t>
      </section>
      <section anchor="security-multi-tenancy">
        <name>Multi-Tenancy Under a Single Client</name>
        <t>The class-and-instance model in <xref target="client-instance-model"/> is a
two-level model: the OAuth client (class) and its runtime
instances. It does not model tenancy as a third dimension.
Deployments that aggregate workloads from distinct trust domains
under a single OAuth <tt>client_id</tt> concentrate those tenants' trust
roots into one <tt>instance_issuers</tt> list. Compromise of any listed
issuer extends to every tenant whose workloads it authenticates.</t>
        <t>This profile RECOMMENDS issuing a separate <tt>client_id</tt> per tenant
when tenants need to be isolated as trust boundaries. Per-tenant
<tt>client_id</tt>s give each tenant its own <tt>instance_issuers</tt> list, its
own descriptor scope, and its own revocation surface, and align
this profile's trust model with the deployment's tenancy
boundaries.</t>
        <t>Where per-tenant <tt>client_id</tt>s are not practical, deployments <bcp14>SHOULD</bcp14>
use tight per-issuer constraints in <tt>instance_issuers</tt> (per-tenant
<tt>spiffe_id</tt> paths, per-tenant <tt>trust_domain</tt> values, or
descriptor-level scope members that constrain accepted <tt>sub</tt>
values to a specific tenant) and treat the cross-tenant blast
radius as a known operational risk. Tenant isolation in such
deployments is enforced by the breadth of these per-issuer
constraints, not by the OAuth client identity.</t>
        <t>This profile does not define a tenant identifier as a first-class
claim. Future profiles <bcp14>MAY</bcp14> introduce one if cross-deployment
interoperability of tenant scoping becomes necessary.</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>
      </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 on the token-exchange grant):</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-subject-syntax">
        <name>OAuth Client Instance Subject Syntaxes</name>
        <t>IANA is requested to create a new sub-registry titled "OAuth Client
Instance Subject Syntaxes" under the "OAuth Parameters" registry
group established by <xref target="RFC6749"/>. Registration policy is
Specification Required <xref target="RFC8126"/>.</t>
        <t>A Client Instance Subject Syntax is a short identifier appearing in
the <tt>subject_syntax</tt> member of an instance issuer descriptor
(<xref target="instance-issuers"/>). It declares the syntactic form of the <tt>sub</tt>
claim used by the issuer and selects validation rules the AS
applies to that claim.</t>
        <t>Registry fields:</t>
        <dl>
          <dt>Syntax Identifier:</dt>
          <dd>
            <t>A short label used as the <tt>subject_syntax</tt> value. ABNF:
1*( ALPHA / DIGIT / "-" ).</t>
          </dd>
          <dt>Description:</dt>
          <dd>
            <t>A short description of the subject form.</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>As required by Specification Required policy.</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t>The defining specification.</t>
          </dd>
        </dl>
        <t>IANA is requested to register the following initial values:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Syntax Identifier</th>
              <th align="left">Description</th>
              <th align="left">Change Controller</th>
              <th align="left">Specification</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>uri</tt></td>
              <td align="left">Arbitrary StringOrURI <xref target="RFC7519"/> subject (the default when <tt>subject_syntax</tt> is absent).</td>
              <td align="left">IETF</td>
              <td align="left">
                <xref target="instance-issuers"/> of this document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>spiffe</tt></td>
              <td align="left">SPIFFE ID <xref target="SPIFFE"/>. Triggers SPIFFE-specific descriptor members (<tt>trust_domain</tt>, <tt>spiffe_id</tt>) and SPIFFE compatibility (<xref target="spiffe-compatibility"/>).</td>
              <td align="left">IETF</td>
              <td align="left">
                <xref target="instance-issuers"/> of this document</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="iana-token-params">
        <name>OAuth Parameters Registration</name>
        <t>IANA is requested to register the following value in the "OAuth
Parameters" registry established by <xref target="RFC6749"/>:</t>
        <dl>
          <dt>Parameter name:</dt>
          <dd>
            <t><tt>client_instance_assertion</tt></t>
          </dd>
          <dt>Parameter usage location:</dt>
          <dd>
            <t>token request</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t><xref target="cia-param"/> of 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_assertion</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="clientinstanceassertionsupported">
          <name>client_instance_assertion_supported</name>
          <dl>
            <dt>Metadata Name:</dt>
            <dd>
              <t><tt>client_instance_assertion_supported</tt></t>
            </dd>
            <dt>Metadata Description:</dt>
            <dd>
              <t>Boolean indicating whether the AS accepts the
<tt>client_instance_assertion</tt> request parameter on the grants listed
in <xref target="permitted-grants"/>.</t>
            </dd>
            <dt>Specification Document(s):</dt>
            <dd>
              <t><xref target="as-metadata"/> of this document</t>
            </dd>
          </dl>
        </section>
        <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 on the
token-exchange grant.</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="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="RFC7518">
          <front>
            <title>JSON Web Algorithms (JWA)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>This specification registers cryptographic algorithms and identifiers to be used with the JSON Web Signature (JWS), JSON Web Encryption (JWE), and JSON Web Key (JWK) specifications. It defines several IANA registries for these identifiers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7518"/>
          <seriesInfo name="DOI" value="10.17487/RFC7518"/>
        </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="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </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="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="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>
            <author fullname="Nancy Cam-Winget" initials="N." surname="Cam-Winget">
              <organization>Cisco Systems</organization>
            </author>
            <date day="15" month="June" year="2026"/>
            <abstract>
              <t>   This specification profiles the Assertion Framework for OAuth 2.0
   Client Authentication and Authorization Grants [RFC7521], the JWT
   Profile for OAuth 2.0 Client Authentication and Authorization Grants
   [RFC7523], and OAuth 2.0 Attestation-Based Client Authentication
   [I-D.draft-ietf-oauth-attestation-based-client-auth] to enable the
   use of SPIFFE Verifiable Identity Documents (SVIDs) as client
   credentials in OAuth 2.0.  It defines how OAuth clients with SPIFFE
   credentials can authenticate to OAuth authorization servers using
   their JWT-SVIDs, WIT-SVIDs, or X.509-SVIDs without the need for
   client secrets.  This approach enhances security by enabling seamless
   integration between SPIFFE-enabled workloads and OAuth authorization
   servers while eliminating the need to distribute and manage shared
   secrets such as static client secrets.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-spiffe-client-auth-02"/>
        </reference>
        <reference anchor="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="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="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="RFC8037">
          <front>
            <title>CFRG Elliptic Curve Diffie-Hellman (ECDH) and Signatures in JSON Object Signing and Encryption (JOSE)</title>
            <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document defines how to use the Diffie-Hellman algorithms "X25519" and "X448" as well as the signature algorithms "Ed25519" and "Ed448" from the IRTF CFRG elliptic curves work in JSON Object Signing and Encryption (JOSE).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8037"/>
          <seriesInfo name="DOI" value="10.17487/RFC8037"/>
        </reference>
        <reference anchor="ATTEST-CLIENT-AUTH">
          <front>
            <title>OAuth 2.0 Attestation-Based Client Authentication</title>
            <author fullname="Tobias Looker" initials="T." surname="Looker">
              <organization>MATTR</organization>
            </author>
            <author fullname="Paul Bastian" initials="P." surname="Bastian">
              <organization>Bundesdruckerei</organization>
            </author>
            <author fullname="Christian Bormann" initials="C." surname="Bormann">
              <organization>SPRIND</organization>
            </author>
            <date day="25" month="May" year="2026"/>
            <abstract>
              <t>   This specification defines an extension to the OAuth 2.0 protocol
   [RFC6749] that enables a client instance to include a key-bound
   attestation when interacting with an Authorization Server or Resource
   Server.  This mechanism allows a client instance to prove its
   authenticity verified by a client attester without revealing its
   target audience to that attester.  It may also serve as a mechanism
   for client authentication as per OAuth 2.0.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-attestation-based-client-auth-09"/>
        </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 2663?>

<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="rationale-no-instance-identifier">
        <name>Why not a <tt>client_instance</tt> identifier parameter?</name>
        <t>A new top-level <tt>client_instance</tt> identifier 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. The validated
instance identity surfaces in the issued access token's <tt>act.sub</tt>
(delegation) or top-level <tt>sub</tt> (self-acting) per <xref target="access-token"/>,
which is the only place a resource server needs it; downstream
profiles consume that representation rather than a parallel
identifier.</t>
      </section>
      <section numbered="false" anchor="rationale-dedicated-param">
        <name>Why a dedicated <tt>client_instance_assertion</tt> request parameter?</name>
        <t>This profile defines a dedicated request parameter for presenting a
Client Instance Assertion on the four non-token-exchange grants
listed in <xref target="permitted-grants"/>, rather than reusing <xref target="RFC8693"/>'s
<tt>actor_token</tt> / <tt>actor_token_type</tt> parameters on those grants.
<xref target="RFC8693"/> defines <tt>actor_token</tt> and <tt>actor_token_type</tt> only on
the token-exchange grant; this profile uses <tt>actor_token</tt> only on
that grant (<xref target="token-exchange-presentation"/>).</t>
        <t>The reasons for a dedicated parameter on the other grants:</t>
        <t>First, the parameter name matches what it carries. A request body
with <tt>client_instance_assertion=...</tt> declares its purpose; a request
with <tt>actor_token=...&amp;actor_token_type=urn:...:client-instance-jwt</tt>
requires the AS to inspect the type URN to recognize the same
artifact. The dedicated parameter is more discoverable and easier to
implement against.</t>
        <t>Second, the self-acting case (notably <tt>client_credentials</tt>) does not
fit <xref target="RFC8693"/>'s "actor" framing, in which the actor is a party
distinct from the subject. In this profile's self-acting case the
instance is the subject (top-level <tt>sub</tt>) rather than the actor
(<tt>act</tt>); see <xref target="access-token-classification"/>. Naming the parameter
<tt>actor_token</tt> for that case would require readers to mentally
translate "actor token" to "validated instance identity assertion."
The dedicated parameter removes that translation; the grant
determines whether the result is delegation or self-acting.</t>
        <t>Third, the dedicated parameter parallels the wire conventions of
<xref target="ATTEST-CLIENT-AUTH"/>, which uses purpose-named headers
(<tt>OAuth-Client-Attestation</tt> and <tt>-PoP</tt>) rather than a typed
general-purpose carrier. The two specifications use purpose-named
wire artifacts that an AS can dispatch by parameter name rather than
by URN inspection.</t>
        <t>The URN <tt>urn:ietf:params:oauth:token-type:client-instance-jwt</tt>
remains registered to identify the assertion when carried as
<tt>actor_token</tt> on a token-exchange grant per <xref target="RFC8693"/>; see
<xref target="token-exchange-presentation"/>. The two parameter names are
wire-syntax siblings carrying the same assertion under identical
validation rules.</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="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_assertion</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 the
Client Instance Assertion to serve as the client 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 on
token-exchange grants. 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>client_instance_assertion</tt> semantically distinct.</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 assertion 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)
&client_instance_assertion=eyJhbGciOiJFUzI1NiIs...
]]></sourcecode>
        <t>Decoded <tt>client_instance_assertion</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 the <tt>client_instance_assertion</tt> parameter for this
grant.</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 the assertion's <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
assertion'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...
&client_instance_assertion=eyJhbGciOiJFUzI1NiIs...
]]></sourcecode>
        <t>Decoded <tt>client_instance_assertion</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> carries the Client Instance Assertion for the
sub-agent runtime inst-03, with no <tt>act</tt> of its own (per
<xref target="ACTOR-PROFILE"/>, an <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 Client Instance Assertion (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-refresh">
        <name>Refresh with a Fresh Instance Assertion</name>
        <t>Some time after the authorization-code example
(<xref target="appendix-examples-auth-code"/>), instance inst-01's original
access token approaches expiry. The original Client Instance
Assertion has also expired, so the client mints a fresh assertion
(same <tt>iss</tt>, <tt>sub</tt>, and <tt>cnf</tt>) and presents it on the refresh
request. The refresh token is sender-constrained to the same DPoP
key per <xref target="refresh"/>.</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-01's key>

grant_type=refresh_token
&refresh_token=tGzv3JOkF0XG5Qx2TlKWIA
&client_id=https%3A%2F%2Fapp.example.com%2Fagent
&client_assertion_type=
  urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer
&client_assertion=eyJhbGciOiJFUzI1NiIs... (private_key_jwt)
&client_instance_assertion=eyJhbGciOiJFUzI1NiIs...
]]></sourcecode>
        <t>Decoded fresh <tt>client_instance_assertion</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":         1770001700,
  "exp":         1770002000,
  "jti":         "rf-1a2b3c",
  "cnf":         { "jkt": "0ZcOCORZNYy...iguA4I" }
}
]]></sourcecode>
        <t>AS validation per <xref target="refresh"/>:</t>
        <ol spacing="normal" type="1"><li>
            <t>Authenticate the client (<tt>private_key_jwt</tt>).</t>
          </li>
          <li>
            <t>Verify the refresh token belongs to this client and is bound to
the presented DPoP key.</t>
          </li>
          <li>
            <t>Validate the fresh assertion per <xref target="as-processing"/>; in particular
verify that its <tt>(iss, sub)</tt> match those recorded at original
issuance and its <tt>cnf</tt> matches the refresh-token binding key.</t>
          </li>
          <li>
            <t>Inherit the original grant's classification (delegation), per
<xref target="access-token-classification"/>.</t>
          </li>
          <li>
            <t>Issue a new sender-constrained access token with the same
<tt>act</tt> chain.</t>
          </li>
        </ol>
        <t>The refreshed access token is identical in shape to the original
(<xref target="appendix-examples-auth-code"/>), with updated <tt>iat</tt> and <tt>exp</tt>.</t>
        <t>A second variant of this flow omits the fresh assertion entirely:</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=refresh_token
&refresh_token=tGzv3JOkF0XG5Qx2TlKWIA
&client_id=https%3A%2F%2Fapp.example.com%2Fagent
&client_assertion_type=
  urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer
&client_assertion=eyJhbGciOiJFUzI1NiIs...
]]></sourcecode>
        <t>Without a fresh <tt>client_instance_assertion</tt>, the AS still
inherits the original delegation classification and the original
<tt>act</tt> chain (sender-constrained to the same DPoP key, since the
refresh token was bound to it). This is the common case when
instance identity has not changed since issuance; the issued
access token's <tt>act</tt> claim is unchanged from
<xref target="appendix-examples-auth-code"/> (with updated <tt>iat</tt> and <tt>exp</tt>).
Refresh does not introduce a new instance identity.</t>
      </section>
      <section numbered="false" anchor="appendix-examples-instance-auth">
        <name>Client Authenticated via Instance Assertion</name>
        <t>A workload's OAuth client is registered with
<tt>token_endpoint_auth_method</tt> = <tt>client_instance_assertion</tt>
(<xref target="instance-assertion-auth"/>). The workload presents no separate
client credential; the Client Instance Assertion authenticates
both the client (through the registered endorsement of its
issuer) and the instance.</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-04's key>

grant_type=client_credentials
&scope=repo.write
&client_id=https%3A%2F%2Fapp.example.com%2Fagent
&client_instance_assertion=eyJhbGciOiJFUzI1NiIs...
]]></sourcecode>
        <t>Decoded <tt>client_instance_assertion</tt>:</t>
        <sourcecode type="json"><![CDATA[
{
  "iss":         "https://workload.app.example.com",
  "sub":         "https://workload.app.example.com/inst-04",
  "aud":         "https://as.example.com",
  "client_id":   "https://app.example.com/agent",
  "sub_profile": "client_instance",
  "iat":         1770000100,
  "exp":         1770000400,
  "jti":         "ia-4d5e6f",
  "cnf":         { "jkt": "QrS...789" }
}
]]></sourcecode>
        <t>AS validation per <xref target="instance-assertion-auth-validation"/>:</t>
        <ol spacing="normal" type="1"><li>
            <t>Resolve the registered metadata for <tt>client_id</tt>
(<tt>token_endpoint_auth_method</tt> is <tt>client_instance_assertion</tt>,
so no separate client credential is expected and none is
accepted on this request).</t>
          </li>
          <li>
            <t>Validate the assertion using the descriptor lookup, signature
verification, and JWT claim validation rules in
<xref target="as-processing"/> (token-type matching does not apply on
<tt>client_credentials</tt>).</t>
          </li>
          <li>
            <t>Verify the assertion's <tt>client_id</tt> claim equals the request's
<tt>client_id</tt> parameter.</t>
          </li>
          <li>
            <t>Verify the assertion contains a <tt>cnf</tt> claim.</t>
          </li>
          <li>
            <t>Verify possession of the <tt>cnf</tt> key against the DPoP proof per
<xref target="sender-constrained"/>.</t>
          </li>
          <li>
            <t>Apply the replay check (<xref target="security-replay"/>).</t>
          </li>
          <li>
            <t>Treat the client as authenticated. The validated assertion
represents the instance for <xref target="access-token"/>.</t>
          </li>
        </ol>
        <t>Any failure in steps 1-6 above is returned as <tt>invalid_client</tt> per
<xref target="errors"/>; the assertion is the sole credential, so failures that
would otherwise be returned as <tt>invalid_grant</tt> or <tt>invalid_request</tt>
are reclassified.</t>
        <t>Self-acting access token issued by the AS:</t>
        <sourcecode type="json"><![CDATA[
{
  "iss":         "https://as.example.com",
  "aud":         "https://api.example.com",
  "sub":         "https://workload.app.example.com/inst-04",
  "sub_profile": "client_instance",
  "client_id":   "https://app.example.com/agent",
  "scope":       "repo.write",
  "iat":         1770000105,
  "exp":         1770001905,
  "cnf":         { "jkt": "QrS...789" }
}
]]></sourcecode>
      </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 the
<tt>client_instance_assertion</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 presented assertion 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
&client_instance_assertion=eyJhbGciOiJFUzI1NiIs...
]]></sourcecode>
        <t>Decoded <tt>client_instance_assertion</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="document-history">
      <name>Document History</name>
      <t><em>RFC EDITOR: please remove this section before publication.</em></t>
      <section numbered="false" anchor="history-01">
        <name>-01</name>
        <ul spacing="normal">
          <li>
            <t>Replaced the generic actor-token-grant-extension framing with
a dedicated <tt>client_instance_assertion</tt> request parameter on
the four non-token-exchange grants (<xref target="cia-param"/>).
Token-exchange continues to use <tt>actor_token</tt>.</t>
          </li>
          <li>
            <t>Added §spiffe-compatibility (raw JWT-SVID presentation), the
optional <tt>client_instance_assertion</tt> token-endpoint
authentication method, §security-multi-tenancy, and the
"OAuth Client Instance Subject Syntaxes" IANA sub-registry.</t>
          </li>
          <li>
            <t>Specified the validation procedure (<xref target="as-processing"/>) including
octet-equality comparisons and PoP-before-replay ordering, MTI
signing (<tt>ES256</tt>), and access-token surfacing aligned with
<xref target="RFC9068"/>.</t>
          </li>
          <li>
            <t>Added worked examples covering all five grants, the auth
method, refresh, and SPIFFE JWT-SVID reuse.</t>
          </li>
          <li>
            <t>Retitled to "OAuth 2.0 Client Instance Assertion".</t>
          </li>
        </ul>
      </section>
      <section numbered="false" anchor="history-00">
        <name>-00</name>
        <ul spacing="normal">
          <li>
            <t>Initial version.</t>
          </li>
        </ul>
      </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:
H4sIAAAAAAAAA7y9+3bbVpYm/v95CvzkNWNRTdKXJE4idfW0ynE6rkpi/yyl
MtW9elkQCUmIKYINgFLUtutZ5lnmyWZfz9nn4IBy0jWTrtW2SQI4OJd9/fa3
Z7OZ6+t+VR0We6+Ot/1V8XT+uHi+qqt1X7xcd325XlTFcddVbV836z1Xnp+3
1Q38uinh17MF/XJWyy9nZfjlouyry6a9Oyy6funcslmsy2t4zrItL/rZ9eJy
W6/XVdfN7rnT7PET123Pr+uug3/1dxu4x8sXp9+69fb6vGoP3RIedFg8ffz0
2ezxs9nTzxwM7zNXb9rDom+3Xf/08eOvHz91ZVuVMO6TarFt6/5uz9027bvL
ttlu4NOfq/MCX79p6/8s8anF67bpm0Wz2nPvqjv46fLQFbOC5gj/8vzlD9/g
nz/DTVZNuSxeLmH4cF/6Mp4//Ojk9ctvv33hbqr1toI7FZ/y4KLgt93Dh9Tr
y+Jf8CL8/LqsV7oG/1xX/cW8aS/xi7JdXMEXV32/6Q4fPcLf4Uf1TTXXnz3C
Dx6dt81tVz2iOzzCKy/r/mp7DteGlXn0W5cK77OC1eh6OwZ/+ZyfMa+b33zn
33zB/Kq/hil0Jc0trh2MrSgutqsVb8M/l+2q+GHxL3I/+hZmp1zLOsAmWy+r
TbXGdaVvK571zfZ8VS/++R1cb15t0Vw7t27aa7j4hlb4zbfPn335+dfy1y+/
ePJF+OuX4a9fhb+G3z79zP/16yf612fPnupfv3r8WP761ZOnz/Svnz/5XP/6
7Gu9w1dfPv7C//Wp/vXrx8/0wV9/zoM8fn766s3s9ZtX3778/gW8/eyb+WC6
y0XftLNN21zUK9jWdAr4p7i7kjVZzq6rvoTTWc7g8G+veR5f/Hj68vSv+pwT
eVDTlnI1nyJ9Bq4LH53Z8+9fwrWz459Ovxs8stvUFxeVPhk/cq5eXwyW4wu/
BiATdFYef0bLcXx6+uLkdOdjyh73Nm2P2XnZVcvoiUXx88sfTl7Mjt88t5fe
1tcdbEw4dP4Xz9+8+OZk8JNbESWzRVstw4sf0uZTIS2fFSTGKhQWy+2C5IYK
oOLbFjY43qz4tmmLFzdVe9esqz2+TdleVnA69XDyxNGJbBbdIz688umsPG+2
/h+LBs7Xpu8e0X38sSrk3ByqhMN/e4n8uXOz2awoz7u+hb3j3OlV3RXdplrU
F/WC5d2yuqhhixX9VTWueA6Lsujqy3W1dH/6+bSo6V0v7lAolgUOra36qmi3
8Ol1Vag4KJqLolwXQbHxcs3dy75oq8u666uWH3zG37zVK996QXIGv/yPLcxK
sSlxYuGSAjYWqLe2pefj5f7XRdnTB+GRffOuWhcgRjZNDa8GP4Hv3VlpZf7b
RbOszqZ+FLgB8AXLVYefttVFW3VXb+lW8EG55lk4r0CntcU+bOICZcYEtEq5
7rsjeQo/e1b9urgq15cVf0s/dyggJlP6UQcvZV4A1mcDT4PHV0v4uDijMy/P
Lm5Bgjv70VtUUWdFV8F7N+5s264PcUsf0mR1h3RuDnkcpMxSgf3LbY9vtOoa
pysCzz2/g6GlO2We3z4N7J1108Oi93QY4GWKdXU7WNIzJ7umhjmr1/CWrGeL
a5Bv5WXVzWnfVeVyWtS935Z8F6eiLOyCrtgvNxtQBeX5CqdaftkV/jH0HqVs
avfym+IHvck3Ig+LfZSgEzhAhXn7m7qUDfTNHSireqG3eEO/afnFZdm/fjKZ
wGTBvlvBGpThtZdn/pjAx6vmEka6cvxtcXvVdNX4wenAkKjokOMN0JKjdwEx
AkN1IK0rNq3gY3/WwD7b0qzA6SiqX8vrzaqaFirUZCxgH3V3cN11N6HlrBLj
56RqQV4VN+WqRiHCh9M/whwzOAJtJRs1+VUFexTuAXsXzj7u1TNYmrK+hsHA
68CHDX7vNm29XtSbcmW2fLFfzS/nsB+LLTwJ9sCquoSB4SlvoofA2WnwEY5O
/wJmrOPT9hBODFirZ/KwaGB131WrC3wcfuyf7/xDZXHM8eczO5kXOFU0w8vo
cfCZ69BGaVFA496ATbvE0ZYF2K3x8zcNzB/+D6ae5PJ1vVyCHncPYOf3XpM4
F6TX+/dixnz86E+E3WGlzH04WShyZZfhgYKrNqvm7pqWCaYEtxVI8vXlSoWk
vHS4hV3Y63J9V3SwQfrZChT5crhTp3Byumbbwvt1tHk6B5ujiOSrfgNygSfn
3bq5JaHRrFd3xcHtVb24OvBHvVziIFXsn297+YV/6AG+JZ05GTxdUqNi8Qfo
urwDAQ2LRdsHtyztKdgf59VVCduA9k+yE+BfYAmsbiqQ4UMBCOeV3uIcNvDc
rtIpbYUXKudp0VDCm0UjJReJcjxCGUnO22qg8/AwLf1d5ESRIvSrRcp4XdAt
UcCWa92xdM9p0S2aDc8/qsCccuJ9zi92TPd5zXYgvFNkn3786C62LZ1zv++7
wfBwyEHPs/HaVmjkLB39AnYPLm/1K8pxsLDuQIiWMPsFGD6wYCNzQa8N6uMm
feOLFThVBYkX3B5rVf7yjqrA1Br2i1MWYu7inYtoQvV0qCupYvQ+QwPOXn/o
3EHxplo0l+DU0B6Ai7w9ZI8xeC/XdBTUUoO3QDmMxw8suh16Yh8Pyoq2Z3dV
b0CTg5u9vCvqa55S+CncgIUArD0/eoOPqBfVERxMXNrUKLgGc2j18eOETZ0i
0cWF18XLqlu09blaYQepLjpQLYWuNIhEMt/hp6j7/CvwnvP3JJ1ekawiNVHQ
rXUZxrR7kdXu79+jeoe9WmQ0PJ1S1N8fP+o8tEa/8yR0Hz/OYRG/+RQbGTXI
n05e/VhgTIFFwj6YiRN4ujzrCYpxNqNp8OtUe7Nz212RXjcv/hDdEZ2iaXKu
PtF+hjtEJ6jwFjTskk80mwuxcItVLcYHvNqmaq9rWNrljL+EKStejRvAcJN9
IyF/hxUMd0A7uBi3g4viv2QJF0XGFhYRMacz/R/bGoaXswjwD1Q8O6wC2dND
u4BXVnQO3P4KtKT9JQaYdIrQ0FmsL1TULtv6RkUMHMglravaP/AiIPlbNJTp
3WbXtUyszje76vxuuq927Sk07nCWee51m7zFOX4LO+yqAaEGRuS2whkFqYzD
iSwRWD+Q8fhCazQCYH5kq+OMgS20WsH4giFGc2fMYXM24B54nMcM1RUYzfYI
X9RtBw9ZwU+KbrvZgGlDp4Hd56G9DM7IerHa4oSiGNngXWE8S1j/Ra+blM0D
MErgvM9O/vLyG/+GOttwuR1FzjwKMrBrrHUDcrckIV53ZIDosEGd/XxFBzfS
aeiPHYBtdQB/JQ30ss87aQMHzZqRXlTAgy9kAfurttleXrHHHb2AiJhprLGn
cC09EHc0S0g0uqz5vA+Cl+QjC91yVc3WTTiTYUAgKObJu4hQIelxB2vwK94d
Tinenmy+i9QggSedV3cNnLFbnLiBTeO1pyi89In8cfLuXkbSOSvpRTsyUUhx
31QcJWEbRTbVEQjQdxmjasqLCf9bVRe93ORi22OoCXfmHH2F53jTNT8G5QXt
qZr+zS4dOh4YMe+KvR9+Ojndm/KfxY+v6O9vXvz/P7188+Ib/PvJd8fff+//
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
74jItNgDKQR1OTelHFOAV0Mj5/8Ddm6jjghFAgA=

-->

</rfc>
