<?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.36 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-wimse-workload-creds-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="WIMSE Workload Credentials">WIMSE Workload Credentials</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-workload-creds-01"/>
    <author fullname="Brian Campbell">
      <organization>Ping Identity</organization>
      <address>
        <email>bcampbell@pingidentity.com</email>
      </address>
    </author>
    <author fullname="Joe Salowey">
      <organization>CyberArk</organization>
      <address>
        <email>joe@salowey.net</email>
      </address>
    </author>
    <author fullname="Arndt Schwenkschuster">
      <organization>Defakto Security</organization>
      <address>
        <email>arndts.ietf@gmail.com</email>
      </address>
    </author>
    <author fullname="Yaron Sheffer">
      <organization>Intuit</organization>
      <address>
        <email>yaronf.ietf@gmail.com</email>
      </address>
    </author>
    <author fullname="Yaroslav Rosomakho">
      <organization>Zscaler</organization>
      <address>
        <email>yrosomakho@zscaler.com</email>
      </address>
    </author>
    <date year="2026" month="May" day="05"/>
    <area>Applications and Real-Time</area>
    <workgroup>Workload Identity in Multi System Environments</workgroup>
    <keyword>workload</keyword>
    <keyword>identity</keyword>
    <abstract>
      <?line 64?>

<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.</t>
      <t>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>
    <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-workload-creds.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-wimse-workload-creds/"/>.
      </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 72?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document defines authentication and authorization in the context of interaction between two workloads.
This is the core component of the WIMSE architecture <xref target="I-D.ietf-wimse-arch"/>.
This document focuses on the credentials that carry workload identity and bind the key material to the identity. The presentation of the proof of possession of the key material is part of other documents and out of scope for this one.</t>
      <t>In this document, two credentials are defined:</t>
      <ul spacing="normal">
        <li>
          <t>The Workload Identity Token (WIT) is a JWT that represents the identity of a workload and binds a public key to that identity.</t>
        </li>
        <li>
          <t>The Workload Identity Certificate (WIC) is an X.509 certificate that represents the identity of a workload and binds a public key to that identity.</t>
        </li>
      </ul>
      <t>The Workload Identity Token is targeted for application-level protocols. The Workload Identity Certificate is targeted for transport-level protocols. This does not preclude the use of the WIT in transport-level protocols or the WIC in application-level protocols, but these are the primary intended uses.</t>
      <t>The various protocol bindings that use these credentials to authenticate workloads to each other are out of scope for this document. At the time of writing, three such protocols are defined:</t>
      <ul spacing="normal">
        <li>
          <t>Transport level authentication mutual TLS using the Workload Identity Certificate.</t>
        </li>
        <li>
          <t>Application level authentication using the Workload Identity Token in conjunction with a JWT-based proof of possession, the Workload Proof Token (WPT).</t>
        </li>
        <li>
          <t>Application level authentication using the Workload Identity Token in conjunction with HTTP Message Signatures.</t>
        </li>
      </ul>
      <section anchor="use-in-other-protocols">
        <name>Use In Other Protocols</name>
        <t>The credentials defined in this document are designed to be used in various protocols. This document does not define the protocols themselves, but rather the credentials that can be used within them. Additional protocols <bcp14>MAY</bcp14> be defined in the future that use these credentials for workload authentication.</t>
      </section>
      <section anchor="deployment-architecture-and-message-flow">
        <name>Deployment Architecture and Message Flow</name>
        <t>Independent of the transport between the workloads, we assume the following logical architecture
(numbers refer to the sequence of steps listed below):</t>
        <figure anchor="high-level-seq">
          <name>Sequence of Operations</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="368" width="352" viewBox="0 0 352 368" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,176" fill="none" stroke="black"/>
                <path d="M 8,272 L 8,352" fill="none" stroke="black"/>
                <path d="M 56,184 L 56,264" fill="none" stroke="black"/>
                <path d="M 72,224 L 72,264" fill="none" stroke="black"/>
                <path d="M 112,32 L 112,176" fill="none" stroke="black"/>
                <path d="M 112,272 L 112,352" fill="none" stroke="black"/>
                <path d="M 240,32 L 240,176" fill="none" stroke="black"/>
                <path d="M 240,272 L 240,352" fill="none" stroke="black"/>
                <path d="M 256,184 L 256,224" fill="none" stroke="black"/>
                <path d="M 272,144 L 272,176" fill="none" stroke="black"/>
                <path d="M 304,184 L 304,264" fill="none" stroke="black"/>
                <path d="M 344,32 L 344,176" fill="none" stroke="black"/>
                <path d="M 344,272 L 344,352" fill="none" stroke="black"/>
                <path d="M 8,32 L 112,32" fill="none" stroke="black"/>
                <path d="M 240,32 L 344,32" fill="none" stroke="black"/>
                <path d="M 120,62 L 232,62" fill="none" stroke="black"/>
                <path d="M 120,66 L 232,66" fill="none" stroke="black"/>
                <path d="M 120,110 L 232,110" fill="none" stroke="black"/>
                <path d="M 120,114 L 232,114" fill="none" stroke="black"/>
                <path d="M 272,144 L 344,144" fill="none" stroke="black"/>
                <path d="M 120,158 L 232,158" fill="none" stroke="black"/>
                <path d="M 120,162 L 232,162" fill="none" stroke="black"/>
                <path d="M 8,176 L 112,176" fill="none" stroke="black"/>
                <path d="M 240,176 L 344,176" fill="none" stroke="black"/>
                <path d="M 72,224 L 256,224" fill="none" stroke="black"/>
                <path d="M 8,272 L 112,272" fill="none" stroke="black"/>
                <path d="M 240,272 L 344,272" fill="none" stroke="black"/>
                <path d="M 8,352 L 112,352" fill="none" stroke="black"/>
                <path d="M 240,352 L 344,352" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="312,264 300,258.4 300,269.6" fill="black" transform="rotate(90,304,264)"/>
                <polygon class="arrowhead" points="312,184 300,178.4 300,189.6" fill="black" transform="rotate(270,304,184)"/>
                <polygon class="arrowhead" points="264,184 252,178.4 252,189.6" fill="black" transform="rotate(270,256,184)"/>
                <polygon class="arrowhead" points="240,112 228,106.4 228,117.6" fill="black" transform="rotate(0,232,112)"/>
                <polygon class="arrowhead" points="240,64 228,58.4 228,69.6" fill="black" transform="rotate(0,232,64)"/>
                <polygon class="arrowhead" points="128,160 116,154.4 116,165.6" fill="black" transform="rotate(180,120,160)"/>
                <polygon class="arrowhead" points="128,64 116,58.4 116,69.6" fill="black" transform="rotate(180,120,64)"/>
                <polygon class="arrowhead" points="80,264 68,258.4 68,269.6" fill="black" transform="rotate(90,72,264)"/>
                <polygon class="arrowhead" points="64,264 52,258.4 52,269.6" fill="black" transform="rotate(90,56,264)"/>
                <polygon class="arrowhead" points="64,184 52,178.4 52,189.6" fill="black" transform="rotate(270,56,184)"/>
                <g class="text">
                  <text x="176" y="52">(2)</text>
                  <text x="52" y="100">Workload</text>
                  <text x="96" y="100">A</text>
                  <text x="176" y="100">(3)</text>
                  <text x="284" y="100">Workload</text>
                  <text x="328" y="100">B</text>
                  <text x="176" y="148">(5)</text>
                  <text x="304" y="164">PEP</text>
                  <text x="168" y="212">(1)</text>
                  <text x="32" y="228">(1)</text>
                  <text x="328" y="228">(4)</text>
                  <text x="60" y="308">Identity</text>
                  <text x="288" y="308">PDP</text>
                  <text x="60" y="324">Server</text>
                  <text x="292" y="324">(optional)</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
