<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-mcguinness-oauth-id-continuation-assertion-00" category="std" consensus="true" 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-00"/>
    <author fullname="Karl McGuinness">
      <organization>Independent</organization>
      <address>
        <email>public@karlmcguinness.com</email>
      </address>
    </author>
    <date year="2026" month="August" day="03"/>
    <area>Security</area>
    <workgroup>Web Authorization Protocol</workgroup>
    <keyword>oauth</keyword>
    <keyword>token exchange</keyword>
    <keyword>identity chaining</keyword>
    <keyword>delegation</keyword>
    <keyword>id-jag</keyword>
    <abstract>
      <?line 83?>

<t>This document defines the Identity Continuation Assertion, a short-lived,
sender-constrained JWT used as an OAuth 2.0 Token Exchange subject token. It
lets an Identity Provider (IdP) issue an onward Identity Assertion JWT
Authorization Grant (ID-JAG) when a user's request crosses service boundaries
after the user is no longer present. The profile targets deployments in which
several Resource Authorization Servers trust one IdP and use audience-local
subject identifiers that only the IdP can resolve. It complements offline
attenuation for intra-domain fan-out that does not change the subject.</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 94?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>OAuth 2.0 <xref target="RFC6749"/> issues access to a specific audience, and OAuth 2.0
Token Exchange <xref target="RFC8693"/> exchanges one token for another when a request
crosses a trust boundary. The Identity Assertion JWT Authorization Grant
(ID-JAG) <xref target="I-D.ietf-oauth-identity-assertion-authz-grant"/> applies Token
Exchange to identity: an Identity Provider (IdP) mints an authorization grant
that names the user for a single downstream audience. Each of these exchanges
assumes the subject's credential, an ID Token, refresh token, or SAML
assertion, is present when the grant is minted.</t>
      <t>Many requests outlive that moment. An authenticated request can cross several
services after the user is no longer present, or reach an audience the original
credential does not address. The first hop can still present the user's
credential to obtain an ID-JAG, but a later workload in the chain holds none of
those credentials. The difficulty is sharpest when Resource Authorization
Servers name the user with audience-local (pairwise) subject identifiers that
only the IdP can resolve, a different value at each server: the
later workload cannot name the user for the next audience at all. Only the IdP
can perform that mapping, so continuation is a fresh mint from the IdP, not a
reused or offline-attenuated token.</t>
      <t>This document defines the Identity Continuation Assertion: a short-lived,
sender-constrained JWT that a later workload presents as the <tt>subject_token</tt> of
a Token Exchange request, in return for the next audience-scoped ID-JAG and
without another user interaction. The assertion carries a continuation handle
that binds the request to authorization state the IdP recorded when the chain
was established. Each Resource Authorization Server (RAS) trusts only the IdP
to name the user and scope authority. At every hop the IdP both resolves
identity and checks the requested authority against the root-chain envelope, so
continuation stays a fresh policy decision rather than a bearer of standing
authority.</t>
      <t>This profile does not define a new access-token format, does not allow a
Resource Server to consume the Identity Continuation Assertion directly, and
does not allow a Chain Authority to name the user for the target audience.</t>
      <t>This profile covers:</t>
      <ul spacing="normal">
        <li>
          <t>a chain of applications, each fronted by its own RAS, for example an expense
application that calls a travel service that calls a booking service;</t>
        </li>
        <li>
          <t>an unattended agent continuing a user's delegation; and</t>
        </li>
        <li>
          <t>an API gateway or agent runtime that roots one delegation and continues it
to upstream services whose audiences are chosen per request rather than
fixed in advance.</t>
        </li>
      </ul>
      <t>The worked example (<xref target="example"/>) follows this authorization path (not the API
call path):</t>
      <artwork><![CDATA[
ExpenseApp -> ExpenseRAS -> TravelRAS -> BookingRAS
]]></artwork>
      <t>Each trust domain from which the chain continues has three roles: the RAS that
accepts an ID-JAG and binds the hop; a trusted carrier, typically a Transaction
Token Service (TTS), that carries the hop reference to workloads inside the
domain; and a Chain Authority (CA) that issues the Identity Continuation
Assertion a workload presents to the IdP.
One party may operate all three within a domain (<xref target="security-tts"/>).</t>
      <section anchor="relationship-to-id-jag-and-identity-chaining">
        <name>Relationship to ID-JAG and Identity Chaining</name>
        <t>This document profiles Token Exchange <xref target="RFC8693"/>, JWT <xref target="RFC7519"/>, ID-JAG
<xref target="I-D.ietf-oauth-identity-assertion-authz-grant"/>, and OAuth Identity Chaining
<xref target="I-D.ietf-oauth-identity-chaining"/>. It adds:</t>
        <ul spacing="normal">
          <li>
            <t>the Identity Continuation Assertion subject-token type;</t>
          </li>
          <li>
            <t>an <tt>identity_continuation_handle</tt> claim in continuation-capable ID-JAGs;</t>
          </li>
          <li>
            <t>RAS binding of that claim to accepted authorization state;</t>
          </li>
          <li>
            <t>continuation-exchange validation rules;</t>
          </li>
          <li>
            <t>intra-domain Transaction Token context; and</t>
          </li>
          <li>
            <t>discovery metadata.</t>
          </li>
        </ul>
      </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:</t>
      <dl>
        <dt>Identity Provider (IdP):</dt>
        <dd>
          <t>The authority that authenticates the user, maps the user to each
audience-local subject, and issues onward grants.</t>
        </dd>
        <dt>Resource Authorization Server (RAS):</dt>
        <dd>
          <t>An Authorization Server that protects a particular API and trusts the
IdP for subject resolution. It exchanges an ID-JAG for an API access token.</t>
        </dd>
        <dt>Resource Server (RS):</dt>
        <dd>
          <t>The protected API. It never consumes an Identity Continuation Assertion or
uses a continuation handle for authorization. A co-located workload <bcp14>MAY</bcp14>
receive the handle only as intra-domain context and <bcp14>MUST NOT</bcp14> place it in an
access token or external authorization claim.</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 Chain Authority, presented to
the IdP as a Token Exchange <tt>subject_token</tt> to obtain an onward ID-JAG.</t>
        </dd>
        <dt>Chain:</dt>
        <dd>
          <t>An IdP-held tree of hops under one governing authorization (<xref target="lifecycle"/>).</t>
        </dd>
        <dt>Chain Authority (CA):</dt>
        <dd>
          <t>The role trusted by the IdP to issue Identity Continuation Assertions for a
tenant. It may be a RAS, TTS, gateway, or dedicated service, but never
resolves the target audience's user subject.</t>
        </dd>
        <dt>Transaction Token Service (TTS):</dt>
        <dd>
          <t>The service that, within a trust domain, derives a bound hop's continuation
handle from Resource Authorization Server state into the intra-domain chain
context its workloads carry (<xref target="transaction-token-context"/>).</t>
        </dd>
        <dt>Current actor (presenting actor):</dt>
        <dd>
          <t>The workload presenting the assertion to the IdP, named by <tt>act</tt> and
authenticated by <tt>actor_token</tt>.</t>
        </dd>
        <dt>Root actor:</dt>
        <dd>
          <t>The actor at the root of a chain: the authenticated OAuth client that
obtains the first ID-JAG (<xref target="client-identity"/>). Unlike a current actor,
it need not present an <tt>actor_token</tt>.</t>
        </dd>
        <dt>Tenant:</dt>
        <dd>
          <t>The administrative boundary within which the chain and Chain Authority
trust are configured. Tenant determination is deployment-defined but <bcp14>MUST</bcp14>
derive from authenticated material, not requester-supplied input.</t>
        </dd>
        <dt>Trust domain:</dt>
        <dd>
          <t>An administrative and authentication boundary within which workloads can
be directly authenticated, comparable to WIMSE
<xref target="I-D.ietf-wimse-arch"/>. Its identifier is deployment-defined.</t>
        </dd>
        <dt>Continuation Handle (<tt>identity_continuation_handle</tt>):</dt>
        <dd>
          <t>An opaque, unguessable, IdP-generated reference to one hop of a delegation
chain; see <xref target="chain-id"/>.</t>
        </dd>
        <dt>Hop:</dt>
        <dd>
          <t>A root or continuation record with an immutable parent reference. Its
lineage is its path to the root.</t>
        </dd>
        <dt>Governing authorization:</dt>
        <dd>
          <t>The server-side consent and policy record, resolved from the root subject
token, that anchors a chain and bounds every continuation under it
(<xref target="lifecycle"/>).</t>
        </dd>
        <dt>Root-chain envelope:</dt>
        <dd>
          <t>The state the IdP records when it establishes a chain, and against which
it evaluates every continuation. The envelope is anchored to the chain's
governing authorization (<xref target="lifecycle"/>) and records, among its dimensions,
the authorization basis and the continuation authorization defined below.
Derived from authentication, consent, and tenant policy, it contains:
</t>
          <ul spacing="normal">
            <li>
              <t>the authenticated user;</t>
            </li>
            <li>
              <t>the authentication context (<tt>auth_time</tt>, <tt>acr</tt>, <tt>amr</tt>);</t>
            </li>
            <li>
              <t>the authorization basis for onward targets;</t>
            </li>
            <li>
              <t>the continuation authorization: the actors or trust domains permitted to
continue the chain, and the basis on which that permission was
established (<xref target="root-establishment"/>);</t>
            </li>
            <li>
              <t>any maximum actor-chain depth set by policy;</t>
            </li>
            <li>
              <t>the chain's governing authorization (<xref target="lifecycle"/>); and</t>
            </li>
            <li>
              <t>the chain's expiry.</t>
            </li>
          </ul>
          <t>These dimensions are establishment-time ceilings; <xref target="root-establishment"/>
defines how they are populated and bounded.</t>
        </dd>
        <dt>Audience-local (pairwise) subject:</dt>
        <dd>
          <t>The subject identifier under which a particular RAS names the user. Distinct
Resource Authorization Servers may name the same user with different
identifiers; only the IdP holds the map between them.</t>
        </dd>
        <dt>Offline attenuation:</dt>
        <dd>
          <t>Client-side attenuated delegation, in which a party narrows and forwards a
credential without contacting the IdP; contrast the IdP-minted continuation
this profile defines (<xref target="decision-rule"/>).</t>
        </dd>
      </dl>
    </section>
    <section anchor="overview">
      <name>Protocol Overview</name>
      <t>A continuation reuses the Token Exchange loop once per boundary: the root
exchange mints the first ID-JAG, and each later boundary mints the next from an
Identity Continuation Assertion. Handles H0 and H1 below name the successive
hops (<xref target="chain-id"/>).</t>
      <artwork><![CDATA[
  root credential
       |
       v
  [ IdP ]  mints ID-JAG(H0); owns the envelope and hop tree
       |
       v
  [ accepting RAS ]  redeems it, issues an access token, binds H0
       |
       v
  [ TTS or carrier ]  derives H0 into intra-domain request context
       |
       v
  [ Chain Authority ]  attests the accepted hop, actor, and key
       |
       v
  [ IdP ]  authorizes the next target, mints ID-JAG(H1)
]]></artwork>
      <t>The responsibilities never mix:</t>
      <ul spacing="normal">
        <li>
          <t>the IdP owns the root-chain envelope and the hop tree, and alone resolves
each audience-local subject;</t>
        </li>
        <li>
          <t>the accepting RAS decides whether the issued authorization was accepted and
binds the hop to it (<xref target="ras-processing"/>);</t>
        </li>
        <li>
          <t>a Transaction Token Service, or an equivalent trusted carrier, associates the
accepted authorization with the current request inside the domain
(<xref target="transaction-token-context"/>);</t>
        </li>
        <li>
          <t>the Chain Authority attests the accepted hop, the current actor, and its key
(<xref target="assertion-issuance"/>); and</t>
        </li>
        <li>
          <t>the IdP alone authorizes the next target against the envelope and mints the
next ID-JAG (<xref target="validation"/>, <xref target="onward-id-jag"/>).</t>
        </li>
      </ul>
      <t>Each role validates the inputs within its authority; no artifact or role alone
authorizes continuation.</t>
    </section>
    <section anchor="decision-rule">
      <name>When to Use This Profile Versus Offline Attenuation</name>
      <t>Use this profile when a boundary re-mints the user's identity, that is:</t>
      <ul spacing="normal">
        <li>
          <t>the next audience uses a pairwise subject only the IdP can resolve;</t>
        </li>
        <li>
          <t>the target trusts the IdP, not the previous issuer, to name the user; and</t>
        </li>
        <li>
          <t>current revocation and policy must be rechecked at every boundary.</t>
        </li>
      </ul>
      <t>Use offline attenuation, such as <xref target="I-D.li-oauth-delegated-authorization"/>, when
the subject and issuer trust stay stable across the boundary and offline
delegation semantics are acceptable, for example intra-domain fan-out under one
workload identity. The two compose: offline attenuation inside a trust domain,
continuation where a boundary re-mints the subject.</t>
    </section>
    <section anchor="assertion">
      <name>The Identity Continuation Assertion</name>
      <section anchor="names">
        <name>Token Type and Media Type</name>
        <t>The Identity Continuation Assertion is identified as follows:</t>
        <artwork><![CDATA[
Name:        Identity Continuation Assertion
Token type:  urn:ietf:params:oauth:token-type:identity-continuation
JOSE typ:    oauth-identity-continuation+jwt
]]></artwork>
        <t>The assertion is a signed JWT in JWS Compact Serialization <xref target="RFC7519"/>, with
