<?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-id-continuation-assertion-02" category="std" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="Identity Continuation Assertion">Identity Continuation Assertion for OAuth 2.0 Token Exchange</title>
    <seriesInfo name="Internet-Draft" value="draft-mcguinness-oauth-id-continuation-assertion-02"/>
    <author fullname="Karl McGuinness">
      <organization>Independent</organization>
      <address>
        <email>public@karlmcguinness.com</email>
      </address>
    </author>
    <author fullname="Aaron Parecki">
      <organization>Okta</organization>
      <address>
        <email>aaron@parecki.com</email>
      </address>
    </author>
    <date year="2026" month="September" day="09"/>
    <area>Security</area>
    <workgroup>Web Authorization Protocol</workgroup>
    <keyword>oauth</keyword>
    <keyword>token exchange</keyword>
    <keyword>identity continuation</keyword>
    <keyword>delegation</keyword>
    <keyword>id-jag</keyword>
    <abstract>
      <?line 89?>

<t>This document defines the Identity Continuation Assertion, a short-lived,
sender-constrained JSON Web Token (JWT) used as an OAuth 2.0 Token Exchange
subject token. It enables a workload acting on a user's behalf to obtain an
Identity Assertion JWT Authorization Grant (ID-JAG) for another service when
it lacks a suitable credential, including when the user is no longer
present.</t>
      <t>A trusted issuer attests that a resource authorization server accepted an
earlier ID-JAG and that the resulting authorization remains active and
eligible for continuation. The workload exchanges this assertion at the
identity provider, which evaluates the requested access under the chain
authorization and current policy before issuing an onward ID-JAG. The
profile supports multi-hop access across resource authorization servers that
trust a common identity provider.</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-id-continuation-assertion/draft-mcguinness-oauth-id-continuation-assertion.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-mcguinness-oauth-id-continuation-assertion/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Web Authorization Protocol Working Group mailing list (<eref target="mailto:oauth@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/oauth/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/oauth/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/mcguinness/draft-mcguinness-oauth-id-continuation-assertion"/>.</t>
    </note>
  </front>
  <middle>
    <?line 106?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Identity Assertion JWT Authorization Grant (ID-JAG)
<xref target="I-D.ietf-oauth-identity-assertion-authz-grant"/> allows an application to
exchange the user's identity assertion at the IdP Authorization Server (IdP)
for a grant that it redeems at a target Resource Authorization Server (RAS)
for an access token. A service receiving that access token may need to call
a further service on the user's behalf, including when the user is no longer
present. It may hold neither the user's identity assertion nor another
credential accepted by the next authorization server.</t>
      <t>This profile addresses deployments in which RASes trust a common IdP. The
receiving workload's incoming access token is not accepted at the next RAS.
When pairwise subject identifiers are used, the workload may also be unable
to determine the user's subject at that RAS. This profile enables multi-hop
access when the request's path is not known in advance,
such as at a Model Context Protocol (MCP) tool gateway (<xref target="example-gateway"/>).</t>
      <t>This document defines the Identity Continuation Assertion, a short-lived,
sender-constrained JSON Web Token (JWT) <xref target="RFC7519"/> that the workload obtains
from a Continuation Assertion Issuer (CAI). The IdP trusts the CAI to attest
the following (<xref target="assertion-issuance"/>):</t>
      <ul spacing="normal">
        <li>
          <t>The RAS accepted the referenced ID-JAG, established an authorization from
it, and that authorization remains active and is eligible for continuation.</t>
        </li>
        <li>
          <t>The authenticated workload is associated with that authorization context.</t>
        </li>
      </ul>
      <t>The CAI binds the assertion to the key the workload proves to it
(<xref target="assertion-token-exchange"/>). The accepting RAS may also perform the CAI
role.</t>
      <t>The workload presents the assertion to the IdP as the subject token of an
OAuth 2.0 Token Exchange <xref target="RFC8693"/> request. The assertion identifies the
accepted authorization and the current actor; the continuation request, not
the assertion, names the target and the requested authority. The IdP
authenticates the workload, verifies possession of the assertion's bound key,
evaluates the requested access, and resolves the user's subject for the target
RAS. If authorized, it issues an onward ID-JAG that the workload redeems at
that RAS (<xref target="token-exchange"/>). The assertion conveys no downstream authority.</t>
      <t>Each ID-JAG issued in a chain represents a hop. A root ID-JAG and the hops
descending from it form a chain. An opaque continuation handle identifies
each ID-JAG's hop within a chain (<xref target="chain-id"/>). The IdP records the
relationships between hops and associates each chain with the authorization
established at its root exchange. Each continuation is
evaluated under that authorization and current policy
(<xref target="chain-authorization"/>). RAS acceptance enables continuation; incoming
access-token scopes do not automatically limit authority at another target.</t>
      <t>A workload that continues once can reuse the resulting access token for
further calls, subject to the conditions in <xref target="implementation"/>.</t>
      <t>This document extends ID-JAG, referred to as the base profile, and
complements OAuth Identity Chaining <xref target="I-D.ietf-oauth-identity-chaining"/>.
This profile does not replace mechanisms for narrowing an existing token
within one trust domain (<xref target="decision-rule"/>).</t>
      <t>The IdP, the continuing workload, a RAS from which workloads continue, and
the CAI implement this extension. Root clients use the base exchange;
chain establishment requires a resolvable session anchor or, optionally, a
grant anchor (<xref target="lifecycle-anchors"/>), and without one the IdP issues an
ordinary ID-JAG without a handle. A terminal RAS needs only the base
profile's support for redeeming a DPoP-bound ID-JAG (<xref target="onward-id-jag"/>).
This document defines no new access-token format.</t>
      <section anchor="protocol-overview">
        <name>Protocol Overview</name>
        <t>The following flow illustrates one continuation. AgentApp calls a tool
gateway on Alice's behalf, and the gateway calls a wiki API for her.
<xref target="example-gateway"/> provides the corresponding requests, responses, and tokens.</t>
        <t>Alice authenticates at the IdP. The gateway and wiki have separate RASes. The
gateway is the continuing workload, and its RAS also performs the CAI role
(<xref target="deployment-topologies"/>).</t>
        <t>Steps are numbered as in the figure; "as in ID-JAG" marks what is unchanged
from the base profile, "new" what this profile adds.</t>
        <artwork><![CDATA[
AgentApp     IdP       GatewayRAS    ToolGateway         WikiRAS
  |           |             |             |                 |
  | (1) exchange ID Token for ID-JAG      |                 |
  |---------->|             |             |                 |
  | ID-JAG with handle H0  [new claim]    |                 |
  |<----------|             |             |                 |
  | (2) present ID-JAG (jwt-bearer grant) |                 |
  |------------------------>|             |                 |
  | access token; RAS binds H0 to it  [new]                 |
  |<------------------------|             |                 |
  | (3) call: access token                |                 |
  |-------------------------------------->|                 |
  |           |             |             |                 |
  |           |             | (4) exchange access token: assertion [new]
  |           |             |<------------|                 |
  |           |             | assertion: H0 accepted, active, eligible [new]
  |           |             |------------>|                 |
  |           | (5) exchange assertion for next ID-JAG  [new]
  |           |<--------------------------|                 |
  |           | ID-JAG for wiki, handle H1 (child of H0)    |
  |           |-------------------------->|                 |
  |           |             |             | (6) present ID-JAG
  |           |             |             |---------------->|
  |           |             |             | access token; base profile
  |           |             |             |<----------------|
]]></artwork>
        <ol spacing="normal" type="1"><li>
            <t>As in ID-JAG, AgentApp exchanges Alice's ID Token at the IdP for an ID-JAG
for the gateway's RAS (GatewayRAS in the figure). New: the IdP records the
root hop, H0, and its chain authorization, and includes H0's handle in the
ID-JAG's <tt>identity_continuation_handle</tt> claim (<xref target="root-establishment"/>,
<xref target="chain-id"/>).</t>
          </li>
          <li>
            <t>As in ID-JAG, AgentApp presents the ID-JAG to the gateway's RAS and
receives an access token. New: the RAS binds the handle to the authorization
it creates (<xref target="ras-processing"/>). A RAS that does not implement this profile
ignores the claim.</t>
          </li>
          <li>
            <t>AgentApp calls the gateway (ToolGateway) with the access token.</t>
          </li>
          <li>
            <t><strong>New:</strong> the gateway exchanges that access token at its RAS's token endpoint
for an Identity Continuation Assertion (<xref target="assertion"/>). The RAS resolves the
token's hop binding and attests H0's activity, eligibility for continuation,
and association with the gateway (<xref target="assertion-issuance"/>).</t>
          </li>
          <li>
            <t><strong>New:</strong> the gateway presents the assertion to the IdP as the <tt>subject_token</tt>
of a continuation exchange, with its own credential and a DPoP proof
(<xref target="token-exchange"/>). The IdP checks the wiki and the gateway against what
it recorded in step 1 and current policy, resolves Alice's subject for the
wiki, and issues an ID-JAG as hop H1, a child of H0 (<xref target="validation"/>).</t>
          </li>
          <li>
            <t>As in ID-JAG, the gateway presents the ID-JAG to the wiki's RAS (WikiRAS) and
receives an access token. New: if that RAS implements this profile it binds
H1 as in step 2 and the chain can continue; otherwise it ignores the handle
and the chain ends there.</t>
          </li>
        </ol>
        <t>In step 4, the CAI attests acceptance and activity for the hop's RAS. In
step 5, the IdP uses that attestation to evaluate continuation and resolve
Alice's subject for the wiki.</t>
      </section>
    </section>
    <section anchor="terms">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>This document uses the following terms, listed alphabetically:</t>
      <dl>
        <dt>Actor-lineage depth:</dt>
        <dd>
          <t>The number of entries in the actor lineage the IdP derives from its own
hop records, after consecutive entries for the same actor are merged and
before any narrowing of what the onward <tt>act</tt> discloses
(<xref target="onward-id-jag"/>). Tenant policy bounds it per branch
(<xref target="lifecycle-limits"/>).</t>
        </dd>
        <dt>Chain:</dt>
        <dd>
          <t>An IdP-held tree of hops under one chain authorization; each hop's
parent reference gives the tree its shape (<xref target="onward-id-jag"/>), and the
authorization bounds its lifetime (<xref target="lifecycle"/>).</t>
        </dd>
        <dt>Chain authorization:</dt>
        <dd>
          <t>The tenant's authorization decision recorded by the IdP at the root exchange
and associated with the chain's lifecycle anchor (<xref target="lifecycle-anchors"/>).
It determines which actors may continue and what authority they may obtain,
subject to current policy (<xref target="chain-authorization"/>).</t>
        </dd>
        <dt>Continuation Assertion Issuer (CAI):</dt>
        <dd>
          <t>The role the IdP trusts to issue Identity Continuation Assertions for a
tenant and the RAS whose hops it attests (<xref target="assertion-issuance"/>).</t>
        </dd>
        <dt>Continuation Handle (<tt>identity_continuation_handle</tt>):</dt>
        <dd>
          <t>An opaque, unguessable, IdP-generated reference to one hop of a chain
(<xref target="chain-id"/>).</t>
        </dd>
        <dt>Continuation-capable:</dt>
        <dd>
          <t>Describes an ID-JAG that carries the <tt>identity_continuation_handle</tt> claim
(<xref target="chain-id"/>).</t>
        </dd>
        <dt>Current actor:</dt>
        <dd>
          <t>The workload presenting the assertion to the IdP, named by <tt>act</tt>. Its
canonical actor identity is the (<tt>iss</tt>, <tt>sub</tt>) pair that its authentication
to the IdP resolves to (<xref target="client-identity"/>).</t>
        </dd>
        <dt>Durable chain:</dt>
        <dd>
          <t>A chain anchored to a refresh token's OAuth grant rather than to the user's
IdP session, so that it can continue after logout (<xref target="lifecycle-anchors"/>).</t>
        </dd>
        <dt>Hop:</dt>
        <dd>
          <t>One link of a chain: the IdP's record of an ID-JAG it issued, with an
immutable reference to its parent hop unless it is the root
(<xref target="onward-id-jag"/>). Its hop lineage is its path to the root; a hop from
which no workload continues is terminal.</t>
        </dd>
        <dt>ID-JAG:</dt>
        <dd>
          <t>An Identity Assertion JWT Authorization Grant
<xref target="I-D.ietf-oauth-identity-assertion-authz-grant"/> issued for a target RAS.</t>
        </dd>
        <dt>Identity Continuation Assertion:</dt>
        <dd>
          <t>A short-lived, sender-constrained JWT from a CAI, presented to the IdP as a
Token Exchange <tt>subject_token</tt> to obtain an onward ID-JAG (<xref target="assertion"/>).</t>
        </dd>
        <dt>IdP Authorization Server (IdP):</dt>
        <dd>
          <t>The authority that authenticates the user, determines the user's subject
identifier for each target RAS, and issues onward grants.</t>
        </dd>
        <dt>Pairwise subject:</dt>
        <dd>
          <t>A subject identifier specific to a RAS or group of RASes, allowing the same
user to have different identifiers at different audiences.</t>
        </dd>
        <dt>Resource Authorization Server (RAS):</dt>
        <dd>
          <t>An Authorization Server that protects a particular API, trusts the IdP for
subject resolution, and exchanges an ID-JAG for an API access token.
<xref target="I-D.ietf-oauth-identity-assertion-authz-grant"/> abbreviates this role (AS).</t>
        </dd>
        <dt>Tenant:</dt>
        <dd>
          <t>The administrative boundary within which the chain and CAI trust are
configured; its determination is deployment-defined, derived from
authenticated material, never from requester-supplied input
(<xref target="issuer-trust"/>).</t>
        </dd>
        <dt>Trust domain:</dt>
        <dd>
          <t>An administrative and authentication boundary within which workloads can be
directly authenticated, comparable to Workload Identity in Multi System
Environments (WIMSE) <xref target="I-D.ietf-wimse-arch"/>. Its identifier is
deployment-defined.</t>
        </dd>
        <dt>Workload:</dt>
        <dd>
          <t>A service that received a request on a user's behalf and may continue it to
a further service.</t>
        </dd>
      </dl>
    </section>
    <section anchor="assertion">
      <name>The Identity Continuation Assertion</name>
      <t>A CAI issues the assertion (<xref target="assertion-issuance"/>); the IdP validates it
(<xref target="validation"/>).</t>
      <section anchor="names">
        <name>Token Type and Media Type</name>
        <t>The Identity Continuation Assertion has token type
<tt>urn:ietf:params:oauth:token-type:identity-continuation</tt> and media type
<tt>application/oauth-identity-continuation+jwt</tt> (<xref target="iana"/>). It is a JWT
<xref target="RFC7519"/> in JWS Compact Serialization.</t>
        <t>The CAI <bcp14>MUST</bcp14> set the JOSE <tt>typ</tt> header to <tt>oauth-identity-continuation+jwt</tt>.
The CAI <bcp14>MUST</bcp14> sign the assertion with an asymmetric algorithm the IdP accepts
(<xref target="security-alg"/>). The assertion <bcp14>MUST NOT</bcp14> be encrypted (JWE) or use nested
signing.</t>
      </section>
      <section anchor="assertion-claims">
        <name>Claims</name>
        <t>The following is a non-normative example of the Identity Continuation Assertion
claim set:</t>
        <sourcecode type="json"><![CDATA[
{
  "iss": "https://cai.expenses.example/",
  "aud": "https://idp.example/",
  "identity_continuation_handle": "kW4uJ8pTe2NxA6rQvD1zYs",

  "act": {
    "iss": "https://expenses.example/",
    "sub": "expense-service"
  },

  "cnf": {
    "jkt": "base64url-current-actor-key-thumbprint"
  },

  "iat": 1710000020,
  "exp": 1710000200,
  "jti": "b8Rn5Yx1Qe4Nk2Wf6zVc9d"
}
]]></sourcecode>
        <t>The claims have the following meanings and requirements:</t>
        <dl>
          <dt><tt>iss</tt>:</dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14>. The CAI that issued the assertion; the IdP verifies its issuer
trust per the issuer-trust rule of <xref target="validation"/>, and its signature per the
well-formedness rule.</t>
          </dd>
          <dt><tt>aud</tt>:</dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14>. A single string exactly matching the IdP issuer identifier: not
its token endpoint URL, and not the requested target.</t>
          </dd>
          <dt><tt>identity_continuation_handle</tt>:</dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14>. The hop being continued (<xref target="chain-id"/>).</t>
          </dd>
          <dt><tt>act</tt>:</dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14>. The current actor presenting the Token Exchange request, encoded
as a single-level <tt>act</tt> claim per <xref target="RFC8693"/>:
</t>
            <ul spacing="normal">
              <li>
                <t><tt>iss</tt> and <tt>sub</tt> are <bcp14>REQUIRED</bcp14>, non-empty strings: the actor's canonical
actor identity as <xref target="client-identity"/> defines it. Only <tt>iss</tt> and <tt>sub</tt>
form the canonical actor identity under this document.</t>
              </li>
              <li>
                <t>Additional members <bcp14>MAY</bcp14> carry further information about the actor but
<bcp14>MUST NOT</bcp14> affect processing defined by this document unless another
specification profiles their use.</t>
              </li>
              <li>
                <t>A recipient <bcp14>MUST</bcp14> ignore members it does not understand.</t>
              </li>
              <li>
                <t><tt>exp</tt>, <tt>nbf</tt>, <tt>aud</tt>, <tt>scope</tt>, <tt>cnf</tt>, and a nested <tt>act</tt> <bcp14>MUST NOT</bcp14> be
present; the IdP rejects an assertion whose <tt>act</tt> carries one (the
well-formedness rule of <xref target="validation"/>).</t>
              </li>
              <li>
                <t>The IdP compares both <tt>iss</tt> and <tt>sub</tt> with the canonical actor identity
of the authenticated client (<xref target="client-identity"/>).</t>
              </li>
            </ul>
          </dd>
          <dt><tt>cnf</tt>:</dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14>. A confirmation claim <xref target="RFC7800"/> binding the assertion to a key
the current actor proves. <tt>cnf</tt> <bcp14>MUST</bcp14> contain exactly one confirmation
method: <tt>jkt</tt>, the JWK SHA-256 thumbprint <xref target="RFC7638"/> of the DPoP key
<xref target="RFC9449"/> (<xref target="security-pop"/>).</t>
          </dd>
          <dt><tt>iat</tt>, <tt>exp</tt>:</dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14>. <tt>exp</tt> <bcp14>MUST</bcp14> follow <tt>iat</tt>. The assertion is short-lived: a CAI
<bcp14>SHOULD NOT</bcp14> issue a lifetime (<tt>exp - iat</tt>) longer than 300 seconds, and an
IdP <bcp14>SHOULD</bcp14> accept lifetimes of up to 300 seconds. The IdP rejects a lifetime
longer than the maximum it accepts (<xref target="validation"/>).</t>
          </dd>
          <dt><tt>nbf</tt>:</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>. If present, processed as <xref target="RFC7519"/> specifies.</t>
          </dd>
          <dt><tt>jti</tt>:</dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14>. A replay-detection identifier that <bcp14>MUST</bcp14> be unique per <tt>iss</tt>
during the assertion validity window, with negligible probability of
collision. It <bcp14>SHOULD</bcp14> contain at least 128 bits of entropy.</t>
          </dd>
        </dl>
        <t>The assertion <bcp14>MUST NOT</bcp14> contain:</t>
        <ul spacing="normal">
          <li>
            <t>a top-level <tt>sub</tt>, <tt>auth_time</tt>, <tt>acr</tt>, <tt>amr</tt>, or <tt>sid</tt> claim; or</t>
          </li>
          <li>
            <t>the Token Exchange request parameters <tt>audience</tt>, <tt>resource</tt>, <tt>scope</tt>,
<tt>authorization_details</tt>, or <tt>requested_token_type</tt> (these are supplied by
the request).</t>
          </li>
        </ul>
        <t>The assertion occupies the <tt>subject_token</tt> role of Token Exchange <xref target="RFC8693"/>:
it carries no user subject, and the IdP resolves the user from the referenced
hop. It is not an <xref target="RFC7523"/> JWT-profile assertion.</t>
        <t>Other top-level claims <bcp14>MAY</bcp14> appear but <bcp14>MUST</bcp14> be ignored for validation,
authorization, and issuance.</t>
      </section>
    </section>
    <section anchor="chain-id">
      <name>Continuation Handles (<tt>identity_continuation_handle</tt>)</name>
      <t>An <tt>identity_continuation_handle</tt> is an opaque, non-bearer reference to one
IdP-held hop of a chain. The IdP generates a fresh handle for each hop and
includes it in that hop's ID-JAG. Each continuation creates a child hop with
its own handle and a reference to its parent. Every onward ID-JAG includes a
handle because the IdP does not know whether the target will continue the
chain. <xref target="privacy"/> describes the resulting correlation exposure.</t>
      <t>A handle is non-secret but security-sensitive correlation state: it confers no
authority by itself, yet a handle together with a CAI trust path and the
actor's credential is a larger compromise than the actor's credential alone
(<xref target="security-pop"/>); <xref target="handle-propagation"/> limits where it travels.</t>
      <t>The following rules apply:</t>
      <ol spacing="normal" type="1"><li>
          <t>When it establishes or continues a chain (<xref target="root-establishment"/>), the IdP
<bcp14>MUST</bcp14> embed a fresh <tt>identity_continuation_handle</tt> claim in the issued
ID-JAG, for that root or child hop, and <bcp14>MUST NOT</bcp14> reuse a handle across
hops.</t>
        </li>
        <li>
          <t><tt>identity_continuation_handle</tt> <bcp14>MUST</bcp14> provide at least 128 bits of
unpredictability, <bcp14>MUST NOT</bcp14> contain user-identifying information, and <bcp14>MUST</bcp14>
consist of characters drawn from the base64url alphabet (<tt>A</tt>-<tt>Z</tt>, <tt>a</tt>-<tt>z</tt>,
<tt>0</tt>-<tt>9</tt>, <tt>-</tt>, <tt>_</tt>); it <bcp14>SHOULD NOT</bcp14> exceed 256 characters.</t>
        </li>
        <li>
          <t>Across a trust boundary, the handle is accepted only inside an ID-JAG (by
the RAS) or an Identity Continuation Assertion (by the IdP), never as a
standalone value. Inside the accepting RAS's domain, the CAI obtains it
from RAS state or a carrier (<xref target="handle-propagation"/>); afterward it travels
in the assertion.</t>
        </li>
        <li>
          <t>A continuation-aware RAS binds the handle to the authorization state it
establishes (<xref target="ras-processing"/>), and a hop is continuable only after that
acceptance and binding (<xref target="hop-activation"/>). RASes, Resource Servers, and
CAIs <bcp14>MUST NOT</bcp14> modify the value. The IdP <bcp14>MUST</bcp14> use the handle only to resolve
hop state, subject, and policy, never as authority.</t>
        </li>
      </ol>
    </section>
    <section anchor="access">
      <name>Multi-Hop Cross-Domain Access</name>
      <t>This section specifies processing in protocol order: root exchange, RAS
acceptance, handle propagation, assertion issuance, and continuation exchange
(<xref target="protocol-overview"/>). The following table locates each role's requirements.</t>
      <table>
        <thead>
          <tr>
            <th align="left">Role</th>
            <th align="left">Requirements</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">IdP</td>
            <td align="left">Establishing a Chain (<xref target="root-establishment"/>), Continuation Exchange (<xref target="token-exchange"/>), Chain Lifetime and Revocation (<xref target="lifecycle"/>), IdP metadata (<xref target="metadata-idp"/>), Issuer Trust Configuration (<xref target="issuer-trust"/>)</td>
          </tr>
          <tr>
            <td align="left">Continuation-aware RAS</td>
            <td align="left">RAS Processing (<xref target="ras-processing"/>), Handle Carriers (<xref target="handle-propagation"/>), RAS metadata (<xref target="metadata-ras"/>)</td>
          </tr>
          <tr>
            <td align="left">CAI</td>
            <td align="left">the assertion it issues (<xref target="names"/>, <xref target="assertion-claims"/>), Assertion Issuance and its subsections (<xref target="assertion-issuance"/>), Handle Carriers (<xref target="handle-propagation"/>), Separate CAI (<xref target="separate-cai"/>)</td>
          </tr>
          <tr>
            <td align="left">Continuing workload</td>
            <td align="left">Assertion Issuance Request, Client Authentication, and Successful Response (<xref target="assertion-token-exchange"/>, <xref target="assertion-client-auth"/>, <xref target="assertion-response"/>); Continuation Request and Client Authentication (<xref target="request"/>, <xref target="client-identity"/>); Successful Response (<xref target="success-response"/>) and Error Response and Recovery (<xref target="error-response"/>)</td>
          </tr>
        </tbody>
      </table>
      <section anchor="root-establishment">
        <name>Establishing a Chain</name>
        <t>A chain begins when the IdP issues a continuation-capable ID-JAG on a root