+------------+               +------------+
|            |      (2)      |            |
|            |<=============>|            |
|            |               |            |
| Workload A |      (3)      | Workload B |
|            |==============>|            |
|            |               |            |
|            |      (5)      |   +--------+
|            |<==============|   |  PEP   |
+------------+               +---+--------+
      ^                        ^     ^
      |            (1)         |     |
  (1) | +----------------------+     | (4)
      | |                            |
      v v                            v
+------------+               +------------+
|            |               |            |
|  Identity  |               |    PDP     |
|   Server   |               | (optional) |
|            |               |            |
+------------+               +------------+
]]></artwork>
          </artset>
        </figure>
        <t>The Identity Server provisions credentials to each of the workloads. At least Workload A (and possibly both) must be provisioned
with a credential before the call can proceed. Details of communication with the Identity Server are out of scope
of this document, however we do describe the credential received by the workload.</t>
        <t>PEP is a Policy Enforcement Point, the component that allows the message to go through or blocks it. PDP is an optional
Policy Decision Point, which may be deployed in architectures where policy management is centralized. All details of
policy management and message authorization are out of scope of this document.</t>
        <t>The high-level message flow is as follows:</t>
        <ol spacing="normal" type="1"><li>
            <t>Workload A (and similarly, Workload B) obtains a credential from the Identity Server. This happens periodically, e.g. once every 24 hours.</t>
          </li>
          <li>
            <t>A transport connection is set up. This may already include the use of the Workload Identity Certificate with transport-level security, such as TLS.</t>
          </li>
          <li>
            <t>Workload A prepares to call Workload B. This may include adding application-level authentication information, such as the Workload Identity Token and proof of possession. Workload B authenticates Workload A.</t>
          </li>
          <li>
            <t>Workload B authorizes the call. This policy enforcement (Policy Enforcement Point, PEP) may include consulting with an external server (Policy Decision Point, PDP) when making this decision.</t>
          </li>
          <li>
            <t>Workload B returns a response to Workload A, which may be an error response or a regular one.</t>
          </li>
        </ol>
        <t>Depending on the protocol, the workload authentication may happen during step (2) at the transport-level or at step (3) at the application-level, or both.</t>
      </section>
      <section anchor="granular-auth">
        <name>Workload Identifiers and Authentication Granularity</name>
        <t>The Workload Identifier is a URI and its baseline syntax and processing requirements are defined in <xref target="WIMSE-ID"/>.
While deployments define how they assign identifiers and what the path portion means, implementations <bcp14>MUST</bcp14> enforce the URI requirements outlined in <xref section="4.1" sectionFormat="of" target="WIMSE-ID"/>.</t>
        <t>Prior to WIMSE, many use cases did not allow for fully granular authentication in containerized runtime platforms.
For instance, with mutual TLS,
there's often no clear way to map the request's external access reference
(e.g., Kubernetes Ingress path, service name, or host header)
to the SubjectAltName value in the server certificate. This means that the client could only verify
if the server certificate is valid within a trust domain, not if it's tied to a specific workload.</t>
        <t>To enable mutual and granular authentication between workloads, two things must be in place:</t>
        <ul spacing="normal">
          <li>
            <t>Each workload must know its own identifier.</t>
          </li>
          <li>
            <t>There needs to be an explicit mapping from the external handle used to access a workload (such as an Ingress path or service DNS name)
to its workload identifier.</t>
          </li>
        </ul>
        <t>Once these conditions are met, the methods described in this document can be used for the caller and callee to mutually authenticate.</t>
        <t>Implementations <bcp14>MUST</bcp14> allow for defining this mapping between the workload's access path and the workload identifier (e.g., through