media type <tt>application/oauth-identity-continuation+jwt</tt> (<xref target="iana"/>). It
<bcp14>MUST NOT</bcp14> be encrypted (JWE) or use nested signing. This profile relies on TLS
for confidentiality and defines only signed JWS Compact Serialization, keeping
a single interoperable representation. The IdP <bcp14>MUST</bcp14> verify the <tt>typ</tt> header per
<xref target="RFC8725"/>, which keeps the assertion from being consumed as another token
type.</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://ca.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": 1710000500,
  "exp": 1710000800,
  "jti": "k7Qm2Xp9Rf4sLc3vBw8aZ1"
}
]]></sourcecode>
        <t>The claims have the following meanings and requirements:</t>
        <dl>
          <dt><tt>iss</tt>:</dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14>. The Chain Authority issuer. The IdP <bcp14>MUST</bcp14> verify tenant trust and
the signing key.</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.</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"/>. The <tt>act</tt> object contains a
<bcp14>REQUIRED</bcp14> <tt>iss</tt> and a <bcp14>REQUIRED</bcp14> <tt>sub</tt>, both non-empty strings. Additional
members <bcp14>MAY</bcp14> carry further identity attributes but are non-authoritative and
<bcp14>MUST NOT</bcp14> affect identity, authorization, lineage, or issuance; a recipient
<bcp14>MUST</bcp14> ignore members it does not understand, and <tt>exp</tt>, <tt>nbf</tt>, <tt>aud</tt>, <tt>scope</tt>,
<tt>cnf</tt>, and nested <tt>act</tt> <bcp14>MUST NOT</bcp14> be present. The IdP <bcp14>MUST</bcp14> reject a
non-conforming <tt>act</tt>. The IdP, not the assertion, constructs lineage
(<xref target="onward-id-jag"/>).</t>
          </dd>
          <dt><tt>cnf</tt>:</dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14>. A confirmation claim <xref target="RFC7800"/> that binds the assertion to the
presenting actor's key. It <bcp14>MUST</bcp14> contain exactly one method: <tt>jkt</tt>, the JWK
SHA-256 thumbprint <xref target="RFC7638"/> of the DPoP key <xref target="RFC9449"/>.</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>, and <tt>exp - iat</tt> <bcp14>MUST NOT</bcp14> exceed 300
seconds, bounding how long a captured assertion could be replayed.</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 and <bcp14>MUST</bcp14> contain at least 128 bits
of entropy.</t>
          </dd>
        </dl>
        <t>The assertion <bcp14>MUST NOT</bcp14> contain top-level <tt>sub</tt>, <tt>auth_time</tt>, <tt>acr</tt>, <tt>amr</tt>, or
<tt>sid</tt>; those values come from the root-chain envelope.</t>
        <t>Other top-level claims <bcp14>MAY</bcp14> appear but <bcp14>MUST</bcp14> be ignored for validation,
authorization, and issuance.</t>
        <t>Offline-segment evidence <bcp14>MAY</bcp14> be retained separately and <bcp14>SHOULD</bcp14> remain in the
control plane (<xref target="I-D.mcguinness-oauth-actor-receipts"/>,
<xref target="I-D.mcguinness-oauth-actor-proofs"/>).</t>
      </section>
      <section anchor="excluded-claims">
        <name>Claims That Are Deliberately Excluded</name>
        <t>The assertion <bcp14>MUST NOT</bcp14> convey these Token Exchange request values:</t>
        <artwork><![CDATA[
audience (target)
resource
scope
authorization_details
requested_token_type
]]></artwork>
        <t>They remain request parameters. Assertion <tt>aud</tt> identifies the IdP, not the
requested target.</t>
      </section>
      <section anchor="assertion-issuance">
        <name>Chain Authority Issuance</name>
        <t>The Chain Authority <bcp14>MUST</bcp14> issue only for an actor in the attested RAS's trust
domain unless tenant configuration explicitly authorizes that external actor
and its keys. Keeping issuance in-domain prevents a handle-holding party from
bypassing the RAS-acceptance path. Actor authentication and the issuance
protocol are deployment-specific.</t>
        <t>A presenting workload is a control-plane participant, not a
bare-handle-transporting application (<xref target="handle-carriers"/>): it reads the handle
from its
own intra-domain context and presents it to its Chain Authority, along with its
key and any narrowing hints. That handle is advisory input, not an authority
the workload asserts; the checks below re-verify it against RAS-bound state
before any assertion issues.</t>
        <t>It <bcp14>MUST</bcp14> authenticate the actor and issue only after establishing that:</t>
        <ol spacing="normal" type="1"><li>
            <t>the handle came through an authenticated, confidential,
integrity-protected chain path or equivalent authenticated state;</t>
          </li>
          <li>
            <t>the presenting actor is authorized under Chain Authority policy to continue
the chain;</t>
          </li>
          <li>
            <t>the presenting actor controls the key placed in <tt>cnf</tt>; and</t>
          </li>
          <li>
            <t><tt>act</tt> names that actor and, if offline attenuation reached the actor, its
delegation artifact is valid.</t>
          </li>
        </ol>
        <t>Possession of a handle or Transaction Token is insufficient. The Chain
Authority <bcp14>MUST</bcp14> bind the actor to the current transaction, verify that the
handle matches that transaction's RAS-bound state, and recheck authoritative,
uncached RAS state to confirm that the authorization remains active and
continuation remains permitted; a cached read could attest a hop the RAS has
since revoked. It <bcp14>MUST</bcp14> enforce per-transaction and per-actor
rate and fan-out limits with audit records. Target or purpose hints <bcp14>MAY</bcp14> narrow
Chain Authority issuance but <bcp14>MUST NOT</bcp14> control the IdP's target decision.
Propagated context <bcp14>MUST NOT</bcp14> override the root-chain envelope.</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. H0 identifies the accepted source hop; an assertion presents H0
to continue from it, and on success the IdP creates a child H1 and places H1,
not H0, in the onward ID-JAG. The child's immutable parent is the presented
hop, so in the <xref target="example"/> chain the TravelRAS hop (H1) is a child of the
ExpenseRAS hop (H0). Reusing H0 for another permitted target creates a sibling
of H1, not a descendant; concurrent children are independent siblings.</t>
      <t>The following rules apply:</t>
      <ol spacing="normal" type="1"><li>
          <t>When it establishes a chain (<xref target="root-establishment"/>), the IdP <bcp14>MUST</bcp14> embed a
fresh hop reference as the <tt>identity_continuation_handle</tt> claim of the issued
ID-JAG, for the root hop and for each continuation hop.
Handle values <bcp14>MUST NOT</bcp14> be reused across hops. An ID-JAG that carries the
<tt>identity_continuation_handle</tt> claim is continuation-capable.</t>
        </li>
        <li>
          <t><tt>identity_continuation_handle</tt> <bcp14>MUST</bcp14> contain at least 128 bits of entropy,
<bcp14>MUST NOT</bcp14> contain user-identifying information, and <bcp14>MUST</bcp14> consist of 22 to
256 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>).</t>
        </li>
        <li>
          <t>The handle crosses a trust boundary only inside an ID-JAG to the RAS or an
Identity Continuation Assertion to the IdP, never standalone.</t>
        </li>
        <li>
          <t>The handle <bcp14>MUST NOT</bcp14> appear in an access token or external Resource Server
authorization claim. Authorized workloads <bcp14>MAY</bcp14> observe it only in
intra-domain context subject to <xref target="transaction-token-context"/>.</t>
        </li>
        <li>
          <t>The IdP performs end-to-end audit correlation; each RAS logs its local
subject.</t>
        </li>
        <li>
          <t>A continuation-aware Resource Authorization Server binds
<tt>identity_continuation_handle</tt> to the authorization state it establishes
(<xref target="ras-processing"/>); Resource
Authorization Servers, Resource Servers, and Chain Authorities <bcp14>MUST NOT</bcp14>
modify the value.</t>
        </li>
        <li>
          <t>A hop is continuable only after RAS acceptance and binding
(<xref target="hop-activation"/>). The handle conveys no authority; the IdP <bcp14>MUST</bcp14> use it
only to resolve hop state, subject, and policy.</t>
        </li>
        <li>
          <t>A hop's parent reference is immutable. The IdP <bcp14>MUST</bcp14> derive lineage solely
by walking parent references from the presented hop to the root, and <bcp14>MUST
NOT</bcp14> maintain or extend a single chain-wide actor history: concurrent
sibling continuations are independent branches.</t>
        </li>
      </ol>
      <t>The IdP <bcp14>MAY</bcp14> derive handles from an internal delegation identifier using a
keyed one-way function if rules 1, 2, and 8 remain satisfied and the resulting
handles remain unlinkable.</t>
      <section anchor="handle-carriers">
        <name>Continuation Handle Carriers</name>
        <t>A handle travels by one of three carriers, depending on context lifetime:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Situation</th>
              <th align="left">Authoritative store</th>
              <th align="left">Application carries</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Cross-domain hop (<xref target="ras-processing"/>)</td>
              <td align="left">IdP hop state</td>
              <td align="left">Assertion to the IdP, then ID-JAG to the RAS</td>
            </tr>
            <tr>
              <td align="left">Active request (<xref target="transaction-token-context"/>)</td>
              <td align="left">RAS authorization state</td>
              <td align="left">Access token; the TTS derives the context</td>
            </tr>
            <tr>
              <td align="left">Scheduled execution (<xref target="task-provenance"/>)</td>
              <td align="left">Durable task/RAS authorization</td>
              <td align="left">Opaque task identifier</td>
            </tr>
          </tbody>
        </table>
        <t>An external or requesting application never selects or persists a bare handle
for transport; it carries an artifact from which trusted server-side state
derives the handle. An authorized intra-domain control-plane workload is
different: it reads the handle from that state and presents it to its Chain
Authority (<xref target="assertion-issuance"/>).</t>
      </section>
      <section anchor="chain-id-privacy">
        <name>Handle Freshness and Unlinkability</name>
        <t>Handles are unlinkable across hops but not among participants in one hop, and
revoked handles fail the next continuation exchange. <xref target="privacy"/> covers the
residual correlation channels.</t>
      </section>
    </section>
    <section anchor="lifecycle">
      <name>Chain Lifetime and Revocation</name>
      <t>A chain is continuable only while active at the IdP. Each cross-boundary hop
is a fresh policy check. Revoking a hop stops its subtree at the next
continuation, fail-closed, but does not invalidate already issued ID-JAGs or
access tokens; the revocation window is therefore bounded by the ID-JAG's
short lifetime and by the access-token lifetime the accepting Resource
Authorization Server sets; this profile does not constrain that lifetime.</t>
      <t>This is the deliberate difference from an offline-attenuated token, whose
minted child stays usable for its lifetime without contacting an authority.</t>
      <t>Three lifetimes <bcp14>MUST NOT</bcp14> be conflated: the ID-JAG's short redemption window;
the access-token lifetime the accepting RAS sets independently
(<xref target="ras-processing"/>); and the IdP-held continuation chain. 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>
      <t>The governing authorization (<xref target="terms"/>) anchors to a lifecycle token: a refresh
token anchors to its OAuth grant, and <tt>sid</tt> or <tt>SessionIndex</tt> anchors to its
session. Rotation of a refresh token does not affect the grant anchor. Grant
expiry or revocation ends the
chains anchored to that grant; session termination ends the chains anchored
to that session; and withdrawal of continuation consent or policy ends any
chain it governs. A session-anchored chain <bcp14>MUST NOT</bcp14> outlive its session; only
grant-anchored chains may outlive logout. 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 <bcp14>MUST</bcp14> bound chain lifetime by the governing authorization and reject
expired chains.</t>
      <t><tt>auth_time</tt>, <tt>acr</tt>, and <tt>amr</tt> are fixed at root issuance; continuation <bcp14>MUST
NOT</bcp14> refresh them.</t>
      <t>The IdP <bcp14>MUST</bcp14> revoke whole chains and <bcp14>MAY</bcp14> revoke an individual hop's subtree.
It <bcp14>MUST</bcp14> reject continuation from revoked state.</t>
      <t>Issued access tokens remain governed by their RAS.</t>
      <t>For a grant-anchored chain, the IdP <bcp14>MUST</bcp14> provide a user- or
administrator-facing interface showing the chain's root context, hop graph,
lineage, granted targets, expiry, and any recorded purpose; it <bcp14>MUST</bcp14> support
whole-chain revocation
and subtree revocation when offered. It <bcp14>SHOULD</bcp14> notify the user or
administrator at establishment and near expiry. The same interface is
<bcp14>RECOMMENDED</bcp14> for session-anchored chains. See <xref target="GRANT-MGMT"/>.</t>
    </section>
    <section anchor="token-exchange">
      <name>Token Exchange Profile</name>
      <t>An Identity Continuation Assertion is used as the <tt>subject_token</tt> of an OAuth
2.0 Token Exchange request <xref target="RFC8693"/>. A direct and a chained request use the
same Token Exchange framework: a chained request substitutes an Identity
Continuation Assertion for the root credential and additionally supplies the
actor authentication and DPoP proof described below. The IdP establishes the
chain; no request parameter asks it to do so (<xref target="root-establishment"/>).</t>
      <section anchor="direct-id-jag-request">
        <name>Direct ID-JAG Request</name>
        <t>A direct request, in which the subject token is a normal subject token such as
an ID Token, refresh token, or SAML assertion:</t>
        <artwork><![CDATA[
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=<id_token | refresh_token | SAML assertion>
subject_token_type=<normal-subject-token-type>
actor_token=<sender-constrained-current-actor-credential> (OPTIONAL)
actor_token_type=<actor-token-type>                       (OPTIONAL)
]]></artwork>
        <t>On a direct request, <tt>actor_token</tt> is <bcp14>OPTIONAL</bcp14> (<xref target="root-establishment"/>). The
