<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-mcguinness-oauth-client-instance-id-00" category="std" consensus="true" submissionType="IETF" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="Client Instance Identification">Client Instance Identification for Attestation-Based Client Authentication</title>
    <seriesInfo name="Internet-Draft" value="draft-mcguinness-oauth-client-instance-id-00"/>
    <author fullname="Karl McGuinness">
      <organization>Independent</organization>
      <address>
        <email>public@karlmcguinness.com</email>
      </address>
    </author>
    <date year="2026" month="September" day="28"/>
    <area>Security</area>
    <workgroup>Web Authorization Protocol</workgroup>
    <keyword>OAuth</keyword>
    <keyword>client attestation</keyword>
    <keyword>instance identity</keyword>
    <abstract>
      <?line 50?>

<t>This specification defines an optional claims profile of OAuth 2.0
Attestation-Based Client Authentication. When selected, the profile
requires an attester-assigned client instance identifier, scoped by default to the server that validates it, that remains stable across verified key
changes, and adds continuity and privacy
rules for that identifier. Conveying instance context in tokens and
introspection responses remains optional within the profile.
Authentication and proof methods follow the base specification.</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-id/draft-mcguinness-oauth-client-instance-id.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-mcguinness-oauth-client-instance-id/"/>.
      </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-id"/>.</t>
    </note>
  </front>
  <middle>
    <?line 60?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Attestation-Based Client Authentication <xref target="ATTEST"/> answers one
question: is this an authorized Client Instance in possession of this
key? This profile adds a second: is this the same Client Instance the
Receiver previously encountered? A new attestation alone cannot answer
it: <xref section="10.6" sectionFormat="of" target="ATTEST"/> requires one for every new key, and after
a key change a continuing installation is indistinguishable from a new
one.</t>
      <t>This question arises in deployments where one Logical Client has many
Client Instances, for example, an application on each managed laptop,
a container per replica, or an agent runtime per host. Each instance
presents a valid attestation for the same <tt>client_id</tt> and is
distinguishable only by its current key. After an instance rotates
that key, a Receiver cannot determine whether it is the instance the
Receiver suspended or a new one, and audit history and status
decisions tied to the old key do not carry over.</t>
      <t>This specification defines two claims:</t>
      <ul spacing="normal">
        <li>
          <t>The <tt>client_instance_id</tt> claim allows a Receiver to recognize a Client
Instance across key changes. Carried in the Client Attestation, it
identifies one installation or runtime. The attester assigns it,
retains it across verified key changes, and by default scopes it to
one Receiver, which reveals that Receiver to the attester.</t>
        </li>
        <li>
          <t>The <tt>client_instance</tt> claim, or introspection response member, allows
a resource server that does not
receive the attestation to correlate requests with the instance
validated at issuance. It carries a mapped reference to that instance
in a token or introspection response.</t>
        </li>
      </ul>
      <t>This specification establishes instance identity and its continuity,
not authority; instance evidence grants none. Authorization profiles
can use validated instance identity or Instance Context as a policy
input, subject to the prohibitions in <xref target="processing"/>.</t>
      <t><xref target="ATTEST"/> alone suffices when correlation is needed only for the
current key.</t>
      <t>Assigning each instance its own <tt>client_id</tt> with a shared <tt>software_id</tt>
client metadata value (<xref section="2" sectionFormat="of" target="RFC7591"/>) is an alternative.
This specification instead targets deployments that share one Logical
Client, one metadata URL when using <xref target="CIMD"/>, and authorization server
policy keyed by that client. The <tt>software_id</tt> value correlates
registrations but defines no shared grants or policy across separate
client identities.</t>
      <t><xref target="conformance"/> lists the five implementing roles and their
requirements.</t>
      <section anchor="identity-and-scope">
        <name>Identity and Scope</name>
        <table>
          <thead>
            <tr>
              <th align="left">Identity</th>
              <th align="left">Purpose</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Logical Client (<tt>client_id</tt>)</td>
              <td align="left">Identifies the OAuth client</td>
            </tr>
            <tr>
              <td align="left">Authorization principal</td>
              <td align="left">Identifies the subject or delegated actor</td>
            </tr>
            <tr>
              <td align="left">Client Instance</td>
              <td align="left">Identifies one installation or one execution of the client software</td>
            </tr>
          </tbody>
        </table>
        <t>The deployment chooses the instance granularity:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Installation:</strong> one installation, retaining its identity across
process restarts.</t>
          </li>
          <li>
            <t><strong>Execution:</strong> one unit the deployment names, such as a process,
container, or Kubernetes Pod, retaining its identity for that
unit's lifetime.</t>
          </li>
        </ul>
        <t>Enrollment records that choice.</t>
        <t>This specification addresses administratively configured deployments
such as workloads and managed desktop or mobile applications. Its
identifiers are not general-purpose device or wallet identifiers, and
it does not define an enrollment, key-rotation, or status-distribution
protocol. <xref target="ATTEST"/>
supplies the authentication and proof methods, including direct
resource-server presentation (<xref section="7" sectionFormat="of" target="ATTEST"/>). When selected
under <xref target="configuration"/>, this profile applies whether the Client
Attestation is the client authentication method or an additional
security signal (<xref section="7.6" sectionFormat="of" target="ATTEST"/>). It does not replace the
deployment's required client authentication.</t>
      </section>
    </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 <xref target="BCP14"/> (<xref target="RFC2119"/>) (<xref target="RFC8174"/>) when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>The terms Client Attestation, Client Attester, Client Instance, and
Client Instance Key are used as defined in <xref target="ATTEST"/>.</t>
      <dl>
        <dt>Logical Client:</dt>
        <dd>
          <t>The OAuth client <xref target="RFC6749"/> identified by <tt>client_id</tt>. Several Client
Instances can authenticate as the same Logical Client.</t>
        </dd>
        <dt>Attester Issuer:</dt>
        <dd>
          <t>The <tt>iss</tt> claim value in the Client Attestation, which identifies
the Client Attester.</t>
        </dd>
        <dt>Instance Identifier:</dt>
        <dd>
          <t>The <tt>client_instance_id</tt> claim value, which a Client Attester assigns
to one Client Instance at the configured granularity and Receiver
Scope (<xref target="receiver-scope"/>).</t>
        </dd>
        <dt>Source Instance Identity:</dt>
        <dd>
          <t>The pair <tt>(iss, client_instance_id)</tt> from a validated Client
Attestation, that is, the Attester Issuer and the Instance
Identifier. This specification keeps it stable across verified key
changes, and Instance Context is mapped from it.</t>
        </dd>
        <dt>Instance Context:</dt>
        <dd>
          <t>The <tt>client_instance</tt> JSON object in a token or introspection
response. It grants no authority and does not prove current
possession.</t>
        </dd>
        <dt>Receiver:</dt>
        <dd>
          <t>A party that validates a Client Attestation under this profile, such
as an authorization server or resource server. A Receiver that issues
tokens carrying Instance Context is also a token issuer.</t>
        </dd>
        <dt>Context Consumer:</dt>
        <dd>
          <t>A party that consumes Instance Context from a token or introspection
response. It need not receive the Client Attestation.</t>
        </dd>
        <dt>Receiver Scope:</dt>
        <dd>
          <t>The Receiver, or explicitly configured set of Receivers, to which one
assignment of <tt>client_instance_id</tt> is scoped (<xref target="receiver-scope"/>).</t>
        </dd>
        <dt>Consumer Scope:</dt>
        <dd>
          <t>The Context Consumer, or explicitly configured set of Context
Consumers, to which one mapping of Instance Context is scoped. A
Consumer Scope is identified by a configured set of audience values
(<xref target="format-and-mapping"/>).</t>
        </dd>
        <dt>Instance Context Authority:</dt>
        <dd>
          <t>The token issuer identified by the <tt>iss</tt> member of Instance Context.
It assigned the current <tt>id</tt> value and is the enclosing token's
issuer unless the context was preserved from an upstream token. The
Client Attester remains the authority for the Source Instance
Identity.</t>
        </dd>
        <dt>Instance Context Identifier:</dt>
        <dd>
          <t>The pair <tt>(iss, id)</tt> in Instance Context. Like a pairwise subject
identifier, it is the Instance Context Authority's own correlator for
one Source Instance Identity within a Consumer Scope; its <tt>id</tt> need
not equal <tt>client_instance_id</tt>.</t>
        </dd>
        <dt>Consuming profile:</dt>
        <dd>
          <t>A specification or deployment profile that defines how a Context
Consumer, or an issuer conveying Instance Context through token
exchange, establishes the association between Instance Context and the
token's subject, actor, or presenter, and how the provenance of
preserved context is authenticated (<xref target="context-exchange"/>,
<xref target="context-consumer"/>). This specification acts as the consuming
profile only in the case described in <xref target="context-consumer"/>.</t>
        </dd>
        <dt>enrollment:</dt>
        <dd>
          <t>An attester-maintained record binding one instance, at the configured
granularity, to its verified keys and assigned identifiers, separate
from any user account, device registration, or Logical Client.</t>
        </dd>
      </dl>
      <t>Identifier values in this specification are opaque. Implementations <bcp14>MUST</bcp14>