callback functions). Deployments <bcp14>SHOULD</bcp14> use these features to establish a consistent set of identifiers within their environment.</t>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>All terminology in this document follows <xref target="I-D.ietf-wimse-arch"/>.</t>
      <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?>

</section>
    <section anchor="app-level">
      <name>Application Level Workload-to-Workload Authentication</name>
      <t>In many deployments communication between workloads cannot use end-to-end transport security such as TLS. For these deployment styles, this document proposes a credential that can be used at the application level.</t>
      <section anchor="to-wit">
        <name>The Workload Identity Token</name>
        <t>The Workload Identity Token (WIT) is a JWS <xref target="RFC7515"/> signed JWT <xref target="RFC7519"/> that represents the identity of a workload.
It is issued by the Identity Server and binds a public key to the workload identity. See <xref target="workload-identity-key-management"/> for security considerations.</t>
        <t>A WIT <bcp14>MUST</bcp14> contain the following content, except where noted:</t>
        <ul spacing="normal">
          <li>
            <t>in the JOSE header:
            </t>
            <ul spacing="normal">
              <li>
                <t><tt>alg</tt>: An identifier for a JWS asymmetric digital signature algorithm
   (registered algorithm identifiers are listed in the IANA JOSE Algorithms registry <xref target="IANA.JOSE.ALGS"/>). The value <tt>none</tt> <bcp14>MUST NOT</bcp14> be used.</t>
              </li>
              <li>
                <t><tt>typ</tt>: the WIT is explicitly typed, as recommended in <xref section="3.11" sectionFormat="of" target="RFC8725"/>, using the <tt>wit+jwt</tt> media type.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>in the JWT claims:
            </t>
            <ul spacing="normal">
              <li>
                <t><tt>iss</tt>: The issuer of the token, which is the Identity Server, represented by a URI. The <tt>iss</tt> claim is <bcp14>RECOMMENDED</bcp14> but optional; when present, it is particularly useful for auditing and operations (for example, identifying which Identity Server issued the WIT in logs or compliance records). See <xref target="wit-iss-note"/> for key distribution and validation context.</t>
              </li>
              <li>
                <t><tt>sub</tt>: The subject of the token, which is the identity of the workload, represented by a Workload Identifier (a URI) as defined in <xref target="WIMSE-ID"/>. <xref target="granular-auth"/> provides additional requirements associated with these identifiers, so they can be used to secure workload-to-workload communication.</t>
              </li>
              <li>
                <t><tt>exp</tt>: The expiration time of the token (as defined in <xref section="4.1.4" sectionFormat="of" target="RFC7519"/>).
WITs should be refreshed regularly, e.g. on the order of hours.</t>
              </li>
              <li>
                <t><tt>jti</tt>: A unique identifier for the token. This claim is <bcp14>OPTIONAL</bcp14>. The <tt>jti</tt> claim is frequently useful for auditing issuance of individual WITs or to revoke them, but some token generation environments do not support it.</t>
              </li>
              <li>
                <t><tt>cnf</tt>: A confirmation claim referencing the public key of the workload.
                </t>
                <ul spacing="normal">
                  <li>
                    <t><tt>jwk</tt>: Within the cnf claim, a <tt>jwk</tt> key <bcp14>MUST</bcp14> be present that contains the public key of the workload as defined in <xref section="3.2" sectionFormat="of" target="RFC7800"/>. The workload <bcp14>MUST</bcp14> prove possession of the corresponding private key when presenting the WIT to another party. As such, it <bcp14>MUST NOT</bcp14> be used as a bearer token and is not intended for use in the <tt>Authorization</tt> header.
                    </t>
                    <ul spacing="normal">
                      <li>
                        <t><tt>alg</tt>: Within the jwk object, an <tt>alg</tt> field <bcp14>MUST</bcp14> be present. Allowed values are listed in the IANA "JSON Web Signature and Encryption Algorithms" registry established by <xref target="RFC7518"/>. The presented proof <bcp14>MUST</bcp14> be produced with the algorithm specified in this field. The value <tt>none</tt> <bcp14>MUST NOT</bcp14> be used. Algorithms used in combination with symmetric keys <bcp14>MUST NOT</bcp14> be used. Also encryption algorithms <bcp14>MUST NOT</bcp14> be used as this would require additional key distribution outside of the WIT. To promote interoperability, the <tt>ES256</tt> signing algorithm <bcp14>MUST</bcp14> be supported by general purpose implementations of this document.</t>
                      </li>
                    </ul>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
        <t>As noted in <xref target="WIMSE-ID"/>, a workload identifier is a URI that includes a trust domain in the authority component.
The runtime environment often determines which
URI scheme is used, e.g. if SPIFFE is used to authenticate workloads, it mandates "spiffe" URIs.
For deployments that do not use an environment-specific scheme, the <tt>wimse</tt> URI scheme <bcp14>MAY</bcp14> be used; it is defined in <xref target="WIMSE-ID"/>, which also registers it with IANA.</t>
        <t>An example WIT might look like this:</t>
        <figure anchor="example-wit">
          <name>An example Workload Identity Token (WIT)</name>
          <sourcecode type="jwt"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