direct request 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 for continuation-capable issuance.</t>
      </section>
      <section anchor="root-establishment">
        <name>Establishing a Chain</name>
        <t>The IdP, not the client, establishes a chain. It <bcp14>MUST</bcp14> do so when a direct
ID-JAG exchange is governed by a continuation-capable governing authorization,
and <bcp14>MUST</bcp14> include the root handle in the ID-JAG. The exchange <bcp14>MUST</bcp14> include a
valid DPoP proof <xref target="RFC9449"/>, and the IdP <bcp14>MUST</bcp14> bind the resulting ID-JAG to that
key in <tt>cnf</tt>; without valid proof it <bcp14>MUST NOT</bcp14> include an
<tt>identity_continuation_handle</tt>. The IdP <bcp14>MAY</bcp14> defer materializing chain state
until the first continuation, provided the handle still resolves to the same
root and envelope; this does not relax the reservation durability of
<xref target="validation-replay"/>. Without continuation authorization, the IdP <bcp14>MUST
NOT</bcp14> establish a chain or include a handle. Advertised support (<xref target="metadata"/>)
signals capability, not authority.</t>
        <t>The root subject token <bcp14>MUST</bcp14> resolve to one of these lifecycle anchors:</t>
        <ul spacing="normal">
          <li>
            <t>a refresh token's OAuth grant;</t>
          </li>
          <li>
            <t>an ID Token <tt>sid</tt> <xref target="OIDC.FrontChannelLogout"/> resolving to an active IdP
session for that user and client; or</t>
          </li>
          <li>
            <t>a SAML <tt>SessionIndex</tt> <xref target="SAML2.Core"/> resolving to an active IdP session
for that user and presenter.</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>Server-side consent and policy make the governing authorization
continuation-capable and populate the root-chain envelope of <xref target="terms"/> (the
authenticated user, authentication context, authorization basis, permitted
actors or trust domains, depth, governing authorization, and expiry). Token
claims cannot supply these values. Every dimension is an
establishment-time ceiling: later policy <bcp14>MAY</bcp14> narrow or revoke it but <bcp14>MUST NOT</bcp14>
broaden it; broadening requires a new chain. An envelope <bcp14>MAY</bcp14> enumerate exact
audience and resource pairs with their permitted scopes and authorization
details <xref target="RFC9396"/>; otherwise it records a
stable, policy-based basis, fixed at establishment, against which the IdP
evaluates each requested target at request time. A policy-based basis is not
whatever the user could authorize later: it is the enforceable record captured
at establishment, and consent granted afterward cannot broaden it.</t>
        <t>The root actor is the authenticated OAuth client under the mapping in
<xref target="client-identity"/>. An optional <tt>actor_token</tt> <bcp14>MUST</bcp14> be valid, <bcp14>MUST</bcp14> be accepted
for continuation, and <bcp14>MUST</bcp14> designate the IdP where applicable. It <bcp14>MUST</bcp14> also be
sender-constrained to the confirmed key and <bcp14>MUST</bcp14> identify that client.
Only after validation does the IdP record the root actor and key. The root
actor's identity rests entirely on this client authentication
(<xref target="client-identity"/>); base ID-JAG's recommendation to use a confidential
client therefore applies to a continuation-capable root.</t>
        <t>For every root or child hop, the IdP records the target RAS and the Chain
Authorities mapped to it; the mapping <bcp14>MAY</bcp14> be static tenant configuration.
Only a mapped Chain Authority may attest that hop. A terminal RAS ignores the
handle; only a continuation-aware RAS can bind it and make the hop
continuable. Grant-profile advertisement is discovery only; a party that
requires onward continuation <bcp14>SHOULD</bcp14> consult it when available.</t>
        <t>Establishment is at-least-once: retrying a lost response <bcp14>MAY</bcp14> create a second
chain. Revocation of the governing authorization applies to every chain rooted
in it, and the actor-chain depth bound is enforced per branch; the IdP <bcp14>MUST</bcp14>
enforce configured fan-out, rate, and hop-count limits as an aggregate keyed
to the governing authorization; a retried establishment <bcp14>MUST NOT</bcp14> evade these
limits.</t>
      </section>
      <section anchor="chained-id-jag-request">
        <name>Chained ID-JAG Request</name>
        <t>A chained request, in which the subject token is an Identity Continuation
Assertion:</t>
        <artwork><![CDATA[
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=<identity-continuation-token-type>
actor_token=<sender-constrained-current-actor-credential>
actor_token_type=<actor-token-type>
]]></artwork>
        <t>The <tt>subject_token_type</tt> value above is
<tt>urn:ietf:params:oauth:token-type:identity-continuation</tt>.</t>
        <t>The requested <tt>audience</tt>, <tt>resource</tt>, <tt>scope</tt>, <tt>requested_token_type</tt>, and
any <tt>authorization_details</tt> are supplied by the Token Exchange request and
never by the assertion (<xref target="excluded-claims"/>). Following
<xref target="I-D.ietf-oauth-identity-assertion-authz-grant"/>, <tt>audience</tt> identifies the
target Resource Authorization Server and <tt>resource</tt> (<xref target="RFC8693"/>, originally
defined in <xref target="RFC8707"/>) identifies the protected resource.</t>
        <t>The request <bcp14>MAY</bcp14> also include <tt>authorization_details</tt> <xref target="RFC9396"/>, which the
ID-JAG profile supports in both the exchange and the issued grant; the
authorization-basis check (<xref target="validation"/>, rule 14) applies equally to it and
to scope. Client authentication is required on every exchange
(<xref target="client-identity"/>) and is omitted from the example bodies for brevity.</t>
      </section>
      <section anchor="sender-constrained-presentation">
        <name>Sender-Constrained Presentation</name>
        <t>This section applies to a chained request; a direct request's DPoP requirement
is specified in <xref target="root-establishment"/>.</t>
        <t>The actor <bcp14>MUST</bcp14> present a DPoP proof <xref target="RFC9449"/> for the key in
<tt>cnf.jkt</tt>. The IdP <bcp14>MUST</bcp14> verify the match and reject absent or invalid proof.</t>
        <t>DPoP is the single mandatory confirmation method for interoperability: a
different confirmation method in the onward grant would make the target
validate that confirmation differently than for a directly issued ID-JAG. This
version therefore defines no mutual-TLS variant <xref target="RFC8705"/>; see <xref target="open-items"/>.</t>
        <t>The request <bcp14>MUST</bcp14> include a valid, accepted <tt>actor_token</tt> identifying the
actor in <tt>act</tt>. It <bcp14>MUST</bcp14> be sender-constrained to the same key and <bcp14>MUST NOT</bcp14> be
bearer. For a JWT, the IdP verifies <tt>cnf.jkt</tt>; for an opaque token, it obtains
equivalent confirmation from authoritative metadata such as introspection
<xref target="RFC7662"/>. Any audience or applicability restriction <bcp14>MUST</bcp14> designate the
IdP.</t>
        <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"/>), across <tt>actor_token</tt>,
<tt>act</tt>, and the authenticated client. Identities in different tenants never
compare equal.</t>
        <t>The onward ID-JAG <bcp14>MUST</bcp14> use the same DPoP key. The actor proves possession
again at the target RAS.</t>
        <t>Key rotation takes effect when the actor obtains a new assertion and actor
token bound to the new key.</t>
      </section>
      <section anchor="client-identity">
        <name>Client Identity and Authentication</name>
        <t>The current actor <bcp14>MUST</bcp14> authenticate as an OAuth client, and the IdP <bcp14>MUST</bcp14> map
that client authoritatively to an actor identity; self-asserted mappings
<bcp14>MUST NOT</bcp14> be accepted. On a continuation exchange the IdP <bcp14>MUST</bcp14> also match that
identity to the assertion's <tt>act</tt> and the <tt>actor_token</tt>; at root establishment
neither is present, so client authentication alone identifies the root actor.</t>
        <t>A sender-constrained JWT <bcp14>MAY</bcp14> serve as both client assertion and <tt>actor_token</tt>
when it satisfies both profiles. For <xref target="RFC7523"/>, its <tt>sub</tt> is the
<tt>client_id</tt>, and the IdP <bcp14>MUST</bcp14> authorize its issuer for that client. Otherwise
the client authenticates separately.</t>
        <t>The onward ID-JAG <tt>client_id</tt> is the current actor's identifier at the target
RAS. The actor therefore needs a registration or resolvable client identity
at each target, as required by ID-JAG.</t>
        <t>Four signals identify the actor on a continuation exchange, and all four, with
the confirmed key, must agree:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Signal</th>
              <th align="left">What it establishes</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Client authentication</td>
              <td align="left">who is calling the IdP token endpoint</td>
            </tr>
            <tr>
              <td align="left">
                <tt>actor_token</tt></td>
              <td align="left">the actor vouched for by its workload-identity issuer</td>
            </tr>
            <tr>
              <td align="left">Assertion <tt>act</tt></td>
              <td align="left">the actor the Chain Authority bound to the accepted hop</td>
            </tr>
            <tr>
              <td align="left">DPoP</td>
              <td align="left">live possession of the key binding all three to this request</td>
            </tr>
          </tbody>
        </table>
        <t>The apparent redundancy is conjunctive trust: a mismatch on any one, or a key
not proven live, fails the exchange (<xref target="validation"/>, rules 9 through 11).</t>
      </section>
      <section anchor="handle-delivery">
        <name>Continuation Handle Delivery</name>
        <t>The IdP delivers the hop reference in the issued ID-JAG's
<tt>identity_continuation_handle</tt> claim (<xref target="chain-id"/>, rule 1;
<xref target="onward-id-jag"/>), not as a separate Token Exchange response parameter. Each
hop's handle is distinct and its parent reference is immutable (<xref target="chain-id"/>,
rules 1 and 8). The accepting Resource Authorization Server binds it to
authorization state (<xref target="ras-processing"/>); the current domain then surfaces it
to continuers through intra-domain chain context
(<xref target="transaction-token-context"/>).</t>
        <t>There is no advisory chain-expiry response parameter. Chain lifetime is
authoritative at the IdP (<xref target="lifecycle"/>); a deployment that needs advance
warning of expiry conveys it through authenticated task or authorization
state, an optional ID-JAG claim, or a management API, not through the
Token Exchange response.</t>
      </section>
      <section anchor="validation">
        <name>Request Validation</name>
        <t>The IdP <bcp14>MUST</bcp14> reject the request unless every rule below holds. Their order is
not significant, though one rule's input may come from another's resolution:
the tenant used to check Chain Authority trust comes from resolving the
presented handle.</t>
        <ol spacing="normal" type="1"><li>
            <t>the request contains exactly one each of <tt>grant_type</tt>, <tt>subject_token</tt>,
<tt>subject_token_type</tt>, <tt>requested_token_type</tt>, <tt>actor_token</tt>, and
<tt>actor_token_type</tt>; the <tt>grant_type</tt> is
<tt>urn:ietf:params:oauth:grant-type:token-exchange</tt>, and the
<tt>subject_token_type</tt> is
<tt>urn:ietf:params:oauth:token-type:identity-continuation</tt>;</t>
          </li>
          <li>
            <t>the request contains exactly one <tt>audience</tt> and one <tt>resource</tt> parameter,
and at most one <tt>scope</tt> and one <tt>authorization_details</tt>; <tt>scope</tt> and
<tt>authorization_details</tt> are <bcp14>OPTIONAL</bcp14>, each evaluated by rule 14 when present;</t>
          </li>
          <li>
            <t>the assertion is a JWT containing exactly one value for each required claim
defined in <xref target="assertion-claims"/>; <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> containing exactly one confirmation
method; <tt>iat</tt> and <tt>exp</tt> are JSON numbers representing NumericDate values;
and the JOSE <tt>typ</tt> header is <tt>oauth-identity-continuation+jwt</tt>;</t>
          </li>
          <li>
            <t>the assertion signature validates using a key authorized for the assertion
issuer, and the JOSE <tt>alg</tt> is an asymmetric signature algorithm on the IdP's
configured allowlist (the <tt>none</tt> algorithm <bcp14>MUST</bcp14> be rejected; see
<xref target="security-alg"/>);</t>
          </li>
          <li>
            <t>the assertion <tt>aud</tt> exactly matches the IdP's issuer identifier;</t>
          </li>
          <li>
            <t>assertion <tt>iss</tt> is trusted for the tenant, mapped to the hop's accepting RAS,
and authorized to pair with the <tt>actor_token</tt> issuer for that tenant;</t>
          </li>
          <li>
            <t>the handle identifies a RAS-accepted hop (<xref target="hop-activation"/>) on an active
chain, no ancestor
subtree is revoked, and the actor lineage that results from collapsing
consecutive same-actor entries, as the onward <tt>act</tt> will (<xref target="onward-id-jag"/>),
is within its depth bound; the bound counts lineage entries, not hops;</t>
          </li>
          <li>
            <t>the assertion does not contain a top-level <tt>sub</tt>, <tt>auth_time</tt>, <tt>acr</tt>,
<tt>amr</tt>, or <tt>sid</tt> claim, nor an <tt>audience</tt>, <tt>resource</tt>, <tt>scope</tt>,
<tt>authorization_details</tt>, or <tt>requested_token_type</tt> claim
(<xref target="assertion-claims"/>, <xref target="excluded-claims"/>);</t>
          </li>
          <li>
            <t>the assertion's <tt>act</tt> claim is present, conforms to the schema of