compare <tt>iss</tt>, <tt>client_instance_id</tt>, <tt>client_instance.iss</tt>, and
<tt>client_instance.id</tt> as exact, case-sensitive strings without URI
normalization, and <bcp14>MUST NOT</bcp14> derive permissions, granularity, or key
locations by parsing them.</t>
    </section>
    <section anchor="configuration">
      <name>Profile Selection and Trust</name>
      <t>The client and Receiver administratively configure:</t>
      <ul spacing="normal">
        <li>
          <t>the Logical Client, authentication method, and attester trust policy;</t>
        </li>
        <li>
          <t>the instance granularity, continuity evidence, and freshness limits;</t>
        </li>
        <li>
          <t>the intended Receiver and any explicitly shared Receiver Scope
(<xref target="receiver-scope"/>).</t>
        </li>
      </ul>
      <t>A Context Consumer that requires context configures that requirement,
including whether it extends to attribution, with the issuers it accepts
context from. Claims <bcp14>MUST NOT</bcp14> select this profile or change
authentication methods; selection is part of the client-specific trust
agreement, and this profile adds no discovery or metadata parameter.
The error in <xref target="errors"/> reports rejection, not profile discovery.</t>
      <section anchor="attester-trust">
        <name>Attester Trust</name>
        <t>The Receiver <bcp14>MUST</bcp14> bind each approved Attester Issuer to its validation
keys and authorized Logical Clients through configured associations. An
authorization server can derive those associations from client
endorsements it accepts, for example under <xref target="ATTESTER-ENDORSEMENT"/>.
<xref target="ATTESTER-ENDORSEMENT"/> applies only to authorization server endpoints
(<xref section="2.3" sectionFormat="of" target="ATTESTER-ENDORSEMENT"/>);
a resource server validating attestations directly uses configured
associations. A credential's <tt>iss</tt> claim, proof of possession, or
client-published metadata (<xref target="RFC7591"/>, <xref target="CIMD"/>) alone does not
establish attester authority. Key resolution follows
<xref section="10.8" sectionFormat="of" target="ATTEST"/>. Local trust withdrawal <bcp14>MUST</bcp14> take effect on
subsequent authentication.</t>
      </section>
      <section anchor="conformance">
        <name>Conformance</name>
        <t>Conformance is role-specific:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Role</th>
              <th align="left">Implements</th>
              <th align="left">Where</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Client Attester</td>
              <td align="left">Claim, identifier, continuity, and enrollment requirements</td>
              <td align="left">
                <xref target="claims"/>, <xref target="attester-requirements"/></td>
            </tr>
            <tr>
              <td align="left">Client</td>
              <td align="left">Scoped attestation use, key separation, and the selected ATTEST proof method</td>
              <td align="left">
                <xref target="receiver-scope"/>, <xref target="presenter-attribution"/>, <xref target="token-binding-keys"/></td>
            </tr>
            <tr>
              <td align="left">Receiver</td>
              <td align="left">Trust, validation, grant-continuity, and revocation rules</td>
              <td align="left">
                <xref target="configuration"/>, <xref target="processing"/>, <xref target="suspension"/></td>
            </tr>
            <tr>
              <td align="left">Token issuer conveying context</td>
              <td align="left">Mapping, preservation, and any binding that attribution requires</td>
              <td align="left">
                <xref target="instance-context"/></td>
            </tr>
            <tr>
              <td align="left">Context Consumer</td>
              <td align="left">Context validation and applicable proof checks</td>
              <td align="left">
                <xref target="presenter-attribution"/>, <xref target="context-consumer"/>, <xref target="context-errors"/></td>
            </tr>
          </tbody>
        </table>
        <t>An implementation serving several roles satisfies each. Conveying
Instance Context (<xref target="instance-context"/>) is optional and independent of
the rest of this specification.</t>
      </section>
    </section>
    <section anchor="claims">
      <name>Client Attestation Claims</name>
      <t>This profile uses the additional claims permitted by
<xref section="4" sectionFormat="of" target="ATTEST"/>. All <xref target="ATTEST"/> requirements apply, including a
<tt>typ</tt> JOSE header parameter value of <tt>oauth-client-attestation+jwt</tt>,
<tt>sub</tt> equal to <tt>client_id</tt>, the required <tt>exp</tt> and <tt>cnf</tt> claims, and the
optional <tt>iat</tt> claim.</t>
      <dl>
        <dt><tt>iss</tt>:</dt>
        <dd>
          <t><bcp14>REQUIRED</bcp14>. Exactly matches an approved Attester Issuer
(<xref target="attester-trust"/>).</t>
        </dd>
        <dt><tt>client_instance_id</tt>:</dt>
        <dd>
          <t><bcp14>REQUIRED</bcp14>. A nonempty JSON string, whose UTF-8 encoding is at most 256
octets after JSON string decoding, that identifies the instance within
the attester's namespace. A URI-form value carries no URI semantics.
Receivers <bcp14>MUST</bcp14> reject longer values. Assignment, scoping, and
generation follow <xref target="identifier-generation"/>.</t>
        </dd>
      </dl>
      <section anchor="receiver-scope">
        <name>Receiver Scope</name>
        <t>A Receiver Scope is an enrollment or issuance input, not an OAuth
parameter or attestation audience. A Receiver cannot verify it from the
identifier alone.</t>
        <t>The attester <bcp14>MUST</bcp14> assign distinct identifiers per Receiver unless an
administrative agreement explicitly authorizes a shared identifier
within a named set of Receivers. A shared client or trust domain does
not by itself authorize sharing. The client <bcp14>MUST</bcp14> request and use the
attestation for that configured scope. A Receiver cannot detect an
attestation presented outside its scope; the resulting correlation
exposes the end user of that instance (<xref section="11.1" sectionFormat="of" target="ATTEST"/>).</t>
        <t>Scoping an identifier to a Receiver reveals that Receiver to the
attester (<xref target="attester-visibility"/>). A deployment that needs the attester
not to learn individual Receivers, or that intends correlation across
them, configures one Receiver Scope spanning them; one identifier and
key then suffice.</t>
        <t>The client <bcp14>MUST</bcp14> also use distinct Client Instance Keys across scopes.
<xref section="11.1" sectionFormat="of" target="ATTEST"/> recommends this across authorization and
resource servers; this profile requires it across the scopes a
deployment chooses to separate, because a shared key links
attestations regardless of their identifiers. Token-binding key
separation between Context Consumers is addressed in
<xref target="token-binding-keys"/>.</t>
        <t>In combined mode, the Client Instance Key is also the DPoP key. In
normal mode, the DPoP key is independent of the attestation
(<xref section="5.2" sectionFormat="of" target="ATTEST"/>). A token issued in combined mode is bound to
the authorization server's scoped key. A separately scoped resource
server's attestation carries a different key. No single proof can
match both, so combined mode cannot also be used at that resource
server. Instead, a client authenticating in normal mode can present
the resource-server-scoped key as its DPoP key at issuance. That
allows combined mode at the resource server, at a correlation cost
described in <xref target="token-binding-keys"/>.</t>
      </section>
      <section anchor="attestation-example">
        <name>Example</name>
        <t>The following example shows a decoded Client Attestation payload with