exchange.</t>
        <section anchor="root-request">
          <name>Root Exchange Request</name>
          <t>The root exchange and its ID-JAG conform to the base ID-JAG profile
(<xref target="I-D.ietf-oauth-identity-assertion-authz-grant"/>) except where this document
extends it to issue a continuation-capable ID-JAG. The request presents a
subject token supported by the base profile, such as an ID Token, refresh
token, or SAML assertion:</t>
          <artwork><![CDATA[
POST /token HTTP/1.1
Host: idp.example
Content-Type: application/x-www-form-urlencoded

grant_type=urn:ietf:params:oauth:grant-type:token-exchange
&requested_token_type=urn:ietf:params:oauth:token-type:id-jag
&audience=https://ras.gateway.example/
&resource=https://gateway.example/
&scope=tools.invoke
&subject_token=<id_token | refresh_token | SAML assertion>
&subject_token_type=<normal-subject-token-type>
&client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer
&client_assertion=<JWT>
]]></artwork>
          <t>Processing an <tt>actor_token</tt> on the root exchange is outside the scope of both
this document and the base profile
(<xref target="I-D.ietf-oauth-identity-assertion-authz-grant"/>, Section 4.3.3), and the
root actor is the authenticated client (<xref target="root-actor"/>).</t>
        </section>
        <section anchor="chain-establishment">
          <name>Chain Establishment</name>
          <t>The IdP <bcp14>MUST</bcp14> establish a chain when tenant policy permits continuation for
the root exchange and the root subject token resolves to a
lifecycle anchor (<xref target="lifecycle-anchors"/>). To
establish a chain, the IdP <bcp14>MUST</bcp14> include the root handle in the ID-JAG. Absent
permission to continue, the IdP <bcp14>MUST NOT</bcp14> establish a chain or include an
<tt>identity_continuation_handle</tt>.</t>
          <t>Tenant policy may also restrict establishment to particular clients, grants,
or targets.</t>
          <t>The lifecycle anchor is the user's active IdP session or, for a durable chain,
a refresh token's OAuth grant. When the subject token resolves to no anchor, the
IdP issues the ID-JAG without a handle, as under the base profile. No request
parameter requests chain establishment. Advertised support (<xref target="metadata-idp"/>)
indicates capability and does not authorize establishment.</t>
          <t>For every hop it creates, root or child, the IdP <bcp14>MUST</bcp14> record the RAS audience
placed in the ID-JAG; the issuers it trusts to attest that RAS's hops are read
from current tenant configuration at each exchange (<xref target="issuer-trust"/>).</t>
          <t>Establishment is at-least-once. Retrying a lost response <bcp14>MAY</bcp14> create a second
chain, and the limits of <xref target="lifecycle-limits"/> apply across every chain rooted
in one chain authorization.</t>
        </section>
        <section anchor="root-actor">
          <name>Root Actor</name>
          <t>The root actor is the authenticated OAuth client, identified by the mapping
in <xref target="client-identity"/>. The base profile's recommendation to use a confidential
client applies to a root exchange that establishes a chain.</t>
          <t>This document places no proof-of-possession requirement on the root exchange.
The root client's obligations are those of the base profile, and sender
constraint becomes a requirement for an actor that continues
(<xref target="client-identity"/>).</t>
        </section>
        <section anchor="chain-authorization">
          <name>Chain Authorization</name>
          <t>The IdP <bcp14>MUST</bcp14> associate each chain with the chain authorization under
which it was established. The IdP records:</t>
          <ul spacing="normal">
            <li>
              <t>the authenticated user and tenant;</t>
            </li>
            <li>
              <t>the root actor;</t>
            </li>
            <li>
              <t>the authentication context (<tt>auth_time</tt>, <tt>acr</tt>, <tt>amr</tt>);</t>
            </li>
            <li>
              <t>the lifecycle anchor; and</t>
            </li>
            <li>
              <t>restrictions on which actors may continue and what authority they may obtain.</t>
            </li>
          </ul>
          <t>The representation is implementation-specific. The association, root facts,
and restrictions remain fixed for the chain's lifetime. Later requests or
policy changes cannot replace the authorization, change those facts, or relax
those restrictions.</t>
          <t>The IdP authorizes each continuation under the recorded chain
authorization and current policy (<xref target="validation"/>). Policy can restrict
access but cannot exceed that authorization. Policy evaluation is outside
the scope of this document.</t>
          <t>The root request's audience and scope describe the root ID-JAG. They do not
by themselves authorize or limit later targets. RAS-local permissions and CAI
attestation do not independently authorize onward access.</t>
        </section>
      </section>
      <section anchor="ras-processing">
        <name>Continuation-Aware RAS Processing</name>
        <t>A continuation-aware RAS implements this extension and advertises the
continuation grant profile (<xref target="metadata-ras"/>). A RAS that does not implement
it processes an ordinary ID-JAG and ignores the handle. An ID-JAG that such a
RAS accepts cannot become a continuation source.</t>
        <t>On accepting a continuation-capable ID-JAG, a continuation-aware RAS <bcp14>MUST</bcp14>:</t>
        <ol spacing="normal" type="1"><li>
            <t>accept the ID-JAG per <xref target="I-D.ietf-oauth-identity-assertion-authz-grant"/>;</t>
          </li>
          <li>
            <t>bind <tt>identity_continuation_handle</tt>, the ID-JAG's issuer, the tenant
where the deployment conveys one, and any confirmed key to the
authorization state it establishes, and record whether the authorization
is eligible for continuation under the RAS's own policy; and</t>
          </li>
          <li>
            <t>when the ID-JAG carries <tt>cnf</tt>, as every onward ID-JAG does
(<xref target="onward-id-jag"/>) and a root ID-JAG may, issue the access token bound to
the confirmed key with <tt>token_type</tt> <tt>DPoP</tt> (<xref target="RFC9449"/>, Section 5), never
as a bearer token.</t>
          </li>
        </ol>
        <t>How the RAS receives or determines the tenant is deployment-specific; this
document defines no tenant claim.</t>
        <t>Under the base profile, the RAS validates the grant, authenticates the client,
applies local authorization policy, and issues an access token. An ID-JAG
carrying <tt>cnf</tt> uses the DPoP-bound JWT grant, which verifies its sender
constraint (<xref target="onward-id-jag"/>). When a root ID-JAG lacks
<tt>cnf</tt> (<xref target="root-establishment"/>), the RAS's own policy decides whether that
access token is sender-constrained.</t>
        <t>Three rules govern binding the handle:</t>
        <ul spacing="normal">
          <li>
            <t>The RAS <bcp14>MUST</bcp14> bind the handle and issue the access token as one outcome: no
access token without its binding, and no binding without a token.</t>
          </li>
          <li>
            <t>All successful redemptions of one continuation-capable ID-JAG, identified
by its validated issuer and handle and qualified by the tenant binding
where the RAS records one, <bcp14>MUST</bcp14> resolve to the same hop binding, so that no
redemption creates a distinct continuation source. A matching handle under
another issuer is a different grant, not a retry.</t>
          </li>
          <li>
            <t>The RAS exposes the binding, its record linking the handle to authorization
state, only within its trust domain; the handle itself travels in the access
token or another carrier as <xref target="handle-propagation"/> describes.</t>
          </li>
        </ul>
        <section anchor="hop-activation">
          <name>Hop Acceptance</name>
          <t>Two parties hold facts about a hop, neither carried on the wire:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Fact</th>
                <th align="left">Held by</th>
                <th align="left">Meaning</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Issuance</td>
                <td align="left">IdP</td>
                <td align="left">The IdP issued the ID-JAG and recorded the hop.</td>
              </tr>
              <tr>
                <td align="left">Acceptance</td>
                <td align="left">RAS</td>
                <td align="left">The RAS accepted the ID-JAG and bound the handle to the resulting authorization.</td>
              </tr>
            </tbody>
          </table>
          <t>The IdP learns of acceptance through a trusted CAI's attestation and maintains
no synchronized acceptance state (<xref target="protocol-overview"/>). The CAI attests only
hops the RAS has accepted. A RAS acting as CAI attests its own hops; a separate
CAI confirms acceptance and activity according to the RAS's authorization
semantics (<xref target="assertion-issuance"/>).</t>
          <t>An issued hop cannot be continued without a trusted CAI's attestation. Unless
the CAI is compromised (<xref target="security-trust-model"/>), no trusted CAI attests an
issued-but-rejected ID-JAG, so continuation fails closed.</t>
          <t>A hop is continuable while a CAI trusted for its RAS can attest it as accepted
and still active, and neither it nor any ancestor is revoked; whether a
particular continuation from it succeeds is decided by the validation rules of
the continuation exchange (<xref target="validation"/>).</t>
          <t>RAS acceptance and recorded eligibility (<xref target="ras-processing"/>) are prerequisites
for CAI issuance. The IdP authorizes downstream access
under the chain authorization and current policy (<xref target="validation"/>).</t>
        </section>
      </section>
      <section anchor="handle-propagation">
        <name>Handle Carriers Within the Domain</name>
        <t>Each call includes a credential or context that identifies exactly one
RAS-bound authorization. The CAI <bcp14>MUST</bcp14> use the handle bound to that
authorization, whether it reads RAS
state directly or receives a carrier derived from it. A requester chooses
which credential to present, but cannot supply or override its handle
separately. A session or subject alone is not enough to select the
authorization: doing so could attach another user's handle to the call.</t>
        <t>When the RAS also acts as CAI, it reads the handle from its authorization
state. It may also include the handle in its access token
(<xref target="example-gateway"/>). A separate CAI receives the handle through a carrier
derived from the RAS binding (<xref target="ras-processing"/>). A Transaction Token
<xref target="I-D.ietf-oauth-transaction-tokens"/> is one such carrier, an optional
intra-domain choice and not a dependency of this profile. The carrier is
accepted only within that trust domain (<xref target="assertion-issuance"/>).</t>
        <t>The source of the authorization context depends on the type of call:</t>
        <ul spacing="normal">
          <li>
            <t>For an ingress call, the access token, after the resource verifies its
proof of possession where the token is sender-constrained.</t>
          </li>
          <li>
            <t>For a downstream call, a carrier forwarded from that ingress.</t>
          </li>
          <li>
            <t>For a scheduled run, the task named by an authenticated actor, resolved to
the task authorization for which that actor is designated. The CAI <bcp14>MUST</bcp14>
derive a scheduled continuation from durable RAS task authorization, not
from a scheduler-held handle (<xref target="security-authorization"/>). The scheduler holds
only a task identifier; each authenticated run re-derives the handle from
active task state and still requires an assertion from a trusted CAI.</t>
          </li>
        </ul>
        <t>The CAI checks acceptance freshness for every carrier
(<xref target="assertion-preconditions"/>).</t>
        <t>A Resource Server has no obligations under this document. A carrier <bcp14>SHOULD NOT</bcp14>
expose the handle to a party with no role in continuation. Deployments keep
this non-secret but security-sensitive correlation state (<xref target="chain-id"/>) out
of logs, traces, and responses.</t>
      </section>
      <section anchor="assertion-issuance">
        <name>Assertion Issuance</name>
        <t>The CAI issues the Identity Continuation Assertion that a workload presents to
continue a chain across a boundary. The CAI <bcp14>MUST</bcp14> set the assertion's <tt>aud</tt> to
the IdP recorded in the hop's RAS binding (<xref target="ras-processing"/>). The CAI
<bcp14>MUST NOT</bcp14> accept an IdP audience supplied by the requester.</t>
        <t>The CAI attests three facts about its own domain:</t>
        <ul spacing="normal">
          <li>
            <t>The RAS accepted the ID-JAG for the hop.</t>
          </li>
          <li>
            <t>The authorization the RAS established from it is active and, by the RAS's
own authorization semantics, eligible for continuation.</t>
          </li>
          <li>
            <t>The authenticated workload is associated with that authorization context,
in which it received, or was designated to process, the request that hop
authorized.</t>
          </li>
        </ul>
        <t>Whether that actor may continue, and to what, is the IdP's decision under the
chain authorization and current policy (<xref target="validation"/>).</t>
        <section anchor="assertion-token-exchange">
          <name>Assertion Issuance Request</name>
          <t>A CAI that is an OAuth authorization server, including a RAS acting as its own
CAI, <bcp14>MAY</bcp14> issue assertions from its token endpoint using Token Exchange
<xref target="RFC8693"/> as profiled in this and the following subsections. Such a RAS
<bcp14>SHOULD</bcp14> support this method of issuance, so that a workload in its domain has
one request to implement. Issuance by other means remains deployment-specific
(<xref target="handle-propagation"/>).</t>
          <t>A workload obtains assertions from the token endpoint of the CAI its
deployment designates. For a RAS acting as its own CAI, this is the RAS's
token endpoint, discoverable through the RAS's metadata (<xref target="metadata-ras"/>); a
separate CAI is configured within the trust domain, which this document leaves
to the deployment (<xref target="handle-propagation"/>).</t>
          <t>The current actor acts as an OAuth client of the CAI. It makes a Token
Exchange request to the CAI's token endpoint with the following parameters:</t>
          <dl>
            <dt><tt>grant_type</tt>:</dt>
            <dd>
              <t><bcp14>REQUIRED</bcp14>. The value <tt>urn:ietf:params:oauth:grant-type:token-exchange</tt>.</t>
            </dd>
            <dt><tt>requested_token_type</tt>:</dt>
            <dd>
              <t><bcp14>REQUIRED</bcp14>. The value
<tt>urn:ietf:params:oauth:token-type:identity-continuation</tt>.</t>
            </dd>
            <dt><tt>subject_token</tt>:</dt>
            <dd>
              <t><bcp14>REQUIRED</bcp14>. Either the access token the client received on the call it is
continuing, or the Transaction Token that carries the hop's handle for that
call.</t>
            </dd>
            <dt><tt>subject_token_type</tt>:</dt>
            <dd>
              <t><bcp14>REQUIRED</bcp14>. <tt>urn:ietf:params:oauth:token-type:access_token</tt> or
<tt>urn:ietf:params:oauth:token-type:txn_token</tt>
                <xref target="I-D.ietf-oauth-transaction-tokens"/>, matching the <tt>subject_token</tt>.</t>
            </dd>
          </dl>
          <t>The <tt>audience</tt>, <tt>resource</tt>, <tt>scope</tt>, <tt>actor_token</tt>, and <tt>actor_token_type</tt>
parameters <bcp14>MUST NOT</bcp14> be included: targets and scope are chosen at the IdP
exchange (<xref target="assertion-claims"/>), and the authenticated client is the actor
named in <tt>act</tt>.</t>
          <t>The following example carries the client's authentication and its DPoP proof
(<xref target="assertion-client-auth"/>):</t>
          <artwork><![CDATA[
POST /token HTTP/1.1
Host: cai.example
Content-Type: application/x-www-form-urlencoded
DPoP: <proof of possession of the key to be placed in cnf>

grant_type=urn:ietf:params:oauth:grant-type:token-exchange
&requested_token_type=urn:ietf:params:oauth:token-type:identity-continuation
&subject_token=<access token presented to the client>
&subject_token_type=urn:ietf:params:oauth:token-type:access_token
&client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer
&client_assertion=<JWT>
]]></artwork>
        </section>
        <section anchor="assertion-client-auth">
          <name>Client Authentication</name>
          <t>The client <bcp14>MUST</bcp14> authenticate to the CAI's token endpoint (<xref target="RFC6749"/>, Section
2.3). The client <bcp14>MUST</bcp14> include in the request a DPoP proof <xref target="RFC9449"/> of the
client's own key. The CAI <bcp14>MUST</bcp14> verify that proof and bind the assertion to the
proven key in <tt>cnf</tt>. The CAI's verification is defense in depth: the actor
proves possession of that key again to the IdP at the continuation exchange,
which is the security boundary for continuation (<xref target="client-identity"/>).</t>
          <t>The CAI <bcp14>MUST</bcp14> issue only for an actor it is authoritative to associate with the
RAS-accepted authorization, typically one in the RAS's trust domain; actor
authentication is deployment-specific.</t>
        </section>
        <section anchor="assertion-preconditions">
          <name>Request Validation</name>
          <t>The CAI <bcp14>MUST</bcp14> verify that the <tt>subject_token</tt> is of the type its
<tt>subject_token_type</tt> declares (<xref target="assertion-token-exchange"/>) and is one of the
following:</t>
          <ul spacing="normal">
            <li>
              <t>an access token the accepting RAS issued, that RAS being one whose hops the
CAI attests, unexpired, and valid for a protected resource that the
authenticated client operates, as determined from the CAI's registration or
configuration of that client; or</t>
            </li>
            <li>
              <t>a Transaction Token valid for the CAI's trust domain under
<xref target="I-D.ietf-oauth-transaction-tokens"/>, Section 12.2, carrying the <tt>typ</tt>
header and issuer that specification defines, and carrying the hop's handle
as chain context (<xref target="handle-propagation"/>, <xref target="separate-cai"/>).</t>
            </li>
          </ul>
          <t>A token of another type presented as <tt>subject_token</tt>, such as an ID-JAG or an
Identity Continuation Assertion, is unacceptable (<xref target="assertion-error-response"/>).</t>
          <t>With an access token, the client is a resource server exchanging a token it
received, the scenario of the example in <xref target="RFC8693"/>, Section 2.3. A RAS acting
as CAI resolves its own token; a separate CAI resolves it as <xref target="separate-cai"/>
describes. In this exchange the <tt>subject_token</tt> identifies the RAS
authorization context from which continuation is requested; its subject is not
copied into the resulting assertion.</t>
          <t>Either <tt>subject_token</tt> type supplies the facts below. The CAI <bcp14>MUST</bcp14>
authenticate the actor and issue only after establishing these facts:</t>
          <ol spacing="normal" type="1"><li>
              <t>The handle came through an authenticated, confidential,
integrity-protected channel or equivalent authenticated state.</t>
            </li>
            <li>
              <t>The current actor controls the key placed in <tt>cnf</tt>.</t>
            </li>
            <li>
              <t><tt>act</tt> names that actor. If offline attenuation reached the actor, the
attenuated credential it received, the <tt>subject_token</tt> or the carrier that
conveyed it, is valid (<xref target="decision-rule"/>).</t>
            </li>
            <li>
              <t>The handle is the one bound to the authorization context the actor
presents, its access token or carrier, and the actor is a party that
context was issued or forwarded to (<xref target="handle-propagation"/>,
<xref target="hop-activation"/>). Selecting another intact context is the actor's
choice; substituting a handle within a context is not. The handle is input
to verify, never authority in itself (<xref target="chain-id"/>).</t>
            </li>
            <li>
              <t>Evidence that is authoritative by the RAS's own authorization semantics,
whatever the carrier, confirms that the authorization remains active and
that its binding still records it as eligible for continuation. That
evidence is either a recheck of RAS authorization state or, where the RAS's
authorization is a self-contained short-lived token the RAS itself issued,
that token's validity (<xref target="separate-cai"/>).</t>
            </li>
          </ol>
          <t>The subject token's integrity protection and the authenticated request
establish fact 1; the DPoP proof, fact 2; client authentication, fact 3, whose
attenuation condition the CAI establishes by validating the attenuated
credential it received; and the bound handle and the RAS's acceptance evidence,
facts 4 and 5.</t>
          <t><xref target="security-pop"/> traces the binding chain these facts form from ID-JAG to
assertion.</t>
          <t>A live recheck <bcp14>SHOULD</bcp14> be used where the tenant requires withdrawal of a hop's
authorization to stop fresh assertions before the RAS's token would expire.
With self-contained evidence, the CAI stops issuing when that token expires,
as for any OAuth access token. Where the evidence is a self-contained token,
the assertion's <tt>exp</tt> <bcp14>SHOULD NOT</bcp14> exceed that token's expiry, so that an
assertion is not presentable after the evidence that supported it has lapsed
(<xref target="lifecycle-ending"/>).</t>
          <t>A domain may add its own conditions for issuing, for example limiting which of
its workloads may obtain assertions, but such conditions narrow issuance only.
Target or purpose hints can narrow CAI issuance, but neither they nor
propagated context expand the authority the IdP may issue (<xref target="validation"/>).</t>
        </section>
        <section anchor="assertion-response">
          <name>Successful Response</name>
          <t>A successful response is a Token Exchange response (<xref target="RFC8693"/>, Section
2.2.1) in which <tt>access_token</tt> carries the Identity Continuation Assertion,
<tt>issued_token_type</tt> is
<tt>urn:ietf:params:oauth:token-type:identity-continuation</tt>, <tt>token_type</tt> is
<tt>N_A</tt> (not applicable), and <tt>expires_in</tt> reflects the assertion's lifetime.
The <tt>access_token</tt> member is the <xref target="RFC8693"/> response container; the assertion
is not an OAuth access token, which <tt>token_type</tt> <tt>N_A</tt> signals. This document
adds one parameter:</t>
          <dl>
            <dt><tt>identity_continuation_authorization_server</tt>:</dt>
            <dd>
              <t><bcp14>REQUIRED</bcp14>. A JSON string containing the issuer identifier (<xref target="RFC8414"/>) of
the authorization server at which the client exchanges the assertion for an
ID-JAG. The CAI <bcp14>MUST</bcp14> set its value to the assertion's <tt>aud</tt> claim. The client
uses this parameter to identify the IdP without decoding the assertion.</t>
            </dd>
          </dl>
          <t>The client obtains that IdP's <tt>token_endpoint</tt> from its authorization server
metadata (<xref target="RFC8414"/>), retrieved with the <tt>oauth-authorization-server</tt>
well-known URI suffix under the issuer identifier. Before sending the assertion
or its own credentials there, the client <bcp14>MUST</bcp14> confirm that the returned <tt>issuer</tt>
exactly matches <tt>identity_continuation_authorization_server</tt>. Where the IdP
publishes no metadata, the client uses configuration bound to that issuer
identifier (<xref target="metadata"/>).</t>
          <t>The client <bcp14>SHOULD</bcp14> present the assertion only to an IdP it is configured to
trust; this parameter identifies the destination but does not establish trust.</t>
          <t>The CAI <bcp14>MUST NOT</bcp14> include a <tt>refresh_token</tt> in the response, which would let a
client obtain further assertions without presenting a token or passing the
acceptance check.</t>
          <artwork><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache

{
  "issued_token_type": "urn:ietf:params:oauth:token-type:identity-continuation",
  "access_token": "<Identity Continuation Assertion, compact JWS>",
  "token_type": "N_A",
  "identity_continuation_authorization_server": "https://idp.example/",
  "expires_in": 180
}
]]></artwork>
        </section>
        <section anchor="assertion-error-response">
          <name>Error Response</name>
          <t>On failure, the CAI returns an error response according to <xref target="RFC6749"/>,
Section 5.2, and <xref target="RFC8693"/>, Section 2.2.2. This document specifies the
following error mappings:</t>
          <ul spacing="normal">
            <li>
              <t><tt>invalid_request</tt> when the <tt>subject_token</tt> is invalid or unacceptable under
policy, including when it is unknown, expired, revoked, not of the type its
<tt>subject_token_type</tt> declares, not valid for a resource the client operates,
has no bound handle, or names an authorization whose binding does not record
it as eligible for continuation, or when the request includes a parameter
this document prohibits (<xref target="assertion-token-exchange"/>);</t>
            </li>
            <li>
              <t><tt>unauthorized_client</tt> when the client is not permitted to use this grant
