<?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-ietf-wimse-wpt-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="WIMSE Workload-Proof-Token">WIMSE Workload Proof Token</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-wpt-02"/>
    <author fullname="Brian Campbell">
      <organization>Ping Identity</organization>
      <address>
        <email>bcampbell@pingidentity.com</email>
      </address>
    </author>
    <author fullname="Arndt Schwenkschuster">
      <organization>Defakto Security</organization>
      <address>
        <email>arndts.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2026" month="August" day="27"/>
    <area>Applications and Real-Time</area>
    <workgroup>Workload Identity in Multi System Environments</workgroup>
    <keyword>workload</keyword>
    <keyword>identity</keyword>
    <abstract>
      <?line 55?>

<t>The WIMSE architecture defines authentication and authorization for software workloads in a variety of runtime environments, from basic deployments to complex multi-service, multi-cloud, multi-tenant systems. This document specifies the Workload Proof Token (WPT), a mechanism for workloads to prove possession of the private key associated with a Workload Identity Token (WIT). The WPT is a signed JWT that binds the workload's authentication to a specific HTTP request, providing application-layer proof of possession for workload-to-workload communication. This specification is designed to work alongside the WIT credential format defined in draft-ietf-wimse-workload-creds and can be combined with other WIMSE protocols in multi-hop call chains.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://ietf-wg-wimse.github.io/draft-ietf-wimse-s2s-protocol/draft-ietf-wimse-wpt.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-wimse-wpt/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Workload Identity in Multi System Environments Working Group mailing list (<eref target="mailto:wimse@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/wimse/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/wimse/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ietf-wg-wimse/draft-ietf-wimse-s2s-protocol"/>.</t>
    </note>
  </front>
  <middle>
    <?line 59?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document defines the Workload Proof Token (WPT), a simple, protocol-independent mechanism for proving possession of the private key associated with a Workload Identity Token (WIT). The WIT, defined in <xref target="I-D.ietf-wimse-workload-creds"/>, is a credential that binds a public key to a workload identity and is designed to require proof of possession - it must not be used as a bearer token. The WPT provides that proof of possession.
The WPT's primary design goal is simplicity: it is a signed JWT that demonstrates control of the private key corresponding to the public key in the WIT. By requiring this cryptographic proof, the WPT significantly reduces the risk of credential theft and replay attacks compared to bearer token approaches.
The WPT is protocol-agnostic by design. While this specification provides detailed guidance for HTTP-based usage (including the <tt>WPT</tt> HTTP authentication scheme), the core WPT format is fundamentally a signed JWT that can be adapted to other protocols including asynchronous messaging systems, event-driven architectures, and future transport mechanisms. The JWT-based structure allows for protocol-specific extensions through additional claims while maintaining core interoperability.</t>
      <t>Key characteristics of the WPT include:</t>
      <t>Proof of Possession: Demonstrates control of the WIT's associated private key through a digital signature.
Context Binding: Binds the proof to specific message context through claims such as audience (aud) and WIT hash (wth). Other tokens in the message can also be bound (e.g., transaction tokens) to provide unified proof across different authorization contexts.
Short-Lived: Typically valid for minutes or seconds, limiting replay attack windows.
Protocol Independent: Core format is not tied to any specific transport protocol.</t>
      <t>This specification is part of the WIMSE protocol suite, which includes credential formats defined in <xref target="I-D.ietf-wimse-workload-creds"/> and follows the architectural principles in <xref target="I-D.ietf-wimse-arch"/>. The WPT provides application-layer proof of possession particularly suited for environments where transport-layer solutions are insufficient or where communication patterns span multiple protocols.
This document defines the WPT JWT format, its HTTP usage, validation requirements, and security considerations. Out of scope are the WIT credential format itself (covered in <xref target="I-D.ietf-wimse-workload-creds"/>), policy enforcement and authorization, credential issuance and lifecycle management, detailed bindings for non-HTTP protocols (to be addressed in future specifications), and alternative proof-of-possession mechanisms such as HTTP Message Signatures.</t>
    </section>
    <section anchor="wpt">
      <name>Workload Proof Token</name>
      <t>The Workload Proof Token (WPT) is a JWT that provides proof of possession of the private key associated with a Workload Identity Token (WIT). The Workload Identity Token is sent in the request as described in <xref target="I-D.ietf-wimse-workload-creds"/>. The WPT is sent in the <tt>Authorization</tt> header field (<xref section="11.6.2" sectionFormat="of" target="RFC9110"/>) of the request, using the <tt>WPT</tt> authentication scheme defined by this document.
The syntax of the credentials of the <tt>WPT</tt> authentication scheme uses the <tt>token68</tt> syntax
defined in <xref section="11.2" sectionFormat="of" target="RFC9110"/>, whose ABNF <xref target="RFC5234"/> is repeated in <xref target="wpt-scheme-abnf"/> below
for ease of reference.
As with any HTTP authentication scheme, the scheme name is case-insensitive (<xref section="11.1" sectionFormat="of" target="RFC9110"/>),
while case is significant in the credentials.</t>
      <figure anchor="wpt-scheme-abnf">
        <name>WPT Authentication Scheme ABNF</name>
        <sourcecode type="abnf"><![CDATA[
token68     = 1*( ALPHA / DIGIT /
                  "-" / "." / "_" / "~" / "+" / "/" ) *"="

credentials = "WPT" 1*SP token68
]]></sourcecode>
      </figure>
      <t>The credentials are a JWT <xref target="RFC7519"/>, whose serialization is a valid <tt>token68</tt>, so requests