the optional <tt>iat</tt> claim:</t>
        <sourcecode type="json"><![CDATA[
{
  "iss": "https://attester.example/tenant/acme",
  "sub": "https://platform.example/oauth-client",
  "client_instance_id": "i-844a2aa37074eed77f3b3e950432f597",
  "iat": 1789128000,
  "exp": 1789128300,
  "cnf": {
    "jwk": {
      "kty": "EC",
      "crv": "P-256",
      "x": "VcKVNBZ4IaBAYW3jxM4w3TJFVA7myeUGQyGt-g_yvpQ",
      "y": "f-E-hYE3TAWKwhVv9pej9NABs9SX9XsNO80x57jFTyU"
    }
  }
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="processing">
      <name>Request Processing</name>
      <t>The Receiver <bcp14>MUST</bcp14>:</t>
      <ol spacing="normal" type="1"><li>
          <t>Validate the attestation and proof under the configured <xref target="ATTEST"/>
method.</t>
        </li>
        <li>
          <t>Validate the claims in <xref target="claims"/> and attester authority under
<xref target="configuration"/>, including that the key that verified the
attestation is bound to the asserted <tt>iss</tt> claim. Key resolution
under <xref section="10.8" sectionFormat="of" target="ATTEST"/> selects a key from JOSE header
parameters, not from <tt>iss</tt>, so a trust anchor covering several
attesters does not by itself establish that association.</t>
        </li>
        <li>
          <t>Associate the Source Instance Identity with the Logical Client and
validated Client Instance Key, then apply the Receiver's local
policy for that instance, such as suspension or required prior
enrollment, reporting rejection under <xref target="errors"/>.</t>
        </li>
      </ol>
      <t>The Receiver <bcp14>MUST NOT</bcp14>:</t>
      <ul spacing="normal">
        <li>
          <t>substitute an identifier for proof of possession or infer it from a
key thumbprint, certificate serial number, or JWT <tt>jti</tt> claim;</t>
        </li>
        <li>
          <t>infer continuity from equal identifiers or keys across Attester
Issuers; or</t>
        </li>
        <li>
          <t>set an access token's <tt>sub</tt> claim, add an <tt>act</tt> claim, or extend an
actor chain solely from instance evidence.</t>
        </li>
      </ul>
      <t>Migration between Attester Issuers requires a procedure that establishes
trust in both authorities and continuity evidence; this specification
does not define one. Key selection follows <xref target="ATTEST"/>; when a separate
token-binding key is used, context identifies the instance associated
with the Client Instance Key.</t>
      <section anchor="grant-continuity">
        <name>Grant Continuity</name>
        <t><xref section="10.3" sectionFormat="of" target="ATTEST"/> binds a refresh token to the Client Instance,
by default through the Client Instance Key. The refresh token remains
bound to that key; only a profile acting under <xref section="13" sectionFormat="of" target="ATTEST"/>
can rebind it. This profile records an identity for the binding that
persists across a verified key change, so later grants correlate with
the same instance. It adds no instance-bound grants. Under the default
binding, a refresh after a key change fails key-binding validation. With
the original bound key, the identity check below detects an attestation
that names a different instance; the check governs refresh across key
changes only under a profile that rebinds refresh tokens.</t>
        <t>For a grant established using a Client Attestation validated under this
profile, the authorization server <bcp14>MUST</bcp14> record the Source Instance
Identity when issuing a refresh token.</t>
        <t>On refresh of such a grant, the authorization server:</t>
        <ol spacing="normal" type="1"><li>
            <t><bcp14>MUST</bcp14> require a validated attestation, whether the attestation is the
client authentication method or an additional security signal. This
extends <xref section="10.3" sectionFormat="of" target="ATTEST"/>, which requires the attestation
mechanism when refreshing.</t>
          </li>
          <li>
            <t><bcp14>MUST</bcp14> enforce two independent invariants:
            </t>
            <ul spacing="normal">
              <li>
                <t>the Source Instance Identity in the current validated attestation
<bcp14>MUST</bcp14> match the recorded one; and</t>
              </li>
              <li>
                <t>the proof and key binding <bcp14>MUST</bcp14> satisfy <xref target="ATTEST"/>, or a profile
that has redefined refresh-token binding under
<xref section="13" sectionFormat="of" target="ATTEST"/>.</t>
              </li>
            </ul>
          </li>
          <li>
            <t><bcp14>MUST</bcp14> produce the <tt>invalid_grant</tt> error code
(<xref section="5.2" sectionFormat="of" target="RFC6749"/>) for a conflict with the recorded
identity, without disclosing the expected identity.</t>
          </li>
        </ol>
        <t>Instance continuity and key-binding continuity are independent.</t>
        <t>If authorization-time policy bound a code or other artifact to an
instance, the authorization server <bcp14>MUST</bcp14> enforce that binding at
redemption, whether the attestation is the client authentication method
or an additional security signal (<xref section="7.6" sectionFormat="of" target="ATTEST"/>). Because
presenting the attestation can be optional in that second mode, an
authorization server that binds artifacts to instances <bcp14>MUST</bcp14> require it
at their redemption; otherwise a conforming client cannot supply what
the authorization server needs to check.
<xref section="10.4" sectionFormat="of" target="ATTEST"/> recommends establishing such bindings where
attestation is the client authentication method.</t>
      </section>
      <section anchor="errors">
        <name>Attestation Errors</name>
        <t>If required instance claims are missing or invalid, or if the Receiver's
local policy for the instance (<xref target="processing"/>) rejects the instance, the
Receiver <bcp14>MUST</bcp14> produce the <tt>invalid_client_attestation</tt> error code.
<xref section="7.4" sectionFormat="of" target="ATTEST"/> defines that code for failures to verify the
attestation or its proof. This profile extends it to instance claims and
policy, so responses do not disclose whether an instance is unknown,
suspended, or retired. Receivers <bcp14>SHOULD</bcp14> also avoid distinguishable
response timing. Consequently, a client cannot distinguish a transient
failure from a durable policy decision, or whether retrying with a fresh
attestation will help. Responses use the format <xref target="ATTEST"/> specifies for
the code (<xref section="5.2" sectionFormat="of" target="RFC6749"/> at the authorization server,
<xref section="3" sectionFormat="of" target="RFC6750"/> at a resource server). Unknown instances are
rejected only when local policy requires prior enrollment. If a profile
check fails, the Receiver <bcp14>MUST NOT</bcp14> fall back to authentication without
the required evidence. Grant-binding errors follow <xref target="grant-continuity"/>;
other errors follow <xref target="ATTEST"/>.</t>
      </section>
    </section>
    <section anchor="attester-requirements">
      <name>Attester Requirements</name>
      <t>An Instance Identifier's meaning over time depends on the attester:
how it generates identifiers (<xref target="identifier-generation"/>), when it may
retain them (<xref target="continuity"/>), how it handles suspension
(<xref target="suspension"/>), and what records it keeps (<xref target="state"/>).</t>
      <section anchor="identifier-generation">
        <name>Identifier Generation</name>
        <t>For each enrollment and Receiver Scope (<xref target="receiver-scope"/>), the
attester <bcp14>MUST</bcp14> assign identifiers that are:</t>
        <ul spacing="normal">
          <li>
            <t>distinct, opaque, and never reassigned, including after retirement;</t>
          </li>
          <li>
            <t>generated from at least 128 bits of either cryptographically secure
randomness or keyed pseudorandom-function output;</t>
          </li>
          <li>
            <t>unpredictable to parties other than the attester; and</t>
          </li>
          <li>
            <t>free of runtime hostnames, user identifiers, and embedded instance
attributes.</t>
          </li>
        </ul>
        <t>A URI can name the attester's namespace; its instance-specific portion
remains opaque. Keyed derivation, such as HMAC <xref target="RFC2104"/>, <bcp14>MUST</bcp14> use a
secret with at least 128 bits of entropy and unambiguously encode the
Logical Client, Receiver Scope, and a unique enrollment component; a
platform-stable input alone would reproduce retired identifiers after
reinstall. If the attester changes its derivation inputs or secrets,
it <bcp14>MUST</bcp14> still produce the values already assigned within a continuing
enrollment. Storing the assigned values suffices.</t>
      </section>
      <section anchor="continuity">
        <name>Continuity and Lifecycle</name>
        <t>Continuity is authenticated evidence that shows the attester that a
claimant is the same enrolled Client Instance at the configured
granularity. An attester-recorded chain of verified key custody within
one enrollment is the primary mechanism; platform or hardware-rooted
identity evidence can supplement that chain or, where the deployment's
evidence policy permits, replace it. Before retaining an identifier,
the attester <bcp14>MUST</bcp14> verify and record:</t>
        <ol spacing="normal" type="1"><li>
            <t>an active enrollment binding the instance, Logical Client, Receiver
Scope, granularity, and previously verified keys;</t>
          </li>
          <li>
            <t>fresh possession of the current key and authenticated evidence
binding it to that enrollment, including an authorized custody
transition when the key changes; and</t>
          </li>
          <li>
            <t>the configured continuity checks, their freshness, and observed
lifecycle events or evidence of independent claimants.</t>
          </li>
        </ol>
        <t>The deployment specifies its evidence, freshness limits, and lifecycle
boundaries. For example, when the unit is a Kubernetes Pod, a container
restart keeps the identity, but a new Pod is a new unit. An identifier
at Installation or Execution granularity does not identify individual
processes within that installation or unit. The attester <bcp14>MUST</bcp14> apply the
following outcomes:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Event</th>
              <th align="left">Required outcome</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Renewal, verified key change, process restart at Installation granularity, or in-place update</td>
              <td align="left">Retain identifiers when continuity is verified</td>
            </tr>
            <tr>
              <td align="left">Reinstall, independent clone, replacement or restart of the unit at Execution granularity, or granularity change</td>
              <td align="left">Require new enrollment</td>
            </tr>
            <tr>
              <td align="left">Restore or snapshot rollback</td>
              <td align="left">Retain only with fresh evidence that the claimant succeeds the prior holder; copied keys and data alone are insufficient</td>
            </tr>
            <tr>
              <td align="left">Resume after suspension (<xref target="suspension"/>)</td>
              <td align="left">Apply continuity checks at the next issuance using available authenticated evidence</td>
            </tr>
            <tr>
              <td align="left">Continuity cannot be established</td>
              <td align="left">Require new enrollment; a continuing original can retain its own enrollment</td>
            </tr>
            <tr>
              <td align="left">Detected fork of one enrollment</td>
              <td align="left">Retire the identifiers and enroll claimants separately, unless authenticated evidence shows which claimant continues the enrollment; that claimant keeps them</td>
            </tr>
          </tbody>
        </table>
        <t>The attester <bcp14>MUST NOT</bcp14> knowingly retain identifiers for independent
instances. Concurrent processes within one installation are not by
themselves a fork. This prohibition covers detected forks, not events
the platform cannot observe (<xref target="assurance"/>). An identifier, expired
attestation, or former public key alone does not establish continuity.</t>
      </section>
      <section anchor="suspension">
        <name>Suspension and Status</name>
        <t>The attester <bcp14>MUST</bcp14> stop issuance for suspended or retired enrollments.
An authorization server that suspends an instance <bcp14>SHOULD</bcp14> revoke the
instance's grants or report their tokens inactive through introspection
<xref target="RFC7662"/>. Short
attestation lifetimes limit how long a suspended instance remains
acceptable.</t>
        <t>When an authorization server revokes a grant for instance suspension,
retirement, or attester trust withdrawal, it <bcp14>MUST</bcp14> revoke all of that
grant's access and refresh tokens, report them inactive in
introspection responses, and prevent further refresh issuance.</t>
        <t>Without a status channel, parties unaware of the change face three
limitations: existing attestations may remain acceptable until
expiration plus clock skew; issued tokens may still be accepted for
their own lifetimes; and local revocation does not notify resource
servers validating tokens offline. Status distribution, for example
using Security Event Tokens <xref target="RFC8417"/> delivered under <xref target="RFC8935"/>, is
outside the scope of this specification.</t>
      </section>
      <section anchor="state">
        <name>State and Retention</name>
        <t>Attesters <bcp14>MUST</bcp14> retain enrollment and verification records while
issuing or renewing attestations, and status while supporting
resumption. Verification summaries suffice. Deleting continuity
records requires new enrollment. A validating Receiver need not keep
an instance allowlist, but local suspension needs instance status,
revocation needs token associations, and mapped context needs its
mappings (<xref target="mapping-stability"/>). Audit retention is local policy.</t>
      </section>
    </section>
    <section anchor="instance-context">
      <name>Conveying Instance Context</name>
      <t>This section is optional. It defines how a token issuer represents a
validated instance to downstream consumers (<xref target="format-and-mapping"/>)
and what a consumer may conclude from it (<xref target="context-consumer"/>).</t>
      <section anchor="format-and-mapping">
        <name>Format and Mapping</name>
        <t>An issuer <bcp14>MAY</bcp14> include the <tt>client_instance</tt> claim in a token or the
<tt>client_instance</tt> member in an introspection response <xref target="RFC7662"/>. The
<tt>client_instance</tt> value is a JSON object whose two <bcp14>REQUIRED</bcp14> members
together form an Instance Context Identifier:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Member</th>
              <th align="left">Type</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>iss</tt></td>
              <td align="left">Nonempty string</td>
              <td align="left">Instance Context Authority that assigned <tt>id</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>id</tt></td>
              <td align="left">Nonempty string, at most 256 octets of UTF-8 after JSON string decoding</td>
              <td align="left">That authority's representation of the instance</td>
            </tr>
          </tbody>
        </table>
        <t>For direct issuance from a validated Client Attestation, context <bcp14>MUST</bcp14>
identify the authenticated presenting instance; on refresh, that
identity is subject to <xref target="grant-continuity"/>. Token exchange follows
<xref target="context-exchange"/> instead.</t>
        <t>Context <bcp14>MUST</bcp14> refer to validated instance participation; issuers <bcp14>MUST
NOT</bcp14> copy unvalidated client-supplied context. The issuer <bcp14>MUST</bcp14> map its
mapping input (the Source Instance Identity or, when remapping under
<xref target="context-exchange"/>, the upstream Instance Context Identifier) into
its own namespace. Each mapping <bcp14>MUST</bcp14>:</t>
        <ul spacing="normal">
          <li>
            <t>keep distinct instances separate unless continuity is established;</t>
          </li>
          <li>
            <t>generate the <tt>id</tt> value under <xref target="identifier-generation"/>, within the
same length bound as the <tt>client_instance_id</tt> claim (<xref target="claims"/>), and
retain it across attestation renewal and verified key changes; and</t>
          </li>
          <li>
            <t>scope the <tt>id</tt> value to a Consumer Scope, allowing sharing only within
an explicitly configured set.</t>
          </li>
        </ul>
        <t>Each Consumer Scope is identified by a configured set of audience
values. The issuer selects the mapping by the token's audience: its
<tt>aud</tt> claim or, for an opaque token, the audience recorded at issuance.
If a token has no audience, or its audiences span Consumer Scopes, no
single <tt>id</tt> value is correct, and the issuer <bcp14>MUST</bcp14> omit the
<tt>client_instance</tt> object. An introspection response conveys the <tt>id</tt> the
token would carry. When the authenticated introspection caller is
outside the token's Consumer Scope, the issuer <bcp14>MUST</bcp14> omit the
<tt>client_instance</tt> object.</t>
        <t>For derived mappings, the mapping input supplies the enrollment-specific
component and the consumer supplies the scope. Issuers <bcp14>MUST</bcp14> separate
this derivation from attester identifiers, for example by a distinct
key or purpose label. <xref target="wire-examples"/> shows mapped context in an
access token and an introspection response.</t>
      </section>
      <section anchor="mapping-stability">
        <name>Mapping Stability</name>
        <t>For one mapping input and Consumer Scope, an issuer:</t>
        <ul spacing="normal">
          <li>
            <t><bcp14>MUST NOT</bcp14> represent that input by more than one <tt>id</tt>;</t>
          </li>
          <li>
            <t><bcp14>MUST</bcp14> retain the mapping while any token or grant it issued for that
input remains valid, including clock skew; and</t>
          </li>
          <li>
            <t><bcp14>MUST</bcp14> omit the <tt>client_instance</tt> object rather than assign a
replacement once it no longer holds or can reproduce the mapping. A
Context Consumer requiring context then rejects the request as
specified in <xref target="context-errors"/>.</t>
          </li>
        </ul>
        <t>An issuer that changes its derivation inputs or secrets <bcp14>MUST</bcp14> still
produce the identifiers already assigned for any input and scope for
which it continues to include context, as <xref target="identifier-generation"/>
requires of attesters. Storing those values suffices. Otherwise,
rotating one secret would silently and permanently remove context from
every instance mapped under it.</t>
        <t>Attester identifiers are never reassigned, so a new enrollment presents
a new mapping input and receives a new mapping.</t>
        <t>Storage requirements differ by mapping strategy:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Strategy</th>
              <th align="left">Records needed</th>
              <th align="left">Non-reassignment depends on</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Derived</td>
              <td align="left">None per instance, while the derivation secret and inputs remain available (<xref target="identifier-generation"/>)</td>
              <td align="left">Never reusing enrollment inputs</td>
            </tr>
            <tr>
              <td align="left">Random</td>
              <td align="left">Retained for as long as the issuer intends to include context</td>
              <td align="left">Probability</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="presenter-attribution">
        <name>Presenter Attribution</name>
        <t>Instance Context grants no authority. Alone, it describes only the
instance that participated in obtaining the token.</t>
        <t>When a Context Consumer uses context to attribute the current token
presentation to that instance, the applicable consuming profile <bcp14>MUST</bcp14>
require a mechanism associating the token presenter with the instance. A
Context Consumer attributing a presentation this way <bcp14>MUST</bcp14> validate that
mechanism. For tokens issued directly from a validated Client
Attestation, the mechanism is sender constraint: DPoP <xref target="RFC9449"/>,
mutual TLS <xref target="RFC8705"/>, or another mechanism the consuming profile
defines, using a key the issuer associated with the authenticated
instance at issuance.</t>
        <t>For presenter attribution, the client <bcp14>MUST</bcp14> use a constraining key unique
to the instance at the configured granularity. A key shared by instances
within that boundary establishes no attribution, because any of them can
present the token and satisfy the proof.</t>
        <t>Where the configured requirement for a Consumer Scope includes
attribution, an issuer that cannot bind such a key <bcp14>MUST</bcp14> omit the
<tt>client_instance</tt> object. Context conveyed without such a key indicates
only participation (<xref target="context-consumer"/>), including when it is conveyed
only through introspection.</t>
        <t>A token without sender constraint supports no presenter attribution,
and a Context Consumer requiring attribution rejects the request as
specified in <xref target="context-errors"/>. The HTTP <tt>Bearer</tt> scheme does
not indicate an unbound token; certificate-bound tokens <xref target="RFC8705"/>
also use it.</t>
        <t>All validation requirements of the token-binding mechanism apply whether
or not context is used for attribution, including rejection of a bound
token presented without its proof (<xref section="7.1" sectionFormat="of" target="RFC9449"/> and
<xref section="7.2" sectionFormat="of" target="RFC9449"/>). The binding authenticates the presenter; it
does not establish that the presenter is the instance named in context
derived from an upstream token. Any presenter or key change during
exchange requires authorization under the consuming profile.
Unlinkability between Context Consumers also requires distinct
token-binding keys (<xref target="token-binding-keys"/>).</t>
      </section>
      <section anchor="context-exchange">
        <name>Preservation and Authorization</name>
        <t>An exchange issuing Instance Context <bcp14>MUST</bcp14> use a consuming profile that
defines:</t>
        <ul spacing="normal">
          <li>
            <t>whether context identifies the authenticated presenting instance or
an instance represented by validated input-token context;</t>
          </li>
          <li>
            <t>how its association with the subject, actor, or presenter is
validated;</t>
          </li>
          <li>
            <t>when input context is remapped or preserved; and</t>
          </li>
          <li>
            <t>refresh binding and context continuity, if the exchange issues
refresh tokens.</t>
          </li>
        </ul>
        <t>Issuers <bcp14>SHOULD</bcp14> remap upstream context into their own namespace, which
keeps each consumer's view pairwise. An issuer <bcp14>MAY</bcp14> instead preserve a
validated upstream Instance Context Identifier when configured trust
and the upstream Consumer Scope authorize its disclosure downstream;
otherwise it <bcp14>MUST</bcp14> remap or omit the context.</t>
        <t>An issuer <bcp14>MUST NOT</bcp14> name an upstream Instance Context Authority in the
<tt>iss</tt> member unless it has authenticated:</t>
        <ol spacing="normal" type="1"><li>
            <t>that the named authority assigned the context; and</t>
          </li>
          <li>
            <t>that the context refers to the instance the input token represents.</t>
          </li>
        </ol>
        <t>Validating the input token authenticates only its issuer's assertions.
By default, therefore, an issuer <bcp14>MUST</bcp14> limit preservation to context
whose <tt>iss</tt> member equals the authenticated input-token issuer, and <bcp14>MUST</bcp14>
remap or omit context that an intermediary itself preserved. A consuming
profile that specifies authenticated provenance and its enforcement can
permit deeper preservation; the object carries no forwarding history,
and shallow preservation is also a privacy default.</t>
        <t>Context identifies one instance, not a chain, and <bcp14>MUST NOT</bcp14> be treated
as a separate token or delegated actor. Remapping changes the Instance
Context Identifier; like preservation, it leaves the represented
Source Instance Identity unchanged. An issuer <bcp14>MUST NOT</bcp14> treat upstream
context as identifying a different presenting instance. The upstream
identifier does not establish that the issuer validated the original
Client Attestation.</t>
      </section>
      <section anchor="context-consumer">
        <name>Context Consumer Processing</name>
        <t>Before using context, the Context Consumer <bcp14>MUST</bcp14> perform these steps:</t>
        <ol spacing="normal" type="1"><li>
            <t>Validate the enclosing token or authenticated introspection response.</t>
          </li>
          <li>
            <t>Validate the context members, treating an <tt>id</tt> value that exceeds the
length bound in <xref target="format-and-mapping"/> as invalid and ignoring
unrecognized members.</t>
          </li>
          <li>
            <t>Accept the Instance Context Authority only if it is the token issuer
or an upstream token issuer explicitly trusted for that issuer and
consumer.</t>
          </li>
          <li>
            <t>Discard invalid context. If context is required and is missing or was
discarded, reject the request (<xref target="context-errors"/>).</t>
          </li>
        </ol>
        <t>Before using the context's association with the subject, actor, or
presenter in policy or audit, a Context Consumer <bcp14>MUST</bcp14> establish that
association from the applicable consuming profile and the validated
token or trusted introspection configuration.</t>
        <t>If the issuer might have preserved context from an input token, the
association is established only if that profile also defines how the
context's provenance is authenticated, because the object does not
record how the issuer obtained it. The <tt>client_instance</tt> object alone,
including whether its <tt>iss</tt> member matches the token issuer, establishes
neither the association nor the provenance.</t>
        <t>When trusted configuration establishes that the token issuer conveys
context only from direct Client Attestation validation, this
specification is the consuming profile. Context then identifies the
authenticated presenting instance (<xref target="format-and-mapping"/>), and
validating the token's sender constraint (<xref target="presenter-attribution"/>)
establishes the association. That configuration describes the issuer,
not the token, so it does not apply at an issuer that also preserves
context from input tokens. There, only a consuming profile carrying
provenance can distinguish directly validated context from preserved
context.</t>
        <t>If the association is not established, the Context Consumer <bcp14>MUST</bcp14> treat
context only as evidence of instance participation and <bcp14>MUST NOT</bcp14>
attribute the current request to that instance. In this case, a Context
Consumer whose configured requirement includes attribution <bcp14>MUST</bcp14> reject
the request as specified in <xref target="context-errors"/>.</t>
        <t>An issuer whose trust agreement with a Context Consumer states that it
conveys context only from direct Client Attestation validation <bcp14>MUST NOT</bcp14>
convey to that consumer Instance Context derived from anything other
than a Client Attestation it validated for the issuing request.</t>
        <t>For introspection, trusted endpoint configuration identifies the
expected token issuer. If present, a top-level <tt>iss</tt> member <bcp14>MUST</bcp14>
match that issuer; neither the endpoint URL nor the
<tt>client_instance.iss</tt> member selects the issuer. Multi-issuer
introspection requires a consuming profile that authenticates the
represented issuer. The <tt>iss</tt> value does not authorize fetching keys
from that location, and extensions <bcp14>MUST NOT</bcp14> change the meaning of the
<tt>iss</tt> or <tt>id</tt> member.</t>
      </section>
      <section anchor="context-errors">
        <name>Context Errors</name>
        <t>When required context is missing or invalid, or required attribution
cannot be established, the rejection <bcp14>MUST</bcp14> use the <tt>invalid_token</tt> error
code at a resource server (<xref section="3.1" sectionFormat="of" target="RFC6750"/>) or the
<tt>invalid_request</tt> error code for a rejected subject or actor token in an
exchange (<xref section="2.2.2" sectionFormat="of" target="RFC8693"/>).</t>
        <t>Retrying with a new access token (<xref section="3.1" sectionFormat="of" target="RFC6750"/>) does not
resolve a rejection for a missing sender constraint. When a resource
server rejects a request for that reason, it <bcp14>SHOULD</bcp14> include the
challenge for the binding mechanism it requires, such as the <tt>DPoP</tt>
scheme in <xref section="7.1" sectionFormat="of" target="RFC9449"/>, so that the client can
determine the required binding mechanism.</t>
        <t>Other consuming profiles define their own error mapping. Direct Client
Attestation failures follow <xref target="errors"/>.</t>
      </section>
    </section>
    <section anchor="relationship-to-other-identity-systems">
      <name>Relationship to Other Identity Systems</name>
      <t>This section compares this profile with client, workload, and agent
identity mechanisms; it adds no requirements.</t>
      <section anchor="client-id-metadata-documents">
        <name>Client ID Metadata Documents</name>
        <t>With <xref target="CIMD"/>, the metadata URL is the Logical Client's <tt>client_id</tt>,
and many installations can use it. Retrieving public metadata does not
prove that a caller is an authorized instance:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Mechanism</th>
              <th align="left">Contribution</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">CIMD</td>
              <td align="left">Discovers Logical Client metadata and its authentication method</td>
            </tr>
            <tr>
              <td align="left">ATTEST</td>
              <td align="left">Authenticates an attester-approved instance and possession of its key</td>
            </tr>
            <tr>
              <td align="left">This profile</td>
              <td align="left">Retains instance identity across verified key changes and conveys optional downstream context</td>
            </tr>
          </tbody>
        </table>
        <t>One CIMD URL describes the Logical Client, and Instance Identifiers
belong in attestations, not per-installation metadata. The attestation's
<tt>sub</tt> claim is that URL, and the <tt>client_instance_id</tt> claim
distinguishes installations (<xref target="cimd-example"/>). CIMD removes
per-authorization-server registration of client metadata but not this
profile's trust agreement (<xref target="configuration"/>). <xref target="ATTESTER-ENDORSEMENT"/>
allows a client to endorse attesters through <tt>client_attesters</tt> metadata
(<xref section="3" sectionFormat="of" target="ATTESTER-ENDORSEMENT"/>), subject to authorization server
policy. That endorsement establishes the attester-to-client association
but does not select this profile or its continuity and privacy policy.</t>
      </section>
      <section anchor="workload-and-agent-credentials">
        <name>Workload and Agent Credentials</name>
        <t>A shared workload identity does not identify an individual instance;
the attester requires instance-level evidence under <xref target="continuity"/>.
Direct SPIFFE Verifiable Identity Document (SVID) authentication and
client mappings are defined by <xref target="SPIFFE-OAUTH"/>. An AAuth Agent
Provider <xref target="AAUTH"/> or workload attester can instead issue a Client
Attestation under this profile when it holds the required enrollment
evidence. Native credentials with different <tt>sub</tt> or <tt>typ</tt> semantics
require a separate carrier profile. A deployment authenticating only
with them conveys no Instance Context under this profile, which maps
context only from a validated Client Attestation
(<xref target="format-and-mapping"/>). These boundaries are illustrated in
<xref target="deployment-examples"/>.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The security considerations of <xref section="12" sectionFormat="of" target="ATTEST"/> and <xref target="RFC8725"/>
apply.</t>
      <section anchor="assurance">
        <name>Attester Compromise and Assurance</name>
        <t>A compromised attester can impersonate instances within its approved
client associations. Receivers limit those associations and configure
acceptable evidence assurance. An attester that overstates the
assurance of its evidence defeats that configuration. Self-reported,
platform-verified, and hardware-rooted evidence are not
interchangeable. Without independent platform evidence, copied keys
and enrollment data can be indistinguishable from the original;
<xref target="continuity"/> governs detected forks and does not guarantee clone
detection. Instance identity proves no software integrity beyond the
evaluated evidence.</t>
      </section>
      <section anchor="re-enrollment">
        <name>Suspension and Re-enrollment</name>
        <t>Suspension at a Receiver applies to the Source Instance Identity that
Receiver recorded. An instance can appear under a different identity by
re-enrolling, which <xref target="continuity"/> requires after events such as a
reinstall, or by presenting an attestation scoped to another Receiver,
which the Receiver cannot detect (<xref target="receiver-scope"/>). Unless the
Receiver requires prior enrollment (<xref target="errors"/>), such an instance is
accepted as a new one. Suspension at the attester (<xref target="suspension"/>) stops
issuance only for the suspended enrollment: it does not prevent a
replacement enrollment unless the attester also controls admission of
new enrollments for that installation, and attestations issued before
the suspension remain usable until they expire. A Receiver that relies
on suspension for containment therefore requires prior enrollment, or
coordinates with the attester both suspension and admission control for
replacement enrollments, and accepts the window set by outstanding
attestation lifetimes.</t>
      </section>
      <section anchor="forwarding">
        <name>Forwarding</name>
        <t>Forwarding resistance is provided by <xref target="ATTEST"/> proof validation,
freshness, and key possession, not by identifier scope. The Client
Attestation has no audience; its proof-of-possession JWT identifies
the Receiver, and combined DPoP binds the HTTP request.</t>
      </section>
    </section>
    <section anchor="privacy">
      <name>Privacy Considerations</name>
      <t>The privacy considerations of <xref section="11" sectionFormat="of" target="ATTEST"/> apply.</t>
      <section anchor="correlation">
        <name>Correlation Across Receivers</name>
        <t>Separate identifiers and keys per Receiver Scope (<xref target="receiver-scope"/>)
limit correlation, strengthening the protections of
<xref section="11.1" sectionFormat="of" target="ATTEST"/>. Receivers <bcp14>MUST NOT</bcp14> assume that identifiers
are comparable across scopes; explicitly shared scopes permit
correlation.</t>
      </section>
      <section anchor="token-binding-keys">
        <name>Token-Binding Keys</name>
        <t>Per-consumer Instance Context Identifiers do not prevent correlation
through a shared binding key. In DPoP combined mode
(<xref section="5.2" sectionFormat="of" target="ATTEST"/>), the Client Instance Key is the DPoP key,
so tokens for different Context Consumers can carry different <tt>id</tt>
values but the same <tt>cnf.jkt</tt>. When unlinkability between Context
Consumers is required, the client <bcp14>MUST</bcp14> use distinct token-binding keys
across those scopes, for example, DPoP without combined mode or a
distinct mutual-TLS certificate and key pair per scope. Other claims and
application data can also correlate requests. Identifier scoping does
not permit changing a refresh token's bound key (<xref target="grant-continuity"/>).</t>
        <t>The same applies between an authorization server and a resource server.
A client that authenticates to the authorization server in normal mode
and presents a resource-server-scoped key as its DPoP key, so that it
can use combined mode at that resource server (<xref target="receiver-scope"/>),
also exposes that key to the authorization server. The two Receivers
can then correlate through its thumbprint, even though their
identifiers and Client Instance Keys differ.</t>
      </section>
      <section anchor="attester-visibility">
        <name>Attester Visibility</name>
        <t>The attester learns any Receiver Scope the client supplies. Scoping an
identifier to a Receiver (<xref target="receiver-scope"/>) therefore reveals that
Receiver to the attester. This forgoes a property that <xref target="ATTEST"/> states
in its abstract: the client proves its authenticity without revealing
its target audience to the attester. This profile trades attester
visibility for unlinkability between Receivers.</t>
        <t>A single Receiver Scope spanning every Receiver the client uses limits
what the attester learns to that scope, at the cost of allowing those
Receivers to correlate the instance.</t>
      </section>
      <section anchor="disclosure">
        <name>Error Disclosure</name>
        <t>Error responses <bcp14>SHOULD NOT</bcp14> reveal unrelated instance identities.
<xref target="errors"/> governs status non-disclosure; <xref target="state"/> and
<xref target="mapping-stability"/> govern retention. Unpredictable
identifiers limit guessing and enumeration but are not authentication.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="json-web-token-claims">
        <name>JSON Web Token Claims</name>
        <t>This specification requests registration of the following values in
the "JSON Web Token Claims" registry established by <xref target="RFC7519"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Claim Name</th>
              <th align="left">Claim Description</th>
              <th align="left">Change Controller</th>
              <th align="left">Specification Document(s)</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>client_instance_id</tt></td>
              <td align="left">Attester-qualified client instance identifier</td>
              <td align="left">IETF</td>
              <td align="left">
                <xref target="claims"/> of this specification</td>
            </tr>
            <tr>
              <td align="left">
                <tt>client_instance</tt></td>
              <td align="left">Validated client instance context</td>
              <td align="left">IETF</td>
              <td align="left">
                <xref target="instance-context"/> of this specification</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="oauth-token-introspection-response">
        <name>OAuth Token Introspection Response</name>
        <t>This specification requests registration of the following value in the
"OAuth Token Introspection Response" registry established by
<xref target="RFC7662"/>:</t>
        <ul spacing="normal">
          <li>
            <t>Name: <tt>client_instance</tt></t>
          </li>
          <li>
            <t>Description: Validated client instance context</t>
          </li>
          <li>
            <t>Change controller: IETF</t>
          </li>
          <li>
            <t>Specification document(s): <xref target="instance-context"/> of this specification</t>
          </li>
        </ul>
        <t>These registrations define claims and a response member, not subject
or actor profile values.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="ATTEST">
          <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="3" month="September" year="2026"/>
            <abstract>
              <t>   This specification defines an extension to the OAuth 2.0 protocol
   (RFC 6749) 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-11"/>
        </reference>
        <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="RFC6750">
          <front>
            <title>The OAuth 2.0 Authorization Framework: Bearer Token Usage</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="D. Hardt" initials="D." surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>This specification describes how to use bearer tokens in HTTP requests to access OAuth 2.0 protected resources. Any party in possession of a bearer token (a "bearer") can use it to get access to the associated resources (without demonstrating possession of a cryptographic key). To prevent misuse, bearer tokens need to be protected from disclosure in storage and in transport. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6750"/>
          <seriesInfo name="DOI" value="10.17487/RFC6750"/>
        </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="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="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="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>
        <referencegroup anchor="BCP14" target="https://www.rfc-editor.org/info/bcp14">
          <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/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" target="https://www.rfc-editor.org/info/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>
        </referencegroup>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="AAUTH">
          <front>
            <title>AAuth Protocol</title>
            <author fullname="Dick Hardt" initials="D." surname="Hardt">
              <organization>Hellō</organization>
            </author>
            <date day="25" month="September" year="2026"/>
            <abstract>
              <t>   This document defines the AAuth authorization protocol for agent-to-
   resource authorization and identity claim retrieval.  The protocol
   supports five resource access modes — agent identity, resource-
   managed (two-party), person identity, PS authorization (three-party),
   and federated authorization (four-party) — with agent governance as
   an orthogonal layer.  It builds on the HTTP Signature Keys
   specification ([I-D.hardt-httpbis-signature-key]) for HTTP Message
   Signatures and key discovery.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-hardt-oauth-aauth-protocol-11"/>
        </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="ATTESTER-ENDORSEMENT">
          <front>
            <title>OAuth 2.0 Client Attester Endorsement</title>
            <author fullname="Karl McGuinness" initials="K." surname="McGuinness">
              <organization>Independent</organization>
            </author>
            <date day="28" month="September" year="2026"/>
            <abstract>
              <t>   OAuth 2.0 Attestation-Based Client Authentication requires an
   authorization server to trust the attester that makes statements
   about a client instance, but does not define how a client identifies
   the attesters authorized to attest for it.  This specification
   defines a client metadata parameter, usable by registered clients and
   in Client ID Metadata Documents, that names the endorsed attesters
   and the locations of their verification keys.  It defines how an
   authorization server validates endorsements and processes their
   withdrawal while retaining control over whether to trust them.  It
   introduces no new credential or client authentication method.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mcguinness-oauth-client-attesters-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="6" month="July" year="2026"/>
            <abstract>
              <t>   This specification defines a mechanism through which an OAuth client
   can identify itself to authorization servers, without prior dynamic
   client registration or other existing registration.  This is through
   the usage of a URL as a client_id in an OAuth flow, where the URL
   refers to a document containing the necessary client metadata,
   enabling the authorization server to fetch the metadata about the
   client as needed.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-client-id-metadata-document-02"/>
        </reference>
        <reference anchor="RFC2104">
          <front>
            <title>HMAC: Keyed-Hashing for Message Authentication</title>
            <author fullname="H. Krawczyk" initials="H." surname="Krawczyk"/>
            <author fullname="M. Bellare" initials="M." surname="Bellare"/>
            <author fullname="R. Canetti" initials="R." surname="Canetti"/>
            <date month="February" year="1997"/>
            <abstract>
              <t>This document describes HMAC, a mechanism for message authentication using cryptographic hash functions. HMAC can be used with any iterative cryptographic hash function, e.g., MD5, SHA-1, in combination with a secret shared key. The cryptographic strength of HMAC depends on the properties of the underlying hash function. This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2104"/>
          <seriesInfo name="DOI" value="10.17487/RFC2104"/>
        </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="RFC7636">
          <front>
            <title>Proof Key for Code Exchange by OAuth Public Clients</title>
            <author fullname="N. Sakimura" initials="N." role="editor" surname="Sakimura"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Agarwal" initials="N." surname="Agarwal"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>OAuth 2.0 public clients utilizing the Authorization Code Grant are susceptible to the authorization code interception attack. This specification describes the attack as well as a technique to mitigate against the threat through the use of Proof Key for Code Exchange (PKCE, pronounced "pixy").</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7636"/>
          <seriesInfo name="DOI" value="10.17487/RFC7636"/>
        </reference>
        <reference anchor="RFC8252">
          <front>
            <title>OAuth 2.0 for Native Apps</title>
            <author fullname="W. Denniss" initials="W." surname="Denniss"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <date month="October" year="2017"/>
            <abstract>
              <t>OAuth 2.0 authorization requests from native apps should only be made through external user-agents, primarily the user's browser. This specification details the security and usability reasons why this is the case and how native apps and authorization servers can implement this best practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="212"/>
          <seriesInfo name="RFC" value="8252"/>
          <seriesInfo name="DOI" value="10.17487/RFC8252"/>
        </reference>
        <reference anchor="RFC8417">
          <front>
            <title>Security Event Token (SET)</title>
            <author fullname="P. Hunt" initials="P." role="editor" surname="Hunt"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="W. Denniss" initials="W." surname="Denniss"/>
            <author fullname="M. Ansari" initials="M." surname="Ansari"/>
            <date month="July" year="2018"/>
            <abstract>
              <t>This specification defines the Security Event Token (SET) data structure. A SET describes statements of fact from the perspective of an issuer about a subject. These statements of fact represent an event that occurred directly to or about a security subject, for example, a statement about the issuance or revocation of a token on behalf of a subject. This specification is intended to enable representing security- and identity-related events. A SET is a JSON Web Token (JWT), which can be optionally signed and/or encrypted. SETs can be distributed via protocols such as HTTP.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8417"/>
          <seriesInfo name="DOI" value="10.17487/RFC8417"/>
        </reference>
        <reference anchor="RFC8935">
          <front>
            <title>Push-Based Security Event Token (SET) Delivery Using HTTP</title>
            <author fullname="A. Backman" initials="A." role="editor" surname="Backman"/>
            <author fullname="M. Jones" initials="M." role="editor" surname="Jones"/>
            <author fullname="M. Scurtescu" initials="M." surname="Scurtescu"/>
            <author fullname="M. Ansari" initials="M." surname="Ansari"/>
            <author fullname="A. Nadalin" initials="A." surname="Nadalin"/>
            <date month="November" year="2020"/>
            <abstract>
              <t>This specification defines how a Security Event Token (SET) can be delivered to an intended recipient using HTTP POST over TLS. The SET is transmitted in the body of an HTTP POST request to an endpoint operated by the recipient, and the recipient indicates successful or failed transmission via the HTTP response.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8935"/>
          <seriesInfo name="DOI" value="10.17487/RFC8935"/>
        </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="RFC9421">
          <front>
            <title>HTTP Message Signatures</title>
            <author fullname="A. Backman" initials="A." role="editor" surname="Backman"/>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <author fullname="M. Sporny" initials="M." surname="Sporny"/>
            <date month="February" year="2024"/>
            <abstract>
              <t>This document describes a mechanism for creating, encoding, and verifying digital signatures or message authentication codes over components of an HTTP message. This mechanism supports use cases where the full HTTP message may not be known to the signer and where the message may be transformed (e.g., by intermediaries) before reaching the verifier. This document also describes a means for requesting that a signature be applied to a subsequent HTTP message in an ongoing HTTP exchange.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9421"/>
          <seriesInfo name="DOI" value="10.17487/RFC9421"/>
        </reference>
        <reference anchor="SPIFFE-OAUTH">
          <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>
      </references>
    </references>
    <?line 973?>

<section anchor="wire-examples">
      <name>Wire Examples</name>
      <t>These examples are informative. The first two use the managed-device
flow (<xref target="managed-device-example"/>): the user is the authorization
subject, and the installation appears as Instance Context. The
authorization server maps the attester's identifier to a value scoped to
<tt>https://api.example</tt>.</t>
      <section anchor="access-token-payload">
        <name>Access Token Payload</name>
        <t>The following example shows a decoded <xref target="RFC9068"/> access token
payload; its JOSE header contains a <tt>typ</tt> value of <tt>at+jwt</tt>. The <tt>jkt</tt>
member of the <tt>cnf</tt> claim identifies the public key in
<xref target="attestation-example"/>.</t>
        <sourcecode type="json"><![CDATA[
{
  "iss": "https://as.example",
  "sub": "user-17",
  "aud": "https://api.example",
  "client_id": "https://platform.example/oauth-client",
  "iat": 1789128000,
  "exp": 1789128300,
  "jti": "at-95a76b823",
  "scope": "documents.read",
  "cnf": {
    "jkt": "Ak20Cf62SpTybasujYXbaI-Ms655MyvOZCtnnf8y1QU"
  },
  "client_instance": {
    "iss": "https://as.example",
    "id": "m-95c9f383a07468578c0329a9a660740f"
  }
}
]]></sourcecode>
      </section>
      <section anchor="introspection-response">
        <name>Introspection Response</name>
        <t>The following example shows an authenticated introspection response
conveying the same context for an opaque access token. The
resource server has configured this endpoint as authoritative for
<tt>https://as.example</tt>. The top-level <tt>iss</tt> member names the token
issuer, and the nested <tt>iss</tt> member names the Instance Context
Authority; here they are the same authorization server.</t>
        <sourcecode type="http-message"><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store

{
  "active": true,
  "iss": "https://as.example",
  "sub": "user-17",
  "aud": "https://api.example",
  "client_id": "https://platform.example/oauth-client",
  "scope": "documents.read",
  "exp": 1789128300,
  "cnf": {
    "jkt": "Ak20Cf62SpTybasujYXbaI-Ms655MyvOZCtnnf8y1QU"
  },
  "client_instance": {
    "iss": "https://as.example",
    "id": "m-95c9f383a07468578c0329a9a660740f"
  }
}
]]></sourcecode>
      </section>
      <section anchor="governed-actor-and-instance-context">
        <name>Governed Actor and Instance Context</name>
        <t>A consuming profile can authorize instance <tt>B</tt> to continue work that
instance <tt>A</tt> began for the same governed agent. Here that profile
authorizes <tt>agent-42</tt> to act for <tt>user-17</tt> under <xref target="ACTOR-PROFILE"/> and
selects the authenticated presenting instance for output context. The
authorization server validates <tt>B</tt>'s attestation and proof, replaces
<tt>A</tt>'s input context with <tt>B</tt>'s mapping for the resource server's
Consumer Scope, and binds the output token under the consuming profile.
The following example shows the relevant output claims:</t>
        <sourcecode type="json"><![CDATA[
{
  "sub": "user-17",
  "aud": "https://api.example",
  "act": {
    "iss": "https://as.example",
    "sub": "agent-42"
  },
  "client_instance": {
    "iss": "https://as.example",
    "id": "m-a524d3cc4ba2df62c17f080e8779794d"
  }
}
]]></sourcecode>
        <t>The governed actor remains <tt>agent-42</tt>; the mapped identifier is <tt>B</tt>'s.
Neither <tt>B</tt>'s authentication nor continuity of the agent identity
alone authorizes this exchange. A profile that instead preserved <tt>A</tt>'s
context would have to define that upstream association explicitly.</t>
      </section>
      <section anchor="attestation-rejection">
        <name>Attestation Rejection</name>
        <t>The following example shows a token endpoint response when a required
instance claim is missing or local policy rejects the instance
(<xref target="errors"/>). It does not reveal whether the instance is unknown,
suspended, or retired.</t>
        <sourcecode type="http-message"><![CDATA[
HTTP/1.1 400 Bad Request
Content-Type: application/json
Cache-Control: no-store

{
  "error": "invalid_client_attestation"
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="deployment-examples">
      <name>Deployment Examples</name>
      <t>The following informative examples share three steps. <tt>C1</tt> is the
Logical Client; <tt>I1</tt> and <tt>K1</tt> are an Instance Identifier and key scoped
to the authorization server.</t>
      <ol spacing="normal" type="1"><li>
          <t>The attester verifies enrollment evidence and possession of <tt>K1</tt>,
then issues the attestation in <xref target="claims"/>: <tt>iss</tt> naming the attester,
<tt>sub=C1</tt>, <tt>client_instance_id=I1</tt>, and <tt>cnf.jwk</tt> holding public key
<tt>K1</tt>.</t>
        </li>
        <li>
          <t>The client presents its grant, attestation, and combined DPoP proof
using <tt>K1</tt> at the authorization server token endpoint.</t>
        </li>
        <li>
          <t>The authorization server validates them and issues a DPoP-bound token
with mapped context <tt>M1</tt>, scoped to the resource. The resource server
validates the token, proof, and context without seeing the enrollment
evidence.</t>
        </li>
      </ol>
      <section anchor="cimd-example">
        <name>CIMD Client</name>
        <t>Let <tt>C1</tt> be <tt>https://platform.example/oauth-client</tt>, whose CIMD declares
<tt>attest_jwt_client_auth_dpop</tt> (<xref section="A" sectionFormat="of" target="ATTESTER-ENDORSEMENT"/>
has a metadata example). The authorization server validates the CIMD and
trusts the attester through configuration or an accepted
<tt>client_attesters</tt> endorsement. Key renewal does not change the CIMD.
User-authorized access follows <xref target="managed-device-example"/>.</t>
      </section>
      <section anchor="aauth-example">
        <name>AAuth Agent Provider</name>
        <t>At step 1, the Agent Provider verifies managed installation evidence
and issues a Client Attestation. Native <tt>aa-agent+jwt</tt> credentials and
HTTP Message Signatures <xref target="RFC9421"/> do not replace the attestation or
the proof. Step 2 uses a pre-authorized client credentials grant;
AAuth metadata alone does not establish attester trust.</t>
      </section>
      <section anchor="spiffe-example">
        <name>SPIFFE Workload</name>
        <t>At step 1, the workload uses an X.509-SVID from the Workload API for
mutual TLS. The attester validates its trust domain and runtime
evidence binding this container to <tt>K1</tt>; a shared SPIFFE ID cannot
distinguish replicas. Step 2 uses client credentials with the
resulting attestation. With the container as the Execution unit, a
restart requires new enrollment; SVID renewal within a continuing
container does not.</t>
      </section>
      <section anchor="managed-device-example">
        <name>Managed Device</name>
        <t>At step 1, a management component verifies the installed client and
its platform-protected <tt>K1</tt>, using app-attestation evidence where
available. Device enrollment or key storage alone does not identify
the installation. Before step 2, the client obtains a code through an
external browser <xref target="RFC8252"/> with PKCE <tt>S256</tt> <xref target="RFC7636"/>, then
redeems it with the code verifier, redirect URI, <tt>C1</tt>, attestation,
and DPoP proof. The browser receives neither attestation nor proof.
Process restarts can retain the installation identity; reinstallation
requires new enrollment.</t>
      </section>
    </section>
    <section numbered="false" anchor="history">
      <name>Document History</name>
      <t><em>RFC EDITOR: Remove this section before publication.</em></t>
      <t>-00</t>
      <ul spacing="normal">
        <li>
          <t>Initial version. Replaces
draft-mcguinness-oauth-client-instance-assertion-01. Instead of a
separate Client Instance Assertion carried in the
<tt>client_instance_assertion</tt> request parameter, instance identity is
carried in the Client Attestation of <xref target="ATTEST"/> as the
<tt>client_instance_id</tt> claim, with optional Instance Context conveyed
downstream as the <tt>client_instance</tt> claim.</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
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
0fVv6RrbJGWMdGlsEfTg7hPyXH3m32evUBroH88pELHm6E32jIOsz9hYWFFj
n5Nk3+pB/ba90y/J1T4/Y5GDz8a7ppibzYEUQfAeZhCv+ZwdH52+gP9z8ylH
O5NlY6/E9/3SazLjnARWYWvvGDS02v02vGYaty53cJykLejMiP/2nWtFwK3f
f9fO+/etDal2Bm/+6RBa8I1Dg6e/Dzp4QDBlbpjylKAJ36T4soj48vQPAJrk
V1skkLJQclS2WIPgJiOcZMFGoERZguUSKCOXVi4hALLS2Aqk5l/RxS1zfFHZ
T5ti6Fb0A2koy85lYKOsFizLBtOtrmvLp7jKq/yiWEwXxcdyXoQlRrCpJZv/
2AXKWJhxe/92qISEmCyr7VmS5qTk9cI824Elwt3BRpUzdK0n8uQbP7yCJT6j
o7mwwpnNFl6XOiX4TPQTzrNgZH3D84u/dgIylynvPXyMLN7lawSZg8zGuRvm
qi4UXITjFrxTwKezvPun99dogVD6DxojQdKQhNrQSLH4Z1pB5lqnUiBgbKwz
stOb5y63CppkyjLe7vSuTEIG3SN5JIIznbO8+IPzmb9+wvL7rsS182765EH+
6OH54/17sl28bfxKybedYfONWyNzmT/gy24dftjfe7Z8uH+yPt2e5+3m/d//
dp4fT1+2Dx88eLn9+Prfn3VVtXy8vftXmpP8ZWyQdFz0ZmDiDwgmV7Dt+ZPl
vcf38r1H9x8+fvDo8Xzv3v6T/En+8CF8sre8lUxjvn0Ds74BRauvql6QzEF1
dZDJZTmkSbMnj91Mm32DBf1SvqgN2aNl3OVWJdpxYA9demdDWAn270jy4ymU
lpcbfDUUfloVbZzHPHimz2KClT0cZFrAzpPoDBajFhVTEe59Cku3wBgDesy+
R3fQ/t5e9vonLv4Buxb7Cz7NnHH9PRHfs3x+WUxFYXkKzH9KTccDUyV3rwVc
6ZpNMfl/jE5vJLKvmIj+/xXl/Zl0c8CoQ5LHSYaLIlE4HOaPsfck1mvqM2c/
nGkRILb3oQA7G5vxJ4dnYItd5FWMQiAiXuhOKLNrlv1Y6Pxj7XBhr2tBkuCP
pvf36W04EBHXOhP8OLNEhMNnp6/fTt+8ff3i+OcjMVJ8xuvv5/Pjujw4KOmC
OC63NfLdIhy+Sfvv2YB46/jfBgAFSvakzpgiCPy4Vt8pnHr86Js2Zoe70TrR
yy375vzKG4vWb2K0/GbgVdh1S0FBqt7TvrT9r5ApXN4fwHN5g17//03SyR/s
31/cm8/vn+f7C6Dc+d1Hy73He8XjR4+ePHpyf5GQDgIsYizRjnYdi7h5IAon
1Yw7/a0U/JiFV5K7LeiSpr1UdTL0XFQkWt2CpkGGKUTSYKkkebkY+Uqys/ul
3YuMcNDyOLgPFlVIdXXMEXX1lkllRfTiD6dJvtUE3d9TNRk/TZCa5XCtabvs
fY4cxPLjXOZ1b5DecHxk8MFWbn+sMU5xivgJqH9gxuJNwvI+CMsf8gVNjADA
/PekJu0ecXX3oMtbxtrBdLTsH2dDjaXP9O/HGVHRuqIoSEb93rnAdJadPbt7
pgOZ01TJg+zsGL5DbnT2E/6jKZKmxc67rv57NmTCTX5eqmhN/KeSPtL6eHRM
GhmkmeJeiOg7HW49nOYsBTHi3HgqmhaoWKpB6stpIczQ+hcAw2TMvfIvx/gF
AYFiL9cfzig5zGX94txwXAY2RmW2p95vKt54tK9ksnYyVWIY3yTxQiWyRBUM
+t1jLXuERzW0p7t+G0UbpYxxgSoBMKeX+wY4uAUSY72GlWcvESAx68LLNH51
T8LhQsmLtVpNBKnvsRF7DRV6VS7tDid9J2kylP0qnv1Pt5Pk2BB+LjrG7nNQ
V75KdTybSJ0UrQvG8wqz2cMZ39g/wOo1aoWH/gEQB8MYONLhGjlK+Rvw6Z3p
qYH6TMSUW3n/na+9Ld4Tqj6UlTsY/sZxkbRuSSY6S/ZJGMmxdUmwNG/QGgwb
W3VlOLiDWXjXuizjYqEWl7S7znY7YUS4xHTOLKZz3s7pGuLlHXbEoLK7HK7s
/d5YhrwrddfYPLMEv0fq+jV78yzPpySRybGRJHMiwCnP4CVLhewEZ2F3VDkh
zd/27+IsiFqEEA+a6vMjmV8ro4VP8GT7HHygBncenloh4jZBjOMgMOhiYv+u
2TPp9BJJKOO8XUs3/nS7XWPwazfILauWt1llf5s92HsyxdzemFFn6x2+OSZb
OfbA63N5Q2aKEFFm+aLmBpHYBpOHccZZfXFiHjcs41lpyHCQIx7EkL6cDHbF
qV0+hZ7uA0Ram8J8BMSa8kOzLlb90Seco6h6t2xFSoHiTC+c8jWhHKuWhn/t
GHdxkBEMldLGxkzGl+j1attfRvfnRFrU83eU1pLLzIVK0vGckYacuzOiH+I9
JexokqeklxSsDFiDwvV66vHcrk+GmWvrz5lu2cl46drVSp/THjprUnvoe2Nt
VCOdbz9JZ+Ayeq5rXMRoMdW4ARJi/ch5A1yq0GEt+w/2gXjp8t/89OwoOzvZ
f/DwTMc/3Hso9UM4m3VRFFfUMOg6ogK8Q8DYoEEo1bDv3h5PSPKksp7YURTx
0ldNtmNtYLUQ1EO1Yic79jB8k46+a/1gsoHfWu2Lg8zyKdndvWsQC6mcmsb/
Ize5ASyTdjdfwqen1Qa9VcXiX24tgWyKW4Bq3wGssqPnx2CkP8VuM1zw5MrC
ON1PtCW+w+9CmO7tYdjkGIgGKBDh2NLtvlW7OssWTb7spldzoOUKE9OmXlhP
LdxhTY+me3c5GReNIwzNYltlzcDqJwAc6lOSdb/IrJX/QA20N5xZlSGueoUV
fJORqibqRZYuO1awTBlnMces3fV6Kw/ikQOxGGqQFzXXzo6ZL5TaMYhAFp2F
/wN2fFeaQ8sAAA==

-->

</rfc>