type; and</t>
            </li>
            <li>
              <t><tt>invalid_dpop_proof</tt> (<xref target="RFC9449"/>) for a failed proof.</t>
            </li>
          </ul>
          <t>DPoP nonce processing and the <tt>use_dpop_nonce</tt> error apply unchanged from
<xref target="RFC9449"/>.</t>
        </section>
        <section anchor="separate-cai">
          <name>Separate CAI</name>
          <t>A separate CAI <bcp14>MUST</bcp14> obtain the handle and evidence of RAS acceptance and
continued eligibility from a source authoritative for that RAS within its
domain (<xref target="deployment-topologies"/>):</t>
          <ul spacing="normal">
            <li>
              <t>the RAS's authorization state;</t>
            </li>
            <li>
              <t>its introspection response <xref target="RFC7662"/>; or</t>
            </li>
            <li>
              <t>a self-contained short-lived token issued by the RAS.</t>
            </li>
          </ul>
          <t>For an access-token <tt>subject_token</tt> (<xref target="assertion-token-exchange"/>), the CAI
uses introspection or validates a self-contained token.</t>
          <t>The handle alone does not convey the originating IdP, tenant, or eligibility
for continuation. The introspection response's <tt>active</tt> member reports token
activity, not continuation eligibility (<xref target="RFC7662"/>, Section 2.2). A separate
CAI relying on introspection therefore obtains the eligibility and the
originating IdP and tenant from deployment-defined evidence or configuration,
as the requirement above already demands.</t>
          <t>With a Transaction Token, the handle arrives through the carrier of
<xref target="handle-propagation"/>. Validating that token alone does not establish RAS
acceptance or eligibility for continuation.</t>
          <t>The IdP accepts a separate CAI's attestation only where it trusts that CAI to
attest the accepting RAS's hops, from tenant configuration
(<xref target="issuer-trust"/>, the issuer-trust rule of <xref target="validation"/>).</t>
        </section>
      </section>
      <section anchor="token-exchange">
        <name>Continuation Exchange</name>
        <t>A continuation exchange is an OAuth 2.0 Token Exchange request <xref target="RFC8693"/>
whose <tt>subject_token</tt> is an Identity Continuation Assertion. It uses the same
Token Exchange framework as the root exchange (<xref target="root-establishment"/>),
substituting the assertion for the root credential and adding the actor
authentication and DPoP proof described below.</t>
        <t>Before a chain can continue to a target, the current actor needs a client
registration or resolvable client identity at that target's RAS
(<xref target="onward-id-jag"/>).</t>
        <section anchor="request">
          <name>Continuation Request</name>
          <t>A continuation exchange presents an Identity Continuation Assertion, a DPoP
proof of the <tt>cnf</tt> key, and the actor's client authentication
(<xref target="client-identity"/>):</t>
          <artwork><![CDATA[
POST /token HTTP/1.1
Host: idp.example
Content-Type: application/x-www-form-urlencoded
DPoP: <proof of possession of the cnf key>

grant_type=urn:ietf:params:oauth:grant-type:token-exchange
&requested_token_type=urn:ietf:params:oauth:token-type:id-jag
&audience=https://ras.travel.example/
&resource=https://api.travel.example/
&scope=trips.read
&subject_token=<identity-continuation-assertion>
&subject_token_type=urn:ietf:params:oauth:token-type:identity-continuation
&client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer
&client_assertion=<JWT>
]]></artwork>
          <t>The request carries no <tt>actor_token</tt> or <tt>actor_token_type</tt>: the actor named in
<tt>act</tt> is the authenticated client (<xref target="client-identity"/>), and the IdP rejects a
request carrying either (<xref target="validation"/>, <xref target="error-response"/>).</t>
          <t>The continuation request, never the assertion, supplies the requested
<tt>audience</tt>, <tt>resource</tt>, <tt>scope</tt>, <tt>requested_token_type</tt>, and any
<tt>authorization_details</tt> <xref target="RFC9396"/> (<xref target="assertion-claims"/>). A request can carry
multiple <tt>resource</tt> indicators <xref target="RFC8707"/>. The authorization rule
(<xref target="validation"/>) applies to <tt>authorization_details</tt> and to scope alike.</t>
        </section>
        <section anchor="client-identity">
          <name>Client Authentication</name>
          <t>The current actor <bcp14>MUST</bcp14> authenticate as an OAuth client with a credential that
resolves to its canonical actor identity. The canonical actor identity is the
(<tt>iss</tt>, <tt>sub</tt>) pair the IdP holds for that client.</t>
          <t>The <tt>iss</tt> member identifies the actor's identity authority, which determines
issuer pairing (<xref target="validation"/>, <xref target="security-trust-model"/>) independently of the
credential parameter. If the client registration specifies no other canonical
actor identity, <tt>iss</tt> is the IdP's issuer identifier and <tt>sub</tt> is the
<tt>client_id</tt>. This applies, for example, to a client registered without a
workload identity that authenticates with a client secret or mutual-TLS
certificate.</t>
          <t>The IdP <bcp14>MUST</bcp14> derive that pair from its registration of the client or its
configuration of the client's credential issuer, not from the client
authentication method, and <bcp14>MUST NOT</bcp14> accept a self-asserted mapping.</t>
          <t>For <xref target="RFC7523"/> client authentication, the IdP <bcp14>MUST</bcp14> authorize the assertion's
issuer for the authenticated client. The canonical actor identity remains the
pair derived from the IdP's configuration (<xref target="rationale-client-id"/>).</t>
          <t>This mapping applies to every exchange. Client authentication identifies the
root actor; this profile adds no proof-of-possession requirement to the root
exchange (<xref target="root-establishment"/>). On a continuation exchange (<xref target="request"/>),
the IdP <bcp14>MUST</bcp14> also match the canonical actor identity to the assertion's <tt>act</tt>.</t>
          <t>The comparison runs between actor identities, never between a raw OAuth client
identifier and an <tt>act</tt> value:</t>
          <artwork><![CDATA[
authenticated OAuth client
        |  authoritative mapping (IdP registration)
        v
canonical actor identity (iss, sub)
        ^
        |  equal
       act
]]></artwork>
          <t>The IdP <bcp14>MUST</bcp14> compare the actor <tt>iss</tt> and <tt>sub</tt> as case-sensitive strings with
no transformation or canonicalization (<xref target="RFC7519"/>): the assertion's <tt>act</tt> is
compared with the canonical actor identity, and identities in different tenants
never compare equal.</t>
          <t>The actor <bcp14>MUST</bcp14> prove possession of the key in <tt>cnf</tt>; for the <tt>jkt</tt> method, that
proof is a DPoP proof <xref target="RFC9449"/>. The IdP <bcp14>MUST</bcp14> bind the onward ID-JAG to a key
the actor proves in the request. This version defines only DPoP confirmation;
the target validates it using <xref target="RFC9449"/>. Support for mutual-TLS confirmation
<xref target="RFC8705"/> remains an open question (<xref target="open-items"/>).</t>
          <t>A request contains one DPoP proof, so the assertion and resulting ID-JAG are
bound to the same key. Client authentication may use an independent
credential. Other confirmation methods could support different keys
(<xref target="open-items"/>). Key rotation takes effect when the actor obtains an
assertion bound to the new key.</t>
        </section>
        <section anchor="validation">
          <name>Request Validation</name>
          <t>Where the IdP offers idempotent retry, a presentation whose (<tt>iss</tt>, <tt>jti</tt>)
matches an ISSUED reservation, as <xref target="idempotent-retry"/> defines, is processed
under that section; an IdP that does not offer retry rejects every second
presentation (<xref target="validation-replay"/>). For a first presentation, the IdP <bcp14>MUST</bcp14>
reject the request unless every rule below holds. <xref target="error-response"/> specifies
error precedence when multiple rules fail.</t>
          <ol spacing="normal" type="1"><li>
              <t><strong>Request parameters.</strong>
              </t>
              <ul spacing="normal">
                <li>
                  <t>exactly one each of <tt>grant_type</tt>, <tt>subject_token</tt>, <tt>subject_token_type</tt>,
<tt>requested_token_type</tt>, and <tt>audience</tt>, and no <tt>actor_token</tt> or
<tt>actor_token_type</tt> (<xref target="RFC8693"/>, Section 2.1);</t>
                </li>
                <li>
                  <t>zero or more <tt>resource</tt>, treated as an order-independent set, and at
most one each of <tt>scope</tt> and <tt>authorization_details</tt>, all <bcp14>OPTIONAL</bcp14> and,
when present, evaluated by the authorization rule; and</t>
                </li>
                <li>
                  <t><tt>grant_type</tt> is <tt>urn:ietf:params:oauth:grant-type:token-exchange</tt>,
<tt>subject_token_type</tt> is
<tt>urn:ietf:params:oauth:token-type:identity-continuation</tt>, and
<tt>requested_token_type</tt> is <tt>urn:ietf:params:oauth:token-type:id-jag</tt>;</t>
                </li>
              </ul>
            </li>
            <li>
              <t><strong>Assertion well-formedness.</strong>
              </t>
              <ul spacing="normal">
                <li>
                  <t>the assertion is a JWT whose JOSE <tt>typ</tt> header is
<tt>oauth-identity-continuation+jwt</tt>;</t>
                </li>
                <li>
                  <t>it is a JWS in Compact Serialization, and is neither a JWE nor a nested
JWT (<xref target="names"/>);</t>
                </li>
                <li>
                  <t>it carries exactly one value for each claim required by
<xref target="assertion-claims"/> and none of the claims that section forbids;</t>
                </li>
                <li>
                  <t><tt>iss</tt>, <tt>aud</tt>, <tt>identity_continuation_handle</tt>, and <tt>jti</tt> are non-empty
strings, <tt>act</tt> and <tt>cnf</tt> are JSON objects with <tt>cnf</tt> naming exactly one
confirmation method, and <tt>iat</tt>, <tt>exp</tt>, and any <tt>nbf</tt> are NumericDate
numbers;</t>
                </li>
                <li>
                  <t><tt>act</tt> carries none of the members <xref target="assertion-claims"/> forbids (<tt>exp</tt>,
<tt>nbf</tt>, <tt>aud</tt>, <tt>scope</tt>, <tt>cnf</tt>, and a nested <tt>act</tt>);</t>
                </li>
                <li>
                  <t><tt>aud</tt> exactly matches the IdP's issuer identifier;</t>
                </li>
                <li>
                  <t>the signature validates with the issuer's resolved signing keys
(<xref target="metadata"/>);</t>
                </li>
                <li>
                  <t><tt>alg</tt> is neither <tt>none</tt> nor a symmetric algorithm and is on the IdP's
allowlist (<xref target="security-alg"/>, <xref target="RFC8725"/>); and</t>
                </li>
                <li>
                  <t>the signing key comes from trusted issuer configuration, not from a
<tt>jku</tt>, <tt>x5u</tt>, or embedded <tt>jwk</tt> header, though <tt>kid</tt> <bcp14>MAY</bcp14> select among
the configured keys;</t>
                </li>
              </ul>
            </li>
            <li>
              <t><strong>Issuer trust.</strong>
              </t>
              <ul spacing="normal">
                <li>
                  <t>the assertion <tt>iss</tt> is either the accepting RAS itself, identified by the
ID-JAG <tt>aud</tt> recorded for the hop as a string or one-element array, or
another issuer the IdP trusts to attest that RAS's hops, recorded from
tenant configuration (<xref target="issuer-trust"/>); and</t>
                </li>
                <li>
                  <t>in either case, that issuer is trusted for the chain's tenant, recorded
at establishment, and authorized to pair, for that tenant, with the
actor's identity authority (<xref target="client-identity"/>);</t>
                </li>
              </ul>
            </li>
            <li>
              <t><strong>Chain state.</strong>
              </t>
              <ul spacing="normal">
                <li>
                  <t>the handle identifies a hop the IdP issued, on an active chain, that the
assertion attests as accepted: a valid assertion from a CAI the IdP
trusts for that hop's RAS is itself that attestation; no claim in the
assertion carries it (<xref target="hop-activation"/>);</t>
                </li>
                <li>
                  <t>neither the presented hop nor any ancestor is revoked;</t>
                </li>
                <li>
                  <t>the actor lineage that results from merging consecutive same-actor
entries, as the onward <tt>act</tt> will (<xref target="onward-id-jag"/>), is within its
actor-lineage depth bound, which counts lineage entries, not hops; and</t>
                </li>
                <li>
                  <t>the continuation is within the fan-out, rate, and hop-count limits of
the chain authorization (<xref target="lifecycle-limits"/>);</t>
                </li>
              </ul>
            </li>
            <li>
              <t><strong>Current actor and binding.</strong>
              </t>
              <ul spacing="normal">
                <li>
                  <t><tt>act</tt> is present, conforms to the schema of <xref target="assertion-claims"/>, and
identifies the current actor, the canonical actor identity of the
authenticated client (<xref target="client-identity"/>);</t>
                </li>
                <li>
                  <t>the request proves possession of the <tt>cnf</tt> key with a matching DPoP
proof (<xref target="client-identity"/>, <xref target="RFC9449"/>); the assertion is never
accepted as a bearer token (<xref target="RFC7800"/>); and</t>
                </li>
                <li>
                  <t>the IdP can resolve, for the requested <tt>audience</tt>, both the user's subject
identifier and the actor's client identifier (<xref target="onward-id-jag"/>);</t>
                </li>
              </ul>
            </li>
            <li>
              <t><strong>Freshness and replay.</strong>
              </t>
              <ul spacing="normal">
                <li>
                  <t><tt>iat</tt> is within the IdP's permitted clock skew, <tt>exp</tt> follows <tt>iat</tt>, the
assertion is unexpired within that same skew, and any <tt>nbf</tt> has passed
within it (<xref target="RFC7519"/>, Section 4.1.5). One skew value applies to <tt>iat</tt> as
future skew, to <tt>exp</tt> as past skew, and to reservation retention
(<xref target="validation-replay"/>); it <bcp14>SHOULD NOT</bcp14> exceed 60 seconds;</t>
                </li>
                <li>
                  <t>the assertion's lifetime does not exceed the maximum the IdP accepts
(<xref target="assertion-claims"/>); and</t>
                </li>
                <li>
                  <t><tt>jti</tt> is not yet reserved for the assertion issuer (<xref target="validation-replay"/>);
where the IdP offers idempotent retry, a presentation matching an ISSUED
reservation is recovery (<xref target="idempotent-retry"/>), not a continuation
exchange, and any other reserved <tt>jti</tt> is rejected;</t>
                </li>
              </ul>
            </li>
            <li>
              <t><strong>Authorization.</strong> The IdP <bcp14>MUST</bcp14> issue an ID-JAG only if the chain
authorization associated with the referenced hop (<xref target="chain-authorization"/>)
and current policy permit the authenticated actor to continue from that hop
and permit the authority represented by the resulting ID-JAG. This
evaluation includes the audience, resources, scopes, and authorization
details, including any default scope or other defaults the IdP applies
under its policy. An omitted <tt>scope</tt> uses a policy default or results in
<tt>invalid_scope</tt> (<xref target="RFC6749"/>, Section 3.3). An omitted <tt>resource</tt> does not
by itself require a default. The IdP <bcp14>MUST</bcp14> reject the
request if it cannot establish that authorization.  </t>
              <t>
The issued ID-JAG carries the <tt>scope</tt>, <tt>resource</tt>, and
<tt>authorization_details</tt> values that express the granted authority.
Target or purpose hints reaching the CAI (<xref target="assertion-preconditions"/>)
<bcp14>MUST NOT</bcp14> control the IdP's target decision, and propagated context <bcp14>MUST NOT</bcp14>
expand the authority permitted by the chain authorization and current
policy. The IdP evaluates each authorization detail according to its type
(<xref target="RFC9396"/>) and rejects a type whose authorization semantics it does not
implement.</t>
            </li>
          </ol>
        </section>
        <section anchor="success-response">
          <name>Successful Response</name>
          <t>The response to a continuation exchange follows the base ID-JAG profile: the
IdP returns the ID-JAG in <tt>access_token</tt>, with <tt>token_type</tt> <tt>N_A</tt> (not
applicable; <xref target="RFC8693"/>, Section 2.2.1). The IdP <bcp14>MUST NOT</bcp14> include a
<tt>refresh_token</tt>: a renewable credential would let the workload obtain further
grants without fresh CAI attestation, or root a new chain through the
refresh-token anchor, outside the hop's revocation dependencies.</t>
          <artwork><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache

{
  "issued_token_type": "urn:ietf:params:oauth:token-type:id-jag",
  "access_token": "<continuation-capable ID-JAG, compact JWS>",
  "token_type": "N_A",
  "expires_in": 300
}
]]></artwork>
          <t>On success, the IdP <bcp14>MUST</bcp14> record a child hop (<xref target="hop-activation"/>) of the
presented hop before returning an ID-JAG carrying the resolved target <tt>sub</tt>
and the child hop's fresh handle. An idempotent retry (the freshness rule;
<xref target="idempotent-retry"/>) instead returns the previously issued grant unchanged,
creating no new hop or handle.</t>
          <t>The hop reference is delivered as the ID-JAG's <tt>identity_continuation_handle</tt>
claim (<xref target="chain-id"/>), a claim inside <tt>access_token</tt> and not a separate Token
Exchange response parameter; the accepting RAS binds it (<xref target="ras-processing"/>),
and the CAI reaches it through RAS state or intra-domain context
(<xref target="handle-propagation"/>).</t>
          <t>There is no chain-expiry response parameter: chain lifetime is authoritative
at the IdP (<xref target="lifecycle"/>), and a deployment needing advance warning conveys
it through task or authorization state, an optional ID-JAG claim, or a
management API.</t>
        </section>
        <section anchor="onward-id-jag">
          <name>Onward ID-JAG Construction</name>
          <t>The onward ID-JAG conforms to the base ID-JAG profile
(<xref target="I-D.ietf-oauth-identity-assertion-authz-grant"/>) except where this document
extends it: its <tt>sub</tt> is the IdP-issued subject identifier for the target
audience, and <tt>aud_sub</tt> remains available under the base profile where the
target's native subject namespace differs.</t>
          <t>Because the onward ID-JAG carries <tt>cnf</tt>, the actor redeems it with the
DPoP-bound JWT grant, <tt>urn:ietf:params:oauth:grant-type:jwt-dpop</tt>
(<xref target="I-D.parecki-oauth-jwt-dpop-grant"/>), and a DPoP proof of the bound key, as
the base profile specifies for a key-bound ID-JAG
(<xref target="I-D.ietf-oauth-identity-assertion-authz-grant"/>, Section 9.8.1.2.1). The
target RAS needs no continuation support to redeem this grant. A RAS that
does not implement this profile may issue a bearer access token under the
base profile. A continuation-aware RAS follows the binding requirements of
<xref target="ras-processing"/>, even if no further continuation occurs.</t>
          <t>Where the recorded root authentication context contains <tt>auth_time</tt>, <tt>acr</tt>, or
<tt>amr</tt>, the IdP <bcp14>MUST</bcp14> include them in the onward ID-JAG unchanged. Continuation
<bcp14>MUST NOT</bcp14> extend or strengthen the authentication context, for example by
raising <tt>acr</tt> or adding <tt>amr</tt> beyond the user's root authentication.</t>
          <t>The IdP constructs <tt>act</tt> as follows:</t>
          <ul spacing="normal">
            <li>
              <t>It places the authenticated current actor atop the presented hop's lineage,
whose origin is the authenticated client of the root exchange even if
the root ID-JAG carries no <tt>act</tt> (<xref target="root-actor"/>); it never copies lineage
from the assertion, and siblings do not contribute.</t>
            </li>
            <li>
              <t>A hop's parent reference is immutable. The IdP <bcp14>MUST</bcp14> derive lineage from
that hop's ancestry to the root, excluding sibling branches. Storage and
traversal methods are implementation-specific.</t>
            </li>
            <li>
              <t>Consecutive identical actors, those whose canonical actor identities are
equal under the comparison rules of <xref target="client-identity"/>, both <tt>iss</tt> and
<tt>sub</tt>, merge into one entry, though the hop record
remains; policy <bcp14>MAY</bcp14> limit disclosed depth, narrowing what a target sees
without changing the actor-lineage depth bound the IdP enforces (the
chain-state rule of <xref target="validation"/>).</t>
            </li>
            <li>
              <t>A RAS <bcp14>MUST NOT</bcp14> read the absence of a further nested <tt>act</tt> as proof that no
earlier actor exists, because policy may narrow what is disclosed: <tt>act</tt> is
the disclosed actor lineage, not the authoritative history, which only the
IdP's hop records hold.</t>
            </li>
          </ul>
          <t>The onward ID-JAG's <tt>client_id</tt> identifies the current actor's OAuth client
at the target RAS and may differ from its client identifier at the IdP.
If the IdP cannot resolve that target client identity, the request fails
with <tt>invalid_target</tt> (<xref target="error-response"/>).</t>
          <t>The following is a non-normative example of the onward ID-JAG issued by the
IdP:</t>
          <sourcecode type="json"><![CDATA[
{
  "iss": "https://idp.example/",
  "aud": "https://ras.travel.example/",
  "sub": "travel-pairwise-subject",

  "client_id": "expense-service",
  "resource": "https://api.travel.example/",
  "scope": "trips.read",

  "identity_continuation_handle": "Uc9fB3mHs5LdK7gEnX2wRj",

  "auth_time": 1710000000,
  "acr": "urn:example:loa:2",
  "amr": ["pwd", "mfa"],

  "act": {
    "iss": "https://expenses.example/",
    "sub": "expense-service",
    "act": {
      "iss": "https://expenses.example/",
      "sub": "expense-app"
    }
  },

  "cnf": {
    "jkt": "base64url-current-actor-key-thumbprint"
  },

  "iat": 1710000025,
  "exp": 1710000325,
  "jti": "idjag-travel-01"
}
]]></sourcecode>
        </section>
        <section anchor="error-response">
          <name>Error Response and Recovery</name>
          <t>On failure, the IdP returns an error response (<xref target="RFC6749"/>, Section 5.2;
<xref target="RFC8693"/>, Section 2.2.2). On a first presentation, when more than one rule
of <xref target="validation"/> fails, the IdP <bcp14>MUST</bcp14> return the code for the earliest
failure. Request-parameter and well-formedness failures (including signature
verification) come first. No chain-state code is returned before issuer trust
for the hop's RAS is established, nor before the client authentication and key
proof of the current-actor rule succeed, so no chain-state code reaches a
caller that has not authenticated as the current actor and proved the <tt>cnf</tt>
key. Among chain-state failures a permanently unusable hop precedes a limit.
The contents of an unverified assertion never determine the response, and a
missing hop is <tt>invalid_request</tt>, so a caller learns nothing about which
handles exist.</t>
          <t>For recovery, client authentication, key proof, and fingerprint matching
precede chain-state checks (<xref target="idempotent-retry"/>).</t>
          <t>On a first presentation or matching ISSUED recovery, the IdP <bcp14>MUST</bcp14> return
<tt>invalid_continuation</tt> (<xref target="iana"/>) when the handle identifies an issued hop
that is permanently unusable: its chain has expired or ended,
the hop or an ancestor is revoked, or the tenant has withdrawn the chain's
permission to continue (<xref target="lifecycle-ending"/>). The IdP <bcp14>MUST NOT</bcp14> return
<tt>invalid_continuation</tt> in any other case.</t>
          <t>For other failures, the IdP <bcp14>MUST</bcp14> use the following error codes:</t>
          <ul spacing="normal">
            <li>
              <t><tt>invalid_request</tt>: a malformed, inconsistent, or unacceptable token, including