eyJhbGciOiJFUzI1NiIsImtpZCI6Ikp1bmUgNSIsInR5cCI6IndpdCtqd3QifQ.eyJjb\
mYiOnsiandrIjp7ImFsZyI6IkVkRFNBIiwiY3J2IjoiRWQyNTUxOSIsImt0eSI6Ik9LU\
CIsIngiOiIxQ1hYdmZsTl9MVlZzSXNZWHNVdkIwM0ptbEdXZUNIcVFWdW91Q0Y5MmJnI\
n19LCJleHAiOjE3NDU1MTI1MTAsImlhdCI6MTc0NTUwODkxMCwianRpIjoieC1fMUNUT\
DJjY2EzQ1NFNGN3Yl9sIiwic3ViIjoid2ltc2U6Ly9leGFtcGxlLmNvbS9zcGVjaWZpY\
y13b3JrbG9hZCJ9.6KraSQUxWdl9dxFQ3Fj6dPY0Vi88OkwFwZpAIOhLeq6AbXAnLLQg\
Op8U9UDGcBuYF3KiNv6oKQD1ZWAzrMZOJw
]]></sourcecode>
        </figure>
        <t>The decoded JOSE header of the WIT from the example above is shown here:</t>
        <figure>
          <name>Example WIT JOSE Header</name>
          <sourcecode type="json"><![CDATA[
{
  "alg": "ES256",
  "kid": "June 5",
  "typ": "wit+jwt"
}
]]></sourcecode>
        </figure>
        <t>The decoded JWT claims of the WIT from the example above are shown here:</t>
        <figure>
          <name>Example WIT Claims</name>
          <sourcecode type="json"><![CDATA[
{
  "cnf": {
    "jwk": {
      "alg": "EdDSA",
      "crv": "Ed25519",
      "kty": "OKP",
      "x": "1CXXvflN_LVVsIsYXsUvB03JmlGWeCHqQVuouCF92bg"
    }
  },
  "exp": 1745512510,
  "iat": 1745508910,
  "jti": "x-_1CTL2cca3CSE4cwb_l",
  "sub": "wimse://example.com/specific-workload"
}
]]></sourcecode>
        </figure>
        <t>The claims indicate that the example WIT:</t>
        <ul spacing="normal">
          <li>
            <t>is valid until Thu Apr 24 2025 16:35:10 GMT (represented as NumericDate <xref section="2" sectionFormat="of" target="RFC7519"/> value <tt>1745512510</tt>).</t>
          </li>
          <li>
            <t>identifies the workload to which the token was issued as <tt>wimse://example.com/specific-workload</tt>.</t>
          </li>
          <li>
            <t>has a unique identifier of <tt>x-_1CTL2cca3CSE4cwb_l</tt>.</t>
          </li>
          <li>
            <t>binds the public key represented by the <tt>jwk</tt> confirmation method to the workload <tt>wimse://example.com/specific-workload</tt>.</t>
          </li>
          <li>
            <t>requires the proof to be produced with the <tt>EdDSA</tt> signature algorithm.</t>
          </li>
        </ul>
        <t>For elucidative purposes only, the workload's key, including the private part, is shown below in JWK <xref target="RFC7517"/> format:</t>
        <figure anchor="example-caller-jwk">
          <name>Example Workload's Key</name>
          <sourcecode type="jwk"><![CDATA[
{
 "kty": "OKP",
 "crv": "Ed25519",
 "x": "1CXXvflN_LVVsIsYXsUvB03JmlGWeCHqQVuouCF92bg",
 "d": "sdLX8yCYKqo_XvGBLn-ZWeKT7llYeeQpgeCaXVxb5kY"
}
]]></sourcecode>
        </figure>
        <t>The afore-exampled WIT is signed with the private key of the Identity Server.
The public key(s) of the Identity Server need to be known to all workloads in order to verify the signature of the WIT.
The Identity Server's public key from this example is shown below in JWK <xref target="RFC7517"/> format:</t>
        <figure>
          <name>Example Identity Server Key</name>
          <sourcecode type="jwk"><![CDATA[
{
 "kty": "EC",
 "kid": "June 5",
 "crv": "P-256",
 "x": "kXqnA2Op7hgd4zRMbw0iFcc_hDxUxhojxOFVGjE2gks",
 "y": "n__VndPMR021-59UAs0b9qDTFT-EZtT6xSNs_xFskLo"
}
]]></sourcecode>
        </figure>
        <section anchor="wit-http-header">
          <name>The WIT HTTP Header</name>
          <t>A WIT is conveyed in an HTTP header field named <tt>Workload-Identity-Token</tt>.</t>
          <t>ABNF <xref target="RFC5234"/> for the value of <tt>Workload-Identity-Token</tt> header field is provided in <xref target="wit-header-abnf"/>:</t>
          <figure anchor="wit-header-abnf">
            <name>Workload-Identity-Token Header Field ABNF</name>
            <sourcecode type="abnf"><![CDATA[
ALPHA = %x41-5A / %x61-7A ; A-Z / a-z
DIGIT = %x30-39 ; 0-9
base64url = 1*(ALPHA / DIGIT / "-" / "_")
JWT =  base64url "." base64url "." base64url
WIT =  JWT
]]></sourcecode>
          </figure>
          <t>The following shows the WIT from <xref target="example-wit"/> in an example of a <tt>Workload-Identity-Token</tt> header field:</t>
          <figure>
            <name>An example Workload Identity Token HTTP Header Field</name>
            <sourcecode type="http-message"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

Workload-Identity-Token: eyJhbGciOiJFUzI1NiIsImtpZCI6Ikp1bmUgNSIsInR\
5cCI6IndpdCtqd3QifQ.eyJjbmYiOnsiandrIjp7ImFsZyI6IkVkRFNBIiwiY3J2Ijoi\
RWQyNTUxOSIsImt0eSI6Ik9LUCIsIngiOiIxQ1hYdmZsTl9MVlZzSXNZWHNVdkIwM0pt\
bEdXZUNIcVFWdW91Q0Y5MmJnIn19LCJleHAiOjE3NDU1MTI1MTAsImlhdCI6MTc0NTUw\
ODkxMCwianRpIjoieC1fMUNUTDJjY2EzQ1NFNGN3Yl9sIiwic3ViIjoid2ltc2U6Ly9l\
eGFtcGxlLmNvbS9zcGVjaWZpYy13b3JrbG9hZCJ9.6KraSQUxWdl9dxFQ3Fj6dPY0Vi8\
8OkwFwZpAIOhLeq6AbXAnLLQgOp8U9UDGcBuYF3KiNv6oKQD1ZWAzrMZOJw
]]></sourcecode>
          </figure>
          <t>Note that per <xref target="RFC9110"/>, header field names are case insensitive;