can be parsed by generic HTTP authentication implementations.</t>
      <t>A WPT MUST contain the following:</t>
      <ul spacing="normal">
        <li>
          <t>in the JOSE header:
          </t>
          <ul spacing="normal">
            <li>
              <t><tt>alg</tt>: An identifier for an appropriate JWS asymmetric digital signature algorithm corresponding to
   the confirmation key in the associated WIT. The value MUST match the <tt>alg</tt> value of the <tt>jwk</tt> in the <tt>cnf</tt> claim of the WIT. See <xref target="I-D.ietf-wimse-workload-creds"/> for valid values and restrictions.</t>
            </li>
            <li>
              <t><tt>typ</tt>: the WPT is explicitly typed, as recommended in <xref section="3.11" sectionFormat="of" target="RFC8725"/>,
   using the <tt>application/wpt+jwt</tt> media type.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>in the JWT claims:
          </t>
          <ul spacing="normal">
            <li>
              <t><tt>aud</tt>: The audience SHOULD contain the HTTP target URI (<xref section="7.1" sectionFormat="of" target="RFC9110"/>) of the request
   to which the WPT is attached, without query or fragment parts. However, there may be some normalization,
  rewriting or other process that requires the audience to be set to a deployment-specific value.</t>
            </li>
            <li>
              <t><tt>exp</tt>: The expiration time of the WPT (as defined in <xref section="4.1.4" sectionFormat="of" target="RFC7519"/>). WPT lifetimes MUST be short,
   e.g., on the order of minutes or seconds.</t>
            </li>
            <li>
              <t><tt>jti</tt>: A unique identifier for the WPT. The value MUST be assigned such that there is a negligible probability that the same value will be assigned to any other WPT. Such uniqueness can be accomplished by encoding (base64url or any other suitable encoding) 128 bits of pseudorandom data.</t>
            </li>
            <li>
              <t><tt>wth</tt>: Hash of the Workload Identity Token, defined in <xref target="I-D.ietf-wimse-workload-creds"/>. The value is the base64url encoding (as defined in <xref section="2" sectionFormat="of" target="RFC7515"/>) of the
   SHA-256 hash of the bytes of the ASCII representation of the WIT's value.</t>
            </li>
            <li>
              <t><tt>tth</tt>: Hash of the Txn-Token <xref target="I-D.ietf-oauth-transaction-tokens"/>, if present in the request,
   which might convey end-user identity and/or authorization context of the request. The value MUST be the result of
   base64url encoding (as defined in <xref section="2" sectionFormat="of" target="RFC7515"/>) the SHA-256 hash of
   the bytes of the ASCII representation of the associated token's value.</t>
            </li>
            <li>
              <t><tt>oth</tt>: Hash(es) of other token(s) in the request that convey end-user identity and/or authorization context of the
   request. The value is a JSON object with a key-value pair for each such token. For each, in the absence of an
   application profile specifying details, the key corresponds to the header field name containing the token,
   and the value is the base64url encoding (as defined in <xref section="2" sectionFormat="of" target="RFC7515"/>) of the SHA-256 hash of the bytes of the ASCII representation of the header field value with any
   leading or trailing spaces removed. The header field name MUST be normalized by converting
   it to all lower case.
   Header fields occurring multiple times in the request are not supported by default.
   An application profile may specify different behavior for a key, such as
   using a different hash algorithm or means of locating the token in the request.</t>
            </li>
          </ul>
        </li>
      </ul>
      <t>To clarify: the <tt>tth</tt> and <tt>oth</tt> claims are each mandatory if the respective tokens are included in the request.</t>
      <t>The rules for using non-standard claims in WPTs are documented in <xref target="add-claims"/>.</t>
      <t>An example WPT might look like the following:</t>
      <figure anchor="example-wpt">
        <name>Example Workload Proof Token (WPT)</name>
        <sourcecode type="jwt"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

eyJhbGciOiJFZERTQSIsInR5cCI6IndwdCtqd3QifQ.eyJhdWQiOiJodHRwczovL3dvc\
mtsb2FkLmV4YW1wbGUuY29tL3BhdGgiLCJleHAiOjE3NDU1MTAwMTYsImp0aSI6Il9fY\
ndjNEVTQzNhY2MyTFRDMS1feCIsInd0aCI6Ilg5d2lQZ3EzamxTR3pBZWdIQ0doTk8xb\
EpnVWJEb0kxTWprYXQ1UUhKQjAifQ.sa5ZYHTeCx4AsurafaBJ2rrMnE7TBHBB47ZUT7\
yoiyz2lcGY5XAnpGPjPnzeRroJJiR7Nr_C5J7mexxrsHM3CQ
]]></sourcecode>
      </figure>
      <t>The decoded JOSE header of the WPT from the example above is shown here:</t>
      <figure>
        <name>Example WPT JOSE Header</name>
        <sourcecode type="json"><![CDATA[
{
  "alg": "EdDSA",
  "typ": "wpt+jwt"
}
]]></sourcecode>
      </figure>
      <t>The decoded JWT claims of the WPT from the example above are shown here:</t>
      <figure>
        <name>Example WPT Claims</name>
        <sourcecode type="json"><![CDATA[
{
  "aud": "https://workload.example.com/path",
  "exp": 1745510016,
  "jti": "__bwc4ESC3acc2LTC1-_x",
  "wth": "X9wiPgq3jlSGzAegHCGhNO1lJgUbDoI1Mjkat5QHJB0"
}
]]></sourcecode>
      </figure>
      <t>An example of an HTTP request with both the WIT and WPT from prior examples is shown below:</t>
      <figure>
        <name>Example HTTP Request with WIT and WPT</name>
        <sourcecode type="http"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