an assertion that fails the well-formedness rule of <xref target="validation"/> (which
covers signature verification) or the issuer-trust rule; an <tt>act</tt> that does
not equal the authenticated client's canonical actor identity
(<xref target="client-identity"/>); an unknown handle; a
lifetime above the accepted maximum; prohibited <tt>actor_token</tt> or
<tt>actor_token_type</tt> parameters; or a reserved assertion that cannot be
processed as idempotent recovery (<xref target="idempotent-retry"/>), other than a
matching ISSUED recovery whose hop is permanently unusable, which is
<tt>invalid_continuation</tt>.</t>
            </li>
            <li>
              <t><tt>invalid_dpop_proof</tt>: a DPoP failure.</t>
            </li>
            <li>
              <t><tt>unauthorized_client</tt>: the chain authorization or current policy does
not permit this actor to continue from the hop. Other actors may still
continue; withdrawal of the chain's permission is <tt>invalid_continuation</tt>.</t>
            </li>
            <li>
              <t><tt>invalid_grant</tt>: continuation would exceed actor-lineage depth, fan-out,
hop-count, or rate limits (<xref target="lifecycle-limits"/>). A rate-limited request can
be retried after the policy-defined window; other limit failures require a
different request.</t>
            </li>
            <li>
              <t><tt>invalid_target</tt>: the requested <tt>audience</tt> or a requested <tt>resource</tt> is not
permitted by the chain authorization or current policy, or the IdP cannot
resolve the user's subject identifier or the actor's client identifier at
the target.</t>
            </li>
            <li>
              <t><tt>invalid_scope</tt>: a requested scope is not permitted by the chain
authorization or current policy, or <tt>scope</tt> is omitted and no policy
default exists (<xref target="RFC6749"/>, Section 3.3).</t>
            </li>
            <li>
              <t><tt>invalid_authorization_details</tt>: a requested authorization detail is not
permitted by the chain authorization or current policy, or its type is one
the IdP does not implement.</t>
            </li>
          </ul>
          <t>DPoP nonce processing and the <tt>use_dpop_nonce</tt> error apply unchanged from
<xref target="RFC9449"/>.</t>
          <t>Recovery from <tt>invalid_continuation</tt> requires a new root exchange, authorized
under current policy and resolving to an active anchor
(<xref target="root-establishment"/>). Establishing a new chain does not reactivate the old
chain's handles.</t>
          <t>Other errors apply to the request and do not establish that the chain is
permanently unusable. An actor-lineage depth rejection
concerns the particular continuation whose resulting lineage would exceed the
bound, not the hop itself; a continuation that merges into an existing lineage
entry, or a later policy raising the bound, may still succeed.</t>
          <t>After a lost response, the client <bcp14>MAY</bcp14> retry the same assertion where the IdP
offers idempotent retry (<xref target="idempotent-retry"/>), or obtain a fresh assertion.
Expired acceptance evidence can prevent fresh assertion issuance; shared
fan-out or hop-count limits can prevent a subsequent exchange
(<xref target="lifecycle-limits"/>). A fresh assertion may create an equivalent grant and
sibling hop but no additional authority.</t>
          <t>A client cannot distinguish on the wire a presentation whose request does not
match its reservation's fingerprint from one whose reservation is RESERVED or
FAILED: all three return <tt>invalid_request</tt> (<xref target="idempotent-retry"/>). The client
can retry the original request within the retry window, since pending issuance
may complete, or obtain a fresh assertion. Other <tt>invalid_request</tt> failures,
such as malformed requests or prohibited parameters, require correcting or
abandoning the request.</t>
        </section>
        <section anchor="validation-replay">
          <name>Replay Reservation and Retry</name>
          <t>The IdP <bcp14>MUST</bcp14> issue at most one grant per assertion, including under concurrent
presentations: it reserves the assertion's (<tt>iss</tt>, <tt>jti</tt>) as an atomic
first-writer decision once validation succeeds and before it issues the grant,
and <bcp14>MUST</bcp14> retain the reservation through <tt>exp</tt> plus the permitted clock skew
(one value, per the freshness rule of <xref target="validation"/>). Uniqueness is keyed on
(<tt>iss</tt>, <tt>jti</tt>), since partitioning by tenant alone would let two assertion
issuers in one tenant collide on a reused <tt>jti</tt>. The reservation <bcp14>MUST</bcp14> be
visible to every IdP instance that accepts assertions for that issuer, and an
instance that cannot reach that shared state <bcp14>MUST</bcp14> reject the request rather
than issue. Without idempotent retry this needs only the set of (<tt>iss</tt>, <tt>jti</tt>)
values presented within that window.</t>
          <t>A request that fails validation creates no reservation and does not modify
any existing reservation.</t>
          <t>The IdP <bcp14>MUST</bcp14> reject a second presentation of a reserved assertion unless it
offers idempotent retry.</t>
          <t>A consumed assertion is not equivalent to a fresh one. With live acceptance
evidence, the CAI refuses a fresh assertion once the hop's authorization has
lapsed (<xref target="assertion-preconditions"/>); with self-contained evidence, issuance
continues until the RAS token expires, and single-use still keeps each consumed
assertion from authorizing more than its one grant within that tail
(<xref target="security-pop"/>). Single-use therefore bounds staleness and multiplicity; it
does not itself establish that the hop was accepted.</t>
          <section anchor="idempotent-retry">
            <name>Idempotent Retry</name>
            <t>An IdP <bcp14>MAY</bcp14> offer idempotent retry by binding the reservation to a fingerprint
of the request first authorized and recording the reservation as RESERVED,
ISSUED, or FAILED (distinct from the hop facts of <xref target="hop-activation"/>). These
names describe the states an IdP distinguishes, not a required representation.
The IdP <bcp14>MUST</bcp14> reject a presentation whose (<tt>iss</tt>, <tt>jti</tt>) matches a reservation
but whose request does not match that reservation's fingerprint. A presentation
matching the fingerprint of an ISSUED reservation within the IdP's retry window
is processed as recovery, defined below. The fingerprint <bcp14>MUST</bcp14> cover:</t>
            <ul spacing="normal">
              <li>
                <t><tt>audience</tt> as an exact string;</t>
              </li>
              <li>
                <t>the <tt>resource</tt> values as an order-independent set;</t>
              </li>
              <li>
                <t><tt>scope</tt> as an order-independent set;</t>
              </li>
              <li>
                <t>the exact <tt>authorization_details</tt> JSON after form decoding (a different
serialization is a different request);</t>
              </li>
              <li>
                <t>the actor's <tt>iss</tt> and <tt>sub</tt>;</t>
              </li>
              <li>
                <t>the confirmation key in <tt>cnf</tt> (its <tt>jkt</tt> thumbprint in this version); and</t>
              </li>
              <li>
                <t>a SHA-256 hash of the exact <tt>subject_token</tt> after form decoding, which binds
the fingerprint to the specific assertion and its handle.</t>
              </li>
            </ul>
            <t>An IdP that offers idempotent retry <bcp14>MUST</bcp14> retain the ISSUED reservation, its
fingerprint, and its result for a retry window it defines, alongside the
reservation retention of <xref target="validation-replay"/>; recovery is available only
within that window and only while the issued grant is unexpired. The window is a
deployment choice and <bcp14>MAY</bcp14> be advertised or documented.</t>
            <t>For recovery, the IdP <bcp14>MUST</bcp14> verify:</t>
            <ul spacing="normal">
              <li>
                <t>the requester's client authentication and canonical actor identity;</t>
              </li>
              <li>
                <t>the DPoP proof of the <tt>cnf</tt> key;</t>
              </li>
              <li>
                <t>the request fingerprint; and</t>
              </li>
              <li>
                <t>that the presented hop and every ancestor remain unrevoked and the chain
has not ended, including through anchor expiry or withdrawal of the chain's
permission to continue (<xref target="lifecycle-ending"/>).</t>
              </li>
            </ul>
            <t>If these checks succeed and the issued grant is unexpired, the IdP <bcp14>MUST</bcp14> return
that grant unchanged. Otherwise, it <bcp14>MUST</bcp14> reject the request under
<xref target="error-response"/>. The IdP never extends or reissues the grant; after its
<tt>exp</tt>, the client obtains a fresh assertion.</t>
            <t>Recovery applies no other validation or policy checks. Changes to actor or
target authorization, or to issuer trust, do not prevent recovery of an
already-issued grant. Recovery creates no hop and consumes no fan-out,
hop-count, or rate budget. Throttling repeated requests is a deployment choice.</t>
            <t>A presentation matching a RESERVED reservation, whose first presentation has
not completed, <bcp14>MUST</bcp14> be rejected with <tt>invalid_request</tt>; the client can retry
it once that first presentation completes (<xref target="error-response"/>). A reservation
that does not reach ISSUED before <tt>exp</tt> plus the permitted clock skew becomes
FAILED, which is final: a presentation matching a FAILED reservation <bcp14>MUST</bcp14> be
rejected with <tt>invalid_request</tt>, and the client obtains a fresh assertion.</t>
            <t>Application idempotency is outside the scope of this document.
<xref target="implementation"/> provides implementation guidance; discovery of optional
recovery support remains an open question (<xref target="open-items"/>).</t>
          </section>
        </section>
      </section>
    </section>
    <section anchor="lifecycle">
      <name>Chain Lifetime and Revocation</name>
      <t>This profile supports session-anchored chains and, optionally, durable chains
anchored to a refresh token's grant. A session-anchored chain ends with the
session; a grant-anchored chain can support an unattended agent after logout
(<xref target="example-background"/>). The ending rules and limits apply to both forms.
A reader implementing session anchors only can skip the grant-specific
processing and background example.</t>
      <t>A chain is continuable only while active at the IdP. Each continuation is a
fresh policy check, and revoking a hop stops its descendants at the next
continuation, fail-closed; an offline-attenuated token, by contrast, stays
usable for its lifetime without contacting an authority.</t>
      <t>Revocation does not invalidate an already-issued ID-JAG, so the revocation
window is the ID-JAG's remaining redemption window plus the lifetime of the
access token a late redemption obtains; any refresh token the RAS issues,
which the base profile recommends against, extends it further.</t>
      <t>Three independent lifetimes govern a continuation:</t>
      <ul spacing="normal">
        <li>
          <t>the ID-JAG's short redemption window;</t>
        </li>
        <li>
          <t>the access-token lifetime the accepting RAS sets, which this profile does
not constrain; and</t>
        </li>
        <li>
          <t>the IdP-held continuation chain.</t>
        </li>
      </ul>
      <t>Revoking the chain does not shorten an already-issued access token, and an
access token outliving the chain does not extend it.</t>
      <artwork><![CDATA[
ID-JAG redeem   |==|
access token    |===========|              RAS-set, independent
IdP-held chain  |=========================| IdP-held, spans hops
]]></artwork>
      <section anchor="lifecycle-anchors">
        <name>Anchors</name>
        <t>The root subject token resolves to one of these anchors
(<xref target="root-establishment"/>):</t>
        <ul spacing="normal">
          <li>
            <t>an ID Token <tt>sid</tt> <xref target="OIDC.FrontChannelLogout"/> resolving to an active IdP
session for that user and client;</t>
          </li>
          <li>
            <t>a SAML <tt>SessionIndex</tt> <xref target="SAML2.Core"/> resolving to an active IdP session
for that user and client; or</t>
          </li>
          <li>
            <t>for a durable chain, a refresh token's OAuth grant.</t>
          </li>
        </ul>
        <t>The IdP <bcp14>MUST NOT</bcp14> root a chain from an unresolved anchor or an access token;
non-user-rooted authority is out of scope. <tt>sid</tt> and <tt>SessionIndex</tt> are used
only for resolution and <bcp14>MUST NOT</bcp14> enter assertions or chain context.</t>
        <t>Support for grant anchors is <bcp14>OPTIONAL</bcp14>; a session-anchored implementation is
complete. Without it, base processing of a
refresh-token subject is unchanged; any otherwise-authorized ID-JAG omits the
continuation handle (<xref target="chain-establishment"/>). Rotation of a refresh token
does not affect the grant anchor.</t>
      </section>
      <section anchor="lifecycle-ending">
        <name>Ending a Chain</name>
        <t>A chain ends when:</t>
        <ul spacing="normal">
          <li>
            <t>the session it is anchored to terminates;</t>
          </li>
          <li>
            <t>the grant it is anchored to expires or is revoked; or</t>
          </li>
          <li>
            <t>tenant policy withdraws permission to continue it.</t>
          </li>
        </ul>
        <t>A chain <bcp14>MUST NOT</bcp14> outlive its anchor (<xref target="lifecycle-anchors"/>): a session-anchored
chain ends with the session, and only a grant-anchored chain may outlive
logout. An authorization that a session produced but that has its own
lifecycle, such as a refresh token's grant, is a grant anchor, so logout ends
a chain only when the session itself is the anchor. Ending a chain this way
bounds only new continuations; an ID-JAG already issued remains redeemable for
its own lifetime, since redemption is not a continuation.</t>
        <t>The IdP has these duties over chain lifetime:</t>
        <ul spacing="normal">
          <li>
            <t>it <bcp14>MUST</bcp14> bound chain lifetime by the chain authorization;</t>
          </li>
          <li>
            <t>it <bcp14>MUST</bcp14> support administrative revocation of an entire chain and <bcp14>MAY</bcp14>
revoke an individual hop's subtree; and</t>
          </li>
          <li>
            <t>it <bcp14>MUST</bcp14> reject continuation on a revoked, expired, or ended chain.</t>
          </li>
        </ul>
        <t>The IdP ends a chain when it observes the withdrawal, whether through a
policy event or at the next continuation attempt, and an ended chain stays
ended: restoring the policy that withdrew permission does not revive it, its
handles remain permanently unusable (<xref target="error-response"/>), and a new chain is
needed.</t>
        <t>RAS-local withdrawal stops fresh assertions once the CAI observes it;
self-contained acceptance evidence may remain usable until its expiry
(<xref target="assertion-preconditions"/>). Previously issued assertions remain subject to
the IdP's current chain, trust, and authorization checks (<xref target="validation"/>).
RAS-local withdrawal does not revoke descendants accepted at other RASes;
stopping their continuation requires IdP revocation of the chain or affected
subtree.</t>
        <t>How an IdP surfaces chains to users and administrators for review and
revocation is deployment-specific; <xref target="GRANT-MGMT"/> describes OAuth grant
management for that purpose.</t>
      </section>
      <section anchor="lifecycle-limits">
        <name>Limits</name>
        <t>Fan-out is the number of child hops continued from one hop and is counted
per hop. Hop count is the total number of hops in a chain across all
branches. Rate is the number of newly issued continuations, not attempts,
within a window tenant policy defines. Hop count and rate are counted per
chain and, where the tenant configures one budget for a chain
authorization, aggregated across every chain rooted in it, so sibling chains
share that budget; a retried establishment (<xref target="root-establishment"/>) <bcp14>MUST NOT</bcp14>
evade it. Revocation of the chain authorization applies to every chain
rooted in it. The actor-lineage depth bound, set by tenant policy, is
enforced per branch.</t>
        <t>The IdP <bcp14>MUST</bcp14> enforce a finite hop-count limit on every chain, either the
tenant's configured value or the IdP's default, so that a workload
continuing as itself cannot extend a chain without bound. Fan-out and rate
limits remain optional tenant controls. Whether the profile should fix a
default is open (<xref target="open-items"/>).</t>
      </section>
    </section>
    <section anchor="metadata">
      <name>Authorization Server Metadata and Trust Configuration</name>
      <t>An IdP and a Resource Authorization Server advertise support in their
metadata; the IdP configures the CAIs and actor identity authorities it trusts.</t>
      <section anchor="metadata-idp">
        <name>IdP Authorization Server Metadata</name>
        <t>An IdP that supports this profile <bcp14>SHOULD</bcp14> signal it in its authorization server
metadata <xref target="RFC8414"/> with the following parameter:</t>
        <dl>
          <dt><tt>identity_continuation_supported</tt>:</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>. Boolean, default <tt>false</tt>, indicating that the IdP accepts the
<tt>urn:ietf:params:oauth:token-type:identity-continuation</tt> subject token type
and issues continuation-capable ID-JAGs. Such an ID-JAG is still the
<tt>urn:ietf:params:oauth:token-type:id-jag</tt> type; an IdP that sets this flag
also lists that type in <tt>identity_chaining_requested_token_types_supported</tt>
(<xref target="I-D.ietf-oauth-identity-chaining"/>). This flag adds only the continuation
capability.</t>
          </dd>
        </dl>
      </section>
      <section anchor="metadata-ras">
        <name>Resource Authorization Server Metadata</name>
        <t>A Resource Authorization Server that binds the
<tt>identity_continuation_handle</tt> claim to authorization state <bcp14>MUST</bcp14> advertise
support by listing the grant profile
<tt>urn:ietf:params:oauth:grant-profile:id-jag-continuation</tt> in
its <tt>authorization_grant_profiles_supported</tt>
          <xref target="I-D.ietf-oauth-identity-assertion-authz-grant"/>. This value indicates that the
server recognizes continuation-capable ID-JAGs and performs that binding
(<xref target="ras-processing"/>). The base ID-JAG grant profile indicates ordinary grant
processing without handle binding.</t>
        <t>A Resource Authorization Server that advertises
<tt>urn:ietf:params:oauth:grant-profile:id-jag-continuation</tt> <bcp14>MUST</bcp14> also advertise
the base <tt>urn:ietf:params:oauth:grant-profile:id-jag</tt> profile and the
<tt>urn:ietf:params:oauth:grant-type:jwt-bearer</tt> grant type on which ID-JAG
depends (<xref target="I-D.ietf-oauth-identity-assertion-authz-grant"/>). It <bcp14>MUST</bcp14> also
advertise <tt>urn:ietf:params:oauth:grant-type:jwt-dpop</tt>, since every onward
ID-JAG it redeems carries <tt>cnf</tt> (<xref target="onward-id-jag"/>).</t>
      </section>
      <section anchor="issuer-trust">
        <name>Issuer Trust Configuration</name>
        <t>The IdP <bcp14>MUST</bcp14> authorize CAI and actor identity authority pairings per tenant;
separate trust in each is insufficient (<xref target="security-trust-model"/>). The IdP
<bcp14>MUST</bcp14> scope CAI trust by issuer, keys, tenant, and the RAS it attests for.
Tenant determination <bcp14>MUST</bcp14> derive from authenticated material, not
requester-supplied input.</t>
        <t>When a CAI's issuer identifier is that of an OAuth authorization server, the
IdP obtains its signing keys from the <tt>jwks_uri</tt> in that server's metadata
(<xref target="RFC8414"/>); a CAI without such a <tt>jwks_uri</tt>, like any other CAI, uses
authenticated configuration. The IdP <bcp14>MUST</bcp14> refresh remotely obtained keys
under a bounded cache policy, so a key removed from the JWK Set stops
validating once the refresh takes effect.</t>
        <t>The IdP evaluates issuer trust and keys against its current trusted issuer
and key state, so removing an issuer or revoking its keys de-authorizes it
for existing chains: continuation from such a CAI's assertions is refused at
the next continuation exchange (the issuer-trust rule of <xref target="validation"/>).</t>
        <t>CAI trust is provisioned and withdrawn through deployment-specific
configuration at the IdP.</t>
      </section>
    </section>
    <section anchor="implementation">
      <name>Implementation Considerations</name>
      <t>This non-normative section provides implementation guidance for IdPs, RASes,
and CAIs. Conformance depends on the normative sections.</t>
      <t>Continuation is per authorization context, not per call: a workload continues
once to obtain an ID-JAG for a target and then reuses the access token it
redeems there while that token remains valid and covers the requested access.
Reuse requires the same user, tenant, actor, and key as the call that obtained
the token. Each source hop needs its own continuation: reusing a sibling
branch's token would associate subsequent continuation with that branch's
lineage and revocation dependencies.</t>
      <t>The first call requires assertion issuance, continuation exchange, and ID-JAG
redemption. Later calls using the same valid token require no further exchanges.</t>
      <t>Renewal is another continuation with a fresh assertion, which succeeds only
if the CAI's preconditions still hold (<xref target="assertion-preconditions"/>); an
expired access token does not by itself entitle the workload to another.</t>
      <t>Every continuation depends on IdP availability. A separate CAI also needs
access to the RAS's acceptance evidence. Offline attenuation can avoid these
dependencies where the subject and issuer trust remain usable across the
boundary (<xref target="decision-rule"/>); it cannot replace IdP subject resolution.</t>
      <t>The IdP retains hop records for the chain's lifetime and prunes hop state for
ended chains and revoked hops. It retains each assertion's (<tt>iss</tt>, <tt>jti</tt>)
reservation as <xref target="validation-replay"/> requires, expiring it by the same clock
it uses to evaluate <tt>exp</tt>.</t>
      <t>An IdP that offers idempotent retry also holds the ISSUED reservation, its
fingerprint, and its result for the retry window it defines, with recovery
governed by <xref target="idempotent-retry"/>; an IdP that does not offer retry needs no
more than the reservation itself. Ancestry caches and audit indexes can
supplement immutable parent records, provided lineage and ancestor
revocation checks remain correct for each branch (<xref target="onward-id-jag"/>).</t>
      <t>An IdP can derive handles from an internal delegation identifier using a
keyed one-way function, provided the derived handles still satisfy rules 1
and 2 of <xref target="chain-id"/> and remain unlinkable.</t>
      <t>A RAS can make the handle binding and token issuance of <xref target="ras-processing"/>
one outcome with a local transaction, or with a compensating action that
revokes a token whose binding did not commit.</t>
      <t>The CAI accounts for retries separately from fan-out and keeps audit records of
its issuance and limit enforcement. The IdP performs end-to-end audit
correlation across a chain, while each RAS logs only its local subject.</t>
      <t>Consecutive continuations by the same actor do not increase actor-lineage
depth. The fan-out, rate, and hop-count limits of <xref target="lifecycle-limits"/> bound
this growth.</t>
      <t>Failure paths worth testing before deployment:</t>
      <ul spacing="normal">
        <li>
          <t>Concurrent redemption of one ID-JAG.</t>
        </li>
        <li>
          <t>A crash between issuing an ID-JAG and recording its hop.</t>
        </li>
        <li>
          <t>A policy change between two continuations.</t>
        </li>
        <li>
          <t>A credential from the wrong tenant.</t>
        </li>
        <li>
          <t>Local revocation after an assertion has been issued.</t>
        </li>
      </ul>
      <t>An IdP can defer materializing chain state until the first continuation,
provided the handle still resolves to the same root and chain
authorization; deferral does not relax the replay rules of
<xref target="validation-replay"/>. Whether the hop tree could be replaced by
self-verifying handles is an open question (<xref target="open-items"/>), not a realization
this document describes.</t>
      <section anchor="deployment-topologies">
        <name>Deployment Topologies</name>
        <t>The two topologies differ in which party performs the CAI role and how it
obtains hop state:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Topology</th>
              <th align="left">CAI role held by</th>
              <th align="left">Source</th>
              <th align="left">Fits when</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Co-located</td>
              <td align="left">the accepting RAS</td>
              <td align="left">RAS state</td>
              <td align="left">one operator runs the domain</td>
            </tr>
            <tr>
              <td align="left">Separate</td>
              <td align="left">a separate CAI the IdP trusts for the RAS</td>
              <td align="left">domain carrier</td>
              <td align="left">the RAS is shared infrastructure, the gateway is only a Resource Server, or keys and audit need isolation</td>
            </tr>
          </tbody>
        </table>
        <t>In the baseline co-located deployment, the IdP configures the RAS's issuer
trust (<xref target="issuer-trust"/>), including keys, tenant, and issuer pairings
(<xref target="security-trust-model"/>). The RAS advertises the continuation profile
(<xref target="metadata-ras"/>).</t>
        <t>Both topologies produce the same Identity Continuation Assertion and apply the
same CAI requirements. Either CAI can issue the assertion from its token
endpoint (<xref target="assertion-token-exchange"/>): a co-located RAS takes the access
token it issued as the <tt>subject_token</tt>, and a separate CAI takes the token
that carries the handle. Both require the same number of exchanges.
Co-location reduces configuration and trust relationships; a separate CAI
also requires a carrier and access to acceptance evidence.</t>
        <t>Carrier selection is deployment-specific, subject to <xref target="handle-propagation"/>.