<xref target="assertion-claims"/>, and identifies the current actor;</t>
          </li>
          <li>
            <t>the request and actor are bound:
            </t>
            <ul spacing="normal">
              <li>
                <t>the request is authenticated as an OAuth client that is the same
entity as the current actor (<xref target="client-identity"/>);</t>
              </li>
              <li>
                <t>the <tt>actor_token_type</tt> names a token type the IdP supports, and the
<tt>actor_token</tt> has a trusted issuer for the actor's domain and tenant, is
valid for that type, is accepted, designates the IdP where applicable,
and authenticates the actor;</t>
              </li>
              <li>
                <t>the <tt>actor_token</tt> is sender-constrained to the key confirmed by the
assertion's <tt>cnf</tt> (<xref target="sender-constrained-presentation"/>);</t>
              </li>
              <li>
                <t>that actor is the actor named in <tt>act</tt>; and</t>
              </li>
              <li>
                <t>that actor is permitted by the chain's continuation authorization
(<xref target="root-establishment"/>) to continue from the presented hop;</t>
              </li>
            </ul>
          </li>
          <li>
            <t>the request proves possession of the key confirmed by <tt>cnf</tt> with a DPoP
proof <xref target="RFC9449"/> matching <tt>cnf.jkt</tt>
(<xref target="sender-constrained-presentation"/>);</t>
          </li>
          <li>
            <t><tt>jti</tt> is not yet reserved for the assertion issuer, or is RESERVED or
ISSUED under a fingerprint matching this request (permitting idempotent
retry; see the reservation rules in <xref target="validation-replay"/>); a RESERVED or
ISSUED <tt>jti</tt> under
a different fingerprint, or a FAILED <tt>jti</tt>, is rejected;</t>
          </li>
          <li>
            <t><tt>iat</tt> and <tt>exp</tt> are valid NumericDates, <tt>iat</tt> is within permitted future
clock skew (which <bcp14>SHOULD NOT</bcp14> exceed 60 seconds), <tt>exp</tt> follows <tt>iat</tt>, the
assertion is unexpired, and its lifetime does not exceed 300 seconds;</t>
          </li>
          <li>
            <t>requested audience, resource, scopes, and authorization details are
within the root-chain envelope as recorded at establishment and within
current IdP actor policy; authorization-details containment uses the
comparison rules defined for each authorization-detail type, since
<xref target="RFC9396"/> defines no generic comparison, and a detail type whose rules
the IdP does not implement is rejected;</t>
          </li>
          <li>
            <t>the requested output token type is
<tt>urn:ietf:params:oauth:token-type:id-jag</tt>; and</t>
          </li>
          <li>
            <t>the IdP can resolve, for the requested <tt>audience</tt>, both the
audience-local subject and the current actor's client identifier
(<xref target="client-identity"/>).</t>
          </li>
        </ol>
      </section>
      <section anchor="validation-replay">
        <name>Replay Reservation and Retry</name>
        <t>The reservation model gives a client idempotent recovery after a lost response
while preventing one assertion from authorizing more than one distinct request.
It fixes each assertion's outcome to a single request fingerprint.</t>
        <t>After validation, grant issuance <bcp14>MUST</bcp14> atomically reserve (<tt>iss</tt>, <tt>jti</tt>) and
bind it to a fingerprint containing audience and resource as exact strings,
scope as an order-independent set, the exact <tt>authorization_details</tt> JSON as
received after form decoding (different serializations are different
requests), the actor (its <tt>iss</tt> and <tt>sub</tt>), the confirmed key (its <tt>cnf.jkt</tt>
thumbprint), and a SHA-256 hash of the exact <tt>subject_token</tt> value after form
decoding, which binds the fingerprint to the specific assertion and its handle.</t>
        <t>The record states are RESERVED, ISSUED, and FAILED, distinct from the hop
states of <xref target="hop-activation"/>. Reservation <bcp14>MUST</bcp14> occur
only after target and policy validation. Once reserved, the tuple <bcp14>MUST NOT</bcp14> be
released for another fingerprint. An identical retry <bcp14>MUST</bcp14> return the
same previously issued grant, not a new one; a different fingerprint <bcp14>MUST</bcp14> be
rejected. Only one concurrent request can reach ISSUED; a concurrent request
under a matching fingerprint waits for or retries that result. The IdP <bcp14>MUST</bcp14>
retain
the tuple through <tt>exp</tt> plus the maximum permitted clock skew, using the same
clock used to evaluate <tt>exp</tt>. A reservation that does not reach ISSUED before
<tt>exp</tt> becomes FAILED; a FAILED tuple is terminal and requires a fresh
assertion.</t>
        <t>Replay uniqueness <bcp14>MUST</bcp14> use (<tt>iss</tt>, <tt>jti</tt>), not an unbound tenant partition;
partitioning by tenant alone would let two assertion issuers in one tenant
collide on a reused <tt>jti</tt>.</t>
        <t>The IdP needs strongly consistent replay state. The actor-chain depth bound
counts collapsed lineage entries, so an actor that repeatedly continues as
itself collapses to one entry each time and never trips that bound. To bound
such growth, the IdP <bcp14>MUST</bcp14> enforce a configured limit on fan-out, rate,
and hop count, aggregated per governing authorization (<xref target="root-establishment"/>),
and <bcp14>MUST</bcp14> prune expired or revoked hop state.</t>
        <t>After a lost response, a client <bcp14>MAY</bcp14> retry the same assertion to recover the
ISSUED result or obtain a fresh assertion. A fresh assertion may create an
equivalent grant and sibling hop but no additional authority. Application
idempotency remains out of scope. The Chain Authority <bcp14>SHOULD</bcp14> account for
retries separately from fan-out while preventing retry claims from bypassing
limits; issuance <bcp14>SHOULD</bcp14> be inexpensive relative to the exchange.</t>
      </section>
      <section anchor="validation-response">
        <name>Success and Error Responses</name>
        <t>On success, the IdP records a PENDING child (<xref target="hop-activation"/>) of the
presented hop and issues an ID-JAG containing the resolved target <tt>sub</tt> and
fresh handle. An idempotent retry (rule 12; <xref target="validation-replay"/>) instead
returns the previously issued grant unchanged, creating no new hop or handle.</t>
        <t>On failure, the IdP <bcp14>MUST</bcp14> return an OAuth error <xref target="RFC6749"/>, <xref target="RFC8693"/>. It
<bcp14>SHOULD</bcp14> use <tt>invalid_request</tt> for malformed, inconsistent, or unacceptable
tokens; <tt>invalid_dpop_proof</tt> for DPoP failure; and <tt>invalid_target</tt>,
<tt>invalid_scope</tt>, or <tt>invalid_authorization_details</tt> for requests outside the
envelope.</t>
        <t>The IdP <bcp14>MUST</bcp14> return <tt>invalid_continuation</tt> (<xref target="iana"/>) when the presented handle
cannot support this continuation, distinguishing a dead hop from the
<tt>invalid_request</tt> of a malformed request. Such a handle is terminal: retrying
it cannot succeed. Recovery requires establishing a new chain and succeeds only
where the governing authorization is still continuation-capable: a
session-anchored chain re-roots by re-authenticating the user, a grant-anchored
chain from its still-valid grant without the user; a handle disabled by
withdrawn continuation authorization cannot re-root at all. Target-specific
errors (<tt>invalid_target</tt>, <tt>invalid_scope</tt>, <tt>invalid_authorization_details</tt>)
leave the chain otherwise continuable, so a
client abandons only the current request.</t>
      </section>
      <section anchor="onward-id-jag">
        <name>Onward ID-JAG</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 pairwise subject for the target
audience, and <tt>aud_sub</tt> remains available under the base profile where the
target's native subject namespace differs. 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>
        <t>The IdP constructs <tt>act</tt> by placing the authenticated current actor atop the
presented hop's lineage; it never copies lineage from the assertion. Siblings
do not contribute. Consecutive identical actors collapse to one entry, though
the hop record remains; policy <bcp14>MAY</bcp14> limit disclosed depth, narrowing what a
target sees without changing the depth bound the IdP enforces
(<xref target="validation"/>, rule 7).</t>
        <t>The target RAS validates the ID-JAG, issues its access token, and, if
continuation-aware, binds the handle. The ID-JAG <tt>client_id</tt> is the current
actor's identifier at that RAS.</t>
      </section>
      <section anchor="metadata">
        <name>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 value indicating that the IdP accepts Identity Continuation
Assertions of the
<tt>urn:ietf:params:oauth:token-type:identity-continuation</tt> subject token type
and issues continuation-capable ID-JAGs carrying the
<tt>identity_continuation_handle</tt> claim. Default <tt>false</tt>.</t>
          </dd>
        </dl>
        <t>A Resource Authorization Server advertises separately, 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"/>, that it recognizes a
continuation-capable ID-JAG and binds the <tt>identity_continuation_handle</tt>
claim to authorization state (<xref target="ras-processing"/>). This value is distinct
from the base ID-JAG grant profile, which signals only ordinary ID-JAG
processing and no handle binding. Because a continuation-capable ID-JAG is an
ID-JAG, 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"/>). These are
distinct capabilities: the IdP signal covers continuation issuance and
acceptance; the Resource Authorization Server profile covers handle binding.</t>
        <t>Absent these signals, a party learns of support out of band or by attempting an
exchange.</t>
      </section>
    </section>
    <section anchor="ras-processing">
      <name>Continuation-Aware Resource Authorization Server</name>
      <t>Only a RAS from which continuation occurs implements this extension. A
terminal RAS processes an ordinary ID-JAG and ignores the handle; because no
later continuation uses the terminal hop, the RAS need not bind its handle.</t>
      <t>A continuation-aware Resource Authorization Server, one that implements this
extension and advertises the continuation grant profile (<xref target="metadata"/>), <bcp14>MUST</bcp14>,
on accepting a continuation-capable ID-JAG:</t>
      <ol spacing="normal" type="1"><li>
          <t>validate the ID-JAG per <xref target="I-D.ietf-oauth-identity-assertion-authz-grant"/>;</t>
        </li>
        <li>
          <t>authenticate the client presenting it;</t>
        </li>
        <li>
          <t>verify the sender constraint, that is, proof of possession of the
confirmed key;</t>
        </li>
        <li>
          <t>apply its local authorization policy;</t>
        </li>
        <li>
          <t>issue an access token sender-constrained to the confirmed key; and</t>
        </li>
        <li>
          <t>bind <tt>identity_continuation_handle</tt> to the authorization state it
establishes, recording whether continuation is permitted.</t>
        </li>
      </ol>
      <t>Binding and token issuance <bcp14>MUST</bcp14> be atomic, so no access token is issued
without its binding and no binding is recorded without a token. Repeated
redemption of one ID-JAG <bcp14>MUST</bcp14> bind to the same hop authorization record, so a
retry cannot create multiple records for one grant. The RAS <bcp14>MUST NOT</bcp14> place the
handle in an access token, external authorization claim, or protected-API
authorization input. It exposes the binding only privately within its trust
domain.</t>
      <section anchor="hop-activation">
        <name>Hop Activation</name>
        <t>A hop moves through three states. The IdP creates it PENDING. Successful RAS
binding makes it ACCEPTED. A mapped Chain Authority attests a hop only once it
is ACCEPTED, so a PENDING hop yields no assertion and reaches no continuation
exchange. A fresh assertion from the mapped Chain Authority
lets the IdP evaluate the hop as CONTINUABLE for one request; CONTINUABLE is
not stored but holds only while rules 6, 7, and 9 to 11 of <xref target="validation"/> hold
for
that request. There is no RAS callback.</t>
        <table>
          <thead>
            <tr>
              <th align="left">State</th>
              <th align="left">Where it lives</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">PENDING</td>
              <td align="left">IdP</td>
              <td align="left">the IdP issued the ID-JAG but has no acceptance evidence</td>
            </tr>
            <tr>
              <td align="left">ACCEPTED</td>
              <td align="left">RAS authorization state</td>
              <td align="left">the RAS redeemed the grant, authorized it, and bound the handle</td>
            </tr>
            <tr>
              <td align="left">CONTINUABLE</td>
              <td align="left">IdP, for one exchange</td>
              <td align="left">a mapped Chain Authority freshly attested the still-active binding</td>
            </tr>
          </tbody>
        </table>
        <t>ACCEPTED is a state of the RAS's own authorization, not an IdP transition
delivered by callback; the IdP learns of it only through a Chain Authority
attestation.</t>
        <t>The Chain Authority assertion is trusted evidence of acceptance, not
IdP-verifiable proof: the IdP has no channel back to the RAS to confirm
acceptance directly (<xref target="rationale-pull"/>), so it relies on the mapped Chain
Authority having rechecked authoritative RAS state before attesting
(<xref target="assertion-issuance"/>). A compromised mapped Chain Authority can thus attest a
hop that its Resource Authorization Server refused, or for which it denied
continuation, overriding that server's local decision; the envelope still
bounds the result, but the accept-and-continue gate is only as trustworthy as
the
mapped Chain Authority. Absent such compromise, an issued-but-rejected ID-JAG
cannot be continued because no mapped Chain Authority may attest it. A mapped
Chain Authority is mandatory; its absence fails closed. Acceptance gates
continuation but does not bound downstream authority (<xref target="ras-gate"/>).</t>
      </section>
      <section anchor="ras-gate">
        <name>A Gate, Not a Ceiling</name>
        <t>RAS acceptance is a gate, not a downstream ceiling. The IdP evaluates later