thus, <tt>Workload-Identity-Token</tt>, <tt>workload-identity-token</tt>, <tt>WORKLOAD-IDENTITY-TOKEN</tt>,
etc., are all valid and equivalent header field names. However, case is significant in the header field value.</t>
        </section>
        <section anchor="add-claims">
          <name>Including Additional Claims</name>
          <t>The WIT 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 <bcp14>NOT RECOMMENDED</bcp14>.</t>
            </li>
            <li>
              <t>In closed environments, deployers <bcp14>MAY</bcp14> freely add claims to the WIT. Such claims <bcp14>SHOULD</bcp14> be collision-resistant, such as <tt>example.com/myclaim</tt>.</t>
            </li>
            <li>
              <t>A recipient that does not understand such claims <bcp14>MUST</bcp14> ignore them, as per Sec. 4 of <xref target="RFC7519"/>.</t>
            </li>
            <li>
              <t>Outside of closed environments, new claims <bcp14>MUST</bcp14> be registered with IANA <xref target="IANA.JWT.CLAIMS"/> before they can be used.</t>
            </li>
          </ul>
        </section>
        <section anchor="wit-iss-note">
          <name>A note on <tt>iss</tt> claim and key distribution</name>
          <t>It is <bcp14>RECOMMENDED</bcp14> that the WIT carries an <tt>iss</tt> claim, including for the auditing and operational uses described above. Validators are not required to use <tt>iss</tt> when validating the WIT or establishing the workload identity: the trust domain and workload identity are carried in the mandatory <tt>sub</tt> claim (<xref target="WIMSE-ID"/>). Implementations <bcp14>MAY</bcp14> include the <tt>iss</tt> claim in the form of a <tt>https</tt> URL to facilitate key distribution via mechanisms like the <tt>jwks_uri</tt> from <xref target="RFC8414"/>; alternative key distribution methods may use only the trust domain from the <tt>sub</tt> claim.</t>
        </section>
      </section>
      <section anchor="error-conditions">
        <name>Error Conditions</name>
        <t>Errors may occur during the processing of the WIT. If the WIT validation fails for any reason,
such as an invalid signature, an expired validity time window, or a malformed data structure, an error is returned. Typically,
this will be in response to an API call, so an HTTP status code such as 400 (Bad Request) is appropriate. This response could
include more details as per <xref target="RFC9457"/>, such as an indicator that the wrong key material or algorithm was used.  The use of HTTP
status code 401 is <bcp14>NOT RECOMMENDED</bcp14> for this purpose because it requires a WWW-Authenticate with acceptable http auth mechanisms in
the error response and an associated Authorization header in the subsequent request. The use of these headers for the WIT is not compatible
with this specification.</t>
      </section>
      <section anchor="coexist">
        <name>Coexistence with JWT Bearer Tokens</name>
        <t>The WIT defines new HTTP headers. It can therefore be presented along with existing headers used for JWT bearer tokens. This
property allows for transition from mechanisms using identity tokens based on bearer JWTs to proof of possession based WITs.
A workload may implement a policy that accepts both bearer tokens and WITs during a transition period. This policy may be configurable
per-caller to allow the workload to reject bearer tokens from callers that support WITs. Once a deployment fully supports WITs, then the use of
bearer tokens for identity can be disabled through policy.  Implementations should be careful when implementing such a transition strategy,
since the decision which token to prefer is made when the caller's identity has still not been authenticated, and needs to be revalidated following the authentication step.</t>
        <t>The WIT can also coexist with tokens used to establish security context, such as transaction tokens <xref target="I-D.ietf-oauth-transaction-tokens"/>. 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>
      </section>
    </section>
    <section anchor="transport-level">
      <name>Transport Level Workload-to-Workload Authentication</name>
      <t>As noted in the introduction, for many deployments, transport-level protection of application traffic is ideal.</t>
      <section anchor="to-wic">
        <name>The Workload Identity Certificate</name>
        <t>The Workload Identity Certificate is an X.509 certificate. The workload identity <bcp14>MUST</bcp14> be encoded in a SubjectAltName extension of type URI. There <bcp14>MUST</bcp14> be only one SubjectAltName extension of type URI in a Workload Identity Certificate. If the workload will act as a TLS server for clients that do not understand workload identities it is <bcp14>RECOMMENDED</bcp14> that the Workload Identity Certificate contain a SubjectAltName of type DNSName with the appropriate DNS names for the server. The certificate <bcp14>MAY</bcp14> contain SubjectAltName extensions of other types.</t>
      </section>
      <section anchor="client-name">
        <name>Client Authorization Using the Workload Identity</name>
        <t>The server application retrieves the workload identifier from the client certificate subjectAltName. The identifier is used in authorization, accounting and auditing.
For example, the full workload identifier may be matched against ACLs to authorize actions requested by the peer and the identifier may be included in log messages to associate actions to the client workload for audit purposes.
A deployment may specify other authorization policies based on the specific details of how the workload identifier is constructed. The path portion of the workload identifier <bcp14>MUST</bcp14> always be considered in the scope of the trust domain.
See <xref target="granular-auth"/> on additional security implications of workload identifiers.</t>
      </section>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t><cref>Note to RFC Editor: please remove this section, as well as the reference to RFC 7942, before publication.</cref>