The gateway example uses the RAS's access token (<xref target="example-gateway"/>). Common
carriers include:</t>
        <ul spacing="normal">
          <li>
            <t>A Transaction Token <xref target="I-D.ietf-oauth-transaction-tokens"/> can carry the
handle as request context (<xref target="handle-propagation"/>).</t>
          </li>
          <li>
            <t>A signed JWT access token <xref target="RFC9068"/> issued by the accepting RAS can carry
the handle as a claim. The claim records issuance-time state and therefore
cannot reflect a later revocation; the CAI's acceptance check
(<xref target="assertion-preconditions"/>) covers that.</t>
          </li>
          <li>
            <t>For an opaque access token issued by the accepting RAS, its introspection
response <xref target="RFC7662"/> can carry the handle as a member, generated when
introspection occurs and present only when <tt>active</tt> is <tt>true</tt>.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>This profile assumes TLS, correct IdP subject mapping and authorization
evaluation, and the OAuth guidance of <xref target="RFC9700"/>. The adversaries considered
are a party that captures an assertion or access token, a compromised or
misdirected workload, a party holding a handle and nothing else, a rogue or
over-scoped actor identity authority, a compromised RAS or CAI, an actor that
forges lineage, and an attacker that substitutes token types, algorithms, or
keys.</t>
      <t><xref target="privacy"/> addresses correlation and disclosure risks.</t>
      <section anchor="security-pop">
        <name>Sender Constraint and Proof of Possession</name>
        <t>An Identity Continuation Assertion identifies the current actor. The IdP
matches its <tt>act</tt> claim to the authenticated client's canonical actor identity
(<xref target="client-identity"/>). An attacker cannot use a captured assertion without
also authenticating as that actor.</t>
        <t>Sender constraint additionally requires possession of the <tt>cnf</tt> key, verified
with DPoP <xref target="RFC9449"/> (<xref target="validation"/>, <xref target="client-identity"/>). Possession of the
actor's client credential alone is insufficient without that key. The onward
ID-JAG and the continuation-aware RAS's access token are bound to the same key
(<xref target="client-identity"/>, <xref target="ras-processing"/>). Sender constraint is maintained
across continuation-capable hops rather than demonstrated once at issuance,
with an authenticated transition to the next actor's key at each workload
boundary. Where the chain ends at a RAS that does not implement this profile,
that RAS's token binding is its own policy under the base profile
(<xref target="onward-id-jag"/>).</t>
        <t>The facts the CAI establishes before issuing (<xref target="assertion-preconditions"/>) form
the binding chain from ID-JAG to assertion. In the synchronous flow, the
redeemer proved the ID-JAG's <tt>cnf</tt> key at the RAS, which bound the handle to
its authorization state and the access token to that key (<xref target="ras-processing"/>);
the caller proved that key on its call to the workload, which verified it as an
<xref target="RFC9449"/> resource server; the workload authenticates to the CAI and proves
its own key (facts 2 and 3); and the CAI places that key in <tt>cnf</tt>. Where the
context was forwarded within the domain, carried in a Transaction Token, or
derived from durable task state for a scheduled run (<xref target="handle-propagation"/>),
fact 4 substitutes for the call-boundary check.</t>
        <t>The root hop is different. A root ID-JAG need not carry <tt>cnf</tt>, and its RAS
sender-constrains the access token by its own policy, so a root hop may issue
a bearer token. A party that captures such a token can call the workload and
so induce that honest workload's continuation under the workload's own key;
the workload's proof of possession does not prevent this, because the workload
is the legitimate presenter. Such a token weakens only the caller's link in the
binding chain; facts 2 and 3 apply unchanged.</t>
        <t>Because acceptance does not bound downstream authority (<xref target="hop-activation"/>), a
captured root token can induce continuation to any target permitted by the
chain authorization and current policy, not only the resource the token
was issued for. Token theft is the inherited bearer-token risk; continuation
can extend its consequences to the downstream authority available under that
authorization. Sender constraint at ingress prevents use of the token without
its bound key.</t>
        <t>This profile adds no proof requirement at the root (<xref target="root-establishment"/>);
continuation rests on the continuing actor's key, the RAS binding, and the
CAI's attestation, not on the root client's key. At assertion issuance the
actor proves only its own key, not any key the incoming subject token is bound
to (<xref target="assertion-token-exchange"/>): the chain changes key at the call boundary
by design, because the access token is the caller's credential and the
assertion is the callee's, so the CAI does not compare the requester's proof
with the access token's key.</t>
        <t>Replay of a captured assertion is confined to the IdP continuation exchange
and requires the actor's key. The freshness rule bounds the window, and
single-use (<xref target="validation-replay"/>) confines a consumed assertion to the one
grant it first obtained: without it, an actor whose RAS-local authorization
had lapsed, and whom the CAI would therefore refuse a fresh assertion, could
keep continuing from a consumed one, to any target the chain authorization
and current policy permit, until it expired. Idempotent recovery after a lost
response is optional and does not reopen replay (<xref target="validation-replay"/>).</t>
      </section>
      <section anchor="security-authorization">
        <name>Authorization Enforcement</name>
        <t>The IdP checks the chain authorization associated with the chain
(<xref target="chain-authorization"/>), not merely whether the user or actor could obtain
access under another authorization. The CAI's attestation and RAS acceptance
do not grant onward authority (<xref target="validation"/>, <xref target="hop-activation"/>). The CAI,
not the IdP, checks any offline attenuation segment
(<xref target="assertion-preconditions"/>).</t>
        <t>A compromised or misdirected workload can request any target, so broad
continuation permissions increase the damage it can cause. Policy changes may
affect active chains, but current policy cannot override a restriction of the
chain authorization:</t>
        <ul spacing="normal">
          <li>
            <t>Deployments requiring a fixed set of targets retain that restriction in the
chain authorization; adding a service to general tenant policy alone
does not authorize it for such a chain.</t>
          </li>
          <li>
            <t>Where that authorization leaves targets to current policy, adding a
permitted target widens access for every active chain it governs.</t>
          </li>
          <li>
            <t>Likewise, adding a permitted continuer admits a new actor to each such
chain, subject to any actor restrictions in the chain authorization and
the binding checks in <xref target="validation"/>.</t>
          </li>
        </ul>
        <t>Wrong-handle association can continue the wrong user's bounded chain. The
RAS-bound state, read directly or through a carrier derived from it, is what
associates a request with a handle, and the CAI rejects a substituted one
(<xref target="handle-propagation"/>, <xref target="assertion-preconditions"/>).</t>
        <t>Because the CAI issues only for an actor it is authoritative to associate with
the accepted authorization (<xref target="assertion-issuance"/>), a party that merely holds a
handle cannot bypass the RAS-acceptance path.</t>
        <t>A scheduler-held handle would become a durable bearer-like credential outside
the per-call key proof and RAS binding that gate every other use, so a
scheduled continuation derives from durable RAS task authorization
(<xref target="handle-propagation"/>).</t>
        <t>Downstream resources may gate access on authentication strength (<tt>acr</tt>) or
methods (<tt>amr</tt>); if continuation could raise those claims, an actor could reach
a step-up-gated resource the user never authenticated strongly enough for.
Authentication context therefore comes only from the recorded root
authentication, copied unchanged into onward ID-JAGs (<xref target="onward-id-jag"/>). A
target that gates on <tt>acr</tt> or <tt>amr</tt> should evaluate <tt>auth_time</tt> as well, since
on a grant-anchored chain (<xref target="lifecycle-anchors"/>) the user may be absent and
that context may be old.</t>
      </section>
      <section anchor="security-actor-issuers">
        <name>Trust in Actor Identity Authorities</name>
        <t>A rogue or over-scoped actor identity authority is an impersonation vector: a
party controlling one could name an actor in another domain or tenant and
continue that actor's chains. The IdP therefore takes that authority from its
own registration of the client or its configuration of the client's credential
issuer, never from the request, and accepts it only where it is paired with the
CAI for the chain's tenant (<xref target="client-identity"/>, <xref target="validation"/>).</t>
        <t>An accompanying CAI assertion does not relax that. CAI attestation of the hop
and authentication of the actor are independent checks, and neither
substitutes for the other (<xref target="security-trust-model"/>).</t>
      </section>
      <section anchor="security-trust-model">
        <name>Conjunctive Trust and Issuer Pairing</name>
        <t>A continuation requires all of these, and no one of them suffices alone:</t>
        <ul spacing="normal">
          <li>
            <t>a CAI the IdP trusts for the presented hop's accepting Resource
Authorization Server, which attests the chain-to-actor transition (the
issuer-trust rule of <xref target="validation"/>);</t>
          </li>
          <li>
            <t>the actor's identity authority, trusted for the current actor's domain and
tenant, which vouches for the actor through the mapping of its client
credential (the current-actor rule of <xref target="validation"/>);</t>
          </li>
          <li>
            <t>live proof of possession of the confirmed key (the current-actor rule of
<xref target="validation"/>); and</t>
          </li>
          <li>
            <t>the chain authorization and current policy enforced by the IdP (the
authorization rule of <xref target="validation"/>).</t>
          </li>
        </ul>
        <t>The IdP's trust configuration records these pairings (<xref target="issuer-trust"/>).</t>
      </section>
      <section anchor="security-topology">
        <name>Topology and Trust</name>
        <t>Accepting the RAS's own identifier under the issuer-trust rule establishes no
issuer, key, tenant, or issuer-pairing trust (<xref target="validation"/>,
<xref target="security-trust-model"/>). Separating the CAI isolates keys and components but
creates no protocol-level quorum: the IdP still sees one signed attestation
(<xref target="deployment-topologies"/>).</t>
        <t>A workload that obtains the assertion by exchanging the access token or
Transaction Token it holds for the call (<xref target="assertion-token-exchange"/>)
presents nothing it did not already hold; what it gains is the CAI's
attestation, gated by policy and the acceptance check.</t>
        <t>A compromised RAS can fabricate acceptance state in either topology, since a
separate CAI reads that state as authoritative. A compromised separate CAI can
additionally attest a hop the RAS refused. <xref target="lifecycle-ending"/> describes the
effects of RAS-local withdrawal, including delayed observation by a separate
CAI. The chain authorization and current policy still bound the result.</t>
      </section>
      <section anchor="security-actor-chain">
        <name>Actor Chain Integrity</name>
        <t>The nested <tt>act</tt> claim is the disclosed actor lineage, a possibly minimized
representation of the IdP's hop lineage, which is the authoritative actor
history. A compromised actor could try to forge it, to hide its own identity,
impersonate a more privileged prior actor, or fabricate a delegation that
never happened. This profile denies that by construction: an assertion names
only the current actor, and the IdP derives the onward lineage from its own
hop records (<xref target="onward-id-jag"/>), and it rejects any mismatch between the current
actor and the assertion's <tt>act</tt> (the current-actor rule of <xref target="validation"/>).</t>
        <t>A party therefore cannot rewrite history it does not control, and
offline-attenuation segments, which the IdP does not observe, do not enter
lineage. Lineage is disclosed, not exhaustive: policy may narrow it
(<xref target="onward-id-jag"/>), so a rule such as "deny if a given actor ever
participated" cannot be enforced from <tt>act</tt> alone.</t>
      </section>
      <section anchor="security-alg">
        <name>Token, Type, and Algorithm Confusion</name>
        <t>An attacker may try to pass one token type off as another, downgrade the
signature algorithm, or steer verification to a key it controls. The JOSE
verification rules that deny this are stated in the well-formedness rule of
<xref target="validation"/>.</t>
      </section>
    </section>
    <section anchor="privacy">
      <name>Privacy Considerations</name>
      <t>A hop's <tt>identity_continuation_handle</tt> is visible to its ID-JAG client, the
accepting Resource Authorization Server, the CAI, the workload that receives
the assertion, and the IdP. Where a deployment propagates it, the carrier and
its recipients, including any audience of an access token that carries it,
see it as well (<xref target="handle-propagation"/>).</t>
      <t>Handles are opaque, high-entropy, and hop-specific (<xref target="chain-id"/>), so they do
not provide a common cross-RAS identifier for a user.</t>
      <t>The chain is not unlinkable: the IdP correlates it, participants sharing a
handle can correlate that hop, and actor lineage and timing may correlate
transactions across audiences. For example, an observer comparing ID-JAGs
issued to two audiences within one short window and carrying the same
actor-chain shape may infer they belong to one user's transaction, even without
a shared handle.</t>
      <t>The onward ID-JAG's <tt>act</tt>, the disclosed actor lineage, also names the prior
actors to the accepting RAS outright, with no correlation needed; policy may
limit the depth disclosed to each audience (<xref target="onward-id-jag"/>).</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>Note: The token type URI <tt>urn:ietf:params:oauth:token-type:id-jag</tt> referenced by
this document is registered by
<xref target="I-D.ietf-oauth-identity-assertion-authz-grant"/> and is not registered here.</t>
      <t>Note: The <tt>authorization_grant_profiles_supported</tt> metadata parameter and the
base <tt>urn:ietf:params:oauth:grant-profile:id-jag</tt> value referenced by this
document are defined and registered by
<xref target="I-D.ietf-oauth-identity-assertion-authz-grant"/> and are not registered here;
this document registers only the
<tt>urn:ietf:params:oauth:grant-profile:id-jag-continuation</tt> value.</t>
      <section anchor="oauth-extensions-error-registration">
        <name>OAuth Extensions Error Registration</name>
        <t>IANA is requested to register the following error in the "OAuth Extensions
Error Registry" established by <xref target="RFC6749"/>.</t>
        <dl>
          <dt>Error Name:</dt>
          <dd>
            <t>invalid_continuation</t>
          </dd>
          <dt>Error Usage Location:</dt>
          <dd>
            <t>token endpoint response</t>
          </dd>
          <dt>Related Protocol Extension:</dt>
          <dd>
            <t>Identity Continuation Assertion for OAuth 2.0 Token Exchange</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t>This document, <xref target="error-response"/></t>
          </dd>
        </dl>
      </section>
      <section anchor="oauth-parameters-registration">
        <name>OAuth Parameters Registration</name>
        <t>IANA is requested to register the following parameter in the "OAuth
Parameters" registry established by <xref target="RFC6749"/>.</t>
        <dl>
          <dt>Parameter name:</dt>
          <dd>
            <t>identity_continuation_authorization_server</t>
          </dd>
          <dt>Parameter usage location:</dt>
          <dd>
            <t>token response</t>
          </dd>
          <dt>Change controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t>This document, <xref target="assertion-response"/></t>
          </dd>
        </dl>
      </section>
      <section anchor="oauth-uri-registration">
        <name>OAuth URI Registration</name>
        <t>IANA is requested to register the following value in the "OAuth URI" registry
established by <xref target="RFC6755"/> and used for token type identifiers by <xref target="RFC8693"/>.</t>
        <dl>
          <dt>URN:</dt>
          <dd>
            <t>urn:ietf:params:oauth:token-type:identity-continuation</t>
          </dd>
          <dt>Common Name:</dt>
          <dd>
            <t>Token type URI for the Identity Continuation Assertion</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t>This document, <xref target="names"/></t>
          </dd>
        </dl>
        <t>IANA is also requested to register the following grant-profile value in the
same registry.</t>
        <dl>
          <dt>URN:</dt>
          <dd>
            <t>urn:ietf:params:oauth:grant-profile:id-jag-continuation</t>
          </dd>
          <dt>Common Name:</dt>
          <dd>
            <t>Grant profile identifier for a continuation-capable ID-JAG, whose accepting
Resource Authorization Server binds the <tt>identity_continuation_handle</tt> claim
to authorization state</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t>This document, <xref target="metadata"/>, <xref target="ras-processing"/></t>
          </dd>
        </dl>
      </section>
      <section anchor="media-type-registration">
        <name>Media Type Registration</name>
        <t>IANA is requested to register the following media type in the "Media Types"
registry, in the manner described in <xref target="RFC6838"/>, corresponding to the JOSE
<tt>typ</tt> header value <tt>oauth-identity-continuation+jwt</tt>.</t>
        <dl>
          <dt>Type name:</dt>
          <dd>
            <t>application</t>
          </dd>
          <dt>Subtype name:</dt>
          <dd>
            <t>oauth-identity-continuation+jwt</t>
          </dd>
          <dt>Required parameters:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Optional parameters:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Encoding considerations:</dt>
          <dd>
            <t>binary; the <tt>+jwt</tt> structured syntax suffix <xref target="RFC8417"/> registers this
encoding. An Identity Continuation Assertion is a JWT <xref target="RFC7519"/>, a series of
base64url-encoded values (some of which may be empty) separated by period
('.') characters.</t>
          </dd>
          <dt>Security considerations:</dt>
          <dd>
            <t>See <xref target="security"/> of this document.</t>
          </dd>
          <dt>Interoperability considerations:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Published specification:</dt>
          <dd>
            <t>This document, <xref target="names"/></t>
          </dd>
          <dt>Applications that use this media type:</dt>
          <dd>
            <t>Applications using OAuth 2.0 Token Exchange <xref target="RFC8693"/> to perform identity
continuation across SaaS boundaries.</t>
          </dd>
          <dt>Fragment identifier considerations:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Additional information:</dt>
          <dd>
            <t><br/>
Deprecated alias names for this type: N/A<br/>
Magic number(s): N/A<br/>
File extension(s): N/A<br/>
Macintosh file type code(s): N/A</t>
          </dd>
          <dt>Person &amp; email address to contact for further information:</dt>
          <dd>
            <t>Karl McGuinness (public@karlmcguinness.com)</t>
          </dd>
          <dt>Intended usage:</dt>
          <dd>
            <t>COMMON</t>
          </dd>
          <dt>Restrictions on usage:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Author:</dt>
          <dd>
            <t>Karl McGuinness, Aaron Parecki</t>
          </dd>
          <dt>Change controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
        </dl>
      </section>
      <section anchor="json-web-token-claims-registration">
        <name>JSON Web Token Claims Registration</name>
        <t>IANA is requested to register the following claim in the "JSON Web Token Claims"
registry established by <xref target="RFC7519"/>.</t>
        <dl>
          <dt>Claim Name:</dt>
          <dd>
            <t>identity_continuation_handle</t>
          </dd>
          <dt>Claim Description:</dt>
          <dd>
            <t>An opaque, IdP-generated reference to one hop of a
continuation chain, used to resolve the referenced hop and its chain state.
This claim appears in an Identity Continuation Assertion and in a
continuation-capable ID-JAG, and its value may also travel in intra-domain
chain context, including an access token the accepting Resource
Authorization Server issues (<xref target="handle-propagation"/>).</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t>This document, <xref target="chain-id"/></t>
          </dd>
        </dl>
      </section>
      <section anchor="oauth-token-introspection-response-registration">
        <name>OAuth Token Introspection Response Registration</name>
        <t>IANA is requested to register the following value in the "OAuth Token
Introspection Response" registry established by <xref target="RFC7662"/>.</t>
        <dl>
          <dt>Name:</dt>
          <dd>
            <t>identity_continuation_handle</t>
          </dd>
          <dt>Description:</dt>
          <dd>
            <t>The continuation handle bound to the introspected token's authorization,
present only when <tt>active</tt> is <tt>true</tt>; <xref target="handle-propagation"/> constrains its
exposure within the issuing server's trust domain</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t>This document, <xref target="handle-propagation"/></t>
          </dd>
        </dl>
      </section>
      <section anchor="oauth-authorization-server-metadata-registration">
        <name>OAuth Authorization Server Metadata Registration</name>
        <t>IANA is requested to register the following value in the "OAuth Authorization
Server Metadata" registry established by <xref target="RFC8414"/>.</t>
        <dl>
          <dt>Metadata Name:</dt>
          <dd>
            <t>identity_continuation_supported</t>
          </dd>
          <dt>Metadata Description:</dt>
          <dd>
            <t>Boolean value indicating support for the Identity Continuation Assertion