targets against the root envelope; local RAS authorization neither narrows nor
widens it. Cross-domain scope vocabularies are not generally comparable, so
RAS-derived narrowing, if ever defined, would need signed constraints and an
explicit intersection model.</t>
      </section>
      <section anchor="task-provenance">
        <name>Durable Task Authorization</name>
        <t>Scheduled continuation <bcp14>MUST</bcp14> root in durable RAS authorization, not a
scheduler-held handle: a scheduler holding the handle would turn it into a
durable, bearer-like credential outside the per-call key proof and RAS binding
that gate every other use. The scheduler holds only a task identifier; each
authenticated run derives the handle from active task state and still
requires an assertion from a mapped Chain Authority.</t>
      </section>
    </section>
    <section anchor="transaction-token-context">
      <name>Transaction Token Chain Context</name>
      <t>A trusted intra-domain carrier associates the accepted hop with the current
request. Such a carrier is server-derived, bound to the current credential,
key, and RAS authorization, non-overridable by the requester, confined to the
trust domain, and re-derived when replaced, as the rules below require. A
Transaction Token is the standardized realization of these properties; an
equivalent carrier is permitted only where all of them hold
(<xref target="security-envelope"/>).</t>
      <t>Within a trust domain, a TTS derives the handle from RAS-bound authorization
state and places it in Transaction Token context
<xref target="I-D.ietf-oauth-transaction-tokens"/>:</t>
      <sourcecode type="json"><![CDATA[
"tctx": {
  "identity_continuation": {
    "iss": "https://idp.example/",
    "tenant": "tenant-123",
    "handle": "kW4uJ8pTe2NxA6rQvD1zYs"
  }
}
]]></sourcecode>
      <t>The <tt>identity_continuation</tt> object has the following members:</t>
      <ul spacing="normal">
        <li>
          <t><tt>iss</tt> (<bcp14>REQUIRED</bcp14>): the exact IdP issuer identifier.</t>
        </li>
        <li>
          <t><tt>handle</tt> (<bcp14>REQUIRED</bcp14>): the hop's continuation handle.</t>
        </li>
        <li>
          <t><tt>tenant</tt> (<bcp14>REQUIRED</bcp14> except for a single-tenant IdP issuer, identified by
<tt>iss</tt>): the tenant.</t>
        </li>
      </ul>
      <t>A recipient <bcp14>MUST</bcp14> ignore unknown members. A malformed or repeated object <bcp14>MUST</bcp14>
be treated as carrying no chain context.</t>
      <t>The requester <bcp14>MUST NOT</bcp14> supply or override this member. Before deriving, the
protected endpoint or TTS <bcp14>MUST</bcp14> validate live proof of possession of the
confirmed key presented on the current call. It <bcp14>MUST</bcp14> then derive the member
from the authorization record bound to that verified credential, key, and RAS
state, never from a session or subject, which could otherwise bind the wrong
user's authorization state to this call. The token <bcp14>MUST
NOT</bcp14> be accepted outside its trust domain and is normally forwarded
unmodified. A replacement token <bcp14>MUST</bcp14> re-derive the member from the same
RAS-bound state.</t>
      <t>Authorized intra-domain workloads <bcp14>MAY</bcp14> read the handle. They <bcp14>MUST NOT</bcp14> place it
in access tokens, external authorization claims, responses, webhooks, errors,
or calls to non-participants, and <bcp14>SHOULD</bcp14> omit it from logs and traces. The
handle conveys no authority.</t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>This profile assumes TLS, a correct IdP subject map and root-chain envelope,
and the OAuth guidance of <xref target="RFC9700"/>. It addresses these adversaries:</t>
      <ul spacing="normal">
        <li>
          <t>an on-path attacker replaying an assertion (<xref target="security-replay"/>);</t>
        </li>
        <li>
          <t>a compromised intermediate workload broadening authority or continuing the
wrong user's chain (<xref target="security-envelope"/>);</t>
        </li>
        <li>
          <t>a compromised Chain Authority or actor-token issuer
(<xref target="security-trust-model"/>);</t>
        </li>
        <li>
          <t>a party influencing the client-to-actor mapping, which on a direct request
carrying no <tt>actor_token</tt> is the sole authenticator of the root actor
(<xref target="client-identity"/>);</t>
        </li>
        <li>
          <t>a malicious Resource Server or audience attempting cross-domain correlation
(<xref target="privacy"/>); and</t>
        </li>
        <li>
          <t>a faulty or co-located Transaction Token Service (<xref target="security-tts"/>).</t>
        </li>
      </ul>
      <section anchor="sender-constraint-and-proof-of-possession">
        <name>Sender Constraint and Proof of Possession</name>
        <t>The assertion <bcp14>MUST NOT</bcp14> be accepted as bearer <xref target="RFC7800"/>. It requires live
proof of the actor's <tt>cnf</tt> key.</t>
      </section>
      <section anchor="security-replay">
        <name>Short Lifetime and Replay</name>
        <t>The 300-second ceiling and atomic reservation of (<tt>iss</tt>, <tt>jti</tt>)
(<xref target="validation-replay"/>) limit replay to the IdP continuation exchange.</t>
      </section>
      <section anchor="security-assurance">
        <name>Root Authentication Context</name>
        <t>Authentication context comes only from the root envelope. Continuation <bcp14>MUST
NOT</bcp14> extend or strengthen it, for example by presenting a higher <tt>acr</tt> or added
<tt>amr</tt> than the user performed at root; the IdP <bcp14>MUST</bcp14> copy it unchanged into
onward ID-JAGs (<xref target="onward-id-jag"/>) when
<xref target="I-D.ietf-oauth-identity-assertion-authz-grant"/> requires those claims.</t>
      </section>
      <section anchor="security-envelope">
        <name>Envelope Enforcement and Offline Attenuation</name>
        <t>The envelope bounds every target and authority. The Chain Authority validates
any offline attenuation segment; the IdP still enforces only the envelope.
Because the assertion is target-agnostic, a permitted actor may select any
target within that ceiling.</t>
        <t>Wrong-handle association can continue the wrong user's bounded chain. The TTS
establishes the authoritative association between the request and the handle by
deriving it from the current credential's RAS-bound state; a handle a workload
supplies is not authoritative, and the Chain Authority rejects substitution.
Another carrier <bcp14>MAY</bcp14> be used only if it provides the same properties
(<xref target="transaction-token-context"/>): server-derived; bound to
the credential, key, and RAS authorization; non-overridable; domain-confined;
and re-derived when replaced.</t>
      </section>
      <section anchor="security-tts">
        <name>Trust in the Transaction Token Service</name>
        <t>A faulty TTS can splice a valid wrong-user hop into a transaction, and every
downstream check at the Chain Authority and IdP still sees a well-formed
continuation. The TTS <bcp14>MUST</bcp14> key derivation to the presented credential, not a
session or subject, and <bcp14>SHOULD</bcp14> be monitored independently.</t>
        <t>One operator <bcp14>MAY</bcp14> run the RAS, TTS, and Chain Authority. Where independent
acceptance evidence matters, deployments <bcp14>SHOULD</bcp14> separate them or audit the
binding-to-attestation path.</t>
      </section>
      <section anchor="security-chain-authority">
        <name>Trust in the Chain Authority</name>
        <t>The IdP <bcp14>MUST</bcp14> scope Chain Authority trust by issuer, keys, tenant, and mapped
RAS. Deployments <bcp14>SHOULD</bcp14> minimize that scope and monitor anomalies. Trust is
established out of band or through federation, as in <xref target="RFC7523"/>. Handle
confidentiality provides defense in depth, not authorization.</t>
      </section>
      <section anchor="security-actor-issuers">
        <name>Trust in Actor Token Issuers</name>
        <t>The IdP <bcp14>MUST</bcp14> accept actor tokens only from issuers trusted for the actor's
domain and tenant. An untrusted or out-of-scope issuer <bcp14>MUST</bcp14> be rejected even
with a valid Chain Authority assertion.</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>the Chain Authority mapped to the presented hop's accepting Resource
Authorization Server, which attests the chain-to-actor transition
(<xref target="validation"/>, rule 6);</t>
          </li>
          <li>
            <t>the workload identity issuer trusted for the current actor's trust domain,
which authenticates the actor through the <tt>actor_token</tt> (<xref target="validation"/>,
rule 10);</t>
          </li>
          <li>
            <t>live proof of possession of the confirmed key (<xref target="validation"/>, rule 11); and</t>
          </li>
          <li>
            <t>the IdP's own root-chain envelope and current-actor policy
(<xref target="validation"/>, rule 14).</t>
          </li>
        </ul>
        <t>The IdP <bcp14>MUST</bcp14> authorize Chain Authority and actor-token issuer pairings per
tenant; separate trust in each is insufficient.</t>
        <t>The anchors <bcp14>MAY</bcp14> be co-located, with this resulting blast radius:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Compromised</th>
              <th align="left">What it yields</th>
              <th align="left">What still bounds it</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Chain Authority</td>
              <td align="left">Can attest mapped hops</td>
              <td align="left">Still needs permitted actor, key proof, and envelope</td>
            </tr>
            <tr>
              <td align="left">Actor issuer</td>
              <td align="left">Can mint actor identities</td>
              <td align="left">Needs mapped CA, key proof, and envelope</td>
            </tr>
            <tr>
              <td align="left">Chain Authority + actor issuer</td>
              <td align="left">Can fabricate an actor transition</td>
              <td align="left">Still envelope-bounded</td>
            </tr>
            <tr>
              <td align="left">RAS + TTS + Chain Authority</td>
              <td align="left">Can fabricate acceptance and attestation</td>
              <td align="left">Still envelope-bounded</td>
            </tr>
          </tbody>
        </table>
        <t>No compromise listed above yields authority beyond the root-chain envelope.
Co-locating anchors trades away the defense in depth that the conjunction
otherwise provides. If the IdP is also co-located, even the envelope backstop
becomes organizational rather than protocol-separated.</t>
      </section>
      <section anchor="security-actor-chain">
        <name>Actor Chain Integrity</name>
        <t>Lineage is IdP-constructed. An assertion names only the current actor; the IdP
<bcp14>MUST</bcp14> reject any mismatch. Offline-segment actors do not enter lineage.</t>
      </section>
      <section anchor="security-alg">
        <name>Token, Type, and Algorithm Confusion</name>
        <t>The IdP <bcp14>MUST</bcp14> verify <tt>typ</tt>, reject <tt>alg=none</tt> and symmetric algorithms, and
allowlist asymmetric algorithms. It <bcp14>MUST</bcp14> select keys from trusted issuer
configuration; <tt>kid</tt> <bcp14>MAY</bcp14> select among them. It <bcp14>MUST NOT</bcp14> trust assertion
<tt>jku</tt>, <tt>x5u</tt>, embedded <tt>jwk</tt>, or other supplied key material.</t>
      </section>
    </section>
    <section anchor="privacy">
      <name>Privacy Considerations</name>
      <t>A hop's <tt>identity_continuation_handle</tt> is visible only to its ID-JAG client,
accepting Resource Authorization Server, and IdP, plus the domain's
Transaction Token Service, Chain Authority, and authorized workloads. It <bcp14>MUST
NOT</bcp14> enter an access token, external authorization claims, or protected-API
authorization input (<xref target="chain-id"/>, rule 4). A workload receiving it as
intra-domain context is a control-plane participant.</t>
      <t>Handles are opaque, high-entropy, and hop-specific (<xref target="chain-id"/>,
<xref target="chain-id-privacy"/>). Resource Authorization Servers therefore cannot use
them to correlate a user across SaaS boundaries.</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. The onward ID-JAG's <tt>act</tt> chain also names the prior actors to
the accepting RAS outright, with no correlation needed; <xref target="onward-id-jag"/> lets
policy limit the disclosed depth. Deployments <bcp14>SHOULD</bcp14> disclose handles only to
participants that continue or administer the chain. They <bcp14>MAY</bcp14> limit lineage
exposed to each audience, subject to audit requirements.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <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="validation-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:</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:</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</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
delegation chain, used to correlate a continuation to its chain
and parent hop and to resolve the per-audience subject. 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; it
<bcp14>MUST NOT</bcp14> be placed in an access token or a Resource Server's external
authorization claims (<xref target="chain-id"/>, rules 3 and 4).</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-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>
        <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>
    </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="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="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 1515?>

<section anchor="rationale">
      <name>Design Rationale</name>
      <t>This non-normative appendix records the principal design choices.</t>
      <section anchor="rationale-idjag">
        <name>Relationship to ID-JAG</name>
        <t>The assertion is the Token Exchange input: its audience is the IdP and it has
no top-level <tt>sub</tt>. The resulting ID-JAG is the target Resource Authorization
Server's grant and contains the IdP-resolved subject and, when applicable, a
continuation handle. The artifacts therefore have different issuers,
audiences, subjects, and consumers.</t>
      </section>
      <section anchor="rationale-txn">
        <name>Why Not a Transaction Token</name>
        <t>A Transaction Token <xref target="I-D.ietf-oauth-transaction-tokens"/> carries request
context within one trust domain. The assertion crosses from that domain to
the IdP, is single-use, and carries neither the target subject nor general
request context. It may be derived from Transaction Token context, but is not
a Transaction Token profile.</t>
      </section>
      <section anchor="rationale-propagation">
        <name>Why Not a Cross-Domain Propagation Token</name>
        <t>The choice follows <xref target="decision-rule"/>: a pairwise-subject boundary can be
