<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-wimse-workload-creds-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="WIMSE Workload Credentials">WIMSE Workload Credentials</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-workload-creds-03"/>
    <author fullname="Brian Campbell">
      <organization>Ping Identity</organization>
      <address>
        <email>bcampbell@pingidentity.com</email>
      </address>
    </author>
    <author fullname="Joe Salowey">
      <organization>Palo Alto Networks</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>Independent</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="October" day="30"/>
    <area>Applications and Real-Time</area>
    <workgroup>Workload Identity in Multi System Environments</workgroup>
    <keyword>workload</keyword>
    <keyword>identity</keyword>
    <abstract>
      <?line 65?>

<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 73?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document defines credentials to facilitate 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-layer protocols. The Workload Identity Certificate is targeted for transport-layer protocols, primarily mutual TLS. Presenting a WIT over a TLS-protected channel, or binding an application-layer proof of possession to TLS session properties (see <xref target="wit-pop"/>), does not make the WIT a transport-layer credential: mutual TLS authentication uses the Workload Identity Certificate, not the WIT. This does not preclude the use of the WIC in application-layer protocols or the WIT in transport-layer 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 specified in separate documents and are out of scope for this document. Each such binding defines how a workload proves possession of the key material bound to its credential in order to authenticate to another workload. At the time of writing, three such protocol bindings are defined:</t>
      <ul spacing="normal">
        <li>
          <t>Transport-layer authentication using mutual TLS with the Workload Identity Certificate, specified in <xref target="I-D.ietf-wimse-mutual-tls"/>.</t>
        </li>
        <li>
          <t>Application-layer authentication using the Workload Identity Token in conjunction with a JWT-based proof of possession, the Workload Proof Token (WPT), specified in <xref target="I-D.ietf-wimse-wpt"/>.</t>
        </li>
        <li>
          <t>Application-layer authentication using the Workload Identity Token in conjunction with HTTP Message Signatures, specified in <xref target="I-D.ietf-wimse-http-signature"/>.</t>
        </li>
      </ul>
      <section anchor="deployment-architecture-and-message-flow">
        <name>Deployment Architecture and Message Flow</name>
        <t>This architecture and message flow is part of the broader flow as described in Section 3.3 of the WIMSE architecture <xref target="I-D.ietf-wimse-arch"/>.</t>
        <t>Independent of the transport between the workloads, we assume that workloads hold credentials from the same trust domain and that following architecture applies:</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="224" width="408" viewBox="0 0 408 224" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,208" fill="none" stroke="black"/>
                <path d="M 112,32 L 112,208" fill="none" stroke="black"/>
                <path d="M 240,32 L 240,208" fill="none" stroke="black"/>
                <path d="M 344,32 L 344,208" fill="none" stroke="black"/>
                <path d="M 368,128 L 368,160" 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 352,128 L 368,128" fill="none" stroke="black"/>
                <path d="M 352,160 L 368,160" fill="none" stroke="black"/>
                <path d="M 120,190 L 232,190" fill="none" stroke="black"/>
                <path d="M 120,194 L 232,194" fill="none" stroke="black"/>
                <path d="M 8,208 L 112,208" fill="none" stroke="black"/>
                <path d="M 240,208 L 344,208" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="360,160 348,154.4 348,165.6" fill="black" transform="rotate(180,352,160)"/>
                <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,192 116,186.4 116,197.6" fill="black" transform="rotate(180,120,192)"/>
                <polygon class="arrowhead" points="128,64 116,58.4 116,69.6" fill="black" transform="rotate(180,120,64)"/>
                <g class="text">
                  <text x="176" y="52">(1)</text>
                  <text x="52" y="100">Workload</text>
                  <text x="96" y="100">A</text>
                  <text x="176" y="100">(2)</text>
                  <text x="284" y="100">Workload</text>
                  <text x="328" y="100">B</text>
                  <text x="392" y="148">(3)</text>
                  <text x="176" y="180">(4)</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
+------------+               +------------+
|            |      (1)      |            |
|            |<=============>|            |
|            |               |            |
| Workload A |      (2)      | Workload B |
|            |==============>|            |
|            |               |            |--+
|            |               |            |  | (3)
|            |               |            |<-+
|            |      (4)      |            |
|            |<==============|            |
+------------+               +------------+
]]></artwork>
          </artset>
        </figure>
        <t>The high-level message flow is as follows:</t>
        <ol spacing="normal" type="1"><li>
            <t>A transport connection is established using TLS server authentication for Workload B, optionally incorporating mutual TLS (mTLS) with Workload A's Workload Identity Certificate for client authentication.</t>
          </li>
          <li>
            <t>Workload A prepares to call Workload B. This may include adding application-layer authentication information, such as the Workload Identity Token and proof of possession. Workload B authenticates Workload A.</t>
          </li>
          <li>
            <t>Workload B authorizes Workload A and the call.</t>
          </li>
          <li>
            <t>Workload B returns a response to Workload A, which may be either a success or an error response.</t>
          </li>
        </ol>
        <t>Depending on the protocol, the workload authentication may happen during step (1) at the transport-layer or at step (2) at the application-layer, 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 are expected to conform to the URI requirements outlined in <xref section="4.1" sectionFormat="of" target="WIMSE-ID"/>.</t>
        <t>To enable granular authentication between workloads, i.e., authenticate a peer as a specific workload, the following must be in place:</t>
        <ul spacing="normal">
          <li>
            <t>Each workload must know its own identifier.</t>
          </li>
          <li>
            <t>A callee must be able to verify that a request is intended for it.</t>
          </li>
          <li>
            <t>A caller that authenticates the callee must know the identifier it expects the callee to present.</t>
          </li>
        </ul>
        <t>Once these conditions are met, the methods described in this document can be used for the caller and callee to authenticate one another.
At the transport layer, the client validates the server certificate against that expected identifier
as described in "Verifying Service Identity" of <xref target="RFC9525"/>.
At the application layer, the callee verifies the audience of the proof of possession (<xref target="app-audience"/>).</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="trust-anchors">
      <name>Establishing Trust Anchors</name>
      <t>Trust anchors used to validate Workload Identity Certificates and Workload Identity Tokens are associated with a trust domain, as discussed in <xref section="3.1.1" sectionFormat="of" target="I-D.ietf-wimse-arch"/>. They are provisioned to consumers together with trust domain metadata for that domain. Trust anchors can be represented in different ways depending on the deployment; for example, as a set of public keys (such as a JWKS), as an X.509 certification authority used to validate certificate chains, or as other deployment-specific material.</t>
      <t>This document does not define a mechanism for discovering trust anchor information. Consumers <bcp14>MUST</bcp14> associate each trust domain with a known, preconfigured issuer (or set of issuers) and with the corresponding trust anchors. That mapping <bcp14>MUST</bcp14> be distributed via a secure out-of-band mechanism. A credential <bcp14>MUST</bcp14> be validated only against the anchors bound to the trust domain named in its Workload Identifier.</t>
      <t>To validate a WIT, the receiving workload verifies the JWS signature using key material from the trust anchors configured for the trust domain in the <tt>sub</tt> claim. Trust anchor material for WIT validation <bcp14>MAY</bcp14> include more than one public key so that operators can rotate signing keys. In practice, the <tt>alg</tt> header parameter would identify an algorithm that the validator accepts for that trust domain, and the signature would be checked under a key drawn from the configured trust anchors. If the JWS header contains a <tt>kid</tt> parameter, the validator would use the key in the trust anchor material with the same <tt>kid</tt> value. If <tt>kid</tt> is absent, deployment policy would need to provide unambiguous key selection (for example, when only a single key is configured for that trust domain). Recipient processing of a presented WIT is specified in <xref target="wit-validation"/>.</t>
      <t>For Workload Identity Certificates, validators use the trust anchors for the peer's trust domain to validate the X.509 chain and the Workload Identifier in the certificate, as described in <xref target="to-wic"/> and in companion specifications such as <xref target="I-D.ietf-wimse-mutual-tls"/>.</t>
    </section>
    <section anchor="single-workload-identity">
      <name>One Workload Identity per Credential</name>
      <t>Each WIMSE credential carries exactly one Workload Identifier (<xref target="WIMSE-ID"/>) that is used for authentication and authorization. Requiring a single identifier per credential keeps authorization and auditing unambiguous and aligns with common practice for workload X.509 certificates (for example, a single URI in an X.509-SVID).</t>
      <t>For a Workload Identity Token, that identifier is the value of the <tt>sub</tt> claim. For a Workload Identity Certificate, that identifier is carried in the single URI SubjectAltName described in <xref target="to-wic"/>. Multiple credentials of the same Workload Identifier may be differentiated using other fields such as the optional <tt>jti</tt> claim.</t>
    </section>
    <section anchor="app-layer">
      <name>Application-Layer Credentials</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-layer.</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="I-D.ietf-oauth-rfc8725bis"/>, 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; See <xref target="add-claims"/> for details.</t>
              </li>
              <li>
                <t><tt>sub</tt>: The subject is the Workload Identifier as defined in <xref target="WIMSE-ID"/>, constrained to exactly one per credential (<xref target="single-workload-identity"/>).</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 (as defined in <xref section="4.1.7" sectionFormat="of" target="RFC7519"/>). This claim is <bcp14>OPTIONAL</bcp14>. The <tt>jti</tt> claim is useful for auditing the issuance of individual WITs, and it is needed to identify individual tokens in deployments that operate an optional token status or deny-list mechanism (<xref target="wit-lifetime"/>). 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 <tt>cnf</tt> 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 <tt>jwk</tt> 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 <tt>spiffe</tt> URIs.