This section records the status of known implementations of the protocol defined by this specification at the time of posting of this Internet-Draft, and is based on a proposal described in <xref target="RFC7942"/>. The description of implementations in this section is intended to assist the IETF in its decision processes in progressing drafts to RFCs.  Please note that the listing of any individual implementation here does not imply endorsement by the IETF.  Furthermore, no effort has been spent to verify the information presented here that was supplied by IETF contributors. This is not intended as, and must not be construed to be, a catalog of available implementations or their features.  Readers are advised to note that other implementations may exist.</t>
      <t>According to RFC 7942, "this will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.  It is up to the individual working groups to use this information as they see fit".</t>
      <t>SPIFFE (Standard)</t>
      <ul spacing="normal">
        <li>
          <t>Organization: CNCF</t>
        </li>
        <li>
          <t>Maturity:
          </t>
          <ul spacing="normal">
            <li>
              <t>Workload Identity Certificate: fully compatible with the X509-SVID and widely used.</t>
            </li>
            <li>
              <t>Workload Identity Token: beta</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Coverage: Workload Identity Certificate, WIT</t>
        </li>
        <li>
          <t>Contact: <eref target="https://github.com/spiffe/spiffe/tree/main/community/sig-spec">SPIFFE sig-spec community</eref></t>
        </li>
      </ul>
      <t>Defakto Security</t>
      <ul spacing="normal">
        <li>
          <t>Organization: Defakto Security (prior SPIRL)</t>
        </li>
        <li>
          <t>Maturity:
          </t>
          <ul spacing="normal">
            <li>
              <t>Workload Identity Certificate: production</t>
            </li>
            <li>
              <t>Workload Identity Token: alpha</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Coverage: Workload Identity Certificate, WIT</t>
        </li>
        <li>
          <t>Contact: arndt@defakto.security</t>
        </li>
      </ul>
      <t>Teleport - Machine &amp; Workload Identity</t>
      <ul spacing="normal">
        <li>
          <t>Organization: Teleport</t>
        </li>
        <li>
          <t>Maturity:
          </t>
          <ul spacing="normal">
            <li>
              <t>Workload Identity Certificate: production</t>
            </li>
            <li>
              <t>Workload Identity Token: research</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Coverage: Workload Identity Certificate</t>
        </li>
        <li>
          <t>Contact: noah@goteleport.com</t>
        </li>
      </ul>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="workload-identity">
        <name>Workload Identity</name>
        <t>Workload Identifiers (<xref target="WIMSE-ID"/>) are scoped to a trust domain (the URI authority component) and <bcp14>MUST</bcp14> be interpreted in that trust domain context. Using a Workload Identifier without taking into account the trust domain could allow one domain to issue tokens to spoof identities in another domain. Consumers <bcp14>MUST</bcp14> bind each trust domain to an authorized issuer (or set of issuers) and to the corresponding cryptographic trust anchors used to validate credentials from that domain (for example using a JWKS or an X.509 certificate chain). The mapping from trust domain to authorized issuers and trust anchors <bcp14>MUST</bcp14> be distributed to consumers via a secure out-of-band mechanism.</t>
        <t>When a deployment uses the <tt>iss</tt> claim for key distribution as described in <xref target="wit-iss-note"/>, validators <bcp14>MUST</bcp14> enforce an allowlist of accepted issuers. Absent such a restriction, any entity could stand up an issuer, present a WIT with that issuer's <tt>iss</tt> value, and have it accepted by a validator that fetches and trusts the corresponding key material without verifying the issuer's legitimacy.</t>
      </section>
      <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 as described in <xref target="to-wit"/>. The WIT is a general purpose token that can be presented in multiple contexts. The WIT and its PoP are only used in the application-level options, and both are not used in MTLS. The WIT <bcp14>MUST NOT</bcp14> be used as a bearer token. While this helps reduce the sensitivity of the token it is still possible that a token and its proof of possession may be captured and replayed within the PoP's lifetime. The following are some mitigations for the capture and reuse of the proof of possession (PoP):</t>
        <ul spacing="normal">
          <li>
            <t>Preventing Eavesdropping and Interception with TLS</t>
          </li>
        </ul>
        <t>An attacker observing or intercepting the communication channel can view the token and its proof of possession and attempt to replay it to gain an advantage. In order to prevent this the