crossed only by the IdP, which the target trusts to name the user, and IdP
exchange permits current-state and envelope checks at every hop. Direct
propagation instead fits deployments with a global subject,
shared issuer trust, and no need for mid-chain IdP revocation, such as a
single SPIFFE-style trust domain (one workload-identity namespace with no
pairwise-subject boundary to cross) (<xref target="decision-rule"/>). Delegated Authorization
<xref target="I-D.li-oauth-delegated-authorization"/>, whose client-issued tokens carry no
subject, composes with this profile as the intra-domain layer and stops where
re-issuance to a new subject begins.</t>
      </section>
      <section anchor="rationale-pull">
        <name>Alternative Topology: Resolution at the Target</name>
        <t>A pull design would have each target resolve a reference at the IdP over a
back channel <xref target="RFC7662"/>. It requires a new target-side grant and per-request
back channel. The selected push design reuses the ID-JAG grant path, adding
only handle binding at continuation-source RASes; the Chain Authority supplies
acceptance evidence. Pull remains a possible companion profile.</t>
      </section>
      <section anchor="rationale-grant-type">
        <name>Why a Signed Assertion Rather Than a Bare Grant Type</name>
        <t>The signed assertion lets the Chain Authority attest the authenticated actor,
key, accepted hop, and any intra-domain policy checks that the IdP cannot
observe. It does not authorize target or scope. Where that domain-local
attestation is unnecessary, a recipient-bound direct grant remains a possible
simplification.</t>
      </section>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <t>This non-normative appendix illustrates three deployment shapes: interactive
application chaining (<xref target="example"/>), an unattended background agent
(<xref target="example-background"/>), and a gateway with dynamically selected upstream
audiences (<xref target="example-gateway"/>).</t>
      <t>Message sequences are vertical lifelines with time flowing downward. The
payload and state blocks below them are tagged "On the wire" when they cross a
trust boundary,
"Intra-domain context" when they travel only within one trust domain, and
"Server-side state" when they are never transmitted. Continuation handles
are written H0, H1, and H2, one per hop.</t>
      <section anchor="example">
        <name>Worked Example (Same-IdP)</name>
        <t>This section walks the canonical same-IdP flow end-to-end for a single
user: ExpenseApp invokes ExpenseSaaS; ExpenseService, the workload handling
that request, calls TravelAPI to reach TravelSaaS; and TravelService, the
TravelSaaS workload that handles that call, in turn calls BookingAPI to
complete the itinerary. All parties trust one enterprise IdP at
<tt>https://idp.example/</tt>.</t>
        <t>Proof of possession uses DPoP. JWTs are shown as decoded payloads; JOSE
headers, signatures, and client authentication are omitted. The handle
crosses a trust boundary only inside an ID-JAG or Identity Continuation
Assertion and travels within a domain only as derived chain context.</t>
        <t>Participants are grouped by trust domain; all trust the IdP at
<tt>https://idp.example/</tt>. Each domain from which continuation occurs has three
logical roles: a Resource Authorization Server that binds the accepted hop, a
Transaction Token Service (TTS) that derives its chain context, and a Chain
Authority that attests continuation. A deployment may co-locate those roles.</t>
        <ul spacing="normal">
          <li>
            <t>Expense domain (<tt>expenses.example</tt>): client <tt>expense-app</tt>, workload
<tt>expense-service</tt>, and ExpenseRAS / Expense TTS / Expense CA, in front of
ExpenseAPI.</t>
          </li>
          <li>
            <t>Travel domain (<tt>travel.example</tt>): workload <tt>travel-service</tt>, and
TravelRAS / Travel TTS / Travel CA, in front of TravelAPI.</t>
          </li>
          <li>
            <t>Booking domain (<tt>booking.example</tt>): BookingRAS and BookingAPI only. It is
terminal in this chain, an ordinary ID-JAG Resource Authorization Server
that needs no continuation support (<xref target="ras-processing"/>).</t>
          </li>
          <li>
            <t>Outside the trust circle: PartnerSaaS (<tt>partner.example</tt>), reached in
<xref target="example-federation-edge"/>.</t>
          </li>
        </ul>
        <t>The user has a pairwise subject at each RAS, which only the IdP can map.
Handles are H0 at ExpenseRAS, H1 at TravelRAS, and H2 at BookingRAS.</t>
        <t>The root hop establishes the chain and the Expense domain's accepted
authorization:</t>
        <artwork><![CDATA[
 ExpenseApp        IdP          ExpenseRAS       ExpenseAPI/TTS
     |               |               |                 |
     |--ID Token---->|               |                 |
     |<-ID-JAG(H0)---|               |                 |
     |------------------ID-JAG------>|                 |
     |<-------------------AT1--------| bind H0         |
     |------------------request + AT1 + DPoP--------->|
     |               |               |<-resolve AT1----|
     |               |               |--bound H0------>|
     |               |               |    derive H0 into tctx
]]></artwork>
        <t>Each continuation repeats one exchange. ExpenseService obtains the Travel
grant before crossing the boundary:</t>
        <artwork><![CDATA[
 ExpenseService  Expense CA        IdP        TravelRAS TravelAPI/TTS
       |              |             |             |             |
       |-request H0-->|             |             |             |
       |<-assertion---|             |             |             |
       |--------------------------->|             |             |
       |     assertion + DPoP       |             |             |
       |<---------------------------| ID-JAG(H1)  |             |
       |----------------------------------------->|             |
       |                 ID-JAG                   |             |
       |<-----------------------------------------| AT2; bind H1|
       |-----------------request + AT2 + DPoP------------------>|
       |              |             |             |<-resolve AT2|
       |              |             |             |--bound H1-->|
       |              |             |             | derive into TT
]]></artwork>
        <t><xref target="example-third-hop"/> repeats the pattern from TravelSaaS to terminal
BookingRAS.</t>
        <section anchor="example-first-hop">
          <name>First Hop: Direct ID-JAG for ExpenseRAS</name>
          <t>ExpenseApp holds an ID Token for the authenticated user and exchanges it at the
IdP for an ID-JAG scoped to ExpenseRAS. The request is DPoP-bound to
ExpenseApp's key.</t>
          <t>On the wire (request):</t>
          <artwork><![CDATA[
POST /token HTTP/1.1
Host: idp.example
Content-Type: application/x-www-form-urlencoded
DPoP: <proof signed by the expense-app 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.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
actor_token=<sender-constrained expense-app credential>
actor_token_type=urn:ietf:params:oauth:token-type:jwt
]]></artwork>
          <t>The IdP resolves the ID Token's <tt>sid</tt> to the anchoring session and verifies
ExpenseApp's actor credential and DPoP key. Existing consent and enterprise
policy permit continuation to Expense, Travel, and Booking by the designated
workloads, so the IdP records this root-chain envelope:</t>
          <t>Server-side state:</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 envelope also records the governing authorization, permitted continuers,
and expiry. A deployment with unknown onward targets records an
authorization-basis ceiling instead and evaluates each target at continuation
time (<xref target="validation"/>, rule 14).</t>
          <t>The IdP creates a fresh root hop, H0, for this chain and embeds it as a
claim of the ID-JAG it is about to issue (<xref target="chain-id"/>, rule 1); the hop is
PENDING until a Resource Authorization Server accepts it (<xref target="ras-processing"/>).
The Token Exchange response carries the ID-JAG and no continuation-specific
response member; H0 travels inside the ID-JAG.</t>
          <t>The decoded ID-JAG for ExpenseRAS carries the user's ExpenseRAS-local
subject and the root hop's handle.</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",

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

  "iat": 1710000005,
  "exp": 1710000305,
  "jti": "idjag-expense-01"
}
]]></sourcecode>
        </section>
        <section anchor="example-context">
          <name>ExpenseRAS Acceptance and the Expense-Domain Chain Context</name>
          <t>ExpenseApp exchanges this ID-JAG at ExpenseRAS for an access token (AT1),
exactly as for any ID-JAG <xref target="I-D.ietf-oauth-identity-assertion-authz-grant"/>
(not shown), except that ExpenseRAS also recognizes the continuation grant
profile and processes <tt>identity_continuation_handle</tt> (<xref target="ras-processing"/>).
ExpenseRAS validates the ID-JAG, authenticates ExpenseApp, verifies the
DPoP proof, and applies its local policy; only if every check and the
access-token issuance itself succeed does it atomically bind H0 to the
authorization state behind AT1, moving the hop from PENDING to ACCEPTED. A
hop that never reaches ACCEPTED, for example one copied from an ID-JAG
that ExpenseRAS rejected, is not usable: no Chain Authority attests a hop
that its Resource Authorization Server never accepted.</t>
          <t>ExpenseRAS keeps this association in a private internal record. It is never
serialized into AT1, an external authorization claim, or anything that
ExpenseAPI's callers observe.</t>
          <t>Server-side state:</t>
          <sourcecode type="json"><![CDATA[
{
  "identity_continuation_handle": "kW4uJ8pTe2NxA6rQvD1zYs",
  "status": "ACCEPTED",
  "authorization_state": "at1-authz-2f9c",
  "client_id": "expense-app",
  "bound_at": 1710000010
}
]]></sourcecode>
          <t>ExpenseApp calls ExpenseAPI with AT1. The Expense TTS, ExpenseSaaS's own
Transaction Token Service, resolves AT1 against the record that ExpenseRAS
just created over their shared, own-domain interface (<xref target="ras-processing"/>),
derives H0 from it, and issues a local Transaction Token for
ExpenseService, the workload that will complete the request.</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 Expense TTS derives this context from AT1's authorization record; neither
ExpenseApp nor ExpenseService supplies H0. The Transaction Token remains
inside <tt>expenses.example</tt> and is normally forwarded unchanged within that
domain. A replacement token requires the TTS to re-derive the member
(<xref target="transaction-token-context"/>).</t>
        </section>
        <section anchor="example-ica">
          <name>Obtaining the Identity Continuation Assertion</name>
          <t>ExpenseService asks its own Chain Authority for an assertion covering H0.
Before issuing, Expense CA authenticates ExpenseService, verifies its key,
confirms that H0 belongs to the transaction that ExpenseService is serving,
and rechecks that ExpenseRAS's authorization remains active. The IdP's per-hop
map designates Expense CA to attest hops accepted by ExpenseRAS
(<xref target="assertion-issuance"/>, <xref target="root-establishment"/>).</t>
          <t>On the wire (decoded assertion):</t>
          <sourcecode type="json"><![CDATA[
{
  "iss": "https://ca.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>Chained Exchange for the TravelRAS ID-JAG</name>
          <t>ExpenseService presents the assertion to the IdP as the <tt>subject_token</tt>,
DPoP-bound to its own key.</t>
          <t>On the wire (request):</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=<identity-continuation-token-type>
actor_token=<sender-constrained expense-service credential>
actor_token_type=urn:ietf:params:oauth:token-type:jwt
]]></artwork>
          <t>The IdP runs the checks of <xref target="validation"/>: the DPoP key matches both the
assertion's <tt>cnf.jkt</tt> and the actor token's key confirmation; <tt>expense-service</tt>
is the
actor named in <tt>act</tt>; H0 is CONTINUABLE; and the requested TravelRAS,
TravelAPI, and <tt>trips.read</tt> values match the Travel target entry in the
root-chain envelope. The IdP does not call ExpenseRAS to confirm acceptance.
Instead, the assertion from ExpenseSaaS's mapped Chain Authority,
<tt>https://ca.expenses.example/</tt>, is the evidence that H0 reached ACCEPTED state
and is CONTINUABLE (<xref target="ras-processing"/>).</t>
          <t>The IdP resolves the user's TravelRAS pairwise subject and creates H1 as a
child of H0. The decoded ID-JAG carries H1 and the newly constructed
<tt>act</tt> chain (<xref target="onward-id-jag"/>): <tt>expense-service</tt>, authenticated at this
exchange, placed atop the root actor <tt>expense-app</tt>. <tt>travel-service</tt> has
not yet performed an exchange, so it is not part of the lineage.</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-use">
          <name>TravelRAS Acceptance and the Travel-Domain Chain Context</name>
          <t>ExpenseService exchanges the TravelRAS ID-JAG at TravelRAS for an access
token (AT2), presenting a fresh DPoP proof with the same expense-service
key. TravelRAS recognizes the continuation grant profile just as
ExpenseRAS did: it validates the ID-JAG, authenticates ExpenseService,
and, on success, atomically binds H1 to the authorization state behind
AT2, exactly as <xref target="example-context"/> describes for ExpenseRAS and H0.</t>
          <t>ExpenseService calls TravelAPI with AT2. The Travel TTS derives H1 from
that bound state and issues a local Transaction Token for TravelService,
the TravelSaaS workload that receives the request. Its chain-context member
differs from the Expense token only in the hop handle:</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>The token remains inside <tt>travel.example</tt>; H1 replaces H0 because TravelRAS,
not ExpenseRAS, is now the accepted authorization from which continuation
will occur.</t>
        </section>
        <section anchor="example-third-hop">
          <name>Third Hop: TravelService Continues to BookingRAS</name>
          <t>TravelService needs a reservation from BookingSaaS. Processing the request
whose Transaction Token carries H1, it obtains the same assertion shape as
<xref target="example-ica"/> from Travel CA, now naming H1, <tt>travel-service</tt>, and
TravelService's confirmed key.</t>
          <t>TravelService exchanges the assertion, DPoP-bound to its own key, 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
within the envelope's Booking target entry. The IdP creates a fresh hop
H2 whose immutable parent is H1 and constructs the onward <tt>act</tt> chain
(<xref target="onward-id-jag"/>): <tt>travel-service</tt>, authenticated at this exchange,
placed atop the presented hop's lineage (<tt>expense-service</tt>, then
<tt>expense-app</tt>).</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>TravelService redeems the ID-JAG at BookingRAS for an access token (AT3),
presenting a fresh DPoP proof with the same key. Because Booking is terminal,
BookingRAS follows the ordinary ID-JAG profile: it ignores H2, issues AT3, and
does not bind the hop (<xref target="ras-processing"/>). Only ExpenseRAS and TravelRAS,
the Resource Authorization Servers from which continuation occurs, implement
the binding extension. TravelService then calls BookingAPI with AT3.</t>
          <t>TravelService itself is the current-domain actor that obtains the next