For deployments that do not use an environment-specific scheme, the <tt>wimse</tt> URI scheme can be used; it is defined in <xref target="WIMSE-ID"/>.</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\
mYiOnsiandrIjp7ImFsZyI6IkVkMjU1MTkiLCJjcnYiOiJFZDI1NTE5Iiwia3R5IjoiT\
0tQIiwieCI6IjFDWFh2ZmxOX0xWVnNJc1lYc1V2QjAzSm1sR1dlQ0hxUVZ1b3VDRjkyY\
mcifX0sImV4cCI6MTc0NTUxMjUxMCwiaWF0IjoxNzQ1NTA4OTEwLCJqdGkiOiJ4LV8xQ\
1RMMmNjYTNDU0U0Y3diX2wiLCJzdWIiOiJ3aW1zZTovL2V4YW1wbGUuY29tL3NwZWNpZ\
mljLXdvcmtsb2FkIn0.4kNF4FP1dshxHrFub2kRusiV9qK_xrGi0pbLG5hpOS3fR0izY\
Zu5lPHei94TTvOvORJPT9jSVT-C6IIBattDbg
]]></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, including an `iat` claim, demonstrating WIT's extensibility</name>
          <sourcecode type="json"><![CDATA[
{
  "cnf": {
    "jwk": {
      "alg": "Ed25519",
      "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 example omits the recommended <tt>iss</tt> claim; see <xref target="to-wit"/> and <xref target="add-claims"/>.</t>
        <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>Ed25519</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 example WIT is signed with one of the Identity Server's signing keys; the JOSE header <tt>kid</tt> identifies which key was used.
Validators use the Identity Server's public keys from the trust anchors configured for that trust domain to verify the signature (see <xref target="trust-anchors"/>).
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.eyJjbmYiOnsiandrIjp7ImFsZyI6IkVkMjU1MTkiLCJjcnYi\
OiJFZDI1NTE5Iiwia3R5IjoiT0tQIiwieCI6IjFDWFh2ZmxOX0xWVnNJc1lYc1V2QjAz\
Sm1sR1dlQ0hxUVZ1b3VDRjkyYmcifX0sImV4cCI6MTc0NTUxMjUxMCwiaWF0IjoxNzQ1\
NTA4OTEwLCJqdGkiOiJ4LV8xQ1RMMmNjYTNDU0U0Y3diX2wiLCJzdWIiOiJ3aW1zZTov\
L2V4YW1wbGUuY29tL3NwZWNpZmljLXdvcmtsb2FkIn0.4kNF4FP1dshxHrFub2kRusiV\
9qK_xrGi0pbLG5hpOS3fR0izYZu5lPHei94TTvOvORJPT9jSVT-C6IIBattDbg
]]></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 document.
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 (Section 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 Section 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>
          <t>It is <bcp14>RECOMMENDED</bcp14> that the WIT carries an <tt>iss</tt> claim 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"/>).</t>
        </section>
        <section anchor="wit-validation">
          <name>Validating the WIT</name>
          <t>Verification of a WIT follows <xref target="RFC7515"/> and the JWT best practices in <xref target="I-D.ietf-oauth-rfc8725bis"/>, with the WIMSE-specific requirements below. To validate a WIT, the recipient <bcp14>MUST</bcp14> ensure the following:</t>
          <ul spacing="normal">
            <li>
              <t>The token is a single well-formed JWT using JWS compact serialization (<xref target="RFC7515"/>, <xref target="RFC7519"/>).</t>
            </li>
            <li>
              <t>The <tt>sub</tt> claim is present and is a single Workload Identifier (<xref target="WIMSE-ID"/>, <xref target="single-workload-identity"/>). The recipient uses the trust domain of that identifier to select the configured trust anchors (<xref target="trust-anchors"/>).</t>
            </li>
            <li>
              <t>The <tt>typ</tt> JOSE header parameter conveys a media type of <tt>wit+jwt</tt>.</t>
            </li>
            <li>
              <t>The JWS signature is valid under those trust anchors, as described in <xref target="trust-anchors"/>.</t>
            </li>
            <li>
              <t>The <tt>cnf</tt> claim is present and contains a <tt>jwk</tt> object with an <tt>alg</tt> member as specified in <xref target="to-wit"/>.</t>
            </li>
            <li>
              <t>Additional claims that are not understood are ignored, as specified in <xref target="add-claims"/>.</t>
            </li>
          </ul>
          <t>See <xref target="wit-lifetime"/> for WIT lifetime considerations.</t>
        </section>
      </section>
      <section anchor="app-audience">
        <name>Audience of Application-Layer Proofs</name>
        <t>The Workload Identifier in a WIT identifies the sender.
The audience of the proof of possession that accompanies the WIT identifies the intended recipient.
A recipient <bcp14>MUST</bcp14> verify that the audience refers to it, using trusted configuration rather than request fields such as <tt>Host</tt>,
because intermediaries may rewrite the request URI.
Each proof-of-possession mechanism defines how the audience is set and validated;
see "Audience validation" in <xref target="I-D.ietf-wimse-wpt"/> and "The <tt>wimse-aud</tt> Signature Parameter" in <xref target="I-D.ietf-wimse-http-signature"/>.</t>
      </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.  Using the HTTP
status code 401 is only recommended for this purpose when an acceptable HTTP authentication mechanism exists that can be returned with the WWW-Authenticate HTTP header.</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-layer">
      <name>Transport-Layer Credentials</name>
      <t>As noted in the introduction, for many deployments, transport-layer 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 Identifier used for WIMSE authentication and authorization <bcp14>MUST</bcp14> appear in exactly one SubjectAltName extension of type URI, as required by <xref target="single-workload-identity"/>. The certificate <bcp14>MUST NOT</bcp14> contain more than one URI SAN that carries a Workload Identifier.</t>
        <t>When the certificate is also used for TLS server authentication, it is <bcp14>RECOMMENDED</bcp14> to include SubjectAltName extensions of type DNSName with the appropriate DNS names for clients that validate the server by host name rather than by workload identity. The certificate <bcp14>MAY</bcp14> contain SubjectAltName extensions of other types for PKIX or local policy, but only the URI SAN above is the WIMSE workload identity.</t>
      </section>
    </section>
    <section anchor="client-name">
      <name>Client Authorization Using the Workload Identity</name>
      <t>The receiving application uses the authenticated peer's Workload Identifier 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>
      <t>How the receiving application obtains the Workload Identifier depends on the credential used to authenticate the peer:</t>
      <ul spacing="normal">
        <li>
          <t>Application-layer: After successfully validating the WIT, the receiving application retrieves the Workload Identifier from the <tt>sub</tt> claim.</t>
        </li>
        <li>
          <t>Transport-layer: When the client is authenticated with a Workload Identity Certificate, the receiving application retrieves the Workload Identifier from the client certificate's SubjectAltName extension of type URI.</t>
        </li>
      </ul>
      <t>A workload <bcp14>MAY</bcp14> use other standard and deployment specific fields in the workload credential for accounting or authorization purposes.</t>
    </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></t>
      <t>This section records the status of known implementations of the protocol defined by this document 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>
      <t>wimsey</t>
      <ul spacing="normal">
        <li>
          <t>Organization: independent</t>
        </li>
        <li>
          <t>Implementation: <eref target="https://github.com/kanywst/wimsey">https://github.com/kanywst/wimsey</eref></t>
        </li>
        <li>
          <t>Maturity:
          </t>
          <ul spacing="normal">
            <li>
              <t>Workload Identity Token: alpha</t>
            </li>
            <li>
              <t>Workload Identity Certificate: alpha</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Coverage: WIT, Workload Identity Certificate</t>
        </li>
        <li>
          <t>Contact: <eref target="https://github.com/kanywst">kanywst on GitHub</eref></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. Similarly, a validator that obtains key material from the credential itself, for example by resolving the <tt>iss</tt> claim of a WIT to a key set, would accept credentials from any entity able to operate an issuer. The pre-configured binding of trust domains to authorized issuers and trust anchors described in <xref target="trust-anchors"/> prevents both attacks.</t>
      </section>
      <section anchor="trust-domain-membership">
        <name>Trust Domain Membership and Peer Authentication</name>
        <t>Validating a peer's credential against the trust anchors for a trust domain establishes that the peer belongs to that trust domain, but does not by itself establish which workload the peer represents. The additional identity comparison described in <xref target="granular-auth"/> is required to make that distinction. This affects both sides of a call, workloads acting as clients and workloads acting as servers.</t>
        <t>Proof of possession does not mitigate this vulnerability. It shows that the peer holds the private key for the credential it presented (<xref target="wit-pop"/>), but it does not prove the identity itself. The same consideration applies when a Workload Identity Certificate is used at the transport layer.</t>
        <t>Deprovisioning a workload instance or stopping credential issuance does not invalidate its existing WITs or WICs. If the corresponding private key remains usable, these credentials can still support authentication until expiry, including any permitted clock skew, unless relying parties reject them earlier, for example through revocation. Credential lifetimes therefore affect the residual exposure after deprovisioning or detection of compromise. If multiple instances use the same Workload Identifier, the identifier alone cannot distinguish them for authorization or auditing.</t>
      </section>
      <section anchor="wit-pop">
        <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="to-wit"/>. The WIT is a general purpose token that can be presented in multiple contexts. The WIT and its PoP are used for application-layer authentication; they are not used as the client or server credential for mutual TLS, which uses the Workload Identity Certificate (<xref target="to-wic"/>). 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 PoP may be captured and replayed within the PoP's lifetime. The following are some mitigations for the capture and reuse of the WIT and its PoP:</t>
        <section anchor="wit-lifetime">
          <name>Limiting Workload Identity Token Lifespan</name>
          <t>The WIT <bcp14>MUST</bcp14> have a limited lifetime expressed through the <tt>exp</tt> claim. If both a WIT and its corresponding private key are compromised, an attacker can impersonate the workload until the WIT expires. Because JWT-based credentials such as the WIT are not revocable on demand, a short expiration is the primary mitigation against continued use of a compromised WIT and key. WITs <bcp14>SHOULD</bcp14> therefore be short-lived, typically on the order of hours, with the chosen lifetime balancing the operational cost of frequent refresh against the window of exposure if a credential is compromised.</t>
          <t>This document does not define a revocation mechanism for WITs and does not rely on one; validators are not required to consult any token status service. Deployments <bcp14>MAY</bcp14> nevertheless operate such a mechanism as a defense in depth measure, for example a Token Status List <xref target="I-D.ietf-oauth-status-list"/> or a deny-list of <tt>jti</tt> values. A deployment that does so <bcp14>MUST</bcp14> include the <tt>jti</tt> claim (<xref target="to-wit"/>) in every WIT, because a WIT without a <tt>jti</tt> cannot be identified individually. Such mechanisms are subject to a propagation delay during which a revoked WIT may still be accepted, and their use does not relax the requirement for short WIT lifetimes.</t>
        </section>
        <section anchor="limiting-proof-of-possession-lifespan">
          <name>Limiting Proof of Possession Lifespan</name>
          <t>The PoP <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>
        </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>PoP 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>
        </section>
        <section anchor="binding-to-tls-endpoint">
          <name>Binding to TLS Endpoint</name>
          <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 document.</t>
        </section>
      </section>
      <section anchor="workload-identity-certificate">
        <name>Workload Identity Certificate</name>
        <t>The Workload Identity Certificate carries the Workload Identifier in a single URI SubjectAltName (<xref target="to-wic"/>). As with the WIT, the identifier is meaningful only within its trust domain. A relying party <bcp14>MUST</bcp14> validate the certificate against the trust anchors configured for the peer's trust domain (<xref target="trust-anchors"/>) and <bcp14>MUST</bcp14> reject the certificate if the Workload Identifier is not within that trust domain and the trust anchor used. Evaluating the path or other components of the identifier without also considering the trust domain and the trust anchor can allow one trust domain to impersonate workloads in another. Protocol-specific certificate validation requirements are defined in <xref target="I-D.ietf-wimse-mutual-tls"/>.</t>
        <section anchor="limiting-workload-identity-certificate-lifespan">
          <name>Limiting Workload Identity Certificate Lifespan</name>
          <t>Workload Identity Certificates are frequently issued to dynamic and/or short-lived workloads. Deployments <bcp14>SHOULD</bcp14> use certificate lifetimes appropriate to the workload environment, typically on a similar scale to WITs (<xref target="wit-pop"/>). Long-lived certificates increase the impact of private-key compromise. As with WITs, short certificate lifetimes are the primary mitigation against continued use of a compromised key; this document does not rely on certificate revocation lists (CRLs) or Online Certificate Status Protocol (OCSP) <xref target="RFC6960"/> for WICs, although deployments <bcp14>MAY</bcp14> use them as a defense in depth measure.</t>
          <t>The lifetime of Workload Identity Certificates is bounded by the lifetime and rotation cadence of the trust anchors of the trust domain (<xref target="trust-anchors"/>). Compromise of a trust anchor permits issuance of certificates for the trust domain for as long as that anchor remains trusted. Deployments should therefore consider leaf and trust-anchor lifetimes together rather than the leaf lifetime in isolation.</t>
        </section>
      </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 regenerated for each new Workload Identity Token or Certificate, unless the key is sufficiently protected, e.g., non-exportable and hardware-bound.</t>
          </li>
        </ul>
        <t>For purposes of this section, keeping the private key private means that the private key is not intentionally disclosed
outside the workload instance or an authorized signing component, is not placed in credentials, logs, images, configuration
artifacts, or bearer tokens, and is not made available to intermediaries except as part of an explicitly trusted signing
service. Compromise or disclosure of the private key invalidates the security assumptions of the associated WIT or WIC.
This document does not require a particular key-protection mechanism; deployments that require stronger properties such
as non-exportability, hardware-backed protection, or binding to a measured runtime need additional deployment-specific
evidence or profile requirements. Verifiers must not infer such stronger properties from the WIT or WIC alone.</t>
      </section>
      <section anchor="middleboxes">
        <name>Transport Security</name>
        <t>An attacker observing or intercepting the communication channel can view the Workload Identity Token and its PoP and attempt to replay them to gain an advantage. To prevent this, the WIT and its PoP <bcp14>MUST</bcp14> be sent over a secure, server-authenticated TLS connection unless a secure channel is provided by some other mechanism.</t>
        <t>In some deployments the Workload Identity Token and PoP may pass through multiple systems. Communication between systems is over TLS, but the token and PoP are available in the clear at each intermediary.  While an intermediary cannot modify the token or the information within the PoP, it can attempt to capture and replay the token or modify data not protected by the PoP. Mitigations listed in <xref target="wit-pop"/> can reduce this risk. Deployments should analyze their situation to determine whether it is appropriate to trust and allow traffic to pass through a middlebox.</t>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>WITs and PoPs 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 in transit. Workload Identity Certificates likewise expose the Workload Identifier, and any attributes carried in the certificate, to the peer, to any TLS-terminating intermediary, and to logs; in particular, client-certificate authentication discloses the client's workload identity to the server during the TLS handshake.</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 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><tt>application/wit+jwt</tt>, 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 <tt>application/jwt</tt> 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 issue 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="I-D.ietf-oauth-rfc8725bis">
          <front>
            <title>JSON Web Token Best Current Practices</title>
            <author fullname="Yaron Sheffer" initials="Y." surname="Sheffer">
              <organization>Independent</organization>
            </author>
            <author fullname="Dick Hardt" initials="D." surname="Hardt">
         </author>
            <author fullname="Michael B. Jones" initials="M. B." surname="Jones">
              <organization>Self-Issued Consulting</organization>
            </author>
            <date day="21" month="August" year="2026"/>
            <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 (BCP) specification updates RFC 7519 to
   provide actionable guidance leading to secure implementation and
   deployment of JWTs.

   This BCP specification furthermore obsoletes RFC 8725 to provide
   additional actionable guidance covering threats and attacks that have
   been discovered since RFC 8725 was published.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-rfc8725bis-10"/>
        </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="RFC9525">
          <front>
            <title>Service Identity in TLS</title>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <author fullname="R. Salz" initials="R." surname="Salz"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>Many application technologies enable secure communication between two entities by means of Transport Layer Security (TLS) with Internet Public Key Infrastructure using X.509 (PKIX) certificates. This document specifies procedures for representing and verifying the identity of application services in such interactions.</t>
              <t>This document obsoletes RFC 6125.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9525"/>
          <seriesInfo name="DOI" value="10.17487/RFC9525"/>
        </reference>
        <reference anchor="I-D.ietf-wimse-mutual-tls">
          <front>
            <title>Workload Authentication Using Mutual TLS</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>
            <date day="24" month="October" 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 to complex multi-service, multi-cloud, multi-tenant
   deployments.  This document profiles workload authentication based on
   X.509 Workload Identity Certificates using mutual TLS (mTLS).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-mutual-tls-03"/>
        </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>Palo Alto Networks</organization>
            </author>
            <date day="23" month="October" 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 Workload Identity
   Credentials, including X.509 certificates and JWT-based 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-04"/>
        </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="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>Palo Alto Networks</organization>
            </author>
            <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
              <organization>Zscaler</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of the Bundeswehr Munich</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   The increasing prevalence of cloud computing and micro service
   architectures has led to the rise of complex software functions being
   built and deployed as workloads, where a workload is defined as
   software executing for a specific purpose, potentially comprising one
   or more running instances.  This document discusses an architecture
   for designing and standardizing protocols and payloads for conveying
   workload identity and security context information.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-arch-08"/>
        </reference>
        <reference anchor="I-D.ietf-wimse-wpt">
          <front>
            <title>WIMSE Workload Proof Token</title>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <author fullname="Arndt Schwenkschuster" initials="A." surname="Schwenkschuster">
              <organization>Defakto Security</organization>
            </author>
            <date day="27" month="August" year="2026"/>
            <abstract>
              <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>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-wpt-02"/>
        </reference>
        <reference anchor="I-D.ietf-wimse-http-signature">
          <front>
            <title>WIMSE Workload-to-Workload Authentication with HTTP Signatures</title>
            <author fullname="Joseph A. Salowey" initials="J. A." surname="Salowey">
              <organization>Palo Alto Networks</organization>
            </author>
            <author fullname="Yaron Sheffer" initials="Y." surname="Sheffer">
              <organization>Independent</organization>
            </author>
            <date day="20" month="October" 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 to complex multi-service, multi-cloud, multi-tenant
   deployments.  This document defines one of the mechanisms to provide
   workload authentication, using HTTP Signatures.  While only
   applicable to HTTP traffic, the protocol provides end-to-end
   protection of requests (and optionally, responses), even when service
   traffic is not end-to-end encrypted, that is, when TLS proxies and
   load balancers are used.  Authentication is based on the Workload
   Identity Token (WIT).

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-transaction-tokens-11"/>
        </reference>
        <reference anchor="I-D.ietf-oauth-status-list">
          <front>
            <title>Token Status List (TSL)</title>
            <author fullname="Tobias Looker" initials="T." surname="Looker">
              <organization>MATTR</organization>
            </author>
            <author fullname="Paul Bastian" initials="P." surname="Bastian">
              <organization>Bundesdruckerei</organization>
            </author>
            <author fullname="Christian Bormann" initials="C." surname="Bormann">
              <organization>SPRIND</organization>
            </author>
            <date day="21" month="June" year="2026"/>
            <abstract>
              <t>   This specification defines a status mechanism called Token Status
   List (TSL), data structures and processing rules for representing the
   status of tokens secured by JSON Object Signing and Encryption (JOSE)
   or CBOR Object Signing and Encryption (COSE), such as JWT, SD-JWT,
   CBOR Web Token, and ISO mdoc.  It also defines an extension point and
   a registry for future status mechanisms.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-status-list-21"/>
        </reference>
        <reference anchor="RFC6960">
          <front>
            <title>X.509 Internet Public Key Infrastructure Online Certificate Status Protocol - OCSP</title>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="M. Myers" initials="M." surname="Myers"/>
            <author fullname="R. Ankney" initials="R." surname="Ankney"/>
            <author fullname="A. Malpani" initials="A." surname="Malpani"/>
            <author fullname="S. Galperin" initials="S." surname="Galperin"/>
            <author fullname="C. Adams" initials="C." surname="Adams"/>
            <date month="June" year="2013"/>
            <abstract>
              <t>This document specifies a protocol useful in determining the current status of a digital certificate without requiring Certificate Revocation Lists (CRLs). Additional mechanisms addressing PKIX operational requirements are specified in separate documents. This document obsoletes RFCs 2560 and 6277. It also updates RFC 5912.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6960"/>
          <seriesInfo name="DOI" value="10.17487/RFC6960"/>
        </reference>
        <reference anchor="RFC9864">
          <front>
            <title>Fully-Specified Algorithms for JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE)</title>
            <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <date month="October" year="2025"/>
            <abstract>
              <t>This specification refers to cryptographic algorithm identifiers that fully specify the cryptographic operations to be performed, including any curve, key derivation function (KDF), and hash functions, as being "fully specified". It refers to cryptographic algorithm identifiers that require additional information beyond the algorithm identifier to determine the cryptographic operations to be performed as being "polymorphic". This specification creates fully-specified algorithm identifiers for registered JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE) polymorphic algorithm identifiers, enabling applications to use only fully-specified algorithm identifiers. It deprecates those polymorphic algorithm identifiers.</t>
              <t>This specification updates RFCs 7518, 8037, and 9053. It deprecates polymorphic algorithms defined by RFCs 8037 and 9053 and provides fully-specified replacements for them. It adds to the instructions to designated experts in RFCs 7518 and 9053.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9864"/>
          <seriesInfo name="DOI" value="10.17487/RFC9864"/>
        </reference>
      </references>
    </references>
    <?line 606?>

<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-03">
        <name>draft-ietf-wimse-workload-creds-03</name>
        <ul spacing="normal">
          <li>
            <t>Replace the access-path-to-identifier mapping API with conditions for caller and callee, and add a short subsection on the audience of application-layer proofs (#173, #175).</t>
          </li>
          <li>
            <t>Added a section to describe the security considerations of granular authentication.</t>
          </li>
          <li>
            <t>Use the fully-specified <tt>Ed25519</tt> algorithm identifier in the examples instead of the deprecated <tt>EdDSA</tt> (<xref target="RFC9864"/>).</t>
          </li>
          <li>
            <t>Add a WIT validation procedure for recipients (#290, #294).</t>
          </li>
          <li>
            <t>Clarify that WIT/PoP are application-layer credentials and are not used for mutual TLS; TLS binding does not change that (#256).</t>
          </li>
          <li>
            <t>Simplify the one-Workload-Identifier-per-credential section (#395).</t>
          </li>
          <li>
            <t>State the WIC revocation stance: short lifetimes like WITs; no CRL reliance (#270).</t>
          </li>
          <li>
            <t>State the WIT revocation stance and resolve the conflicting <tt>jti</tt> description: the document does not rely on revocation, but deployments may operate a token status list or <tt>jti</tt> deny-list, in which case <tt>jti</tt> is required in every WIT (#269).</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>Remove superfluous 'Use In Other Protocols' subsection that basically just said what amounts to "other specs can reference this"</t>
          </li>
          <li>
            <t>Retitle Application-Layer and Transport-Layer Workload-to-Workload Authentication to Application-Layer and Transport-Layer Credentials to clarify that these are credentials, not authentication protocols.</t>
          </li>
          <li>
            <t>say what it means to keep the private key private and that reuse of a key is probably okay when it's non-exportable and hardware-protected</t>
          </li>
          <li>
            <t>Reduce some normative and definitional duplication</t>
          </li>
          <li>
            <t>Point to draft-ietf-wimse-arch's "Trust Domain" from "Establishing Trust Anchors"</t>
          </li>
          <li>
            <t>Define <tt>sub</tt> a little more cleanly</t>
          </li>
          <li>
            <t>fix various editorial nits</t>
          </li>
          <li>
            <t>Try to clarify always server and sometimes client authentication in the transport bullet of the Message Flow breakdown</t>
          </li>
          <li>
            <t>Attempt some clarification of the Authentication Granularity section and reference RFC9525 for server certificate name validation</t>
          </li>
          <li>
            <t>Allow HTTP 401 for WIT errors when a WWW-Authenticate mechanism exists (#402).</t>
          </li>
          <li>
            <t>Validate credentials only against their trust domain's anchors (#370).</t>
          </li>
          <li>
            <t>Simplify <tt>iss</tt> text; remove <tt>iss</tt>-based key distribution (#411).</t>
          </li>
          <li>
            <t>Add exposure window after deprovisioning or compromise (#393).</t>
          </li>
          <li>
            <t>Remove Identity Server, PEP and PDP from the architecture diagram (#303).</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-wimse-workload-creds-02">
        <name>draft-ietf-wimse-workload-creds-02</name>
        <ul spacing="normal">
          <li>
            <t>Add a section requiring exactly one Workload Identifier per credential (the <tt>sub</tt> claim for a WIT, a single URI SubjectAltName for a WIC).</t>
          </li>
          <li>
            <t>Add a Trust Anchors section and clarify WIT validation, key selection, and key rotation.</t>
          </li>
          <li>
            <t>Rework the Security Considerations, including WIT lifetime, WIC validation and lifetime, and privacy of the workload identifier.</t>
          </li>
          <li>
            <t>Generalize client authorization to cover both the WIT and the WIC.</t>
          </li>
          <li>
            <t>Reference the protocol binding documents (mutual TLS, WPT, and HTTP Message Signatures).</t>
          </li>
          <li>
            <t>Rename "level" to "layer" throughout.</t>
          </li>
        </ul>
      </section>
      <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>
      <t>Additional thanks to the WIMSE working group for the feedback and discussions that helped shape this specification, including, but not limited to,
Andrii Deinega,
Flemming Andreasen,
Jean-François "Jeff" Lombardo,
Karthik Rampalli,
and
Songbo Bu.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
68POp8vN2/7r9/NPWy/K4+2T28+XJ7PPAEvy5fjj8GYwLYv+1tF1N91o71yf
HO0cnW0Oi8ndm/xo3t+6Pged+sOLP3/94y5/HW/M+sevdyez04vt0flG/Bes
6PN8Nzl7o+IXO73ezenN6fnbs96LLxcfeq39Z93uq6gsD/pjk+IkNIT2pc5v
cinrPltTZzwNwUJAqeWYTw7Psi5WPWjUR+Ebu5FBTalFlgZfQa41gG019sIG
MbNGE7+5jof4zds5kOsufwUmRIMKHcmwaATf9KpkIYfO+SDg3hBwS3Ab0+MR
YFPK8mq4QdMBkL6SaG6A+DUfnDUNt3ZBUaUl0PeD/Kb2++tygd+f/npmv7vD
bzb3P368GSUnfxx/+FB0i08fi/c3rza2306T15dq/82fv32YZ/P9oxdb/TGX
032D/34jlIEhACNsPt+BqbZ2Nzfoyzgq9ZcbP76QL0FNxrnuWn9s7veOtwaD
aHv/4nBncNv/I2H0g7nT0HWme0+fCp6wDO+p5njGPrl/cxj7TREOku9/BWAZ
rXGopmwdkfIF7/yA5iqw/yJm6ac3Ve9WNo3Fo+EasI7t9zLkegDxrbCv1jf3
JLwvtIF6vS3jcCkDwGE3QsFO5RBlVQJayDzszPJwayfc2tjaDTef7W3v7m1u
hK/f9dAbYFUe0A1OMCQXDw5wAqvLbnmWjdZp7PZdrZMJrYVt4WvIINzYSLZ2
1G1knDjw19Wj9u4K55iQ5rpspgF8V7U0Qm+xN6iiyFdMc6upeiYIp8ssOY++
A2TRsQonZ4STIJZ1yis5fFd17hvx+KpkPqAYBVoOrC4VFC3xk+5+oBiLS8s8
PZsSaCM0Le/rK0oNTTHGbHTi5+xoADwYAX6N3KXCEGr4xvezB3yJ+GoxPP74
42L/069/Zn98vHn96jhtfb5Uv/aeJ8knpX6bjdV+9PHDXX/3+pNzlo344Cyl
FkC6dL4tXn5VS8dUR4TYQUn7gf4O4cMVr84PhRdofFl12ukImT0OTP5kv0WF
eL8+LMeNludxUwEeG5KtxMS8LDU3LCmFSH7aB7pWeg+AoiEhVx3j779GSYf7
RABLolWT1llLxC8T1vXHP9PO1uns+WQ83Pnr/F3/diM+Ggz+mBzcvb+bZF/u
To8+vP5yuDW+LuglmiP9448P6fDs3fnG1mZr98X7TrHRf/HnQe+o1zr8XPae
3V2cFH/cHRXXx9lqIVH1NAslPdGec6AiqsJgAR9+fYI+EqqvYMr4pp3EHMu8
UQvWqUHM0HtCP2wZc/T/ShNuS0/eIt3nCnXvVydHjGSsLhe/oBfjWfm2P1Vc
6CCtEwvlJ1pRPx19+6aLFuBD0Dk+e9MJfw7/590OoLITPoW/nm22nnfCl2Gn
9Rk+R62/goPua1goPrW90dp+Ab9ttF4EmCT7bGeeJ/DL5t/WeKinIT/8NGy0
GvjfPxrrAapDP4ehfaHRbqz6FFzSVKhCGZZQWYLeyhUI0Vt2RPhAxGoWYd33
SOGFr5h9/eoorrABvJdG+GPs4nFbIPglWpF8/X+WsbRi/r3wO6yo34OVdtR3
WFG/ByvtqO+won4PVtpR32FF/R6stKO+w4r6PVhpR32HFfV7sNKO+i4r6vGG
k8uliOSR2k8yrVUiRXGy7ObmBrpUlhgTO+YGEXkHsa1NjArJy6CczEGBXknz
8NNymK3UP12env96fNo5aHUPDk963d6nVu/018OTq2agygGmgJM6lIh2i4oy
qlbwCb0wyyC2wzfZraIwDAMqchtD2WmpXT3ee5zlwhy9azSnjvWO7bMS/vWJ
o6DrvhQ96zMm7yTYCXOq/Cp0LkeuRlSezw6WEpSxmApkyIQYSoiIi1AoAUpU
/r5aZDRAVnhlA+Qqnuc5J+VpzxhGHZpYECBLF0dfMU9ozVV/HevhRdPR0S3L
y+eJbDWAlXM2Ddego8OxQDViebxUsjv89hk4sJQSn4kWyu59Jqc1G0nZNrna
EknBnaukwqJi3cUAQYbuM38mdolRZmHnE/BppRJCq0an6PLkyLzAaLt8L8m5
mKgFCKDE0RasOS7KCIO2OjB/5ar80wW9TIp+B208ST4SV5wkSlLCFw4z5FFk
QnKFAkVyrpuaUqATz57BRQUTOMupdcfWrj5Vt974FBYzEV9SbcmDrqO2plsL
iK8+02dZ6RqCRZVlNUhpzE8ifMneIXvZxjW1PmJCWpSzrWvV4DhRrbpNCyHf
Rjt0VOOIA+TaiCJDDKmIZ6FoiM7ZcqIhaCa5qc61cf+95fRFyhhd7mRBR9bL
cWGPbJYv3AyaSm6SsJEPy+CxXujkmgUBVS7o7BHSG0jHMIn/NolCp4WhftRX
1GuF04sKVt3ujYPbmmyC03iEvXIe0uHJx78itVRonMhLuIDHNkyfjFK3fzC5
TLcqSVpoC4jDiwPzmMNAyWkDTITBHESda7XmLL3pMYW2zOFuAOmxHMOTeJaZ
+MFcMhz9vmg2TWYXb7oseAREBqOfIAUEy4mO9+Z3IizLlpisEDMkPAPT5q6y
FVFQDrZOZyDFX6c56EH8jF/HRURNBEiyeADV5hP6ABr4bFy1ugNuiqoTBZSM
bh0JnCrsk0dFGn5KpnaKEXe1QljzcSqjEgYhLDbLuE0Dc1VOHakMWnGtXZh2
HDaYbbKT9VfLyT5wsjtOPdBy+hh1CNCZY6Ye6J56wlQOfcWNVqBmkLNV/pgK
JMbKQHI9lTVYKuOaKK+h6XbQqZ5ut7ytdAGgmHzBjSlMeg2ShxoaGucTDP+b
cM1baurjKol5V2+yogQtr68GEcebMZSG9ExCBRP9coVNK5RwIB4FU2k4m/Te
Fk5eAw5vEagQKiZUk6f/MkC3SMPsreXSjXv6OnDpU8/E03DDr5zQ9Jk+sCsG
qe/BcEgFt/umkC8I6BvGSDYA1U8X0AoxOPnORsPp2liCk2s/wtwhTjdJEbtR
kaXNwBSboJrIDMIA1WTLdkZSmH5D2UiHA3j+MLvlihKALRH+TmU0Rglu2hLi
uJCKZAxe9xazGN12i2bAgekYNHyu1nSLleHlzlmX6vKaWASgXSaSpoIhFENP
Oxsb4dqraEipvkApnI44wwzJHLNEJTPHDE8qcuCVHkh2lVbI2Bja2X2OcsLD
Ejnjjd8N9QxQxSrFFIgXE/82HsAwfG+y0nApgbuUnY3NMGa/rhc5MB1ndKSc
VCAsWaCqBCpLJbxUa67NaVB3oAua3l1SxMSb4agHl5etjhuQdtxTTJv7GQ1E
Z4ReQ2n+ijNKpMrr65MBP+RYSPosopbqjIn1DQyOtZL6bjYGtm8b80Q0JCJO
XrW536wS2aQW6Q8XSPelBRqPqE6ZplExnwX05BgEFcLNjPon2VPcGYZye2kG
mKyQ6oYq75EuMpikhTzVVhljrwGd2YDJqVwtoTk2VZVg+bq/CC6lw0Q3OeyR
CzwsLM6GQtEyoGRGGz4MRBHAcy1dfpwxIpaiNLki4ezPTtjhN4VqdPYWrS+k
kuPIzU/GxpoL/VQhuWpIS44NGFQmyWzXQk2Vw7hAyFHbzbP5eCKrg3PTrWSH
2ARAUNMpj45OhUE1Oe/o0LqYozCeGgPfgf3msmmMxZLdp41h0l+5wnrEOSRT
oDkentQ5wssPhQUeA1RAnsDDUCvpYxK4m9kx5Kw9zNcrJAyUK1skZi1vnYXi
nGHsf9B2nA1UqFRgXSMdCTm9jFCdVWLMIC9vGXsLOp0rECfSYVBedyUU2xHO
Q+ywQe0p1O3zyL8SOcGnwC+ZcAizxB5nIOEzUlLmQC9E8lrVcWvWXLxqs8ep
Iaw2SySwOGfeFFHA74EZQ56nPBU+Isto4o3XosbUedK2cxnN/fNXRzZpQQGP
7JhcRTbP0WyTKSLqtUHW9hOn2VZdMUKlP8Y3PxtKtDvTprJJx6tasdCsbc4m
jge0QJ3CeHhyhDDHtCFUErqyWMBt1CIlA4OVJQOVtn517QprOwKSxmz4vvSH
eqi3JteZmgpxN7G5UqgiIX1JyESTCnRNSUMXPwQlD662Fxlqt+zWZOLp2gC/
xJHKZTonWi6LO2VF1eel4T8V/CE7MGhZ2aunKVldnjsnM7WXq5BRGGwcnFzQ
TzYZ0ipX+KP49GyfHpEcXq2bgAaInGBDXXzFMxb6NV1Fa9Da+WQwei/gnBxL
HYYJsLNfux9RM0uyASYeEoPiroSkdCGEek9MppDxnNRARm0euLOFlyfraHnL
9A8qEr3SwtXLKbG1u+4RNP4GT5roosJVBqULSFMzXGr95xaxcSahyzNJht9X
dQUccIA5tLqgubN/bPotUnOikGVFoa01m2TBnVs0O18aWaiQOFmSjXX3Kh7d
FInr0cWXKy1FzK6YPHqTIoGKmKOj4GTMihe6CeSywMIjaNQ+IlnNvLV5QIUE
t3Wba4rjKF9ojq1LJMPYbcCjDbWad5lbJdRHoG8dEE6dHbWgNB3urBeqLT4N
v5PRN1yEk+dr9AFUk0wlKDbsqWmbBNT9RtZZT55Z3ybL162GOyHUdBGuz3/V
dLJX2y9xL+yM0Pkl7alY31x2A1dL4V14c0yoVjf1nVK58EOnW7g1ksttMPdC
y4yZCOOickalfcGDhZX/BFgFBIdBAnN4jHCj8jVbnABMlfR0OhkUuIhyjri5
dYj6NIg7J/bbKrqbPOK6eeE+YbZ03MwpxRbbnnofXpBZHAQ/wXijv3OQMqOA
9yFdvrEXwuOof+ZqinyaFNJCieoDMht9zrr+U9eSmDGev9jZaurAB+e4cJ3w
T09pPml+IeORLZ5LLpmukBlxZ4r6pHXbFM1E7ogPen1x/PasgInSeHHguS66
w1JVtg7w/ommdm0bzhRJ7WeUVB222DMHF6j1Ef55pllPFWBdvlDYDoDGS8jc
N5beFXQpijSmMDaTOKA4EAEfxhIw5FtXCsE4mIzhGW9YmrlpjElslo2qqlO/
5MNJGa82toY/LrCmNssLNqx1WSjACHMdzXOkYtS2sOdxqEYjNF7RTiPrDKgY
43VekpSr5FsfBM3L/UHRyJtTO0/aTkIHaiFUNCEtRbgnu1dQE0nRFrX4YvtQ
CwhGcZ/qvoECIxR9iIkbvB0FvTpL1EWhtRgOv+JGr7DWc/GIcMD2JhbWavHM
B7o6FApDMiGRCwyQwImLugekYX1z7DsAqzVWt6a9nFz+QrfIaFGNfeiG84rv
nGwi01WZgJpEN8zx+yqFI1LKFQwpl8wOldudkJRGPMwKs5XEFY5Re8IRNgnL
Y0spCNoITO1+NLh25iJjjvZZI4LrfaSFNSnmU0IqOhu4v8DMtK23dLm8as7k
o3NjKYhZz4ISfWF5DQw6cPnH2oWw1nWUc6febSP7J/tH8OU7hAOjlVIod68U
2RPfCzn/yxhRYlT0j7p1gPTFGWJU3C3EXZErsofF7BFAso89fUAT23tIkoHo
pcdhFwblXvhvsligBwo46lL5cvHva/o+HrmBh5NoscRF/6/MlcIbgtKn5q2n
eqB17EBZuV5mCY3VJ8I1MFPg7ABQ58fr34/gmb394QG0Rcls8l/BG12P88uQ
4W8XZoU9lSjyv7UA9sEEU8H+ZXnoZUzo9/4714y8EttwPX7Z7orTLJr8MgZm
xYDSdUABBUhqluPc5IG5IB5L2wt/qqGsaxArt0XJ90kt/v4oPHh7+Shk1Ww7
qqKPRsK/CZgo2V/H5Zt5v/aYyFPrqDAZ2t73opR1TVCRMGr7olb6qlB9CRoY
LPn9KPeaNo5ryuS47ZbOPHH7/MVpTXKy+M7aYiXXl+4hD8O++2VE7NZzHi6F
4DnfiYUUOlZsFjQlOmkPJ4blZxg9FQM+ZrVFF9Hqpm8X8TSWOvLIaajEwlRs
nvrGWW6z/rJQyajpdnxDrQE9gMmNaUzg5M2YBBDCPfdKKptSs8mRguWm5Kg0
aWepdCd1qru5d4Epcm05iQj6ogLUNx1M+va87rQmuWxe7sL9aQI43Q0nlqCj
NyqBzq8lhM69wQ54i95RGkAxiWc0xxn6CSqtenWXQoawNTVvYAqNNQAj7Rdx
NsFtvbbcoKlC4bZMuLAKKjkuMDmGrp3IlqmZ3UdGM4Ut5p1fci/boIse1rY/
4S1yDHUbF0GpnsdFllYxXrX0Y8dRCYDKtSKYkUY69oAbIXHjfpCyA703yDwK
pj4OtNr+NehwQcwWxqPnJku5v7NfDzf4rCY9wd51Ausbs62P2SjzJDUphBQM
1NnWLvKxG7+uo7E18aZFrXviHL19zb9tBfcodraJi/CtM6rU28Y7Qf2HfBVW
GvlL7PVht7bbeKfSEZe7aOs+lUy71reYoumNOi4a4Rlne7ur1M0hrDGUGhcr
mmYmVErhQ/KU79tWcqu7DOSKGcCcInDkm6hcrYIxCw5z6Whg9Q4Lqj2jfIGF
X1FH3cJg9ylVJMlAMy+u1W0T3kiw13gOeinBE/F9ORKUhMGnIegWgPjc56Q6
PAhcJhvo5pIWSTqFp3BCy0z04hAoWJkHUDNKZYvItzT0d4UbrtjoCJ5FYLpg
YRE6p7qBld4yW9Szqn9Vs+r/pBvKdJ8oPqjjOfIMWvpoyWfitAqp7XfudZ83
R/HMHkVOQ8Rj8ciOTqZTJbXCBKkeUssBMPSj2URqg3TeHTsu7SEUJ1htz+Sz
7Gx9Vfu6UvsupGwmWuoVIEFaJ5/Ba8lqtkZUjcIOpzu3w/yk8Ngmcg/cAPCS
DTqTe2YaKxgPHDWK4o7WvhfM3n6gzdrH3ddECYLSMG3dLuHhzh7tkJvGE5ud
qGSGRwrrDnXIlVL3pdVWaZM2yezlI457RcaktDl3OoYI9nTGQTQrSaXA30Ck
Ie5468U3CM+CVNZHkpfh3pYCAGETGZEN5JywDchnpstHrrxLqbyd3OO02+N4
yinHq6j6GIAoZpE+Bib5zwbYCbfkMIgAZBgO1mISAoFd5BSuNfyHlDjsdaT7
6QFfYI3HA3E1143k5j7mK5QpINoSklFEDkYQrKAUiIfcCApmthoZnKQFdP5K
8unsxUYuC/curkAATao18lHcblI0MNWZmhFOkMs7HZxiI4np1i67Z0bVwhMX
p3M11In/kbs+gxVYe5sllGTgezlANC9szw1ipNTJYvX9nJwE5wGmtKZ2v/pR
EtkWQm4O+gCjjzDCiCJVaam7SHkaI6e44WNGTsQjv9UeBXvM6h7RNdkKrEoD
ZcIFOdv1OygUcckgIV66HUfr0uOpzXVSkqT1WjnJnaRt524nLpFIsVIEVkny
V9sMkjBjISPOAsCrlFsCgYQEXE9VVFB2nyuSIzlj7LqHowZYXE4pYbCosxRG
p3IaXreawhxmapHFfYCwvbITerDlFUUmZRSpvbHO7a21ZuXIOkX9YakLNsl1
uimfT21kRvp1FsR9R0YPHedfspDiESdxjPiXNF8jKYl++UgOxVABN9QpXMz5
mQSu5SiQe7OU7Ec28nS6EDt6EVaXIqI70WBM7j43KJxIcpZVfdoVnlinDWh+
yPwPmbo24un8CAPEfcDfJOWKQuW6zTVfo2giGanCaACyBr4CQ9KdvKCdd8WE
af7jtDQTK4Ucz/bw99XS+Z8CoynJCQ7gFRJJU0PTvYhR6Oet2vqYL3S3xGPQ
dIFOEWoBau7fc8QpWGfXIpdGpSMFtfDTeKtIFfK0VDKXIlewevddIh2IOrV0
9wlXxd2QXWJ+9BO8XHhjrrkg1gwWRgLvwayU10WCGPO6CtckQXhuSSnNRAoz
nGxDczIiIYBiWTkvNC4NPaNRbDQyXpVzky1dkcIZfBGw5kXBMZTbKIcVyGU0
Ti2VXYFJBCj4jnrizQhXzLcIcKFUpBUNQ4x+c0ZH3Dr5ppFVazChmmnknLf1
zKRMgbWL22WZgey05ktCB06OFacV3rDEsQJSz0X7cClMCTFYUQZkQP8NrWuh
omFoXVJEGfBX4uyRC0oP0+Esi9PSOfUgEAAzjq5fMVmlIsHTH3To2+va6l6A
KulIcqeqcTmZQhbRyh38jdxrV7nrvj7IbuqD3xSs1gpyHa2PyEPTyVcrkzpS
vzVzJbzu6+mdwq256i0ZfZhRqiI0MZHo+ToTu4VeVgfVF1rbWNoWeilV9bfn
PKKJf11v8pqKJOvbtVa5n4O2Op9FYqHGGKh6gvWB9lrSc6L8IQX4TGoHZdDA
j+ypNZ5nE3CPlz3HkifLThw9zsPTc4qt9iRXu2q46rh1hFkncpvYA8YUbaGd
iyynHOOBy8EeaMp+v7nj0rYV8g9d3wIwaIU4WehePRi7XaTRFBYC+HqqlQ3W
zl0+7mqYotQjh3NXb/0ybvJgtc+OU9ta0f7xDJJvHrhBxO5u0ps9b187PAY+
LvB5vdaBL+eUhOCLQbHHsPWz5+PR55iT2VnFWrGaym3G328XwdwvKxkiS4aA
O7djRyRU27G2f35crOMROU2pVYRLAqKTa9IM1073L87WUT0/P9p/9uLZhil/
28dshQQPEFi3w4rNIO6tB8wCSVc3VthyelmV8LSbyeYLmpdJncoktD+Ihm4l
nM/hapLiagssw32Ddt4G7/Szm7LwevB6NFR7BcqI79Uh/SHSRYo8oHarSqGc
f0xEX7C2r2ZXYaKikY26CPyuX1PfZuRmzxLm8EWDPpQpRZboizJrReWv2A3X
dDwPglc6Nf8+3+LDvisUqQuvG7sk8q7yhVDen1bPrzHcJT86X7veyEfW+K7r
112PWaaLP3xbXkrd4A3bFyBX0thYRCddVYSlTKvQg+V7bohffNw4m1xpUswx
sz5mNmsun9edQtMsbaHDIefKLsT2JMqHoBCrFq1fmoLZRmCjSv4bXmBR7f6F
U+u/6QpIJ8ziPOJmL7GvJFlYbTpwFbLakEWUuuFD3TLLyOumnoAuZeTWt9Y9
1cTkX7qbEpN/m35RaYCxgRHq/Xzlp1tLZPLjKMhEZRsmh4qS3L3aUunEH9kL
qrnK0TSgl5pWgT4wPhSXc+QaK3Q71GgZkSYqo0t6JV5Pd07PvGxB51o06WQA
jLi9ypdk+vdyuGRAN2ritQWOnWF06pfLzWL1+0WJVYtcA4Klcoga1O/xikWX
BqXDr6XBiC40srPxflgbI9KSYGha59K1QE58s+buscBmdxFII3RguzpSO+SG
CRiPNsl0cTrSZkndekxk3uKVYy46FK2tHJNO8fXJNB4OE9XP7hS2eek4JljW
J1Lg0BARFRKSPmn+bSDa6kF1ErPmHuSoJiiBSfolGLSzkg1u7Uugu1jHrLdi
ph9Yx3BMpC8z25QltYGpcZDbDswUqLjhm37parOmBC1afgIzWW72YmhhYuY+
NL08t4tYf8EOBNbR7S1p5DmhX3xavB8f2hMyi4h5sr/duBHY5i/oTNbcwSI/
UzktLpZCLxgEtsEOPQflTdqMS53WjQVDeAUpcnuHf2ApIsdWotT7XvsOp9lQ
Z5SWWhyUlfRSPzhClTkDNvX1rvuBD+NNMiPKLFRtLfFsFiJagSJPwjsnpGL7
qTu6sjgVxDWEGQRxcV2ropBr5i/tUivicm4zO3W1G8bGaevZmVdV8UXN0nk6
ur4MXSLuFgP30AeQMsOpcdBgOc/JOMzJ94eUokuCNBt2Ua4dFyD9c6lUMtak
zQYCcpImu1JbioWLntcGcVtl/H7qJ2s5ouTjKeL4m+yQlRODBd+U7K4iTnWx
avshnRk7bd+iJKLYhFplgkvRT7pA6uKbDZcub/JuFBNjDJ0DTa7BX+AqWrzH
bJC7dC/O6oxE90vKAjdSqSk+opbno/BzBrRu4fqUfihqOvJoZx9HWJ0eCIRj
AKKYwGa1HcLw9Hb/vnk3C46MN2NlLl9R6rlZ8bA5XlYkJ9N3Cxdfy+Y8T2rf
k/dDkG5UkUhyE4ezsVvMv+BruUnMcOBKnLNuSQZTq2KHifHH+FSqk0E8nLh3
RNEJxZRpgYLujqWmUTUJhu+o70wP60jO+ZYFVtECeiF2C8BIhHErKgLLRn4V
ps4r48Vt2EHdyxukZdW7w4Nup937dHZ4QY0p8c4JG7B/qjvfNKVzQwz8SreR
IV9JzcMg6s1jYLLiYpAx7LnPBsHFvF/an+TVIDjXwTfrzdwLT552guBUb9XS
L4fpIBvKnVAORvfCFT9wU5shH5aE8YRH3fa20caoh4vqRUdymZDTUCy4qL/P
ao8exQFXZJeaKhFuDR1+/PiRpHulG1x1VFr92VzfweFdRLinB2p6vX8CpwBM
9FaTZ2/XtlftziqPctbnqquIm5U0NnwlEN+Gzi0xiZBaI6KKcVQG5LLz4CiP
xlPrACfDs3bhThMjR0zscRKYYm0LTAXUuk0FLa2TV0hjvIvGwG3SOaY+rhXr
8u1RnDilXfw96Lb4+AATZotJSFo0ETBWVdhXz8iLGf5LiO6JRHf6k1AyJiUT
GCOuo6nArYmES16LH7BNU85FQCvpg5w784Jyo7EA+fQEzxDeOCJFnVTuSj8z
0mhsS5CPnWsfJMGY837yDPs07JlSKjhmY9BS2Bfci4prjL2B4rMGTGj8C7pa
21k+5hZu4ZsFmhBY4U82woibO4n3DJuYrEvbWPL///OY4H9q3kVDs0l8on3U
PTw+MGxydVtOn1W2qKLPMMxVPXMt05QXcBIL0t6qF9GnQl7IPfKxRSnn8F/o
VkFD4vy8+/C1yyLCA7GBPV5RbbP8jRLqpyR196juxtb9cTE3dz6iRr9gIACV
3xn9jZYSBK1WK0TzFmWfnjR8AyjO8oXUIq6uQbyvnhAQSgVxLbeJlEYUekCK
1sY2YpJijOKb4uYQLQx94N2RXtk054Viywq5dVT3i+ICfG76QkoQ/qlEDRwO
TVJPMe+bA6Tvv7GNxpaT4Wbc2mztyebz7WYI/91dlw5tashmobUHOKPPd3tU
RBvMoROYKxohjvpeFFpKGGhZeWd75dfdYqj1WQmnF+SYAuLQbpah5bcw0MFF
5wo9hegCf/Hjsx1pvtchHFU6Z1GV4xBVqRG5dKVfGqJj68UGoGPrxQ69vQ/r
Mc3TYJCnxsJcQqiblkWb4yYW+lmDL0nH1R4W4wgaMK+juQCQ3WcEwgXVdosJ
CtKgVTmQiKkWdQayrk+9e2tPtl/wvl6UOr6ILhMn2sCuvj2hIuuQppt/UMt8
iQWX++fHGLaIyS0IsD3fWBq1tzyqmLtYISHe2SwdJTFnmXOGjlPNyr08V4dL
7PCSo+9o5dRMTRdK+BlTnImUm/kkOQnzmSWFhxrf8M9u0r2baIRrfvaC1szM
ArC8x2cA+2eV2j5s1OTGNp42gGoaTl5b1O9j6aXcrXc3i0iaYherOC9orKbu
vKjHH0QzvBLU5A3rE8ARRjTfwkaNNdRoEw8iflbMAUGjhG45/gFPZDcNT0kd
0BIJxLHDRogO+1EhhtQXNPeLKAZNi8IhUyzdIUHXkBJzONZyk7st0AZm3CAQ
qK91TYtFXGe1UY6hcOCSZlGVKhKY93GDuV13UB1yT7S1yTyvNRmF/nSmshQR
WmACDemlpfa9Z+SkX+mh5xBL5GWJiHseRu5HfSTx60juBozRYr4vbGDcQ4Ra
cveQoZqyVnejpMwfqMN4aOfWCPpbeIb5IsTcq1IMK/9g9oZb1dNgv2vj0O3H
yw90OBCHe3zAOZHcagHzokrccemBDVhKFvDQKL4DRpzHSIRKn6QQoCyoLcPC
3SLJPy/sjcC4SGZPkqxS2SURGDbZpQ8CR5X6uLzjNiThEfqr4AhG18PsFtHR
EU8d50vR9E4fX62vOhO9FllHlz3LeWFmpykfpdDu1q5cN8xZ5I7XhDrlWImE
MJAXjfrpYeNA3b1UcbdIXaZS7em31BNw7cnOxhYxqg86q8S7kBuzU5y0kjj3
Ip8/FLaZ7ZNtzeW1BOLyNtRmX2olib6SxOSlWwcBls1NI4VN0q3k4a6q0bBh
dJJf2+sOD6uYh83w7JA97GcHZzY4gDQc4wHB2cC2BM1kimNt4FiPU962AqM7
2LYR+s75h+63r16xSya90+KYE+0olei+LCT92L6jyHinziM9fWp8VacplYeJ
6aXBydomCM/IxeXf5yhwq3/crNQmqROOZoXD2x/xk+Mc9aOMTjOsv4WvuSAE
mw45R9sWypAhS62mMpuJZSPXGF7DdVi54/TssIqWblmw5lZwXJ71GFI6e5pH
mL6vhdAfndhGAipB0iCpR2pfQ/u5s7nkrj1IWptBVbEk+lh9lbT4YP2Lhb0u
7EXTShhnMwDly35XKlUhamRBRxM7R4yAWb5Q0goTmops4twxk50LhTSeX0rp
RK6q7Zu92ycfg7ONwAJI+4V71YI9klYcejf1iTBXIeDk40wCmdSp40ZJ6zen
CYShDN3zQ98sirJ2kke6Ia+WXHoWHHQE79b0RGJWu2J5xVbR0uTZ2nge+GcQ
Fgh8+Apw57Qsms9MhqD1l5E2chAXAEHlDjvxEXPf0bOea8tw/170sCfURcy4
71DLu50siCq0HKIXMcPD9D4fWoNMsyWPDnRnZyrVknT2qIai8OUTdRs6VisX
YevMFW04CuO46lD6ccsczCuvl+0DOH6GOD6UnACXmOu7d/nRmbbWbrxX7j1o
EoqwKQk26uBbx2BDYV48bb7TcudRi9q1p4L5II6b1y1GI9lcdJ+CANZnQbSm
jic1TT4utzXAqM9BPMaNpQaq+uoEsmn0YSRlAVWoW2k/Q+ZNKR1BfZ7M16GQ
fwtbPyA7qevP/gAGdhgDnACBPezbX26v29SQnq4w6cmKc3FNFnWX8tFZOaN8
Ancl50vZ3pQmJ5lElNqM7A3f1NJDv4rCM9M5vRRoy5JsvLAWoI9rXOOjlksu
pX1jFXLxRdgwN2O23S4a4UC8Z1Yxki4upg1Lm/pnXFekDyPOXCWvPU16U6M+
Z7NTma+RzlXlz5Eo3m0iCIowJJ7ZqfOpzEzWtses7GUkrvsFRbLc8fg4qtli
NFaaX/tdpxmTpqy8TqU05E42DrohLZslUedyAkAiX/gM66bzajKrKDIxwPZj
iRqOWQw9ZhWboqJKCaNTI+tu+1mMISsfMG5/6fQkSKlvdUUUNFzDoBFQd/wa
LkdE946qqGzTdcAXZfZNScOyumPFSk2idDzHpBcYgrwsNvVbN+1e19zK7Skp
UrKuErnOiSlNF4QHHZxlZy2wf7gLPt7swBRkXJtMfzB94BqNRu6ItRMlGIag
dTxqu0iF6aIIgTN1+Zofl4b8GJ8ZZDOS2jxMMVEjUGZXjKSX6CcYT9ixrZeN
Tu+OT1fB1z2OOanhz40RKClK35DHpKivlOdrv6k7RnotJBT+GgGOE2D9dApp
Ztprui1iqun2UslbB3hzRRIeqWTovmM6rGn9SfoBYOs226C2ek+8DbnR4M79
T7qRq+nhZXiEaRpGvhBWkmz0EbM4MHY5iWa63aAbo3CIlr2NqBTpUq8yawad
dJjHMagFcarGUTM4AqY7JR8+/IBhhLQZvFVR2jrKo/T//Z8MJmi8hT1thMfZ
tB/lQxjjV9ANJvF1eA7qFBy5uImHLLjI0nE/C1/N28H/Bz6NezdQtQAA

-->

</rfc>