token and proof of possession <bcp14>MUST</bcp14> be sent over a secure, server authenticated TLS connection unless a secure channel is provided by some other mechanisms.</t>
        <ul spacing="normal">
          <li>
            <t>Limiting Proof of Possession Lifespan</t>
          </li>
        </ul>
        <t>The proof of possession <bcp14>MUST</bcp14> 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 <bcp14>MUST</bcp14> be rejected.</t>
        <ul spacing="normal">
          <li>
            <t>Limiting Proof of Possession Scope</t>
          </li>
        </ul>
        <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>
        <ul spacing="normal">
          <li>
            <t>Replay Protection</t>
          </li>
        </ul>
        <t>Proof of possession mechanisms should include replay protection to prevent reuse of a captured PoP. Without it an attacker can replay a captured PoP within its validity period.</t>
        <ul spacing="normal">
          <li>
            <t>Binding to TLS Endpoint</t>
          </li>
        </ul>
        <t>The POP <bcp14>MAY</bcp14> 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="workload-identity-key-management">
        <name>Workload Identity Key Management</name>
        <t>Both the Workload Identity Token and the Workload Identity Certificate carry a public key. The corresponding private key:</t>
        <ul spacing="normal">
          <li>
            <t><bcp14>MUST</bcp14> be kept private</t>
          </li>
          <li>
            <t><bcp14>MUST</bcp14> be bound to a single Workload Identifier (<xref target="WIMSE-ID"/>)</t>
          </li>
          <li>
            <t><bcp14>MUST NOT</bcp14> be used once the credential is expired</t>
          </li>
          <li>
            <t><bcp14>SHOULD</bcp14> be re-generated for each new Workload Identity Token or Certificate.</t>
          </li>
        </ul>
      </section>
      <section anchor="middleboxes">
        <name>Middle Boxes</name>
        <t>In some deployments the Workload Identity Token and proof of possession may pass through multiple systems. The communication between the systems is over TLS, but the token and PoP 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>Mitigations listed in <xref target="app-level"/> can be used to provide some protection from middle boxes.</t>
        <t>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>WITs and the proofs of possession 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 proofs of possession.</t>
        <t>WITs and certificates with workload identifiers are typically associated with a workload and not a specific user, however in some deployments the workload may be associated directly to a user. While these are exceptional cases a deployment should evaluate if the disclosure of WITs or certificates can be used to track a user.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <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/wit+jwt, per <xref target="iana-wit"/>.</t>
          </li>
        </ul>
        <section anchor="iana-wit">
          <name>application/wit+jwt</name>
          <t>Type name: application</t>
          <t>Subtype name: wit+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="to-wit"/>.</t>
          <t>Applications that use this media type: Identity servers that vend Workload Identity Tokens, and Workloads that
use these tokens to authenticate to each other.</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-field-name-registration">
        <name>Hypertext Transfer Protocol (HTTP) Field Name Registration</name>
        <t>IANA is requested to register the following entries to the "Hypertext Transfer Protocol (HTTP) Field Name Registry" <xref target="IANA.HTTP.FIELDS"/>:</t>
        <ul spacing="normal">
          <li>
            <t><tt>Workload-Identity-Token</tt>, per <xref target="iana-wit-field"/>.</t>
          </li>
        </ul>
        <section anchor="iana-wit-field">
          <name>Workload-Identity-Token</name>
          <ul spacing="normal">
            <li>
              <t>Field Name: Workload-Identity-Token</t>
            </li>
            <li>
              <t>Status: permanent</t>
            </li>
            <li>
              <t>Structured Type: N/A</t>
            </li>
            <li>
              <t>Specification Document: RFC XXX, <xref target="wit-http-header"/></t>
            </li>
            <li>
              <t>Comments: see reference above for an ABNF syntax of this field</t>
            </li>
          </ul>
        </section>
      </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="WIMSE-ID">
          <front>
            <title>Workload Identifier</title>
            <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
              <organization>Zscaler</organization>
            </author>
            <author fullname="Joseph A. Salowey" initials="J. A." surname="Salowey">
              <organization>CyberArk</organization>
            </author>
            <date day="2" month="March" year="2026"/>
            <abstract>
              <t>   This document defines a canonical identifier for workloads, referred
   to as the Workload Identifier.  A Workload Identifier is a URI that
   uniquely identifies a workload within the context of a specific trust
   domain.  This identifier can be embedded in digital credentials,
   including X.509 certificates and security tokens, to support
   authentication, authorization, and policy enforcement across diverse
   systems.  The Workload Identifier format ensures interoperability,
   facilitates secure identity federation, and enables consistent
   identity semantics.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-identifier-02"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <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="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="IANA.HTTP.FIELDS" target="https://www.iana.org/assignments/http-fields">
          <front>
            <title>Hypertext Transfer Protocol (HTTP) Field Name 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="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-wimse-arch">
          <front>
            <title>Workload Identity in a Multi System Environment (WIMSE) Architecture</title>
            <author fullname="Joseph A. Salowey" initials="J. A." surname="Salowey">
              <organization>CyberArk</organization>
            </author>
            <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
              <organization>Zscaler</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <date day="2" month="March" year="2026"/>
            <abstract>
              <t>   The increasing prevalence of cloud computing and micro service
   architectures has led to the rise of complex software functions being
   built and deployed as workloads, where a workload is defined as
   software executing for a specific purpose, potentially comprising one
   or more running instances.  This document discusses an architecture
   for designing and standardizing protocols and payloads for conveying
   workload identity and security context information.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-arch-07"/>
        </reference>
        <reference anchor="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="2" month="March" 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-08"/>
        </reference>
      </references>
    </references>
    <?line 552?>

<section anchor="document-history">
      <name>Document History</name>
      <t><cref>RFC Editor: please remove before publication.</cref></t>
      <section anchor="draft-ietf-wimse-workload-creds-01">
        <name>draft-ietf-wimse-workload-creds-01</name>
        <ul spacing="normal">
          <li>
            <t>Clarify that the <tt>iss</tt> claim is <bcp14>RECOMMENDED</bcp14> in part for auditing and operations, and that validation of workload identity uses <tt>sub</tt>, not <tt>iss</tt>.</t>
          </li>
          <li>
            <t>Remove the <tt>wimse</tt> URI scheme definition and IANA registration from this document; both are specified in <xref target="WIMSE-ID"/>.</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-wimse-workload-creds-00">
        <name>draft-ietf-wimse-workload-creds-00</name>
        <ul spacing="normal">
          <li>
            <t>Remove WPT, HTTP-Sig and mutual TLS sections, which are going to be covered by individual documents. This includes re-phrasing of various sections to focus on the credentials only.</t>
          </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 <bcp14>SHOULD</bcp14> 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:
H4sIAAAAAAAAA7V9+X7aSLro/3qKuuR3T9s9QLxlsbt7pomXhMQLMThOMpkT
C6kAxUKiVcKYpD3Pcp7lPtn9lqpSSYDjnJnpWdpoqeWrb9/UaDS8PMpjuSdq
l+2T7qG4TLPrOPVDsZ/JUCZ55Meq5vn9fiZvvvNQ4OdymGbzPaHy0PPCNEj8
MYwcZv4gb0QyHzRm0VjJxky/3gjgddXY2PTUtD+OlIrSJJ9P4JX2Ye9IiEcC
xk1h1igJ5UQmOFWtLmoyjPI0g0nxR7v1Av6VZvDXee+o5iXTcV9me14Iq9nz
gjRRMlFTtSfybCo92MO252fSh1Fbk0kcwaJhViX8JBTn0o8bvWgsax4ucZil
0wnu2ey2TXvN5yJKxMk0ziPRnatcjsVhchNlaTKG2wCHazmH18M9TzSE2Sr+
HenXvRuZTGFtQvxvZxCCwUQvRslQvMSB8PrYj2K4TnD+HUHeTLMh3vCzYAQ3
Rnk+UXuPH+NzeCm6kU3z2GO88LifpTMlH9MIj/HNYZSPpn08BTrBIR/i44VT
VVuqMcnSPA3SGN+L4QBU7sxZer/Jwzaj9P6RFu+Wsac5yscwnedP81GaIcxh
aiEG0zhm7Ku9AExJxL4/nvRlTCsTgC5DP4m+0tnDIx2EoYE9PyEZkv1Av/f7
BJ4xJ9gM0vGSmV6nUnT9OJ3J+bJp9ueAmK3s2h3/Syp/V/xKM5H5kkFbWRLm
ohuMZjK5VsFoCviQLRv+QA786zwVXRlMM0QzZxofB1F00r8P8dKKHXzwAclE
dyQHg+WTtJN8GuXu0LU5vjOojF1bMbiK/Rtxnqp07F+P0mUzfFSBH8usPEVm
3vj9K9/mObwkzcbw3g1R0/nR/pOt7R3957Mnm0+KP58Vfz4v/tw1fz7f2NB/
Pn+2ZV7b3dyEq16UDNxZ2q3TVvNVr9dpHrUPjw+6e3wFkbwxiGQcKvPQ67Pu
YbN1/NI88iVV8vNM9hsqGiZ+Ps1kQyZBNp/gxht+DLwTaGJcvH/Za+4ft4Dj
mgFm+ecg9qPikZPDg3ar2fvQOTTPjIE5+g1kD0rvYucJbN5rNBrC76s884Pc
83ojKZiVExPIZYDLEaEcRIkEZgjEhJjOzJF4I9OXPiUBEBEqHeQzYKWWxykA
lfDFjZ8BLsxFOhDZFAYZSyEd7lUXgywdC5hAjFOVi76vokCkOO10IgB/4WQn
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
z4F5RQxUlqGiveDPWxICaSnW7qqipu66PKIl3k7OgGLvtap4jQyOaW85aaI6
/tQkzXxJIql2w4WSjWwKEoFs9XAuFQBnJFcVAl/z+Wggup320dGhub46M4ho
F9TkkLz7NTWJBgNZw21oL6FrJtHGNHdFovVLjLdhPV+8qLpR4sDQvxLOYnUO
By7sF60krZDqRovA4ghhVF8MvDHekuYKB5UYfYn41DgajnJQgtJroGuSHZHS
2RGgTHrlYP1viLuHe+KnTz8JMjZnmfbiAMIhZxXPn+1uicpLv3menL8e9V8G
0Vn0+ujia3vzNGqr9jiffNxvP21fTzb744vhaReuJedPAryWhJNwP/8j3H4b
Dd424fUv/U/e+EN0BoYIwD9rf5k8a4+P1Mc5DvDu+vzo9EU7mkUftl9vtb+k
0fnl2/lp7+L2rEsTbcguPrd7fPHJ28dphrCU9u3bzdGHcPxR9eLdk3fxx6/d
96cfL1+dvguv27OTjUnePwzff7w4bQfvji7Dy93NtxsfnpyMXyftT16yuXu8
/zqWr1rR2ZfD7dODi82TXhv+14L54lEImzjpBRuwhtnZwfXtyf4M1n0+wbXJ
/c3BycXpRe+Td/D6y4etw69vN0+PTl+ebn+IdxXuIth+F+GT4VacB1sXT4/n
u7F8eZQHL2/j4/HpTb+7+zV4+e6Lf/lx8uGTN9/c7m+/zvovd0cf91/vNp++
yfzu24vbyzDeDW+P3m4ffXkadj5svIuePz+7nh3NPk5a7bPRsfzjaav/vpUc
H78dfvLOJs8vdi8OXgYvph+Ott9EpzdP0zdvDzY/Xra+Zicfz17PbIheIxCa
yCY+76LVfeayidiHoGOjSHMsQDeP0PGn8qB+HyVz5Hp2DJqqNPG+gdCrAVer
7Yka8bpaHa9cRyFeeT0FXH3Cl8AuqlElDFlLNe/O7Epv5NAhDlrcK1rcwrqt
PfWAZaPUvGfdoAXBkr6R3K6BcLY/nD2FB90WbYCuBtkNX916Atptcf06n+P1
szed4totXtncf//+ZhCffj5+90611Yf36uLmxcb263H88lLuv/rj7btpOt0/
2t3qD7n44g7+/44ABho4jLD5bAem2nqyuUEXwQ4wFzee7+qLoM3iXLeNz5v7
veOtIPC397uHO8Gs/zlm4IPxUzNlSHuPH2soYdHGY8MPrWlw/9HsE+zNqeiT
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
JdrQNb+EAAA=

-->

</rfc>