ID-JAG; it does not pass the handle to a sibling workload
(<xref target="root-establishment"/>).</t>
        </section>
        <section anchor="example-federation-edge">
          <name>Reaching a Target Outside the Trust Circle</name>
          <t>Suppose TravelSaaS must also call PartnerSaaS at <tt>https://partner.example/</tt>,
whose Resource Authorization Server does not trust <tt>idp.example</tt>. The chain
cannot continue there: the IdP holds no pairwise subject for that audience
and no authorization basis covers it, so a continuation request for that
target fails (<xref target="validation"/>, rules 14 and 16; <tt>invalid_target</tt>). This is
the profile's boundary, not a deployment error: continuation serves the set
of Resource Authorization Servers that trust the common IdP.</t>
          <t>A separate identity-chaining profile can cross that boundary under a
bilateral trust agreement. For example, TravelService can present its
Transaction Token to the Travel-domain authorization server under
<xref target="I-D.fletcher-transaction-token-chaining-profile"/>, which issues a minimized
grant for PartnerSaaS. The Transaction Token and continuation handle stay in
the Travel domain; neither is sent to PartnerSaaS.</t>
        </section>
      </section>
      <section anchor="example-background">
        <name>Background Agent Example (User-Scheduled Continuation)</name>
        <t>The user is present when the task is created and absent at every run. Unlike
the interactive example, the root hop is bound to durable, platform-owned
task authorization. The Scheduler stores only an opaque task identifier;
each run derives fresh context from the active authorization
(<xref target="task-provenance"/>).</t>
        <ul spacing="normal">
          <li>
            <t>Platform domain (<tt>platform.example</tt>): workload <tt>briefing-agent</tt>, and
PlatformRAS (the platform's own TaskRAS) / Platform TTS / Platform CA,
in front of TaskAPI (<tt>https://api.platform.example/tasks</tt>);
the Scheduler is an internal platform component, holding only the task
identifier, that triggers each run.</t>
          </li>
          <li>
            <t>Calendar domain (<tt>calendar.example</tt>): CalendarRAS only, in front of
CalendarAPI. It is terminal in every run, an ordinary ID-JAG Resource
Authorization Server that needs no continuation support
(<xref target="ras-processing"/>).</t>
          </li>
          <li>
            <t>Mail domain (<tt>mail.example</tt>): MailRAS in front of MailAPI, reached only
in the dynamic-target scenario below (<xref target="example-dynamic"/>); likewise
terminal.</t>
          </li>
        </ul>
        <t>The Scheduler stores only <tt>task-123</tt>. H0 remains bound to the PlatformRAS
task authorization across runs; each run receives a fresh child of H0 for
its terminal target.</t>
        <section anchor="setup-alice-present">
          <name>Setup (Alice Present)</name>
          <t>Alice authorizes "summarize my calendar every morning." Because the task must
outlive her session, <tt>briefing-agent</tt> uses a refresh token from a
continuation-capable grant as the direct exchange's subject token. The chain
is therefore anchored to that grant, not Alice's current session
(<xref target="root-establishment"/>, <xref target="lifecycle"/>). The root ID-JAG targets the
platform's TaskRAS; the envelope records both that root target and the
Calendar target needed by the task.</t>
          <t>Server-side state (root envelope excerpt):</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 response and RAS-binding pattern match <xref target="example-first-hop"/> and
<xref target="example-context"/>; the request differs by using a refresh token to obtain a
grant-anchored chain. PlatformRAS binds H0 to the durable task authorization.</t>
          <t>PlatformRAS keys the resulting durable task authorization by its assigned
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
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
]]></artwork>
          <t>Server-side state (Scheduler):</t>
          <artwork><![CDATA[
task_id: task-123
]]></artwork>
          <t>The Scheduler never receives, stores, or transmits H0 or any user, chain, or
bearer credential;
<tt>task-123</tt> identifies a row in PlatformRAS's own durable state and means
nothing outside the platform.</t>
        </section>
        <section anchor="each-run-alice-absent">
          <name>Each Run (Alice Absent)</name>
          <t>Each run first authenticates the trigger and derives H0 from active task
state:</t>
          <artwork><![CDATA[
 Scheduler   BriefingAgent      Platform TTS
     |              |                 |
     |---trigger--->|                 | task-123
     |              |-task-123 + key->|
     |              |                 | verify key + task; derive H0
     |              |<-fresh TT(H0)---|
]]></artwork>
          <t>BriefingAgent then performs a fresh continuation to terminal CalendarRAS:</t>
          <artwork><![CDATA[
 BriefingAgent    Platform CA       IdP         CalendarRAS
       |               |             |               |
       |--request H0-->|             |               |
       |<-assertion----|             |               |
       |---------------------------->|               |
       |      assertion + DPoP       |               |
       |<----------------------------| ID-JAG(child) |
       |-------------------------------------------->|
       |                 ID-JAG                      |
       |<--------------------------------------------| access token
       |               |             |      no binding (terminal)
]]></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>; the Briefing
Agent then authenticates to the Platform TTS and proves possession of its key,
and the TTS, after confirming <tt>task-123</tt> is active and the Briefing Agent is
its designated actor, derives H0 into fresh intra-domain context
(<xref target="transaction-token-context"/>). Neither the scheduler nor the agent selects H0.</t>
          <t>Before issuing, Platform CA authenticates <tt>briefing-agent</tt>, verifies its key
and transaction, and rechecks that PlatformRAS's H0 authorization remains
active. The assertion and onward ID-JAG have the shapes shown in
<xref target="example-ica"/> and <xref target="example-chained"/>.</t>
          <t>Each run presents H0 and receives a different child. CalendarRAS is terminal,
so it issues the access token without binding that child. A later run's child
is a sibling, not a descendant, of the earlier run's child
(<xref target="chain-id"/>, <xref target="ras-processing"/>).</t>
          <t>Had this run also needed <tt>https://api.mail.example/</tt> behind
<tt>https://ras.mail.example/</tt> (<xref target="example-dynamic"/>), <tt>briefing-agent</tt> would
present H0 again for a second assertion and receive a second, independent
child for MailRAS. MailRAS is also terminal and does not bind it. The Mail
and Calendar children share H0 as their parent; neither carries the other's
lineage.</t>
        </section>
        <section anchor="example-dynamic">
          <name>A Dynamic 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>: a target nobody named when Alice created the
task. Under the target entries recorded in the setup above, a run's
continuation exchange presenting H0 for that audience fails, and the
chain is otherwise unaffected.</t>
          <t>On the wire (response):</t>
          <artwork><![CDATA[
HTTP/1.1 400 Bad Request
Content-Type: application/json

{
  "error": "invalid_target"
}
]]></artwork>
          <t>For a deployment that expects dynamic targets, the envelope's basis is
Alice's standing consent as recorded when the chain was established (for
example, a productivity read-access grant) and tenant policy, with no
enumerated targets; the IdP evaluates each dynamic target against that
recorded basis at continuation time (<xref target="validation"/>, rule 14). A scope granted
only later does not extend this chain. The same exchange succeeds only if
read access to the mail service is within Alice's standing consent and tenant
policy permits <tt>briefing-agent</tt> to reach it. A request for <tt>mail.send</tt>,
outside that consent, fails with <tt>invalid_scope</tt>.</t>
          <t>The establishment-time envelope remains the ceiling: later policy may narrow
or revoke it but cannot broaden it. A target-specific failure leaves the
chain continuable for other authorized targets.</t>
        </section>
        <section anchor="points-worth-noticing">
          <name>Points Worth Noticing</name>
          <ul spacing="normal">
            <li>
              <t>Stealing <tt>task-123</tt> reveals no handle and does not authorize a trigger.</t>
            </li>
            <li>
              <t>Stealing the internal task record exposes H0, but H0 alone is insufficient:
continuation still requires the agent key and an assertion from Platform
CA while the PlatformRAS authorization remains active.</t>
            </li>
            <li>
              <t>The ID-JAG, local task authorization, and IdP-held chain have distinct
lifetimes (<xref target="lifecycle"/>).</t>
            </li>
          </ul>
          <t>This pattern requires a user-present setup event to root the chain. Where
no such event exists (for example, an administratively mandated agent
acting for users who never authorized it), there is no delegation to
continue and this profile does not apply; such deployments need a
differently rooted authorization, such as administrative policy at the
IdP, which is out of scope for this document.</t>
        </section>
      </section>
      <section anchor="example-gateway">
        <name>Gateway Example (Dynamic Upstream Audiences)</name>
        <t>AgentApp knows the gateway audience but not the eventual upstream. The
gateway knows the upstream but holds no end-user assertion addressed to it.
This flow lets the gateway obtain an audience-specific grant without
weakening the original assertion's audience check.</t>
        <ul spacing="normal">
          <li>
            <t>AgentPlatform domain (<tt>agent.example</tt>): client <tt>agent-app</tt> only, the
confidential runtime that hosts Alice's session and roots the chain; it
has no Resource Authorization Server of its own in this example.</t>
          </li>
          <li>
            <t>Gateway domain (<tt>gateway.example</tt>): workload <tt>tool-gateway</tt>, and