POST /path HTTP/1.1
Host: workload.example.com
Content-Type: application/json
Workload-Identity-Token: eyJhbGciOiJFUzI1NiIsImtpZCI6Ikp1bmUgNSIsInR\
5cCI6IndpdCtqd3QifQ.eyJjbmYiOnsiandrIjp7ImFsZyI6IkVkRFNBIiwiY3J2Ijoi\
RWQyNTUxOSIsImt0eSI6Ik9LUCIsIngiOiIxQ1hYdmZsTl9MVlZzSXNZWHNVdkIwM0pt\
bEdXZUNIcVFWdW91Q0Y5MmJnIn19LCJleHAiOjE3NDU1MTI1MTAsImlhdCI6MTc0NTUw\
ODkxMCwianRpIjoieC1fMUNUTDJjY2EzQ1NFNGN3Yl9sIiwic3ViIjoid2ltc2U6Ly9l\
eGFtcGxlLmNvbS9zcGVjaWZpYy13b3JrbG9hZCJ9.ohKJ50QaW8ydALJwaA0Sz4ys3hc\
N_1S-aTZBytMGc3u8QWUmn5uxUDSonoZFAfZk1Ro1kR4vE_xa7mvoE37R-Q
Authorization: WPT eyJhbGciOiJFZERTQSIsInR5cCI6IndwdCtqd3QifQ.eyJhdW\
QiOiJodHRwczovL3dvcmtsb2FkLmV4YW1wbGUuY29tL3BhdGgiLCJleHAiOjE3NDU1MT\
AwMTYsImp0aSI6Il9fYndjNEVTQzNhY2MyTFRDMS1feCIsInd0aCI6Ilg5d2lQZ3Ezam\
xTR3pBZWdIQ0doTk8xbEpnVWJEb0kxTWprYXQ1UUhKQjAifQ.sa5ZYHTeCx4AsurafaB\
J2rrMnE7TBHBB47ZUT7yoiyz2lcGY5XAnpGPjPnzeRroJJiR7Nr_C5J7mexxrsHM3CQ

{"do stuff":"please"}
]]></sourcecode>
      </figure>
      <t>To validate the WPT in the request, the recipient MUST first validate the WIT as specified in <xref section="5.1.4" sectionFormat="of" target="I-D.ietf-wimse-workload-creds"/>, then ensure the following:</t>
      <ul spacing="normal">
        <li>
          <t>There is exactly one <tt>Authorization</tt> header field in the request and it uses the <tt>WPT</tt> authentication scheme.</t>
        </li>
        <li>
          <t>The credentials of the <tt>WPT</tt> authentication scheme are a single and well-formed JWT.</t>
        </li>
        <li>
          <t>The signature algorithm in the <tt>alg</tt> JOSE header string-equal matches the <tt>alg</tt> attribute of the <tt>jwk</tt> in the <tt>cnf</tt> claim of the WIT.</t>
        </li>
        <li>
          <t>The WPT signature is valid using the public key from the confirmation claim of the WIT.</t>
        </li>
        <li>
          <t>The <tt>typ</tt> JOSE header parameter of the WPT conveys a media type of <tt>wpt+jwt</tt>.</t>
        </li>
        <li>
          <t>The <tt>aud</tt> claim of the WPT matches the target URI, or an acceptable alias or normalization thereof, of the HTTP request
 in which the WPT was received, ignoring any query and fragment parts.</t>
        </li>
        <li>
          <t>The <tt>exp</tt> claim is present and conveys a time that has not passed. WPTs with an expiration time unreasonably
 far in the future SHOULD be rejected.</t>
        </li>
        <li>
          <t>The <tt>wth</tt> claim is present and matches the hash of the token value conveyed in the <tt>Workload-Identity-Token</tt> header.</t>
        </li>
        <li>
          <t>It is RECOMMENDED to check that the value of the <tt>jti</tt> claim has not been used before in the time window in which the
 respective WPT would be considered valid.</t>
        </li>
        <li>
          <t>If presented in conjunction with a Txn-Token, the value of the <tt>tth</tt> claim matches the hash of that token's value.</t>
        </li>
        <li>
          <t>If presented in conjunction with a token conveying end-user identity or authorization context, the value of
 the <tt>oth</tt> claim matches the hash of that token's value.</t>
        </li>
        <li>
          <t>If the <tt>oth</tt> claim is present, verify the hashes of all tokens listed in the <tt>oth</tt> claim per the default behavior
 defined in <xref target="wpt"/> or as specified by an application specific profile. If the <tt>oth</tt> claim contains entries
 that are not understood by the recipient, the WPT MUST be rejected. Conversely, additional tokens not covered by
 the <tt>oth</tt> claim MUST NOT be used by the recipient to make authorization decisions.</t>
        </li>
      </ul>
      <section anchor="error-conditions">
        <name>Error Conditions</name>
        <t>Errors may occur during the processing of the WPT. If the validation fails for any reason,