profile</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t>This document, <xref target="metadata"/></t>
          </dd>
        </dl>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC6749">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
        <reference anchor="RFC7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7519"/>
          <seriesInfo name="DOI" value="10.17487/RFC7519"/>
        </reference>
        <reference anchor="RFC7523">
          <front>
            <title>JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>This specification defines the use of a JSON Web Token (JWT) Bearer Token as a means for requesting an OAuth 2.0 access token as well as for client authentication.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7523"/>
          <seriesInfo name="DOI" value="10.17487/RFC7523"/>
        </reference>
        <reference anchor="RFC7638">
          <front>
            <title>JSON Web Key (JWK) Thumbprint</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>This specification defines a method for computing a hash value over a JSON Web Key (JWK). It defines which fields in a JWK are used in the hash computation, the method of creating a canonical form for those fields, and how to convert the resulting Unicode string into a byte sequence to be hashed. The resulting hash value can be used for identifying or selecting the key represented by the JWK that is the subject of the thumbprint.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7638"/>
          <seriesInfo name="DOI" value="10.17487/RFC7638"/>
        </reference>
        <reference anchor="RFC7662">
          <front>
            <title>OAuth 2.0 Token Introspection</title>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <date month="October" year="2015"/>
            <abstract>
              <t>This specification defines a method for a protected resource to query an OAuth 2.0 authorization server to determine the active state of an OAuth 2.0 token and to determine meta-information about this token. OAuth 2.0 deployments can use this method to convey information about the authorization context of the token from the authorization server to the protected resource.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7662"/>
          <seriesInfo name="DOI" value="10.17487/RFC7662"/>
        </reference>
        <reference anchor="RFC7800">
          <front>
            <title>Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="April" year="2016"/>
            <abstract>
              <t>This specification describes how to declare in a JSON Web Token (JWT) that the presenter of the JWT possesses a particular proof-of- possession key and how the recipient can cryptographically confirm proof of possession of the key by the presenter. Being able to prove possession of a key is also sometimes described as the presenter being a holder-of-key.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7800"/>
          <seriesInfo name="DOI" value="10.17487/RFC7800"/>
        </reference>
        <reference anchor="RFC8414">
          <front>
            <title>OAuth 2.0 Authorization Server Metadata</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <date month="June" year="2018"/>
            <abstract>
              <t>This specification defines a metadata format that an OAuth 2.0 client can use to obtain the information needed to interact with an OAuth 2.0 authorization server, including its endpoint locations and authorization server capabilities.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8414"/>
          <seriesInfo name="DOI" value="10.17487/RFC8414"/>
        </reference>
        <reference anchor="RFC8693">
          <front>
            <title>OAuth 2.0 Token Exchange</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="A. Nadalin" initials="A." surname="Nadalin"/>
            <author fullname="B. Campbell" initials="B." role="editor" surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
            <date month="January" year="2020"/>
            <abstract>
              <t>This specification defines a protocol for an HTTP- and JSON-based Security Token Service (STS) by defining how to request and obtain security tokens from OAuth 2.0 authorization servers, including security tokens employing impersonation and delegation.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8693"/>
          <seriesInfo name="DOI" value="10.17487/RFC8693"/>
        </reference>
        <reference anchor="RFC8707">
          <front>
            <title>Resource Indicators for OAuth 2.0</title>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document specifies an extension to the OAuth 2.0 Authorization Framework defining request parameters that enable a client to explicitly signal to an authorization server about the identity of the protected resource(s) to which it is requesting access.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8707"/>
          <seriesInfo name="DOI" value="10.17487/RFC8707"/>
        </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="RFC9396">
          <front>
            <title>OAuth 2.0 Rich Authorization Requests</title>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <author fullname="J. Richer" initials="J." surname="Richer"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <date month="May" year="2023"/>
            <abstract>
              <t>This document specifies a new parameter authorization_details that is used to carry fine-grained authorization data in OAuth messages.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9396"/>
          <seriesInfo name="DOI" value="10.17487/RFC9396"/>
        </reference>
        <reference anchor="RFC9449">
          <front>
            <title>OAuth 2.0 Demonstrating Proof of Possession (DPoP)</title>
            <author fullname="D. Fett" initials="D." surname="Fett"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="D. Waite" initials="D." surname="Waite"/>
            <date month="September" year="2023"/>
            <abstract>
              <t>This document describes a mechanism for sender-constraining OAuth 2.0 tokens via a proof-of-possession mechanism on the application level. This mechanism allows for the detection of replay attacks with access and refresh tokens.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9449"/>
          <seriesInfo name="DOI" value="10.17487/RFC9449"/>
        </reference>
        <reference anchor="I-D.ietf-oauth-identity-assertion-authz-grant">
          <front>
            <title>Identity Assertion JWT Authorization Grant</title>
            <author fullname="Aaron Parecki" initials="A." surname="Parecki">
              <organization>Okta</organization>
            </author>
            <author fullname="Karl McGuinness" initials="K." surname="McGuinness">
              <organization>Independent</organization>
            </author>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <date day="21" month="May" year="2026"/>
            <abstract>
              <t>   This specification provides a mechanism for an application to use an
   identity assertion to obtain an access token for a third-party API by
   coordinating through an identity provider that the downstream
   Resource Authorization Server already trusts for single sign-on
   (SSO), using Token Exchange [RFC8693] and JWT Profile for OAuth 2.0
   Authorization Grants [RFC7523].  This pattern is informally referred
   to as Cross-App Access (XAA).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-identity-assertion-authz-grant-04"/>
        </reference>
        <reference anchor="I-D.ietf-oauth-transaction-tokens">
          <front>
            <title>Transaction Tokens</title>
            <author fullname="Atul Tulshibagwale" initials="A." surname="Tulshibagwale">
              <organization>CrowdStrike</organization>
            </author>
            <author fullname="George Fletcher" initials="G." surname="Fletcher">
              <organization>Practical Identity LLC</organization>
            </author>
            <author fullname="Pieter Kasselman" initials="P." surname="Kasselman">
              <organization>Defakto Security</organization>
            </author>
            <date day="30" month="July" year="2026"/>
            <abstract>
              <t>   Transaction Tokens (Txn-Tokens) are designed to maintain and
   propagate user identity, workload identity and authorization context
   throughout the Call Chain within a trusted domain during the
   processing of external requests (e.g. such as API calls) or requests
   initiated internally within the Trust Domain.  Txn-Tokens ensure that
   this context is preserved throughout the Call Chain thereby enhancing
   security and consistency in complex, multi-service architectures.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-transaction-tokens-11"/>
        </reference>
        <reference anchor="I-D.parecki-oauth-jwt-dpop-grant">
          <front>
            <title>OAuth 2.0 JWT Authorization Grant with DPoP Binding</title>
            <author fullname="Aaron Parecki" initials="A." surname="Parecki">
              <organization>Okta</organization>
            </author>
            <date day="30" month="January" year="2026"/>
            <abstract>
              <t>   This specification defines a new OAuth 2.0 authorization grant type
   that uses a JSON Web Token (JWT) assertion to request an access token
   that is bound to a specific key using the Demonstration of Proof-of-
   Possession (DPoP) mechanism.  This provides a higher level of
   security than a simple bearer token, as the client must prove
   possession of the key to use the access token.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-parecki-oauth-jwt-dpop-grant-01"/>
        </reference>
        <reference anchor="OIDC.FrontChannelLogout" target="https://openid.net/specs/openid-connect-frontchannel-1_0.html">
          <front>
            <title>OpenID Connect Front-Channel Logout 1.0</title>
            <author>
              <organization>OpenID Foundation</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="SAML2.Core" target="https://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf">
          <front>
            <title>Assertions and Protocols for the OASIS Security Assertion Markup Language (SAML) V2.0</title>
            <author>
              <organization>OASIS</organization>
            </author>
            <date year="2005" month="March"/>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC6755">
          <front>
            <title>An IETF URN Sub-Namespace for OAuth</title>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>This document establishes an IETF URN Sub-namespace for use with OAuth-related specifications. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6755"/>
          <seriesInfo name="DOI" value="10.17487/RFC6755"/>
        </reference>
        <reference anchor="RFC6838">
          <front>
            <title>Media Type Specifications and Registration Procedures</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="January" year="2013"/>
            <abstract>
              <t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols. This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="13"/>
          <seriesInfo name="RFC" value="6838"/>
          <seriesInfo name="DOI" value="10.17487/RFC6838"/>
        </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="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="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="RFC9700">
          <front>
            <title>Best Current Practice for OAuth 2.0 Security</title>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="A. Labunets" initials="A." surname="Labunets"/>
            <author fullname="D. Fett" initials="D." surname="Fett"/>
            <date month="January" year="2025"/>
            <abstract>
              <t>This document describes best current security practice for OAuth 2.0. It updates and extends the threat model and security advice given in RFCs 6749, 6750, and 6819 to incorporate practical experiences gathered since OAuth 2.0 was published and covers new threats relevant due to the broader application of OAuth 2.0. Further, it deprecates some modes of operation that are deemed less secure or even insecure.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="240"/>
          <seriesInfo name="RFC" value="9700"/>
          <seriesInfo name="DOI" value="10.17487/RFC9700"/>
        </reference>
        <reference anchor="I-D.fletcher-transaction-token-chaining-profile">
          <front>
            <title>Transaction Token Authorization Grant Profile for OAuth Identity and Authorization Chaining</title>
            <author fullname="George Fletcher" initials="G." surname="Fletcher">
              <organization>Practical Identity LLC</organization>
            </author>
            <author fullname="Pieter Kasselman" initials="P." surname="Kasselman">
              <organization>Defakto Security</organization>
            </author>
            <author fullname="Sean O'Dell" initials="S." surname="O'Dell">
              <organization>CVS Health</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   This specification defines a profile of the OAuth Identity and
   Authorization Chaining Across Domains
   [I-D.ietf-oauth-identity-chaining] mechanism that uses a Transaction
   Token (Txn-Token) [I-D.ietf-oauth-transaction-tokens] as the subject
   token in a Token Exchange [RFC8693] request to obtain a JWT
   Authorization Grant for crossing a trust boundary.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-fletcher-transaction-token-chaining-profile-02"/>
        </reference>
        <reference anchor="I-D.ietf-oauth-identity-chaining">
          <front>
            <title>OAuth Identity and Authorization Chaining Across Domains</title>
            <author fullname="Arndt Schwenkschuster" initials="A." surname="Schwenkschuster">
              <organization>Defakto Security</organization>
            </author>
            <author fullname="Pieter Kasselman" initials="P." surname="Kasselman">
              <organization>Defakto Security</organization>
            </author>
            <author fullname="Kelley Burgin" initials="K." surname="Burgin">
              <organization>MITRE</organization>
            </author>
            <author fullname="Michael J. Jenkins" initials="M. J." surname="Jenkins">
              <organization>NSA-CCSS</organization>
            </author>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <author fullname="Aaron Parecki" initials="A." surname="Parecki">
              <organization>Okta</organization>
            </author>
            <date day="19" month="July" year="2026"/>
            <abstract>
              <t>   This specification describes a mechanism for preserving identity and
   authorization information across trust domains that use the OAuth 2.0
   Framework.  A JSON Web Token (JWT) authorization grant, obtained
   through an intra-domain OAuth 2.0 Token Exchange, facilitates the
   cross-domain acquisition of an access token.  The relevant identity
   and authorization information is chained throughout the flow by being
   conveyed in the respective artifacts exchanged at each step of the
   process.  Chaining across multiple domains is achieved by using the
   same protocol every time a trust domain boundary is crossed.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-arch-08"/>
        </reference>
        <reference anchor="I-D.li-oauth-delegated-authorization">
          <front>
            <title>OAuth 2.0 Delegated Authorization</title>
            <author fullname="Li Ruochen" initials="L." surname="Ruochen">
              <organization>Huawei Int. Pte Ltd</organization>
            </author>
            <author fullname="Haiguang Wang" initials="W." surname="Wang">
              <organization>Huawei Int. Pte Ltd</organization>
            </author>
            <author fullname="Peter Chunchi Liu" initials="P. C." surname="Liu">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Tieyan Li" initials="T." surname="Li">
              <organization>Huawei Int. Pte Ltd</organization>
            </author>
            <date day="24" month="July" year="2026"/>
            <abstract>
              <t>   This specification defines Delegated Authorization Tokens, key-bound
   tokens that enable an OAuth client to delegate a constrained subset
   of its authorization to another client without contacting the
   authorization server for each delegation.  An authorization server
   issues the root token and binds it to a client key.  That client can
   use the bound key either to prove possession when accessing a
   protected resource or to sign a further token bound to a delegate
   client's key.  Resource servers validate the ordered token chain, the
   restrictions imposed at every delegation step, and a DPoP proof
   signed by the key bound to the leaf token.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-li-oauth-delegated-authorization-03"/>
        </reference>
        <reference anchor="I-D.mcguinness-oauth-actor-receipts">
          <front>
            <title>OAuth Actor Receipts for Delegation Provenance</title>
            <author fullname="Karl McGuinness" initials="K." surname="McGuinness">
              <organization>Independent</organization>
            </author>
            <date day="4" month="July" year="2026"/>
            <abstract>
              <t>   This document defines OAuth Actor Receipts, an optional companion
   provenance profile for delegated OAuth tokens that conform to the
   OAuth Actor Profile for Delegation.  It introduces the actor_receipts
   claim, a signed per-hop receipt chain that records which issuer added
   each visible actor hop, optionally preserves the historical top-level
   cnf value associated with that hop subject to deployment disclosure
   policy, and links receipts together so recipients can validate prior-
   hop provenance without relying solely on the current outer token
   issuer.  This document also defines metadata and introspection
   parameters for advertising and consuming actor-receipt support.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mcguinness-oauth-actor-receipts-00"/>
        </reference>
        <reference anchor="I-D.mcguinness-oauth-actor-proofs">
          <front>
            <title>OAuth Actor-Signed Hop Proofs</title>
            <author fullname="Karl McGuinness" initials="K." surname="McGuinness">
              <organization>Independent</organization>
            </author>
            <date day="4" month="July" year="2026"/>
            <abstract>
              <t>   This document defines OAuth Actor-Signed Hop Proofs, an optional
   companion profile for delegated OAuth tokens that conform to the
   OAuth Actor Profile for Delegation.  It introduces the actor_proofs
   claim, a signed per-hop proof chain in which the actor added at each
   visible hop signs its own participation and the target binding it
   authorized for that hop.  Proofs are linked into a hash chain, are
   validated against actor verification keys resolved through pre-
   established trust, and optionally cross-reference sibling actor
   receipts.  This document also defines a token request parameter for
   conveying proofs at issuance, and metadata and introspection
   parameters for advertising and consuming actor-proof support.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mcguinness-oauth-actor-proofs-00"/>
        </reference>
        <reference anchor="GRANT-MGMT" target="https://openid.net/specs/oauth-v2-grant-management.html">
          <front>
            <title>Grant Management for OAuth 2.0</title>
            <author>
              <organization>OpenID Foundation</organization>
            </author>
            <date/>
          </front>
        </reference>
      </references>
    </references>
    <?line 2176?>

<section anchor="rationale">
      <name>Design Rationale</name>
      <t>This non-normative appendix records the principal design choices.</t>
      <section anchor="decision-rule">
        <name>IdP-Mediated Continuation</name>
        <t>This profile serves deployments where the target trusts a common IdP to
resolve the user's subject identifier. Each continuation returns to that IdP
for subject resolution and checks of current authorization and chain state
(<xref target="validation"/>). RAS-local withdrawal remains subject to the freshness of
acceptance evidence (<xref target="lifecycle-ending"/>).</t>
        <t>Offline attenuation, in which a party narrows and forwards a credential without
contacting the IdP, such as <xref target="I-D.li-oauth-delegated-authorization"/>, suits
boundaries where existing subject and issuer trust remain usable and offline
delegation is acceptable. A deployment can attenuate within a trust domain and
continue across boundaries requiring IdP resolution. Crossing to a target that
does not trust the common IdP requires a separate trust agreement and profile,
such as <xref target="I-D.fletcher-transaction-token-chaining-profile"/>.</t>
      </section>
      <section anchor="rationale-grant-type">
        <name>CAI Attestation and ID-JAG Redemption</name>
        <t>An ID-JAG authorizes the client named in <tt>client_id</tt> to redeem the grant at
the RAS named in <tt>aud</tt>. When sender-constrained, it also binds that use to
the client's key. The RAS receives the grant as its audience; receipt does
not authorize the RAS to present it as a different client or replace its key
binding (<xref target="I-D.ietf-oauth-identity-assertion-authz-grant"/>).</t>
        <t>Similarly, a workload receives an access token as the protected resource. The
token authorizes the incoming caller's access and, when sender-constrained, is
bound to that caller's key. Validating the caller's proof does not give the
workload possession of the key or establish a credential for the workload to
present at the IdP (<xref target="security-pop"/>).</t>
        <t>The Identity Continuation Assertion makes this transition explicit. The CAI
attests that the receiving workload is associated with an accepted, active
authorization eligible for continuation, and issues an assertion addressed to
the IdP and bound to that workload's key (<xref target="assertion-preconditions"/>). The
IdP can then authenticate and authorize the continuing workload using its own
identity and key (<xref target="validation"/>).</t>
        <t>Direct exchange of either token under <xref target="RFC8693"/> would require additional rules
establishing the receiving party's authority to continue and binding the
exchange to its identity and key (<xref target="open-items"/>).</t>
        <t>Assertion issuance reuses the Token Exchange <xref target="RFC8693"/> request and response
framework at the CAI's token endpoint (<xref target="assertion-token-exchange"/>).</t>
        <t>A Transaction Token <xref target="I-D.ietf-oauth-transaction-tokens"/> may carry the
context from which the CAI issues its assertion; its validity alone is not
RAS acceptance evidence (<xref target="assertion-preconditions"/>).</t>
        <t>The assertion carries no top-level user subject. The resulting ID-JAG
carries the IdP-resolved subject and a fresh child handle, including for a
terminal target. Issuing an onward ID-JAG preserves the target's grant
redemption interface. Target-side resolution of a reference would require
additional target processing; it and a direct recipient-bound credential
remain open alternatives (<xref target="open-items"/>).</t>
        <t>Asymmetric signing avoids distributing signing secrets between CAIs and IdPs.
One compact JWS representation reduces implementation choices (<xref target="names"/>).
TLS protects transport; the profile does not conceal assertion contents from
the carrying workload. Encryption and nested JWTs are outside this profile.</t>
      </section>
      <section anchor="rationale-handles">
        <name>Per-Hop Handles</name>
        <t>A handle identifies the hop being continued, so the IdP can derive the
correct ancestry and apply revocation to the appropriate subtree. A
chain-wide identifier alone would not distinguish sibling branches. The
handle references IdP-held state without carrying user identity or the
ancestry itself (<xref target="chain-id"/>, <xref target="onward-id-jag"/>); its visibility still has
correlation implications (<xref target="privacy"/>).</t>
        <t>Keeping authorization and lifecycle state at the IdP supports current checks
at each continuation. The cost is state retained for the chain's lifetime and
IdP availability for each exchange. Stateless hop commitments remain an open
question (<xref target="open-items"/>).</t>
      </section>
      <section anchor="rationale-client-id">
        <name>Actor Identity and Target Client Identity</name>
        <t>In <xref target="RFC8693"/>, <tt>act</tt> normally records a delegation relationship, the party
acting for the subject of the token that carries it. In an Identity
Continuation Assertion it instead identifies the authenticated actor
associated with the accepted authorization context, whose continuation request
the IdP evaluates (<xref target="assertion-claims"/>, <xref target="validation"/>); it asserts no
downstream authority.</t>
        <t>The current actor's canonical identity in <tt>act</tt> records who acted,
independently of the credential used to authenticate it (<xref target="client-identity"/>).
The onward ID-JAG's <tt>client_id</tt> identifies that actor's OAuth client at the
target RAS. Keeping these identities distinct preserves lineage across
target-specific client registrations while retaining ID-JAG redemption
compatibility. The actor
therefore needs a client identity resolvable at the target
(<xref target="token-exchange"/>).</t>
        <t>The <tt>may_act</tt> claim (<xref target="RFC8693"/>, Section 4.4) can inform actor authorization;
it supplies neither RAS acceptance evidence nor target subject resolution.</t>
      </section>
      <section anchor="rationale-boundary">
        <name>Authorization Boundary</name>
        <t>Each continuation is authorized under the recorded chain
authorization and current policy (<xref target="chain-authorization"/>). RAS acceptance
establishes the context from which the actor continues, and no more
(<xref target="security-authorization"/>): scopes at different audiences have independent
semantics, so cross-target restrictions belong in the chain authorization and
IdP policy rather than in a RAS's local scopes.</t>
        <t>This profile carries identity and lineage and binds continuation to an
accepted authorization. Whether a requested action serves the work the user
or tenant authorized remains a deployment policy decision. The profile defines
neither a purpose claim nor an agent authorization model.</t>
        <t>Single-use limits each assertion to one issued grant. The lifetime bound
limits how long the assertion can authorize a new continuation
(<xref target="validation-replay"/>).</t>
      </section>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <t>This non-normative appendix illustrates three deployments: a tool
gateway that selects its upstream at request time (<xref target="example-gateway"/>),
a SaaS chain across three domains with separate CAIs (<xref target="example"/>), and an
unattended background agent (<xref target="example-background"/>). The gateway example is
the baseline. Authorization outcomes illustrate deployment policy rather than
conformance requirements.</t>
      <t>Message sequences are vertical lifelines with time flowing downward. Each
example identifies its deployment topology before describing the flow.</t>
      <ul spacing="normal">
        <li>
          <t>Labels distinguish payloads and state: "On the wire" crosses a
trust boundary, "Intra-domain context" stays within one trust domain, and
"Server-side state" is never transmitted.</t>
        </li>
        <li>
          <t>Continuation handles are numbered H0, H1, and so on, one per hop.</t>
        </li>
        <li>
          <t>JWTs are shown as decoded payloads with JOSE headers and signatures
omitted; client authentication is omitted except where shown; proof of
possession uses DPoP.</t>
        </li>
        <li>
          <t>The gateway example uses a root client without proof of possession; the
SaaS example uses a root RAS that sender-constrains its access
token by its own policy (<xref target="root-establishment"/>). From the first
continuation on, every continuation-aware RAS binds its token to the proven
key (<xref target="ras-processing"/>).</t>
        </li>
      </ul>
      <section anchor="example-gateway">
        <name>Gateway Example (Co-located RAS and CAI)</name>
        <t>AgentApp calls a tool gateway on Alice's behalf. The gateway selects the
upstream API, here a wiki, at request time. AgentApp knows only the gateway's
audience. The gateway obtains an ID-JAG for the wiki without receiving Alice's
identity assertion.</t>
        <t>Topology: co-located. GatewayRAS accepts ID-JAGs and acts as CAI for those
hops. It includes the handle in its access tokens.</t>
        <t>All parties trust one enterprise IdP at <tt>https://idp.example/</tt>, tenant
<tt>tenant-123</tt>. Alice has pairwise subjects at GatewayRAS and WikiRAS, which
only the IdP can map.</t>
        <ul spacing="normal">
          <li>
            <t>Agent domain (<tt>agent.example</tt>): client <tt>agent-app</tt>, the confidential runtime
that holds Alice's session and roots the chain.</t>
          </li>
          <li>
            <t>Gateway domain (<tt>gateway.example</tt>): GatewayRAS, the gateway's authorization
server at <tt>https://ras.gateway.example/</tt>, and the workload <tt>tool-gateway</tt>,
the Resource Server at <tt>https://gateway.example/</tt> that AgentApp calls.</t>
          </li>
          <li>
            <t>Wiki domain (<tt>wiki.example</tt>): WikiRAS at <tt>https://ras.wiki.example/</tt>, an
ordinary ID-JAG authorization server in front of WikiAPI at
<tt>https://api.wiki.example/</tt>. It is terminal in this chain.</t>
          </li>
        </ul>
        <t>H0 is the root hop, bound at GatewayRAS; H1 is the wiki hop, which nobody
continues.</t>
        <artwork><![CDATA[
AgentApp        IdP       GatewayRAS/CAI     ToolGateway     WikiRAS/API
    |            |               |                |               |
    |-ID Token-->|               |                |               |
    |<-ID-JAG H0-|               |                |               |
    |-jwt-bearer: ID-JAG-------->| bind H0        |               |
    |<--access token, H0 claim---|                |               |
    |----------tool call with AT----------------->|               |
    |            |               |<--exchange AT--|               |
    |            |               |-assertion H0-->|               |
    |            |<--assertion + DPoP-------------|               |
    |            |-----------ID-JAG H1----------->|               |
    |            |               |                |-ID-JAG, DPoP->|
    |            |               |                |   (no binding)|
    |            |               |                |<---wiki AT----|
    |            |               |                |-call WikiAPI->|
    |<-------------------result-------------------|               |
]]></artwork>
        <section anchor="example-gateway-provisioning">
          <name>Provisioning</name>
          <t>The exchanges below presuppose the following configuration. Every item is an
ordinary OAuth or ID-JAG registration except the four the profile adds: the
IdP's continuation policy, its trust in GatewayRAS as an assertion issuer, its
advertisement of <tt>identity_continuation_supported</tt>, and GatewayRAS's
advertisement of the continuation profile.</t>
          <t><strong>IdP</strong> (<xref target="client-identity"/>, <xref target="security-trust-model"/>, <xref target="root-establishment"/>,
<xref target="metadata-idp"/>):</t>
          <ul spacing="normal">
            <li>
              <t>Register <tt>agent-app</tt> and <tt>tool-gateway</tt> as confidential clients in