GatewayRAS / Gateway TTS / Gateway CA, in front of the gateway's
own tool-invocation surface (<tt>resource=https://gateway.example/</tt>),
scoped under tenant <tt>tenant-gw-01</tt>.</t>
          </li>
          <li>
            <t>Wiki domain (<tt>wiki.example</tt>): WikiRAS only, in front of WikiAPI. It is
terminal in this chain, an ordinary ID-JAG Resource Authorization
Server that needs no continuation support (<xref target="ras-processing"/>).</t>
          </li>
        </ul>
        <t>Alice has pairwise subjects at GatewayRAS and WikiRAS, which only the IdP can
map. H0 is the root hop bound at GatewayRAS; H1 is the terminal Wiki hop.</t>
        <t>The runtime roots the chain at the gateway:</t>
        <artwork><![CDATA[
 AgentApp          IdP          GatewayRAS       GatewayAPI/TTS
     |               |               |                 |
     |--ID Token---->|               |                 |
     |<-ID-JAG(H0)---|               |                 |
     |------------------ID-JAG------>|                 |
     |<--------------gateway AT------| bind H0         |
     |------------tool request + AT + DPoP----------->|
     |               |               |<-resolve AT-----|
     |               |               |--bound H0------>|
     |               |               |    derive H0 into tctx
]]></artwork>
        <t>After resolving the tool request to Wiki, the gateway continues the chain:</t>
        <artwork><![CDATA[
 ToolGateway       Gateway CA        IdP          WikiRAS/API
      |                 |             |                 |
      |--request H0---->|             |                 |
      |<-assertion------|             |                 |
      |------------------------------>|                 |
      |       assertion + DPoP        |                 |
      |<------------------------------| ID-JAG(H1)      |
      |------------------------------------------------>|
      |                ID-JAG to WikiRAS                |
      |<------------------------------------------------| wiki AT
      |--------------------call WikiAPI with AT-------->|
      |                 |             |        no binding (terminal)
]]></artwork>
        <section anchor="root-exchange-the-runtime-roots-the-chain">
          <name>Root Exchange: The Runtime Roots the Chain</name>
          <t>AgentApp performs a direct exchange for the one audience it knows: GatewayRAS.
The eventual upstreams are not known at root time, so, unlike the worked
example whose envelope enumerated each onward target, this envelope records an
authorization-basis ceiling, Alice's standing consent and tenant policy, with
no enumerated targets; enterprise policy permits <tt>tool-gateway</tt> to continue it
(<xref target="root-establishment"/>, <xref target="validation"/>, rule 14). GatewayRAS accepts the
ID-JAG and binds H0 exactly as ExpenseRAS bound H0 in <xref target="example-context"/>.</t>
          <t>AgentApp then invokes the gateway with its access token and no continuation
input. AgentApp can read H0 in its ID-JAG, but it cannot supply or select the
handle used for this call. Gateway TTS derives H0 from the authorization
that GatewayRAS bound to the presented access token
(<xref target="transaction-token-context"/>).</t>
        </section>
        <section anchor="chained-exchange-the-gateway-continues">
          <name>Chained Exchange: The Gateway Continues</name>
          <t>Resolving the tool call, the gateway selects Wiki as the upstream, a target no
one enumerated when AgentApp rooted the chain. ToolGateway reads H0 from its
transaction context, obtains an assertion from Gateway CA, and presents it to
the IdP as in <xref target="example-chained"/>, now requesting
<tt>audience=https://ras.wiki.example/</tt>, <tt>resource=https://api.wiki.example/</tt>, and
<tt>scope=wiki.read</tt>.</t>
          <t>Because the envelope enumerates no targets, the IdP evaluates this dynamically
chosen target against the recorded basis, Alice's standing consent and tenant
policy at establishment (<xref target="validation"/>, rule 14). Wiki read access is within
that basis and enterprise policy permits <tt>tool-gateway</tt> to reach it, so the
exchange succeeds and the IdP constructs the onward lineage with <tt>tool-gateway</tt>
atop <tt>agent-app</tt>. A target hint from the gateway informs issuance limits and
logging only; the IdP, not the gateway, decides whether a target is in the
envelope.</t>
          <t>WikiRAS is terminal and redeems the resulting ID-JAG without binding H1. Each
permitted tool call repeats this exchange and creates a sibling hop under H0; a
target outside the basis fails with <tt>invalid_target</tt> as in <xref target="example-dynamic"/>.</t>
        </section>
        <section anchor="points-worth-noticing-1">
          <name>Points Worth Noticing</name>
          <ul spacing="normal">
            <li>
              <t>AgentApp alone presents Alice's root credential (the ID Token); the gateway
never holds or presents it.</t>
            </li>
            <li>
              <t>Gateway TTS, not AgentApp, selects H0 from GatewayRAS-bound state.</t>
            </li>
            <li>
              <t>The IdP evaluates every dynamically selected target against the root
envelope and constructs the gateway's actor lineage.</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="open-items">
      <name>Open Items for Working Group Discussion</name>
      <t>This non-normative appendix lists unresolved design questions.</t>
      <t>[[ To be removed before publication as an RFC ]]</t>
      <ol spacing="normal" type="1"><li>
          <t><strong>Nested own-domain <tt>act</tt> segments.</strong> Should a future version let a Chain
Authority add verified own-domain actors to <tt>act</tt>, with the leaf outermost
and the IdP deduplicating and depth-limiting the composed lineage? Or should
offline-actor audit remain in the evidence layer
(<xref target="I-D.mcguinness-oauth-actor-receipts"/>,
<xref target="I-D.mcguinness-oauth-actor-proofs"/>)?</t>
        </li>
        <li>
          <t><strong>Signed assertion versus a recipient-bound direct profile.</strong>
Could the IdP bind a continuation credential to an intended actor, actor
class, trust domain, or key and accept it with client authentication,
sender-constrained <tt>actor_token</tt>, and live key proof? Is the Chain
Authority's actor/key attestation and domain-local gate worth its added
trust configuration (<xref target="rationale-grant-type"/>)?</t>
        </li>
        <li>
          <t><strong>Pull topology.</strong> Should target-side resolution be defined as a companion
profile (<xref target="rationale-pull"/>)?</t>
        </li>
        <li>
          <t><strong>Mutual-TLS binding.</strong> Should this profile and ID-JAG add mutual-TLS
binding together (<xref target="sender-constrained-presentation"/>)?</t>
        </li>
        <li>
          <t><strong>A client establishment parameter.</strong> Should a client be able to require
or suppress chain establishment, or negotiate lifetime, depth, or
permitted continuers (<xref target="root-establishment"/>)?</t>
        </li>
        <li>
          <t><strong>Other chain-context carriers.</strong> Should this profile standardize an
alternative to Transaction Tokens that derives the handle from RAS-bound
state and is not requester-supplied or overridable? Actor-signed hop proofs
are one candidate <xref target="I-D.mcguinness-oauth-actor-proofs"/>.</t>
        </li>
        <li>
          <t><strong>Discovery.</strong> Which accepted actor-token types, issuers, proof methods,
confirmation methods, lifetime limits, endpoints, bindings, and error
capabilities should IdP metadata advertise (<xref target="metadata"/>)?</t>
        </li>
        <li>
          <t><strong>Chain Authority issuance.</strong> Should the document define an interoperable
token-endpoint-style issuance request (<xref target="assertion-issuance"/>)?  </t>
          <artwork><![CDATA[
POST /identity-continuation-assertion HTTP/1.1
DPoP: <proof>

identity_continuation_handle=<handle>
audience=https://idp.example/
]]></artwork>
          <t>
The authenticated workload and proof key would determine <tt>act</tt> and <tt>cnf</tt>.
The profile could also define errors, discovery, retry, and optional
target/resource constraints enforced by the IdP as ceilings.</t>
        </li>
        <li>
          <t><strong>Authorization-basis representation.</strong> Should the envelope expose a
testable representation of the authorization ceiling, for example:  </t>
          <sourcecode type="json"><![CDATA[
{ "targets": [ { "audience": "https://ras.travel.example/",
    "resource": "https://api.travel.example/",
    "scope": ["trips.read"] } ] }
]]></sourcecode>
          <t>
Dynamic ceilings might instead use an authorization detail <xref target="RFC9396"/>,
policy-bound intent, or immutable policy artifact. Should continuation
permission have a dedicated consent scope even though establishment can
occur without a client-requested scope?</t>
        </li>
        <li>
          <t><strong>A non-user root.</strong> Should a sibling profile root continuation in
tenant- or workload-scoped authorization while retaining this profile's
envelope, revocation, and boundary-crossing model, or is that out of
scope (<xref target="decision-rule"/>)?</t>
        </li>
      </ol>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The author thanks the authors of OAuth Identity and Authorization Chaining
Across Domains and the Identity Assertion JWT Authorization Grant, on whose work
this profile builds.</t>
    </section>
    <section numbered="false" anchor="document-history">
      <name>Document History</name>
      <t>[[ To be removed from the final specification ]]</t>
      <t>-00</t>
      <ul spacing="normal">
        <li>
          <t>Initial revision</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+S963YbV5Ym+P88RYy0Vot0AhBJybJM2q6iJdmS07qkSKcq
KzuXGQQCZFhABAoREMWUVM8yzzJP1vvbl3MJBEjKmTnda7VnupICECfOdZ99
+fa3h8Oha8t2Vuxnt55Nior+vswe1fS/1Spvy7rKDpumWPJf03qZvTxctefZ
3mgnO67fFlX25P34PK/OilsuPz1dFu+ub+aWG+dtcVYvL/ezpp04N6nHVT6n
DkyW+bQdzsdnq7KqiqYZ1jm9bFhOhuOopWFuLQ13dlyzOp2XTUP/ai8X1Maz
J8c/uGo1Py2W+25CL9p39HBTVM2q2c/a5apw1Md7Ll8WOfX1qBivltTXW+6i
Xr49W9arBX36pjjNMM56Wf5dev9qWbf1uJ7dcm+LS/rpZN9lw4z7hz9anotC
5wKflDYJ9FFZldUZPpwUs+KMG5SfDH/Lz9y7olpRL7PsJm/PMhnmrTfUXWo1
+xEP4fN5Xs7oc+7Sv5dFOx3VyzN8kS/H5/TFedsumv27d/E7fFS+K0b2s7v4
4O7psr5oirvcwl08eVa256tTejYsyd3PXSO0M6NlaNq4D/7xkbxjVNaf3fJn
PzA6b+c0hS7nucUCUt+ybLqazWT/3fpjvpxlz8c/aoO3+Huan7zSlcDuribF
oqiwvPJ9oTO/WJ3OyvG/v6U2ovGN6zm9sqqXc2rgHa/z6x8ePfjq/tf651df
7oY/9+7Znw/uPfR/PtizPx/u7OifD+/v3rc/H3xtjz38aucr/+fel/rn1/e+
fmB/3pcXPxs+5tX3cya7NTpb+Pzvw7NlXrU9D7T0eZOP+Ze8+Rv86OWzx49G
Pyxp9h/RQaiK2c/1Wb3i52njqpR5SbP37DGEQ1WM24x/PtTfZ/JAtjvakclt
8+VZEW+dmp4uJ6OqaO82i2Lc6AdYcjQ3nKK5sbQ23P11RxcdbbE0yKb5rCn4
334f8H9DLHTo3g/1qprktoOPDp//vDd6VC+LdCxeqDVZXk38OW1YVLbnBYnL
o2dHmUmZSJY+z5dvV4vsZ5IXq/ysyLbwiu3sz3sbR05ishnVeVPSRqc+8rlt
tOG7TT6f3X1HD/NfNBvLYkj/GtbNaDGZxuPf29n5crhz76oZQJ9p05bVdG3b
fml76sFDv0FpK4ZNt+M33VeyV7FxprOC1qRYrm+boYnH4WJZT8tZcdXmtN8m
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
GldLpdtbc8QNhKIyJ3PckiLwruxj9oZpN9Nkyij3AXkPvVvzI9BYDKamd8dM
XB2yLbSQ3rofo3G9q1ecg83q5GVSEcXLGdsmnBoRUYbg6MVtef9X5KFKJF5M
EMutsYD+mDGqb5Fk1Zt2Z/XmQrFAbqsMRd8/qvq48HlFE+DEq/GlIs1/4+Sa
d1pxB2icedmIfOEzyJktwrvLzLRSqwTJFtwxwYU3qYHRayw02deZsTLs7hqt
TE/qDahl2BTwqTcT/SRE3zP9qK+0o6qOiXJ3p7kmkKwJpwljmhk5B26d0koj
opxerGd93fJVl5qHAglg3wn6LzByTJQq3iMnrswp6/TRaUaUZENtm2jowt2v
SC4UbFJq+2nmRz9qOxZXmmuCs0fqHCPfuFJqlJ7OiyTrvl5vyNNzX19Z6Jjd
/lLD3JOYyEwoMLhvxh+liFLS8Dvsbj6doqeGQcQpI1eAylip2OpoS1Ra7lF7
YGmHmFJjIEnUOs436lZPc552IsRPDD2DbanHj+ys/Ezcx4evnhkARd6Cu23D
/rPqoCIQ/hwCGR9uR6d0DdL6myGxPZxPmIQ0BoCTIUQwXH2A912J0DQXU2lY
TjB/4pRGDi0CiIazc0YE4GFccSCgYS99oOXSdH4OZ1joeZ8vDI0AMIYRu4vd
Emv1jzkki+YaQ876KP05+IJ8BqWgITx3TMwWz8pqTBnHdyQt8knwqrL3LEFQ
Ss52j1tvs3sttQfYZ4I2uo7EEzly8dsxw/jpZ/p2g86zqbNXN3yt6zFw4Vw5
oZF3Tigritjb5k8vTynrD7RNEKXgH4rTMjzY7yk7iH8o07rZh2lANy1ybSFg
VoLU0SVGjW6gQMrToSCGaqsjjvlA0U9x7nqCBa9n8QkXXp3Il7jGfvvpQCxV
o3+8PiVc8e7g/vPMlglf5kFSTU2wWfzLn45evlByzkZUNv1yw9Big58zvtmH
cyBEh9ILJkH0bVcr4bz03MNo8QVwBOX4MS4eQT8c2PpjppkiOiEhphk/uY6h
+YApCtKVEhfBahlT12vmsXhKQkKludL8w8wvoGTsac/y2ZmxweTN5XyOSNE4
ehd9Dxl1PpdYr9LeoL0odsV13WcglNjiI09rhh3sHzV/j4hn8AQ1UoMjqglN
v+aSBOAxSAcuPHYJSW0IZd/xBk8wPQ6YtSBqgH0lZeOTVH15eRbOgyicq3rZ
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
nONGAgurdEVqKekAAkBBmFrU83Cr27xLmr+8lcVW/ellzPCCSs384xe0AZB8
2kdyYr/5pcHJ+llrMOPXnWJGnoPRvebDxmEW1l9C7/BYb6ZqVLwIhpoMam+0
0ylr44CEBNb5kQjOGRJrqcknxz84d6RiUBp8rEwRW802fnIcs0cMuiQ8Si4U
L9gvr5/9A2tkSbvxGlGLt/T3y0vXvyxffklnBbJiZWx6MXOoh5k0/hGl53Hu
l9cvMM7fl9pL81rPSUXxO+E4vBUTYcbzNWv3O5and21YIGE1bMpZTN1k3pNM
ymQVhF7Qpv+6Cbs20XNtxn5M8s+irHWB71yRazZQvlkvaMlEv0nlpHYjuinN
oqbm+vN7/1nLFTLt8K9uxjCfqeeIzrOi/w8cKg7x61HQkxXabW45W9yBfT0H
dh8Q3Ga8LE+LUCn5wcN7D9Fbvrtw+AW8Kj4tVNRwSa0P2UfXlvuA1oPOVbol
8ojEzR2tTtv4y2sagxTVGi2eQ6DBcy/uHjr30go19Xz3pFLW1XFyJ+H7U04M
1YI+3OVMTEGm92suqzZ/L37A957Y4CuOP8p6aFImePzlHWxAXifQfW2aqCzp
gJFNDLDmIgaBhoSbpt5IEZZsqwHJbj1VvxzUo1Myp1FJZtt7lliCLqi5Glzz
W3dGd7Zx4S9JkQGmjSbf8DLrc3LEVXM9bOaTOOSiHU6PP+tUEO5phqf+1cok
ehOfnqtlXET1p2qMxDwZDmcbHk0kPxQC0E33ZHw3cIUTiWiH2otZh81qkxb/
wzIXWz4SaBsGfxiIDMvKF6jF19+cLr+jNz5GvR2tGDErkV7DeqfcLYjqYpxo
S3//PD8jm0aq9eAWj776ATLW5wZ3vnwO7pi2bs4zFsV86rCn7Ge0TrQraNT/
IwMVy8wQS1Y/IFeWqOlqycZ2ZzR/zJez7Pn4x1VZMZPp1gKrPv73t/T5fHym
H4/IZNiWncNerRXUJzz+6OXz5y9f4Hj76sGcC+R/IJPJ0rrndV5mj3tkNgla
5mN+U5waiFy4G3+/zNVaJCpue1sPgrdX15QDT3uJfx10zSsuLvvtYxbcC5v5
w8obwnBkSUaG1LW3WoVqKHH25ZRMRxS2moGMlO18qbDji7hFtmxyGtTTwT9X
ghMtimhMkTxfTAbpMxU87EktBuXJsBsYvttcCGjz60UmQyu7ZU1NbaDWPK2F
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

-->

</rfc>