such as an invalid signature, an expired validity time window, or a malformed data structure, an error is returned.
Because the WPT is conveyed with an HTTP authentication scheme, a recipient that rejects the request for a reason
related to the WPT SHOULD use the HTTP status code 401 (Unauthorized). Such a response carries a <tt>WWW-Authenticate</tt>
header field with at least one challenge, as required by <xref section="11.6.1" sectionFormat="of" target="RFC9110"/>, and a recipient that accepts
WPTs includes a challenge with the <tt>WPT</tt> scheme. This specification defines no authentication parameters
for the <tt>WPT</tt> challenge. An example of such a response header field is shown below.</t>
        <figure>
          <name>Example WPT Challenge</name>
          <sourcecode type="http"><![CDATA[
WWW-Authenticate: WPT
]]></sourcecode>
        </figure>
        <t>An HTTP status code such as 400 (Bad Request) remains appropriate for errors that are not related to the presented
credentials. Either response could include more details as per <xref target="RFC9457"/>, such as an indicator that the wrong key
material or algorithm was used.</t>
      </section>
      <section anchor="coexist">
        <name>Coexistence with Bearer Tokens</name>
        <t>The WPT occupies the <tt>Authorization</tt> header field of the request. That field is defined as
<tt>Authorization = credentials</tt> (<xref section="11.6.2" sectionFormat="of" target="RFC9110"/>); its value is a single set of credentials rather than a
comma-separated list, and a sender therefore MUST NOT generate more than one <tt>Authorization</tt> header field
(<xref section="5.3" sectionFormat="of" target="RFC9110"/>). A request that presents a WPT consequently cannot present a token with any other
authentication scheme, including the <tt>Bearer</tt> scheme (<xref section="2.1" sectionFormat="of" target="RFC6750"/>) or the <tt>Basic</tt> scheme (<xref target="RFC7617"/>).</t>
        <t>This exclusivity is intended. A workload that authenticates with a WIT and a WPT MUST NOT rely on a bearer token
presented in the same request to authenticate the calling workload, and a recipient MUST NOT use such a token to make
authorization decisions about the caller. A bearer token can be used by anyone who obtains it, so honoring one
alongside a WPT would reduce the strength of the request to that of its weakest credential and defeat the proof of
possession that the WIT and WPT provide.</t>
        <t>Tokens that convey end-user identity or authorization context rather than the identity of the calling workload are
not affected, provided that they are conveyed in their own header fields. Transaction tokens
<xref target="I-D.ietf-oauth-transaction-tokens"/> are an example: they are carried in the <tt>Txn-Token</tt> header field and are
explicitly not permitted in the <tt>Authorization</tt> header field, precisely so that the field remains available for
authenticating the call itself. Such tokens are bound to the WPT with the <tt>tth</tt> and <tt>oth</tt> claims described in
<xref target="wpt"/>. In this case a workload's
authorization policy may take into account both the sending workload's identity and the information in the context token. For example, the
identity in the WIT may be used to establish which API calls can be made and information in the context token may be used to determine
which specific resources can be accessed.</t>
        <t>The <tt>Proxy-Authorization</tt> header field (<xref section="11.7.2" sectionFormat="of" target="RFC9110"/>) is a distinct field and is unaffected by the
<tt>WPT</tt> scheme, so a workload can still authenticate to an intermediary that challenges it. Those credentials
authenticate the sender to that intermediary rather than to the target workload, are consumed by the intermediary
that issued the challenge, and are not covered by the proof of possession presented to the target workload.
The use of the <tt>WPT</tt> scheme with <tt>Proxy-Authenticate</tt> and <tt>Proxy-Authorization</tt> is out of scope for this document.</t>
      </section>
      <section anchor="add-claims">
        <name>Including Additional Claims</name>
        <t>The WPT contains JSON structures and therefore can be trivially extended by adding more claims beyond those defined in the current specification.