<tt>tenant-123</tt>, with canonical actor identities (<tt>https://agent.example/</tt>,
<tt>agent-app</tt>) and (<tt>https://gateway.example/</tt>, <tt>tool-gateway</tt>).</t>
            </li>
            <li>
              <t>Authorize <tt>https://gateway.example/</tt> to issue <tt>tool-gateway</tt>'s client
credential.</t>
            </li>
            <li>
              <t>Trust GatewayRAS's issuer, <tt>https://ras.gateway.example/</tt>, and its signing
keys to attest its hops. Authorize GatewayRAS and <tt>https://gateway.example/</tt>
as a CAI and actor identity authority pair for <tt>tenant-123</tt>.</t>
            </li>
            <li>
              <t>Configure tenant policy to grant agents read access to productivity tools
and permit <tt>tool-gateway</tt> to continue.</t>
            </li>
            <li>
              <t>Advertise <tt>identity_continuation_supported</tt> and hold <tt>tool-gateway</tt>'s
client identifier at WikiRAS, placed in the onward ID-JAG's <tt>client_id</tt>.</t>
            </li>
          </ul>
          <t><strong>GatewayRAS</strong> (<xref target="metadata-ras"/>, <xref target="assertion-preconditions"/>):</t>
          <ul spacing="normal">
            <li>
              <t>Advertise the continuation grant profile and trust the IdP as ID-JAG issuer.</t>
            </li>
            <li>
              <t>Register <tt>tool-gateway</tt> as an OAuth client associated with the resource it
operates, <tt>https://gateway.example/</tt>. The CAI uses this association when
checking whether it can issue an assertion for a token presented to that
resource.</t>
            </li>
          </ul>
          <t><strong>ToolGateway</strong> (<xref target="client-identity"/>): provision a DPoP key pair and a
client-authentication credential issued by <tt>https://gateway.example/</tt>.</t>
          <t><strong>WikiRAS</strong> (base profile): register <tt>tool-gateway</tt> as a client, trust the IdP
as ID-JAG issuer, and support the DPoP-bound JWT grant.</t>
          <t>ToolGateway authenticates to the IdP with the following <xref target="RFC7523"/> client
assertion issued by the gateway domain (<xref target="example-gateway-continue"/>). Its
earlier exchange at GatewayRAS uses a separate client assertion addressed to
GatewayRAS (<xref target="example-gateway-ica"/>).</t>
          <sourcecode type="json"><![CDATA[
{
  "iss": "https://gateway.example/",
  "sub": "tool-gateway",
  "aud": "https://idp.example/",
  "iat": 1710000230,
  "exp": 1710000290,
  "jti": "tg-cred-01"
}
]]></sourcecode>
          <t>In this example, <tt>iss</tt> and <tt>sub</tt> match ToolGateway's configured canonical actor
identity, used in the assertion's <tt>act</tt> and onward lineage
(<xref target="client-identity"/>, <xref target="assertion-claims"/>).</t>
        </section>
        <section anchor="example-gateway-root">
          <name>Root Exchange</name>
          <t>AgentApp exchanges Alice's ID Token, whose <tt>sid</tt> anchors the chain to her IdP
session (<xref target="root-establishment"/>), for an ID-JAG addressed to GatewayRAS, the
one audience it knows:</t>
          <artwork><![CDATA[
POST /token HTTP/1.1
Host: idp.example
Content-Type: application/x-www-form-urlencoded

grant_type=urn:ietf:params:oauth:grant-type:token-exchange
&requested_token_type=urn:ietf:params:oauth:token-type:id-jag
&audience=https://ras.gateway.example/
&resource=https://gateway.example/
&scope=tools.invoke
&subject_token=<id_token>
&subject_token_type=urn:ietf:params:oauth:token-type:id_token
&client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer
&client_assertion=<agent-app JWT>
]]></artwork>
          <t>In this deployment, the chain authorization permits <tt>tool-gateway</tt> to
continue on Alice's behalf with read access to productivity services. The
IdP establishes a chain and embeds H0 (<xref target="root-establishment"/>).</t>
          <t>The authorization uses the tenant's current classification of productivity
services. A wiki added to that class can therefore be reached without a new
chain, while removing it prevents further continuation to it. That is
deployment policy, not a requirement of this profile
(<xref target="chain-authorization"/>, <xref target="security-authorization"/>).</t>
          <t>On the wire (decoded ID-JAG for GatewayRAS):</t>
          <sourcecode type="json"><![CDATA[
{
  "iss": "https://idp.example/",
  "aud": "https://ras.gateway.example/",
  "sub": "gateway-pairwise-subject",

  "client_id": "agent-app",
  "resource": "https://gateway.example/",
  "scope": "tools.invoke",

  "auth_time": 1710000200,
  "acr": "urn:example:loa:2",
  "amr": ["pwd", "mfa"],

  "identity_continuation_handle": "Qm7zXu2VtL9pKe4RaW1nHc",

  "iat": 1710000205,
  "exp": 1710000505,
  "jti": "idjag-gateway-01"
}
]]></sourcecode>
        </section>
        <section anchor="example-gateway-bind">
          <name>GatewayRAS Binds H0 and Issues the Access Token</name>
          <t>AgentApp redeems the ID-JAG at GatewayRAS with the jwt-bearer grant, exactly
as for any ID-JAG, and nothing in this profile asks it to sender-constrain the
exchange; GatewayRAS issues a bearer access token here, its own policy choice
(<xref target="ras-processing"/>):</t>
          <artwork><![CDATA[
POST /token HTTP/1.1
Host: ras.gateway.example
Content-Type: application/x-www-form-urlencoded

grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer
&assertion=<the ID-JAG above>
&client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer
&client_assertion=<agent-app JWT>
]]></artwork>
          <t>GatewayRAS advertises the continuation grant profile (<xref target="metadata-ras"/>) and so
recognizes the handle. It binds H0, the issuing IdP, and the tenant it
associates with that IdP to the authorization state behind the access token,
in the same outcome that issues the token (<xref target="ras-processing"/>); the ID-JAG
carried no <tt>cnf</tt>, so there is no key to record.</t>
          <t>Server-side state at GatewayRAS:</t>
          <sourcecode type="json"><![CDATA[
{
  "identity_continuation_handle": "Qm7zXu2VtL9pKe4RaW1nHc",
  "status": "ACCEPTED",
  "continuation_eligible": true,
  "authorization_state": "gw-authz-7a1e",
  "idp": "https://idp.example/",
  "tenant": "tenant-123",
  "client_id": "agent-app",
  "bound_at": 1710000210
}
]]></sourcecode>
          <t>GatewayRAS issues the access token as a signed JWT that carries H0 as a claim,
the access-token carrier of <xref target="deployment-topologies"/>.</t>
          <t>On the wire (decoded access token):</t>
          <sourcecode type="json"><![CDATA[
{
  "iss": "https://ras.gateway.example/",
  "aud": "https://gateway.example/",
  "sub": "gateway-pairwise-subject",
  "client_id": "agent-app",
  "scope": "tools.invoke",
  "identity_continuation_handle": "Qm7zXu2VtL9pKe4RaW1nHc",
  "iat": 1710000210,
  "exp": 1710000810,
  "jti": "at-gw-0001"
}
]]></sourcecode>
          <t>AgentApp calls the gateway with this token. It chooses which token to present,
and with it which authorization, but cannot alter the handle inside the token.
A RAS that sender-constrains its tokens closes the bearer-ingress exposure of
<xref target="security-pop"/>; <xref target="example"/> shows that variant.</t>
        </section>
        <section anchor="example-gateway-ica">
          <name>ToolGateway Obtains the Assertion</name>
          <t>ToolGateway validates the access token as any resource server would.
Resolving the tool call, it selects the wiki as the upstream. To
continue Alice's chain there it needs an Identity Continuation Assertion,
which it obtains by exchanging the access token it just received at
GatewayRAS's token endpoint, authenticating as the OAuth client <tt>tool-gateway</tt>
and proving its own key (<xref target="assertion-token-exchange"/>):</t>
          <artwork><![CDATA[
POST /token HTTP/1.1
Host: ras.gateway.example
Content-Type: application/x-www-form-urlencoded
DPoP: <proof signed by the tool-gateway key>

grant_type=urn:ietf:params:oauth:grant-type:token-exchange
&requested_token_type=urn:ietf:params:oauth:token-type:identity-continuation
&subject_token=<the access token above>
&subject_token_type=urn:ietf:params:oauth:token-type:access_token
&client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer
&client_assertion=<tool-gateway JWT>
]]></artwork>
          <t>The DPoP proof on this request proves the <tt>tool-gateway</tt> key, which GatewayRAS
places in the assertion's <tt>cnf</tt>; had the access token been sender-constrained,
its own <tt>cnf</tt> would not be matched against this proof
(<xref target="security-pop"/>).</t>
          <t>GatewayRAS confirms the token is its own, unexpired, and addressed to
<tt>https://gateway.example/</tt>, the resource <tt>tool-gateway</tt> is registered to
operate. It reads H0 from the token, rechecks that the authorization remains
active and that its binding still records it as eligible for continuation,
then issues the assertion bound to the proven key (<xref target="assertion-preconditions"/>).</t>
          <t>On the wire (issuance response):</t>
          <sourcecode type="json"><![CDATA[
{
  "issued_token_type": "urn:ietf:params:oauth:token-type:identity-continuation",
  "access_token": "<the assertion below, compact JWS>",
  "token_type": "N_A",
  "identity_continuation_authorization_server": "https://idp.example/",
  "expires_in": 120
}
]]></sourcecode>
          <t>The <tt>identity_continuation_authorization_server</tt> identifies the IdP from which
ToolGateway obtains the next ID-JAG.</t>
          <t>On the wire (decoded assertion):</t>
          <sourcecode type="json"><![CDATA[
{
  "iss": "https://ras.gateway.example/",
  "aud": "https://idp.example/",
  "identity_continuation_handle": "Qm7zXu2VtL9pKe4RaW1nHc",

  "act": {
    "iss": "https://gateway.example/",
    "sub": "tool-gateway"
  },

  "cnf": {
    "jkt": "base64url-tool-gateway-key-thumbprint"
  },

  "iat": 1710000230,
  "exp": 1710000350,
  "jti": "n3Vt7Jq2Xd5PbR9wLc1eKs"
}
]]></sourcecode>
        </section>
        <section anchor="example-gateway-continue">
          <name>ToolGateway Continues to WikiRAS</name>
          <t>ToolGateway resolves the token endpoint of <tt>https://idp.example/</tt>, the
<tt>identity_continuation_authorization_server</tt> it was given, using
<xref target="assertion-response"/>, and presents the assertion there as the <tt>subject_token</tt>
of a continuation exchange, with client authentication and a DPoP proof of the
assertion's <tt>cnf</tt> key, requesting an ID-JAG for WikiRAS. The IdP maps the
registered client <tt>tool-gateway</tt> to its canonical actor identity
(<xref target="client-identity"/>):</t>
          <artwork><![CDATA[
POST /token HTTP/1.1
Host: idp.example
Content-Type: application/x-www-form-urlencoded
DPoP: <proof signed by the tool-gateway key>

grant_type=urn:ietf:params:oauth:grant-type:token-exchange
&requested_token_type=urn:ietf:params:oauth:token-type:id-jag
&audience=https://ras.wiki.example/
&resource=https://api.wiki.example/
&scope=wiki.read
&subject_token=<identity-continuation-assertion>
&subject_token_type=urn:ietf:params:oauth:token-type:identity-continuation
&client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer
&client_assertion=<tool-gateway client assertion>
]]></artwork>
          <t>The IdP validates the exchange (<xref target="validation"/>):</t>
          <ul spacing="normal">
            <li>
              <t>Issuer trust: the assertion is signed by GatewayRAS, the RAS recorded for
H0's hop, which that rule accepts directly.</t>
            </li>
            <li>
              <t>Chain state: H0 names an accepted hop on an active chain.</t>
            </li>
            <li>
              <t>Current actor and binding: the <tt>act</tt> claim names <tt>tool-gateway</tt>, the
authenticated client, and the DPoP proof matches <tt>cnf</tt>.</t>
            </li>
            <li>
              <t>Authorization: the chain authorization permits <tt>tool-gateway</tt> to
obtain <tt>wiki.read</tt> for Alice, and current policy classifies the wiki as an
eligible productivity service. The root <tt>tools.invoke</tt> scope does not
independently authorize this access.</t>
            </li>
          </ul>
          <t>The IdP resolves Alice's wiki subject and issues the ID-JAG with H1 and
<tt>tool-gateway</tt> atop <tt>agent-app</tt> in the lineage.</t>
          <t>On the wire (decoded ID-JAG for WikiRAS):</t>
          <sourcecode type="json"><![CDATA[
{
  "iss": "https://idp.example/",
  "aud": "https://ras.wiki.example/",
  "sub": "wiki-pairwise-subject",

  "client_id": "tool-gateway",
  "resource": "https://api.wiki.example/",
  "scope": "wiki.read",

  "auth_time": 1710000200,
  "acr": "urn:example:loa:2",
  "amr": ["pwd", "mfa"],

  "identity_continuation_handle": "Zp3kRt8VbN2wLq6YsD4mXe",

  "act": {
    "iss": "https://gateway.example/",
    "sub": "tool-gateway",
    "act": {
      "iss": "https://agent.example/",
      "sub": "agent-app"
    }
  },

  "cnf": {
    "jkt": "base64url-tool-gateway-key-thumbprint"
  },

  "iat": 1710000235,
  "exp": 1710000535,
  "jti": "idjag-wiki-01"
}
]]></sourcecode>
          <t>A target not permitted by the chain authorization and current policy
fails with <tt>invalid_target</tt>; the chain stays continuable and only that tool
call fails (<xref target="error-response"/>). <xref target="example-dynamic"/> illustrates a grant
that excludes a newly requested target.</t>
        </section>
        <section anchor="example-gateway-terminal">
          <name>WikiRAS Redeems an Ordinary ID-JAG</name>
          <t>ToolGateway redeems the ID-JAG at WikiRAS with the DPoP-bound JWT grant and a
DPoP proof of the same key (<xref target="onward-id-jag"/>). WikiRAS follows the base
profile: it validates the ID-JAG, ignores the handle, and issues an access
token without binding H1 (<xref target="ras-processing"/>). ToolGateway calls WikiAPI as
Alice's wiki subject and returns the result to AgentApp.</t>
          <t>Further calls to WikiAPI for Alice reuse this access token while it remains
valid and covers the requested access (<xref target="implementation"/>). Access to another
upstream repeats <xref target="example-gateway-ica"/> and creates a sibling hop under H0
(H2, and so on).</t>
        </section>
        <section anchor="example-gateway-checklist">
          <name>What a Gateway Implements</name>
          <t>The gateway domain adds two things to an ordinary OAuth deployment:</t>
          <ul spacing="normal">
            <li>
              <t>GatewayRAS binds the handle when it redeems a continuation-capable ID-JAG,
records whether the authorization is eligible for continuation, advertises
the continuation grant profile alongside the base grants, places the handle
in the access token, and issues assertions from its token endpoint
(<xref target="ras-processing"/>, <xref target="assertion-issuance"/>, <xref target="metadata-ras"/>).</t>
            </li>
            <li>
              <t><tt>tool-gateway</tt> exchanges the access token it received for an assertion, then
presents that assertion once (<xref target="validation-replay"/>), with its client
credential and a DPoP proof, to the IdP for the next ID-JAG.</t>
            </li>
          </ul>
          <t>Both presuppose registrations that ID-JAG already requires: <tt>tool-gateway</tt> is an
OAuth client of the IdP, holding a client-authentication credential and the key
its DPoP proofs use, and a client known to WikiRAS, which the onward ID-JAG
names as <tt>client_id</tt> (<xref target="token-exchange"/>).</t>
          <t>AgentApp and WikiRAS use the base profile unchanged. AgentApp proves no key
anywhere and never shares Alice's identity assertion with the gateway. The IdP
establishes the chain and evaluates each continuation (<xref target="root-establishment"/>,
<xref target="token-exchange"/>).</t>
        </section>
      </section>
      <section anchor="example">
        <name>SaaS Chain Example (Separate CAI and Transaction Token Carrier)</name>
        <t>A user's request crosses three SaaS domains: ExpenseApp calls ExpenseAPI,
whose workload calls TravelAPI, whose workload calls BookingAPI. Each domain
has its own Resource Authorization Server, and all trust one enterprise IdP
at <tt>https://idp.example/</tt>. <xref target="example-differences"/> lists what differs from
the gateway example.</t>
        <t>Topology: separate CAI with a Transaction Token carrier.</t>
        <ul spacing="normal">
          <li>
            <t>Expense domain (<tt>expenses.example</tt>): client <tt>expense-app</tt>; ExpenseRAS,
Expense Transaction Token Service (TTS), and Expense CAI at <tt>ras.</tt>, <tt>tts.</tt>,
and <tt>cai.expenses.example</tt>; and the workload <tt>expense-service</tt> behind
ExpenseAPI.</t>
          </li>
          <li>
            <t>Travel domain (<tt>travel.example</tt>): TravelRAS, Travel TTS, and Travel CAI,
and the workload <tt>travel-service</tt> behind TravelAPI.</t>
          </li>
          <li>
            <t>Booking domain (<tt>booking.example</tt>): BookingRAS in front of BookingAPI. It
runs the base ID-JAG profile and is terminal in this chain.</t>
          </li>
        </ul>
        <t>Each domain is the identity authority for its own workloads, so the IdP has
the canonical actor identities (<tt>https://expenses.example/</tt>, <tt>expense-app</tt>),
(<tt>https://expenses.example/</tt>, <tt>expense-service</tt>), and
(<tt>https://travel.example/</tt>, <tt>travel-service</tt>) recorded for these clients, the
values their <tt>act</tt> entries carry (<xref target="client-identity"/>).</t>
        <t>The user has a pairwise subject at each RAS, which only the IdP can map. H0 is
bound at ExpenseRAS, H1 at TravelRAS; H2 reaches BookingRAS, which never binds
it.</t>
        <t>Hop 0 roots the chain at ExpenseRAS and carries H0 to the workload:</t>
        <artwork><![CDATA[
ExpenseApp       IdP        ExpenseRAS      Expense TTS  ExpenseService
     |            |              |               |              |
     |-ID Token-->|              |               |              |
     |<-ID-JAG H0-|              |               |              |
     |-jwt-bearer: ID-JAG, DPoP->| bind H0       |              |
     |<-----------AT1------------|               |              |
     |---------------call ExpenseAPI: AT1 + DPoP--------------->|
     |            |              |               |<-----AT1-----|
     |            |              |<-resolve AT1--|              |
     |            |              |---bound H0--->|              |
     |            |              |               |-TT with H0-->|
]]></artwork>
        <t>Hop 1 continues to TravelRAS; hop 2 repeats it from Travel to Booking:</t>
        <artwork><![CDATA[
ExpenseService    Expense CAI     IdP       TravelRAS  Travel TTS/API
       |               |           |            |             |
       |-exchange TT-->|           |            |             |
       |<--assertion---|           |            |             |
       |--assertion, actor, DPoP-->|            |             |
       |<--------ID-JAG H1---------|            |             |
       |-------jwt-dpop: ID-JAG + DPoP--------->| bind H1     |
       |<------------------AT2------------------|             |
       |-------------call TravelAPI: AT2 + DPoP-------------->|
       |               |           |            | TT with H1 to workload
]]></artwork>
        <section anchor="example-first-hop">
          <name>Root Exchange (H0 at ExpenseRAS)</name>
          <t>ExpenseApp exchanges the user's ID Token, whose <tt>sid</tt> anchors the chain to the
IdP session, for an ID-JAG addressed to ExpenseRAS:</t>
          <artwork><![CDATA[
POST /token HTTP/1.1
Host: idp.example
Content-Type: application/x-www-form-urlencoded

grant_type=urn:ietf:params:oauth:grant-type:token-exchange
&requested_token_type=urn:ietf:params:oauth:token-type:id-jag
&audience=https://ras.expenses.example/
&resource=https://api.expenses.example/
&scope=expenses.read
&subject_token=<id_token>
&subject_token_type=urn:ietf:params:oauth:token-type:id_token
&client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer
&client_assertion=<expense-app JWT>
]]></artwork>
          <t>In this deployment, the chain authorization permits designated
workloads to continue to Expense, Travel, and Booking. Current enterprise
policy also permits that access (<xref target="chain-authorization"/>).</t>
          <t>Server-side state (IdP authorization, illustrative):</t>
          <artwork><![CDATA[
(https://ras.expenses.example/, https://api.expenses.example/)
    permitted scopes: expenses.read

(https://ras.travel.example/, https://api.travel.example/)
    permitted scopes: trips.read

(https://ras.booking.example/, https://api.booking.example/)
    permitted scopes: stays.book
]]></artwork>
          <t>The IdP creates the root hop H0 and embeds it in the ID-JAG (<xref target="chain-id"/>).</t>
          <t>On the wire (decoded ID-JAG):</t>
          <sourcecode type="json"><![CDATA[
{
  "iss": "https://idp.example/",
  "aud": "https://ras.expenses.example/",
  "sub": "expense-pairwise-subject",

  "client_id": "expense-app",
  "resource": "https://api.expenses.example/",
  "scope": "expenses.read",

  "auth_time": 1710000000,
  "acr": "urn:example:loa:2",
  "amr": ["pwd", "mfa"],

  "identity_continuation_handle": "kW4uJ8pTe2NxA6rQvD1zYs",

  "iat": 1710000005,
  "exp": 1710000305,
  "jti": "idjag-expense-01"
}
]]></sourcecode>
        </section>
        <section anchor="example-context">
          <name>ExpenseRAS Binds H0; Expense TTS Carries It</name>
          <t>ExpenseApp redeems the ID-JAG at ExpenseRAS for an access token, AT1, and
ExpenseRAS binds H0, the issuing IdP, and the tenant it associates with that
IdP to the authorization state behind AT1, and records that authorization as
eligible for continuation (<xref target="ras-processing"/>). The carrier is what differs:
the handle stays in this record, and AT1 does not carry it.</t>
          <t>Server-side state at ExpenseRAS:</t>
          <sourcecode type="json"><![CDATA[
{
  "identity_continuation_handle": "kW4uJ8pTe2NxA6rQvD1zYs",
  "status": "ACCEPTED",
  "continuation_eligible": true,
  "authorization_state": "at1-authz-2f9c",
  "idp": "https://idp.example/",
  "tenant": "tenant-123",
  "client_id": "expense-app",
  "bound_at": 1710000010
}
]]></sourcecode>
          <t>ExpenseApp calls ExpenseAPI with AT1. The Expense TTS resolves AT1 against that
record over its own-domain interface with ExpenseRAS, derives H0, and issues a
Transaction Token for <tt>expense-service</tt>, the workload that completes the
request (<xref target="handle-propagation"/>). The token's <tt>req_wl</tt> names <tt>expense-api</tt>,
which requested the Transaction Token; <tt>expense-service</tt> is the workload
assigned to continue the transaction. The TTS records the assignment to that
workload in authenticated routing state, the domain's own record of which
workload handles a transaction. Neither ExpenseApp nor <tt>expense-service</tt>
supplies H0.</t>
          <t>Intra-domain context (decoded Transaction Token):</t>
          <sourcecode type="json"><![CDATA[
{
  "iss": "https://tts.expenses.example/",
  "aud": "https://expenses.example/",
  "sub": "expense-pairwise-subject",
  "txn": "txn-expense-88f2",
  "scope": "expense-report:complete",
  "req_wl": "expense-api",

  "tctx": {
    "identity_continuation": {
      "iss": "https://idp.example/",
      "tenant": "tenant-123",
      "handle": "kW4uJ8pTe2NxA6rQvD1zYs"
    }
  },

  "iat": 1710000012,
  "exp": 1710000072,
  "jti": "tt-expense-0007"
}
]]></sourcecode>
          <t>The Transaction Token stays inside <tt>expenses.example</tt>. The
<tt>tctx.identity_continuation</tt> encoding is illustrative; the profile standardizes
no carrier schema.</t>
        </section>
        <section anchor="example-ica">
          <name>ExpenseService Obtains the Assertion</name>
          <t><tt>expense-service</tt> presents the Transaction Token as the <tt>subject_token</tt> at
Expense CAI's token endpoint, authenticating as a client and proving its own
key (<xref target="assertion-token-exchange"/>):</t>
          <artwork><![CDATA[
POST /token HTTP/1.1
Host: cai.expenses.example
Content-Type: application/x-www-form-urlencoded
DPoP: <proof signed by the expense-service key>

grant_type=urn:ietf:params:oauth:grant-type:token-exchange
&requested_token_type=urn:ietf:params:oauth:token-type:identity-continuation
&subject_token=<the Transaction Token above>
&subject_token_type=urn:ietf:params:oauth:token-type:txn_token
&client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer
&client_assertion=<expense-service JWT>
]]></artwork>
          <t>Expense CAI verifies the Transaction Token and reads H0. It checks the routing
state that assigns this transaction to <tt>expense-service</tt>; the domain audience
and <tt>req_wl</tt> alone do not establish that assignment. It rechecks with
ExpenseRAS that H0's authorization remains active and is eligible for
continuation, then issues the assertion bound to the proven key
(<xref target="assertion-preconditions"/>).</t>
          <t>The IdP accepts its assertions for
hops ExpenseRAS accepts because it trusts Expense CAI for that RAS from
tenant configuration at the IdP; the rest of the conjunctive trust rule
applies as it does to a co-located RAS (<xref target="issuer-trust"/>,
<xref target="security-trust-model"/>).</t>
          <t>On the wire (decoded assertion):</t>
          <sourcecode type="json"><![CDATA[
{
  "iss": "https://cai.expenses.example/",
  "aud": "https://idp.example/",
  "identity_continuation_handle": "kW4uJ8pTe2NxA6rQvD1zYs",

  "act": {
    "iss": "https://expenses.example/",
    "sub": "expense-service"
  },

  "cnf": {
    "jkt": "base64url-expense-service-key-thumbprint"
  },

  "iat": 1710000020,
  "exp": 1710000200,
  "jti": "b8Rn5Yx1Qe4Nk2Wf6zVc9d"
}
]]></sourcecode>
        </section>
        <section anchor="example-chained">
          <name>Continuation to TravelRAS (H1)</name>
          <t><tt>expense-service</tt> presents the assertion to the IdP with an <xref target="RFC7523"/> client
assertion and a DPoP proof of the continuation assertion's <tt>cnf</tt> key, requesting
an ID-JAG for TravelRAS. The IdP maps the authenticated client to its canonical
actor identity (<xref target="client-identity"/>):</t>
          <artwork><![CDATA[
POST /token HTTP/1.1
Host: idp.example
Content-Type: application/x-www-form-urlencoded
DPoP: <proof signed by the expense-service key>

grant_type=urn:ietf:params:oauth:grant-type:token-exchange
&requested_token_type=urn:ietf:params:oauth:token-type:id-jag
&audience=https://ras.travel.example/
&resource=https://api.travel.example/
&scope=trips.read
&subject_token=<identity-continuation-assertion>
&subject_token_type=urn:ietf:params:oauth:token-type:identity-continuation
&client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer
&client_assertion=<expense-service client assertion>
]]></artwork>
          <t>The IdP validates the exchange (<xref target="validation"/>):</t>
          <ul spacing="normal">
            <li>
              <t>Issuer trust: Expense CAI is trusted for ExpenseRAS, the RAS recorded for
H0, rather than being that RAS itself.</t>
            </li>
            <li>
              <t>Chain state: H0 names an accepted hop on an active chain.</t>
            </li>
            <li>
              <t>Current actor and binding: <tt>act</tt> names <tt>expense-service</tt>, the authenticated
client, and the DPoP proof matches <tt>cnf</tt>.</t>
            </li>
            <li>
              <t>Authorization: TravelRAS, TravelAPI, and <tt>trips.read</tt> are permitted by the
chain authorization and current policy.</t>
            </li>
          </ul>
          <t>The IdP never calls ExpenseRAS; the assertion is its evidence of acceptance
(<xref target="hop-activation"/>). It resolves the user's Travel subject, creates H1 as a
child of H0, and places <tt>expense-service</tt> atop the root actor <tt>expense-app</tt>
in the lineage (<xref target="onward-id-jag"/>).</t>
          <t>On the wire (decoded ID-JAG):</t>
          <sourcecode type="json"><![CDATA[
{
  "iss": "https://idp.example/",
  "aud": "https://ras.travel.example/",
  "sub": "travel-pairwise-subject",

  "client_id": "expense-service",
  "resource": "https://api.travel.example/",
  "scope": "trips.read",

  "auth_time": 1710000000,
  "acr": "urn:example:loa:2",
  "amr": ["pwd", "mfa"],

  "identity_continuation_handle": "Uc9fB3mHs5LdK7gEnX2wRj",

  "act": {
    "iss": "https://expenses.example/",
    "sub": "expense-service",
    "act": {
      "iss": "https://expenses.example/",
      "sub": "expense-app"
    }
  },

  "cnf": {
    "jkt": "base64url-expense-service-key-thumbprint"
  },

  "iat": 1710000025,
  "exp": 1710000325,
  "jti": "idjag-travel-01"
}
]]></sourcecode>
        </section>
        <section anchor="example-third-hop">
          <name>The Pattern Repeats to BookingRAS (H2)</name>
          <t><tt>expense-service</tt> redeems the ID-JAG at TravelRAS for AT2, and TravelRAS binds
H1 exactly as ExpenseRAS bound H0. The Travel TTS derives H1 into a Transaction
Token for <tt>travel-service</tt>. Within the illustrated
<tt>tctx.identity_continuation</tt> object, only the handle changes:</t>
          <t>Intra-domain context (excerpt):</t>
          <sourcecode type="json"><![CDATA[
"tctx": {
  "identity_continuation": {
    "iss": "https://idp.example/",
    "tenant": "tenant-123",
    "handle": "Uc9fB3mHs5LdK7gEnX2wRj"
  }
}
]]></sourcecode>
          <t><tt>travel-service</tt> obtains an assertion for H1 from Travel CAI and exchanges it
for an ID-JAG with <tt>audience=https://ras.booking.example/</tt>,
<tt>resource=https://api.booking.example/</tt>, and <tt>scope=stays.book</tt>, all permitted
by the chain authorization and current policy. It authenticates with its
own client assertion and proves the key in the continuation assertion's <tt>cnf</tt>.
The IdP resolves its canonical actor identity (<xref target="client-identity"/>), creates
H2 under H1, and extends the lineage:</t>
          <t>On the wire (selected claims from the decoded ID-JAG):</t>
          <sourcecode type="json"><![CDATA[
{
  "aud": "https://ras.booking.example/",
  "sub": "booking-pairwise-subject",
  "client_id": "travel-service",
  "resource": "https://api.booking.example/",
  "scope": "stays.book",
  "identity_continuation_handle": "Ht6mZ2pQe8VrKx4NcWy1Jd",
  "act": {
    "iss": "https://travel.example/",
    "sub": "travel-service",
    "act": {
      "iss": "https://expenses.example/",
      "sub": "expense-service",
      "act": {
        "iss": "https://expenses.example/",
        "sub": "expense-app"
      }
    }
  }
}
]]></sourcecode>
          <t>BookingRAS is terminal: it redeems the ID-JAG under the base profile, ignores
H2, issues AT3, and binds nothing (<xref target="ras-processing"/>). <tt>travel-service</tt> calls
BookingAPI with AT3.</t>
        </section>
        <section anchor="example-differences">
          <name>What Differs from the Gateway Example</name>
          <ul spacing="normal">
            <li>
              <t>The CAI is a separate service in each continuing domain, which the IdP
trusts for that domain's RAS from tenant configuration (<xref target="issuer-trust"/>); a
co-located RAS needs no such record, though the same conjunctive trust
applies to both (<xref target="security-trust-model"/>).</t>
            </li>
            <li>
              <t>The handle never enters an access token; a Transaction Token Service derives
it from the RAS binding for each request, and the workload presents that
token to obtain the assertion.</t>
            </li>
            <li>
              <t>Two continuing domains produce a three-entry lineage: two continuation
actors and the root actor.</t>
            </li>
            <li>
              <t>ExpenseRAS chooses to sender-constrain the root access token, so ExpenseApp
presents DPoP proofs at the RAS and on its API call; that is RAS policy
under the base profile. The gateway example uses a bearer root access token.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="example-background">
        <name>Background Agent Example (Scheduled Continuation)</name>
        <t>Alice configures a daily calendar briefing that runs without her presence.
The chain is anchored to a grant rather than a session
(<xref target="example-background-differences"/>). This example also shows rejection of a
target excluded by the grant but permitted by tenant policy.</t>
        <t>Topology: separate CAI with a Transaction Token carrier.</t>
        <ul spacing="normal">
          <li>
            <t>Platform domain (<tt>platform.example</tt>): workload <tt>briefing-agent</tt>; PlatformRAS,
Platform TTS, and Platform CAI in front of TaskAPI; and the Scheduler, an
internal component that holds only the task identifier and triggers each
run.</t>
          </li>
          <li>
            <t>Calendar domain (<tt>calendar.example</tt>): CalendarRAS in front of CalendarAPI.
It is terminal in every run.</t>
          </li>
          <li>
            <t>Mail domain (<tt>mail.example</tt>): MailRAS in front of MailAPI, reached only in
<xref target="example-dynamic"/>; likewise terminal.</t>
          </li>
        </ul>
        <t>The platform domain is the identity authority for <tt>briefing-agent</tt>, so the
IdP has the canonical actor identity (<tt>https://platform.example/</tt>,
<tt>briefing-agent</tt>) recorded for that client, the value its <tt>act</tt> entry carries
(<xref target="client-identity"/>).</t>
        <t>H0 is bound at PlatformRAS to the task authorization and outlives Alice's
session; each run receives a fresh child of H0 for its terminal target.</t>
        <section anchor="example-background-setup">
          <name>Setup: Anchoring the Chain to a Grant</name>
          <t>Alice authorizes "summarize my calendar every morning." Because the task must
outlive her session, <tt>briefing-agent</tt> presents a refresh token from a grant
that permits continuation as the root exchange's subject token, so the chain
is anchored to that grant rather than to her session (<xref target="root-establishment"/>,
<xref target="lifecycle"/>). In this deployment, the grant permits only the Platform and
Calendar access needed for the task, and current policy permits that access.
The root ID-JAG targets PlatformRAS.</t>
          <t>Server-side state (IdP grant authorization, illustrative):</t>
          <artwork><![CDATA[
(https://ras.platform.example/, https://api.platform.example/tasks)
    permitted scopes: task.manage

(https://ras.calendar.example/, https://api.calendar.example/)
    permitted scopes: calendar.read
]]></artwork>
          <t>The exchange and RAS binding follow the pattern of <xref target="example-first-hop"/> and
<xref target="example-context"/>. PlatformRAS binds H0 to a durable task authorization that
it keys by its own task identifier; the record holds no bearer credential.</t>
          <t>Server-side state (PlatformRAS task authorization):</t>
          <artwork><![CDATA[
task_id:                      task-123
owner:                        alice
actor:                        briefing-agent
identity_continuation_handle: Pz6vTq1NcY4kM8bJf3RxWa  # H0
permitted_purpose:            morning-calendar-brief
schedule:                     "0 7 * * *"
governing_grant:              grant-8f2c19a4  # internal reference
expiry:                       1719450000  # local, not IdP lifetime
status:                       active
continuation_eligible:        true
]]></artwork>
          <t>Server-side state (Scheduler):</t>
          <artwork><![CDATA[
task_id: task-123
]]></artwork>
          <t>The Scheduler never receives H0 or any user, chain, or bearer credential;
<tt>task-123</tt> identifies a row in PlatformRAS's own state and means nothing
outside the platform.</t>
        </section>
        <section anchor="example-background-run">
          <name>Each Run: Deriving H0 from Task State</name>
          <t>Each run begins with no user present, so H0 comes from state the platform
holds:</t>
          <artwork><![CDATA[
 Scheduler   BriefingAgent      Platform TTS
     |              |                 |
     |---trigger--->|                 | task-123
     |              |-task-123+proof->|
     |              |                 | verify proof + task; derive H0
     |              |<-fresh TT(H0)---|
]]></artwork>
          <t>The task identifier is not a secret and does not authorize a run. The
Scheduler's trigger authenticates and carries only <tt>task-123</tt>; BriefingAgent
authenticates to the Platform TTS and proves possession of its key; and the
TTS, after confirming that <tt>task-123</tt> is active and that BriefingAgent is its
designated actor, derives H0 into a fresh Transaction Token
(<xref target="handle-propagation"/>). Neither the Scheduler nor BriefingAgent selects H0.</t>
        </section>
        <section anchor="example-background-continue">
          <name>Each Run: Continuing to CalendarRAS</name>
          <t>Each run performs assertion issuance, continuation exchange, and ID-JAG
redemption:</t>
          <artwork><![CDATA[
 BriefingAgent    Platform CAI       IdP         CalendarRAS
       |               |             |               |
       |--exchange TT->|             |               |
       |<-assertion----|             |               |
       |---------------------------->|               |
       |      assertion + DPoP       |               |
       |<----------------------------| ID-JAG(child) |
       |-------------------------------------------->|
       |                 ID-JAG                      |
       |<--------------------------------------------| access token
       |               |             |      no binding (terminal)
]]></artwork>
          <t>BriefingAgent exchanges the Transaction Token at Platform CAI's token endpoint
and presents the assertion to the IdP the response's
<tt>identity_continuation_authorization_server</tt> names, with its client credential
and a DPoP proof. Platform CAI applies <xref target="assertion-preconditions"/> to durable
task state rather than to a live user's request: it authenticates
<tt>briefing-agent</tt>, verifies its key and transaction, and rechecks that
PlatformRAS's H0 authorization remains active.</t>
          <t>The assertion and onward ID-JAG use the formats shown in <xref target="example-ica"/> and
<xref target="example-chained"/>, with Platform CAI as the assertion issuer.
<tt>briefing-agent</tt> is both the root actor and the current actor here, so the
onward <tt>act</tt> merges them into one entry (<xref target="onward-id-jag"/>). CalendarRAS is
terminal and issues the access token without binding the child hop. Each run's
child is a sibling, not a descendant, of the previous run's child.</t>
        </section>
        <section anchor="example-dynamic">
          <name>A Newly Requested Target</name>
          <t>Suppose the platform later extends the briefing to include unread mail,
which requires <tt>https://api.mail.example/</tt> behind <tt>https://ras.mail.example/</tt>.
Alice's grant authorizes only Platform and Calendar access, so the IdP rejects
a continuation from H0 to MailRAS. A general tenant policy allowing mail
access does not by itself expand that grant (<xref target="validation"/>).</t>
          <artwork><![CDATA[
HTTP/1.1 400 Bad Request
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache

{
  "error": "invalid_target"
}
]]></artwork>
          <t>A different chain authorization could permit read access to productivity
services selected by current policy, as in <xref target="example-gateway-root"/>. Under
that authorization, adding Mail to the eligible services could permit
<tt>mail.read</tt> without a new chain. A request for <tt>mail.send</tt> still fails with
<tt>invalid_scope</tt> if that authorization or current policy excludes it. These
outcomes follow the deployment's authorization semantics, not how the IdP
stores the authorization. A target-specific failure leaves the chain
continuable for other authorized targets.</t>
        </section>
        <section anchor="example-background-differences">
          <name>What Differs from the SaaS Chain Example</name>
          <ul spacing="normal">
            <li>
              <t>The root subject token is a refresh token, so the chain anchors to a grant
and survives logout; grant-anchor support is optional
(<xref target="lifecycle-anchors"/>).</t>
            </li>
            <li>
              <t>H0 is bound to a durable task authorization that PlatformRAS keys by task
identifier; the Scheduler holds only that identifier, which is not a secret
and authorizes nothing.</t>
            </li>
            <li>
              <t>Every run derives H0 afresh from active task state and obtains a new
assertion. Stealing the task record exposes H0 but not the agent key, and
continuation still requires a fresh assertion while the authorization is
active.</t>
            </li>
            <li>
              <t>Each run creates a sibling child of H0 rather than a descendant of the
previous run's child.</t>
            </li>
          </ul>
          <t>This example uses a user-present setup event. More generally, chain
establishment requires an authorized root exchange whose subject token
resolves to an active user session or supported grant anchor
(<xref target="root-establishment"/>, <xref target="lifecycle-anchors"/>). Administrative policy alone,
without such an anchor, cannot establish a chain.</t>
        </section>
      </section>
    </section>
    <section anchor="open-items">
      <name>Open Items for Working Group Discussion</name>
      <t>This non-normative appendix identifies questions for Working Group review.</t>
      <t>[[ To be removed before publication as an RFC ]]</t>
      <ol spacing="normal" type="1"><li>
          <t><strong>Acceptance attestation.</strong> Could a recipient-bound design, in which the IdP
binds a continuation credential to an intended actor, actor class, trust
domain, or key, or a target-resolved design replace the CAI assertion while
still supplying evidence of RAS acceptance and of the actor's association
with that context, which today only a party in the RAS's domain can provide
(<xref target="rationale-grant-type"/>)?</t>
        </li>
        <li>
          <t><strong>Sender constraint.</strong> Should mutual-TLS confirmation be defined jointly
with ID-JAG? Should the assertion and ID-JAG permit different proven keys,
and how should supported methods be advertised (<xref target="client-identity"/>)?</t>
        </li>
        <li>
          <t><strong>Client establishment control.</strong> Should root clients be able to require or
suppress chain establishment (<xref target="root-establishment"/>)? The authors' current
position is that establishment remains a tenant policy decision, so that
existing clients need no change to participate in a chain.</t>
        </li>
        <li>
          <t><strong>Stateless handles.</strong> Can self-verifying handles preserve ancestry and
subtree revocation within the recommended size bound, and at what privacy
and operational cost (<xref target="chain-id"/>, <xref target="onward-id-jag"/>)?</t>
        </li>
        <li>
          <t><strong>Idempotent recovery.</strong> Should optional support be discoverable, and if so
should an IdP advertise that it offers recovery, the retry window, or both
(<xref target="idempotent-retry"/>)?</t>
        </li>
        <li>
          <t><strong>Limits.</strong> The document recommends that an assertion's lifetime not exceed
300 seconds, recommends that IdPs accept lifetimes of up to 300 seconds and
leaves the maximum to deployment, and requires a finite hop-count limit
without fixing a default (<xref target="assertion-claims"/>, <xref target="lifecycle-limits"/>).
Should the 300-second recommendations become requirements, should the
profile fix a hop-count default, and should the accepted maximum be
advertised in metadata?</t>
        </li>
      </ol>
      <t>The project issue tracker also records WG questions on authorization bounds
(#106), acceptance freshness (#107), actor identity evidence (#108), CAI
discovery (#109), bearer ingress (#110), and acceptance accountability (#41):
https://github.com/mcguinness/draft-mcguinness-oauth-id-continuation-assertion/issues</t>
      <t>Further extension topics include client-requested limits or permitted actors,
intra-domain actor lineage and audit (<xref target="I-D.mcguinness-oauth-actor-receipts"/>,
<xref target="I-D.mcguinness-oauth-actor-proofs"/>), non-user roots, and RAS-derived
narrowing (<xref target="hop-activation"/>).</t>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors thank the Working Group participants who developed the OAuth
Identity and Authorization Chaining Across Domains and the Identity Assertion
JWT Authorization Grant specifications, on whose work this profile builds.</t>
    </section>
    <section numbered="false" anchor="document-history">
      <name>Document History</name>
      <t>[[ To be removed before publication as an RFC ]]</t>
      <t>-02</t>
      <ul spacing="normal">
        <li>
          <t>Replaced the fixed root envelope of -01 with chain authorization based on
recorded root facts and current tenant policy. Clarified that the CAI
attests acceptance, eligibility, and actor association; the IdP authorizes
onward access.</t>
        </li>
        <li>
          <t>Removed <tt>actor_token</tt> processing; client authentication determines the
canonical actor identity. Distinguished disclosed actor lineage from the
IdP's hop lineage.</t>
        </li>
        <li>
          <t>Defined assertion issuance using Token Exchange at the CAI, with an access
token or Transaction Token and DPoP. Added the
<tt>identity_continuation_authorization_server</tt> response parameter and client
validation against the IdP's metadata issuer.</t>
        </li>
        <li>
          <t>Simplified hop state to IdP issuance and RAS acceptance, with continuation
eligibility attested by the CAI using live or self-contained evidence.</t>
        </li>
        <li>
          <t>Removed the root exchange's proof-of-possession requirement. Specified
DPoP-bound redemption of onward ID-JAGs and access-token binding at
continuation-aware RASes.</t>
        </li>
        <li>
          <t>Clarified chain lifetime, withdrawal, and limits; made grant-anchor support
optional and specified base-profile behavior when no anchor can be resolved.</t>
        </li>
        <li>
          <t>Defined optional recovery of an issued grant after a lost response while
preserving single-use assertions. Clarified error codes and their precedence.</t>
        </li>
        <li>
          <t>Relaxed assertion lifetime, <tt>jti</tt> entropy, and handle-length requirements;
permitted <tt>nbf</tt>; recommended capping assertion expiry at self-contained
evidence expiry; and registered the handle as an introspection response
member.</t>
        </li>
        <li>
          <t>Removed RAS nomination of CAIs through <tt>identity_continuation_issuers</tt>,
clarified IdP configuration of CAI trust, and lifted the -01 restriction of
CAI issuance to the RAS's trust domain, which is now typical rather than
required.</t>
        </li>
        <li>
          <t>Reorganized the protocol description and security considerations; revised
the introduction, examples, design rationale, and open items.</t>
        </li>
        <li>
          <t>Added Aaron Parecki as an author.</t>
        </li>
      </ul>
      <t>-01</t>
      <ul spacing="normal">
        <li>
          <t>Renamed Chain Authority to Continuation Assertion Issuer and the
direct/chained exchanges to root/continuation exchanges, and aligned with the
base ID-JAG profile: terminology (IdP Authorization Server), Token Exchange
request/response formatting, and <tt>resource</tt> cardinality (zero or more, per
RFC 8707).</t>
        </li>
        <li>
          <t>Restructured for clarity and scope: grouped request validation into seven
rules; split the response into success, onward ID-JAG construction, and
errors; added a non-normative Implementation Considerations section; and
demoted the intra-domain carrier and other deployment guidance out of
normative text.</t>
        </li>
        <li>
          <t>Bound the originating IdP and tenant to the accepted hop, so the CAI derives
the assertion audience from that binding rather than requester input;
restricted CAI issuance to the RAS trust domain.</t>
        </li>
        <li>
          <t>Made the RAS <tt>identity_continuation_issuers</tt> advertisement a nomination only
(the IdP establishes issuer trust and keys independently, resolving an
authorization-server CAI's keys from its <tt>jwks_uri</tt>) and added a Metadata
Disclosure security consideration.</t>
        </li>
        <li>
          <t>Tightened the security model: relocated the replay-fingerprint and
authentication-context requirements into the protocol sections with their
rationale in Security; narrowed <tt>invalid_continuation</tt> to permanently
unusable handles; distinguished the ID-JAG, assertion, and access-token
lifetimes; clarified that a depth-limited <tt>act</tt> is not proof of complete
lineage; and made chain revocation testable.</t>
        </li>
        <li>
          <t>Rewrote the Introduction; corrected the examples and cross-references,
expanded the root-chain envelope and design rationale, softened the
handle-correlation claim, trimmed the open items, and marked the draft an
individual submission.</t>
        </li>
      </ul>
      <t>-00</t>
      <ul spacing="normal">
        <li>
          <t>Initial revision</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA8y97XrcRnYu+r+uAkd6nohUutv6tk3OzA5Hkm15JEuR6Hjn
5MkxwW6QhNUNdAC0KI6kXMu5lnNle33XKgDdlDyT5GjvjCWyu1CoWrVqfbzr
XdPpNHRltywOshvPFkUFf7/KHtfw32qTd2VdZUdtWzT0t7O6yV4ebbqL7N7s
TnZcvy2q7On7+UVenRc3Qn562hTvrh/mRpjnXXFeN1cHWdstQljU8ypfwQQW
TX7WTVfz801ZVUXbTuscHjYtF9O5G2ma60jTO/dCuzldlW0L/+qu1jDGs6fH
34VqszotmoOwgAcdBPhyW1Ttpj3IzvJlWwSY5P2QN0UOk31TzDcNTPZGuKyb
t+dNvVnDT38pTjN80bop/8rTf9XUXT2vlzfC2+IKPro4CNk0owniXzpajEIW
A39S6ir4ueMvFsWyOLd/wcv9lp+Hd0W1galm2efMIMv4XW/8AlMuq/Pse/wS
/nyVl0v4OU3rn8qiO5vVzTn+Im/mF/CLi65btwdffYWfwx+V74qZfuwr/MFX
p0192RZf0Qhf4TfPy+5icwrfjfvy1ZduFI6zhL1oOz8H+/qMnzEr6y8e+Yu/
MLvoVrCEIae1xU2EuWXZ2Wa5ZCG88Ze8WWYv5t/LgDfo97A+eSU7gSJeLYp1
UeEW8+8LWfn15nRZzv/pLYzh3m9er26MPOkob3BfQRLnb8vR57x82+XpA3L8
zj+t+Ts8cKjqZgXfeEcC9Pq7x4++fvCt/PXrh3fjX+/d178+uv+N/fXRPf3r
N3fuyF+/eXD3gf710bf6tW++vvO1/fXeQ/nrt/e/faR/fcAPfjZ9QmJlm8FH
wZ1c/Plfp+dNXnUjX+jg520+p0/SyWr1Q/Li8rnfLrvpYl2v40Avnz15PPsO
lqh7DCexKpbP6/N6Q7+CUyN67iVs3bMnqJ6qYt5l9PGpfD7jL2R3Z3d44bu8
OS+83Nbw7XIxq4ruq3ZdzFv5AcobDjc9w+HmPNr07q93ROJwLNJHooTw3yaE
9GeKux+n9129qRa5Hp83Ry+e35s9rpsifRdTq22WVwtTEi0p6+6iAIX95tmb
TNWc0+Yv8ubtZp09B4W1yc+LbA8fsZ/9y72tbw6Kup3VeVvCKYM5ktJoZeCv
2ny1/OodfJn+BqvRFFP417RuZ+vFmX//e3fuPJzeub9rBXDOINhldTYQ7Ycq
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
AA==

-->

</rfc>