This, however, could result in interoperability issues, which the following rules are addressing.</t>
        <ul spacing="normal">
          <li>
            <t>To ensure interoperability in WIMSE environments, the use of Private claim names (Sec. 4.3 of <xref target="RFC7519"/>) is NOT RECOMMENDED.</t>
          </li>
          <li>
            <t>In closed environments, deployers MAY freely add claims to the WPT. Such claims SHOULD be collision-resistant, such as <tt>example.com/myclaim</tt>.</t>
          </li>
          <li>
            <t>A recipient that does not understand such claims MUST ignore them, as per Sec. 4 of <xref target="RFC7519"/>.</t>
          </li>
          <li>
            <t>Outside of closed environments, new claims MUST be registered with IANA <xref target="IANA.JWT.CLAIMS"/> before they can be used.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="workload-identity-token-and-proof-of-possession">
        <name>Workload Identity Token and Proof of Possession</name>
        <t>The Workload Identity Token (WIT) is bound to a secret cryptographic key and is always presented with a proof of possession (PoP) as described in <xref target="I-D.ietf-wimse-workload-creds"/>. The WIT is a general purpose token that can be presented in multiple contexts. The WIT and WPT are only used in the application-layer options, and both are not used in MTLS. The WIT MUST NOT be used as a bearer token. While this helps reduce the sensitivity of the token it is still possible that a token and its PoP may be captured and replayed within the PoP's lifetime. The following are some mitigations for the capture and reuse of the PoP:</t>
        <section anchor="preventing-eavesdropping-and-interception-with-tls">
          <name>Preventing Eavesdropping and Interception with TLS</name>
          <t>An attacker observing or intercepting the communication channel can view the token and its PoP and attempt to replay it to gain an advantage. In order to prevent this the
token and PoP MUST be sent over a secure, server authenticated TLS connection unless a secure channel is provided by some other mechanisms. Host name validation MUST be performed by the client.</t>
        </section>
        <section anchor="limiting-proof-of-possession-lifespan">
          <name>Limiting Proof of Possession Lifespan</name>
          <t>The PoP MUST be time limited. A PoP should only be valid over the time necessary for it to be successfully used for the purpose it is needed. This will typically be on the order of minutes.  PoPs received outside their validity time MUST be rejected.</t>
        </section>
        <section anchor="limiting-proof-of-possession-scope">
          <name>Limiting Proof of Possession Scope</name>
          <t>In order to reduce the risk of theft and replay the PoP should have a limited scope. For example, a PoP may be targeted for use with a specific workload and even a specific transaction to reduce the impact of a stolen PoP. In some cases a workload may wish to reuse a PoP for a period of time or have it accepted by multiple target workloads. A careful analysis is warranted to understand the impacts to the system if a PoP is disclosed allowing it to be presented by an attacker along with a captured WIT.</t>
        </section>
        <section anchor="replay-protection">
          <name>Replay Protection</name>
          <t>A PoP includes the <tt>jti</tt> claim that uniquely identifies it.
This claim SHOULD be used by the receiver to perform basic replay protection, within the scope of a particular sender, against tokens it has already seen.
Depending upon the design of the system it may be difficult to synchronize the replay cache across all token validators.
If an attacker can somehow influence the identity of the validator (e.g. which cluster member receives the message) then
replay protection would not be effective.</t>
        </section>
        <section anchor="avoid-logging-raw-wpt-values">
          <name>Avoid Logging Raw WPT Values</name>
          <t>Implementations MUST NOT log raw WPTs by default. Depending on the aggressiveness
of the replay protection mechinism, a WPT harvested from logs could potentially be replayed
and accepted as a legitimate proof. Implementations should therefore treat WPT values as
sensitive and avoid persisting them in logs.</t>
        </section>
        <section anchor="binding-to-tls-endpoint">
          <name>Binding to TLS Endpoint</name>
          <t>The PoP MAY be bound to a transport layer sender such as the client identity of a TLS session or TLS channel binding parameters. The mechanisms for binding are outside the scope of this specification.</t>
        </section>
        <section anchor="audience-validation">
          <name>Audience validation</name>
          <t>Validators MUST check that the audience field of the WPT is a URI or other value that is for their consumption.  In some cases when a URI is used as the audience some information, such as the authority portion, may be generated by an external requester who sees a different host name for the service than is used internally.  Validators MUST NOT use untrusted information obtained from the request to determine if the hostname belongs to an authorized authority.  Doing so could allow attackers to trick validators into accepting a WPT generated for a different receiver by sending a fabricated request. The validator MUST get the information about allowed URL authorities from a trusted source such as out-of-band configuration. The Host of the request or an "X-Forwarded-Host" header is an example of untrusted data and cannot be trusted and MUST NOT be used.</t>
        </section>
      </section>
      <section anchor="workload-identity-key-management">
        <name>Workload Identity Key Management</name>
        <t>The Workload Identity Token is signed by a private key in possession of the workload. This private key:</t>
        <ul spacing="normal">
          <li>
            <t>MUST be kept private</t>
          </li>
          <li>
            <t>MUST be individual for each Workload Identifier (see <xref target="I-D.ietf-wimse-arch"/>)</t>
          </li>
          <li>
            <t>MUST NOT be used once the Workload Identity Token is expired</t>
          </li>
          <li>
            <t>SHOULD be individual for each Workload Identity Token issued</t>
          </li>
          <li>
            <t>SHOULD not be reused for other purposes</t>
          </li>
        </ul>
      </section>
      <section anchor="middleboxes">
        <name>Middle Boxes</name>
        <t>In some deployments the Workload Identity Token and Workload Proof Token may pass through multiple systems. The communication between the systems is over TLS, but the WIT and WPT are available in the clear at each intermediary.  While the intermediary cannot modify the token or the information within the PoP they can attempt to capture and replay the token or modify the data not protected by the PoP.</t>
        <t>It is important to note that the WPT does not protect major portions of the request and response and therefore does not provide protection from an actively malicious middle box.
Deployments should perform analysis on their situation to determine if it is appropriate to trust and allow traffic to pass through a middle box.</t>
      </section>
      <section anchor="privacy-considerations">
        <name>Privacy Considerations</name>
        <t>The Workload Proof Token may contain private information such as user names or other identities. Care should be taken to prevent the disclosure of this information. The use of TLS helps protect the privacy of WITs and PoPs.</t>
        <t>The Workload Identifier present in the WPT is typically associated with a workload and not a specific user, however in some deployments the workload or the HTTP Target URI may be associated directly to a user. While these are exceptional cases a deployment should evaluate if the disclosure of a WPT can be used to track a user.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="json-web-token-claims">
        <name>JSON Web Token Claims</name>
        <t>IANA is requested to add the following entries to the "JSON Web Token Claims" registry <xref target="IANA.JWT.CLAIMS"/>:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Claim Name</th>
              <th align="left">Claim Description</th>
              <th align="left">Change Controller</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">tth</td>
              <td align="left">Transaction Token hash</td>
              <td align="left">IETF</td>
              <td align="left">RFC XXX, <xref target="wpt"/></td>
            </tr>
            <tr>
              <td align="left">wth</td>
              <td align="left">Workload Identity Token hash</td>
              <td align="left">IETF</td>
              <td align="left">RFC XXX, <xref target="wpt"/></td>
            </tr>
            <tr>
              <td align="left">oth</td>
              <td align="left">Other Tokens hashes</td>
              <td align="left">IETF</td>
              <td align="left">RFC XXX, <xref target="wpt"/></td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="media-type-registration">
        <name>Media Type Registration</name>
        <t>IANA is requested to register the following entries to the "Media Types" registry <xref target="IANA.MEDIA.TYPES"/>:</t>
        <ul spacing="normal">
          <li>
            <t>application/wpt+jwt, per <xref target="iana-wpt"/>.</t>
          </li>
        </ul>
        <section anchor="iana-wpt">
          <name>application/wpt+jwt</name>
          <t>Type name: application</t>
          <t>Subtype name: wpt+jwt</t>
          <t>Required parameters: N/A</t>
          <t>Optional parameters: N/A</t>
          <t>Encoding considerations: Encoding considerations are identical to those specified for the "application/jwt" media type. See <xref target="RFC7519"/>.</t>
          <t>Security considerations: See the Security Considerations section of RFC XXX.</t>
          <t>Interoperability considerations: N/A</t>
          <t>Published specification: RFC XXX, <xref target="wpt"/>.</t>
          <t>Applications that use this media type: Workloads that use these tokens to integrity-protect messages in the WIMSE workload-to-workload protocol.</t>
          <t>Fragment identifier considerations: N/A</t>
          <t>Additional information:</t>
          <t>Deprecated alias names for this type: N/A</t>
          <t>Magic number(s): N/A</t>
          <t>File extension(s): None</t>
          <t>Macintosh file type code(s): N/A</t>
          <t>Person &amp; email address to contact for further information:</t>
          <t>See the Authors' Addresses section of RFC XXX.</t>
          <t>Intended usage: COMMON</t>
          <t>Restrictions on usage: N/A</t>
          <t>Author: See the Authors' Addresses section of RFC XXX.</t>
          <t>Change controller: Internet Engineering Task Force (iesg@ietf.org).</t>
        </section>
      </section>
      <section anchor="hypertext-transfer-protocol-http-authentication-scheme-registration">
        <name>Hypertext Transfer Protocol (HTTP) Authentication Scheme Registration</name>
        <t>IANA is requested to register the following entry to the "Hypertext Transfer Protocol (HTTP) Authentication Scheme Registry" <xref target="IANA.HTTP.AUTHSCHEMES"/>:</t>
        <ul spacing="normal">
          <li>
            <t>Authentication Scheme Name: WPT</t>
          </li>
          <li>
            <t>Reference: RFC XXX, <xref target="wpt"/></t>
          </li>
          <li>
            <t>Notes: see reference above for an ABNF syntax of the credentials of this scheme</t>
          </li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC5234">
          <front>
            <title>Augmented BNF for Syntax Specifications: ABNF</title>
            <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker"/>
            <author fullname="P. Overell" initials="P." surname="Overell"/>
            <date month="January" year="2008"/>
            <abstract>
              <t>Internet technical specifications often need to define a formal syntax. Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications. The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power. The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges. This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="68"/>
          <seriesInfo name="RFC" value="5234"/>
          <seriesInfo name="DOI" value="10.17487/RFC5234"/>
        </reference>
        <reference anchor="RFC7515">
          <front>
            <title>JSON Web Signature (JWS)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7515"/>
          <seriesInfo name="DOI" value="10.17487/RFC7515"/>
        </reference>
        <reference anchor="RFC7517">
          <front>
            <title>JSON Web Key (JWK)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>A JSON Web Key (JWK) is a JavaScript Object Notation (JSON) data structure that represents a cryptographic key. This specification also defines a JWK Set JSON data structure that represents a set of JWKs. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries established by that specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7517"/>
          <seriesInfo name="DOI" value="10.17487/RFC7517"/>
        </reference>
        <reference anchor="RFC7518">
          <front>
            <title>JSON Web Algorithms (JWA)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>This specification registers cryptographic algorithms and identifiers to be used with the JSON Web Signature (JWS), JSON Web Encryption (JWE), and JSON Web Key (JWK) specifications. It defines several IANA registries for these identifiers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7518"/>
          <seriesInfo name="DOI" value="10.17487/RFC7518"/>
        </reference>
        <reference anchor="RFC7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7519"/>
          <seriesInfo name="DOI" value="10.17487/RFC7519"/>
        </reference>
        <reference anchor="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="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="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="I-D.ietf-wimse-workload-creds">
          <front>
            <title>WIMSE Workload Credentials</title>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <author fullname="Joseph A. Salowey" initials="J. A." surname="Salowey">
              <organization>CyberArk</organization>
            </author>
            <author fullname="Arndt Schwenkschuster" initials="A." surname="Schwenkschuster">
              <organization>Defakto Security</organization>
            </author>
            <author fullname="Yaron Sheffer" initials="Y." surname="Sheffer">
              <organization>Intuit</organization>
            </author>
            <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
              <organization>Zscaler</organization>
            </author>
            <date day="2" month="July" year="2026"/>
            <abstract>
              <t>   The WIMSE architecture defines authentication and authorization for
   software workloads in a variety of runtime environments, from the
   most basic ones up to complex multi-service, multi-cloud, multi-
   tenant deployments.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-workload-creds-02"/>
        </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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="IANA.HTTP.AUTHSCHEMES" target="https://www.iana.org/assignments/http-authschemes">
          <front>
            <title>Hypertext Transfer Protocol (HTTP) Authentication Scheme Registry</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.JOSE.ALGS" target="https://www.iana.org/assignments/jose">
          <front>
            <title>JSON Web Signature and Encryption Algorithms</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.JWT.CLAIMS" target="https://www.iana.org/assignments/jwt">
          <front>
            <title>JSON Web Token Claims</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.MEDIA.TYPES" target="https://www.iana.org/assignments/media-types">
          <front>
            <title>Media Types</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.URI.SCHEMES" target="https://www.iana.org/assignments/uri-schemes">
          <front>
            <title>Uniform Resource Identifier (URI) Schemes</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="RFC6750">
          <front>
            <title>The OAuth 2.0 Authorization Framework: Bearer Token Usage</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="D. Hardt" initials="D." surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>This specification describes how to use bearer tokens in HTTP requests to access OAuth 2.0 protected resources. Any party in possession of a bearer token (a "bearer") can use it to get access to the associated resources (without demonstrating possession of a cryptographic key). To prevent misuse, bearer tokens need to be protected from disclosure in storage and in transport. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6750"/>
          <seriesInfo name="DOI" value="10.17487/RFC6750"/>
        </reference>
        <reference anchor="RFC7617">
          <front>
            <title>The 'Basic' HTTP Authentication Scheme</title>
            <author fullname="J. Reschke" initials="J." surname="Reschke"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>This document defines the "Basic" Hypertext Transfer Protocol (HTTP) authentication scheme, which transmits credentials as user-id/ password pairs, encoded using Base64.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7617"/>
          <seriesInfo name="DOI" value="10.17487/RFC7617"/>
        </reference>
        <reference anchor="RFC9457">
          <front>
            <title>Problem Details for HTTP APIs</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="E. Wilde" initials="E." surname="Wilde"/>
            <author fullname="S. Dalal" initials="S." surname="Dalal"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>This document defines a "problem detail" to carry machine-readable details of errors in HTTP response content to avoid the need to define new error response formats for HTTP APIs.</t>
              <t>This document obsoletes RFC 7807.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9457"/>
          <seriesInfo name="DOI" value="10.17487/RFC9457"/>
        </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>
      </references>
    </references>
    <?line 407?>

<section anchor="document-history">
      <name>Document History</name>
      <t><cref>RFC Editor: please remove before publication.</cref></t>
      <section anchor="draft-ietf-wimse-wpt-02">
        <name>draft-ietf-wimse-wpt-02</name>
        <ul spacing="normal">
          <li>
            <t>Convey the WPT in the <tt>Authorization</tt> header field with a new <tt>WPT</tt> HTTP authentication scheme,
replacing the <tt>Workload-Proof-Token</tt> header field. Along with this, recommend HTTP status code 401 with a
<tt>WWW-Authenticate: WPT</tt> challenge, remove the <tt>ath</tt> claim, rework <xref target="coexist"/> since a request has at most one
<tt>Authorization</tt> header field, move the DPoP specification to the informative references, and update the examples.</t>
          </li>
          <li>
            <t>Editorial: consistent use of "proof of possession"/"PoP", with the abbreviation expanded on first use, and consistent capitalization of the defined term "Workload Identifier".</t>
          </li>
          <li>
            <t>Advise against logging proof-of-possession values (#271).</t>
          </li>
          <li>
            <t>Security Considerations formatting fixup (#217).</t>
          </li>
          <li>
            <t>Try to be more clear on how the various token hash claims are done</t>
          </li>
          <li>
            <t>Reference the WIT validation procedure in <xref target="I-D.ietf-wimse-workload-creds"/> (#290).</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-wimse-wpt-01">
        <name>draft-ietf-wimse-wpt-01</name>
        <ul spacing="normal">
          <li>
            <t>Clairify treatment of "jti" claim</t>
          </li>
          <li>
            <t>Fix Example WPT Claims to match the example WPT</t>
          </li>
          <li>
            <t>Inline the ABNF for the Workload-Proof-Token Header Field</t>
          </li>
          <li>
            <t>Add audience security considerations</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-wimse-wpt-00">
        <name>draft-ietf-wimse-wpt-00</name>
        <ul spacing="normal">
          <li>
            <t>Focus on Workload Proof Token (WPT) only.
            </t>
            <ul spacing="normal">
              <li>
                <t>Remove credential formats (WIT and WIC)</t>
              </li>
              <li>
                <t>Remove HTTP-Message-Signature profile</t>
              </li>
            </ul>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-wimse-s2s-protocol-07">
        <name>draft-ietf-wimse-s2s-protocol-07</name>
        <ul spacing="normal">
          <li>
            <t>Rework the WPT's <tt>oth</tt> claim.</t>
          </li>
          <li>
            <t>update the media types.</t>
          </li>
          <li>
            <t>Discuss extensibility of WIT and WPT.</t>
          </li>
          <li>
            <t>Clarify error handling, specifically why not HTTP 401.</t>
          </li>
          <li>
            <t>Correct the code examples.</t>
          </li>
          <li>
            <t>Add registration request content for a <tt>wimse</tt> URI scheme.</t>
          </li>
          <li>
            <t>New section on key management.</t>
          </li>
          <li>
            <t>Use of the <tt>Accept-Signature</tt> header.</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-wimse-s2s-protocol-06">
        <name>draft-ietf-wimse-s2s-protocol-06</name>
        <ul spacing="normal">
          <li>
            <t>Explicit definition of the Workload Identity Certificate.</t>
          </li>
          <li>
            <t>Definition of the validation of workload identifiers as part of workload authentication. Still work in progress.</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-wimse-s2s-protocol-05">
        <name>draft-ietf-wimse-s2s-protocol-05</name>
        <ul spacing="normal">
          <li>
            <t>Removed the entire Workload Identity section which is now covered in the Architecture document.</t>
          </li>
          <li>
            <t>Content-Digest is mandatory with HTTP-Sig.</t>
          </li>
          <li>
            <t>Some wording on extending the protocol beyond HTTP.</t>
          </li>
          <li>
            <t>IANA considerations.</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-wimse-s2s-protocol-04">
        <name>draft-ietf-wimse-s2s-protocol-04</name>
        <ul spacing="normal">
          <li>
            <t>Require <tt>cnf.jwk.alg</tt> in WIT which restricts signature algorithm of WPT or HTTP-Sig.</t>
          </li>
          <li>
            <t>Replay protection as a SHOULD for both WPT and HTTP-Sig.</t>
          </li>
          <li>
            <t>Consolidate terminology with the Architecture draft.</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-wimse-s2s-protocol-03">
        <name>draft-ietf-wimse-s2s-protocol-03</name>
        <ul spacing="normal">
          <li>
            <t>Consistently use "workload".</t>
          </li>
          <li>
            <t>Implement comments from the SPIFFE community.</t>
          </li>
          <li>
            <t>Make <tt>iss</tt> claim in WIT optional and add wording about its relation to key distribution.</t>
          </li>
          <li>
            <t>Remove <tt>iss</tt> claim from WPT.</t>
          </li>
          <li>
            <t>Make <tt>jti</tt> claim in WIT optional.</t>
          </li>
          <li>
            <t>Error handling for the application-level methods.</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-wimse-s2s-protocol-02">
        <name>draft-ietf-wimse-s2s-protocol-02</name>
        <ul spacing="normal">
          <li>
            <t>Coexistence with bearer tokens.</t>
          </li>
          <li>
            <t>Improve the architecture diagram.</t>
          </li>
          <li>
            <t>Some more ABNF.</t>
          </li>
          <li>
            <t>Clarified identifiers and URIs.</t>
          </li>
          <li>
            <t>Moved an author to acknowledgments.</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-wimse-s2s-protocol-01">
        <name>draft-ietf-wimse-s2s-protocol-01</name>
        <ul spacing="normal">
          <li>
            <t>Addressed multiple comments from Pieter.</t>
          </li>
          <li>
            <t>Clarified WIMSE identity concepts, specifically "trust domain"
and "workload identifier".</t>
          </li>
          <li>
            <t>Much more detail around mTLS, including some normative language.</t>
          </li>
          <li>
            <t>WIT (the identity token) is now included in the WPT proof of possession.</t>
          </li>
          <li>
            <t>Added a section comparing the DPoP-inspired app-level security option to
the Message Signature-based alternative.</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-wimse-s2s-protocol-00">
        <name>draft-ietf-wimse-s2s-protocol-00</name>
        <ul spacing="normal">
          <li>
            <t>Initial WG draft, an exact copy of draft-sheffer-wimse-s2s-protocol-00</t>
          </li>
          <li>
            <t>Added this document history section</t>
          </li>
        </ul>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank Pieter Kasselman for his detailed comments.</t>
      <t>We thank Daniel Feldman for his contributions to earlier versions of this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
