<?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.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-lombardo-oauth-client-extension-claims-02" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.0 -->
  <front>
    <title abbrev="OCEC">OAuth 2.0 client extension claims</title>
    <seriesInfo name="Internet-Draft" value="draft-lombardo-oauth-client-extension-claims-02"/>
    <author fullname="Jean-François Lombardo">
      <organization>AWS</organization>
      <address>
        <postal>
          <country>Canada</country>
        </postal>
        <email>jeffsec@amazon.com</email>
      </address>
    </author>
    <author fullname="Alexandre Babeanu">
      <organization>IndyKite</organization>
      <address>
        <postal>
          <country>Canada</country>
        </postal>
        <email>alex.babeanu@indykite.com</email>
      </address>
    </author>
    <date year="2025" month="June" day="30"/>
    <area/>
    <workgroup>Web Authorization Protocol</workgroup>
    <keyword>security</keyword>
    <keyword>trust</keyword>
    <abstract>
      <?line 109?>

<t>This specification defines new claims for JWT profiled access tokens <xref target="RFC9068"/> so that resource providers can benefit from more granular information about the client: its authentication methods as well as the grant flow and the grant flow extensions used as part of the issuance of the associated tokens.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://identitymonk.github.io/draft-lombardo-oauth-client-extension-claims/draft-lombardo-oauth-client-extension-claims.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-lombardo-oauth-client-extension-claims/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Web Authorization Protocol  mailing list (<eref target="mailto:oauth@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/oauth/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/oauth/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/identitymonk/draft-lombardo-oauth-client-extension-claims"/>.</t>
    </note>
  </front>
  <middle>
    <?line 113?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Resource providers need information about the subject, the action, the resource, and the context involved in the request in order to be able to determine properly if a resource can be disclosed. This decision may also involve the help of a Policy Decision Point (PDP).</t>
      <t>When accessed with a JWT profiled OAuth2 Access Token <xref target="RFC9068"/> presented as a bearer token <xref target="RFC6750"/>, a resource provider receives mainly information about the subject in the form of:
- The <tt>sub</tt> claim,
- Any user profile claim set by the Authorization Server if applicable,
- Any Authentication Information claims like the user class of authentication (<tt>acr</tt>claim) or user method of authentication (claim <tt>amr</tt> <xref target="RFC8176"/>)
- Any Authorization Information if applicable</t>
      <t>The resource provider has very little information about the client, mainly in the form of the <tt>client_id</tt> <xref target="RFC8693"/> claim. It falls short in several important circumstances, for instance, in <xref target="FAPI2.0-Security-Profiles"/> or <xref target="hl7.fhir.uv.smart-app-launch"/> regulated APIs when they require peculiar client authentication mechanisms to be enforced or transaction specific details to be present in the token.</t>
      <t>This document defines 4 new claims allowing to describe with more precise information the client and metadata on how it interacted with the authorization server during the issuance of the access token. It respects description of how to encode access tokens in JWT format.</t>
      <t>The process by which the client interacts with the authorization server is out of scope.</t>
    </section>
    <section anchor="conventions-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<dl>
        <dt>JWT access token:</dt>
        <dd>
          <t>An OAuth 2.0 access token encoded in JWT format and complying to the requirements described in <xref target="RFC9068"/>.</t>
        </dd>
      </dl>
      <t>This specification uses the terms "access token", "authorization server", "authorization endpoint", "authorization request", "client", "protected resource", and "resource server" defined by "The OAuth 2.0 Authorization Framework" <xref target="RFC6749"/>.</t>
    </section>
    <section anchor="client-ext-data-structure">
      <name>JWT Access Token Client Extensions Data Structure</name>
      <t>The following claims extend the <xref target="RFC9068"/> access token payload data structure:</t>
      <section anchor="client-flow-info">
        <name>Client Flow Information Claims</name>
        <t>The claims listed in this section <bcp14>MUST</bcp14> be issued and reflect grant type and extensions used with authorization server as part of the authorization request from the client. Their values are dynamic across all access tokens that derive from a given authorization response to reflect the elements used in the process that lead to their issuance.</t>
        <dl>
          <dt><tt>gty</tt>:</dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14> - defines the OAuth2 authorization grant type the client used for the issuance of the access token. String that is an identifier for an OAuth2 Grant type. Values used in the <tt>gty</tt> Claim <bcp14>MUST</bcp14> be from those registered in the IANA Grant Type Reference Values registry TODO established by this RFC and referencing, without being limited to, values established through section 2. of <xref target="RFC7591"/>, section 2.1 of <xref target="RFC8693"/>, and section 4 of <xref target="OpenID.CIBA"/>.</t>
          </dd>
          <dt><tt>cxt</tt>:</dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14> - defines the list of extensions the client used in conjunction with the OAuth2 authorization grant type used for the issuance of the access token. For example but not limited to: Proof Key for Code Exchange by OAuth Public Clients (or PKCE) as defined in <xref target="RFC7636"/>, Demonstrating Proof of Possession (or DPoP) as defined in <xref target="RFC9449"/>. JSON array of strings that are identifiers for extensions used. Values used in the <tt>cxt</tt> Claim <bcp14>MUST</bcp14> be from those registered in the IANA Client Context Reference Values registry TODO established by this RFC and referencing, without being limited to, values established through section 2 of <xref target="RFC8414"/>, and Section 5.1 of <xref target="RFC9449"/>.</t>
          </dd>
        </dl>
      </section>
      <section anchor="client-authn-info">
        <name>Client Authentication Information Claims</name>
        <t>The claims listed in this section <bcp14>MAY</bcp14> be issued and reflect the types and strength of client authentication in the access token that the authentication server enforced prior to returning the authorization response to the client. Their values are fixed and remain the same across all access tokens that derive from a given authorization response, whether the access token was obtained directly in the response (e.g., via the implicit flow) or after obtaining a fresh access token using a refresh token. Those values may change if an access token is exchanged for another via an <xref target="RFC8693"/> procedure in order to reflect the specificities of this request.</t>
        <dl>
          <dt><tt>ccr</tt>:</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14> - defines the authentication context class reference the client satisfied when authenticating to the authorization server. An absolute URI or registered name from future RFC <bcp14>SHOULD</bcp14> be used as the <tt>ccr</tt> value; registered names <bcp14>MUST NOT</bcp14> be used with a different meaning than that which is registered. Parties using this claim will need to agree upon the meanings of the values used, which may be context specific.</t>
          </dd>
          <dt><tt>cmr</tt>:</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14> - defines the authentication methods the client used when authenticating to the authorization server. String that is an identifier for an authentication method used in the authentication of the client. For instance, a value might indicate the usage of private JWT as defined in <xref target="RFC7521"/> and <xref target="RFC7523"/> or HTTP message signature as defined in <xref target="RFC9421"/> . The <tt>cmr</tt> value is a case-sensitive string. Values used in the <tt>cmr</tt> Claim <bcp14>SHOULD</bcp14> be from those registered in the IANA OAuth Token Endpoint Authentication Methods Values registry <xref target="IANA.oauth-parameters_token-endpoint-auth-method"/> defined by <xref target="RFC7591"/>; parties using this claim will need to agree upon the meanings of any unregistered values used, which may be context specific.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="as-metadata">
      <name>Authorization Server Metadata</name>
      <t>The following authorization server metadata parameters are introduced as an extension of <xref target="RFC8414"/>, in order to describe the server's capabilities.</t>
      <dl>
        <dt><tt>support_client_extentison_claims</tt>:</dt>
        <dd>
          <t>Boolean parameter indicating to clients and resource servers whether the authorization server will return the extension claims described in this document.</t>
        </dd>
      </dl>
      <t>Note: that the non presence of <tt>support_client_extentison_claims</tt> is sufficient for the client to determine that the server is not capable and therefore will not return the extension claims described in this RFC.</t>
    </section>
    <section anchor="request-jwt-client-ext">
      <name>Requesting a JWT Access Token with Client Extensions</name>
      <t>This specification does not change how clients interacts with authorization servers.</t>
      <t>An authorization server supporting this specification <bcp14>MUST</bcp14> issue a JWT access token with client extensions claims described in this RFC in response to any authorization grant defined by <xref target="RFC6749"/> and subsequent extensions meant to result in an access token and as along as the authorization server support this capability.</t>
    </section>
    <section anchor="validate-jwt-client-ext">
      <name>Validating JWT Access Tokens with Client Extensions</name>
      <t>This specification follows the requirements of the section 4 of <xref target="RFC9068"/>.</t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <section anchor="validation-of-token">
        <name>Validation Of Token</name>
        <t>The JWT access token data format described here is the same as JWT access token defined by <xref target="RFC9068"/>.</t>
      </section>
      <section anchor="processing-of-claims-defined-by-this-document">
        <name>Processing Of Claims Defined By This Document</name>
        <t>Any processor, client or resource server, <bcp14>MUST</bcp14> only process claims described in this document that it understands.</t>
        <t>If a processor does not understand a claim described in this document or its value, it <bcp14>SHOULD</bcp14> ignore it.</t>
      </section>
      <section anchor="security-best-practice">
        <name>Security Best Practice</name>
        <t>The security current best practices described in <xref target="RFC9700"/> <bcp14>MUST</bcp14> be applied.</t>
      </section>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>The following registration procedure is used for the registry established by this specification.</t>
      <t>Values are registered on a Specification Required [RFC8126] basis after a two-week review period on the oauth-ext-review@ietf.org mailing list, on the advice of one or more Designated Experts. However, to allow for the allocation of values prior to publication of the final version of a specification, the Designated Experts may approve registration once they are satisfied that the specification will be completed and published. However, if the specification is not completed and published in a timely manner, as determined by the Designated Experts, the Designated Experts may request that IANA withdraw the registration.</t>
      <t>Registration requests sent to the mailing list for review should use an appropriate subject (e.g., "Request to register JWT profiled OAuth2 Access Token client extensions: example").</t>
      <t>Within the review period, the Designated Experts will either approve or deny the registration request, communicating this decision to the review list and IANA. Denials should include an explanation and, if applicable, suggestions as to how to make the request successful. The IANA escalation process is followed when the Designated Experts are not responsive within 14 days.</t>
      <t>Criteria that should be applied by the Designated Experts includes determining whether the proposed registration duplicates existing functionality, determining whether it is likely to be of general applicability or whether it is useful only for a single application, and whether the registration makes sense.</t>
      <t>IANA must only accept registry updates from the Designated Experts and should direct all requests for registration to the review mailing list.</t>
      <t>It is suggested that multiple Designated Experts be appointed who are able to represent the perspectives of different applications using this specification, in order to enable broadly-informed review of registration decisions. In cases where a registration decision could be perceived as creating a conflict of interest for a particular Expert, that Expert should defer to the judgment of the other Experts.</t>
      <t>The reason for the use of the mailing list is to enable public review of registration requests, enabling both Designated Experts and other interested parties to provide feedback on proposed registrations. The reason to allow the Designated Experts to allocate values prior to publication as a final specification is to enable giving authors of specifications proposing registrations the benefit of review by the Designated Experts before the specification is completely done, so that if problems are identified, the authors can iterate and fix them before publication of the final specification.</t>
      <section anchor="iana-grant-type-reg">
        <name>OAuth Grant Type Registration</name>
        <t>This specification registers the following grant type in the <xref target="IANA.oauth-parameters"/> OAuth Grant Type registry.</t>
        <section anchor="iana-grant-type-reg-ac">
          <name><tt>authorization_code</tt> grant type</name>
          <dl>
            <dt>Type name:</dt>
            <dd>
              <t><tt>authorization_code</tt></t>
            </dd>
            <dt>Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Specification document(s):</dt>
            <dd>
              <t>section 2. of <xref target="RFC7591"/></t>
            </dd>
          </dl>
        </section>
        <section anchor="iana-grant-type-implicit">
          <name><tt>implicit</tt> grant type</name>
          <dl>
            <dt>Type name:</dt>
            <dd>
              <t><tt>implicit</tt></t>
            </dd>
            <dt>Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Specification document(s):</dt>
            <dd>
              <t>section 2. of <xref target="RFC7591"/></t>
            </dd>
          </dl>
        </section>
        <section anchor="iana-grant-type-reg-pwd">
          <name><tt>password</tt> grant type</name>
          <dl>
            <dt>Type name:</dt>
            <dd>
              <t><tt>password</tt></t>
            </dd>
            <dt>Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Specification document(s):</dt>
            <dd>
              <t>section 2. of <xref target="RFC7591"/></t>
            </dd>
          </dl>
        </section>
        <section anchor="iana-grant-type-reg-cc">
          <name><tt>client_credentials</tt> grant type</name>
          <dl>
            <dt>Type name:</dt>
            <dd>
              <t><tt>client_credentials</tt></t>
            </dd>
            <dt>Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Specification document(s):</dt>
            <dd>
              <t>section 2. of <xref target="RFC7591"/></t>
            </dd>
          </dl>
        </section>
        <section anchor="iana-grant-type-rt">
          <name><tt>refresh_token</tt> grant type</name>
          <dl>
            <dt>Type name:</dt>
            <dd>
              <t><tt>refresh_token</tt></t>
            </dd>
            <dt>Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Specification document(s):</dt>
            <dd>
              <t>section 2. of <xref target="RFC7591"/></t>
            </dd>
          </dl>
        </section>
        <section anchor="iana-grant-type-jwt">
          <name><tt>jwt-bearer</tt> grant type</name>
          <dl>
            <dt>Type name:</dt>
            <dd>
              <t><tt>urn:ietf:params:oauth:grant-type:jwt-bearer</tt></t>
            </dd>
            <dt>Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Specification document(s):</dt>
            <dd>
              <t>section 2. of <xref target="RFC7591"/> and section 6 of <xref target="I-D.parecki-oauth-identity-assertion-authz-grant"/></t>
            </dd>
          </dl>
        </section>
        <section anchor="iana-grant-type-reg-saml2">
          <name><tt>saml2-bearer</tt> grant type</name>
          <dl>
            <dt>Type name:</dt>
            <dd>
              <t><tt>urn:ietf:params:oauth:grant-type:saml2-bearer</tt></t>
            </dd>
            <dt>Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Specification document(s):</dt>
            <dd>
              <t>section 2. of <xref target="RFC7591"/></t>
            </dd>
          </dl>
        </section>
        <section anchor="iana-grant-type-reg-te">
          <name><tt>token-exchange</tt> grant type</name>
          <dl>
            <dt>Type name:</dt>
            <dd>
              <t><tt>urn:ietf:params:oauth:grant-type:token-exchange</tt></t>
            </dd>
            <dt>Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Specification document(s):</dt>
            <dd>
              <t>section 2.1. of <xref target="RFC8693"/></t>
            </dd>
          </dl>
        </section>
        <section anchor="iana-grant-type-reg-dc">
          <name><tt>device_code</tt> grant type</name>
          <dl>
            <dt>Type name:</dt>
            <dd>
              <t><tt>urn:ietf:params:oauth:grant-type:device_code</tt></t>
            </dd>
            <dt>Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Specification document(s):</dt>
            <dd>
              <t>section 3.4. of <xref target="RFC8628"/></t>
            </dd>
          </dl>
        </section>
        <section anchor="iana-grant-type-reg-ciba">
          <name><tt>ciba</tt> grant type</name>
          <dl>
            <dt>Type name:</dt>
            <dd>
              <t><tt>urn:openid:params:grant-type:ciba</tt></t>
            </dd>
            <dt>Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Specification document(s):</dt>
            <dd>
              <t>section 4. of <xref target="OpenID.CIBA"/></t>
            </dd>
          </dl>
        </section>
      </section>
      <section anchor="iana-grant-ext-reg">
        <name>OAuth Grant Extension Type Registration</name>
        <t>This specification registers the following grant extension type in the <xref target="IANA.oauth-parameters"/> OAuth Grant Extension Type registry.</t>
        <section anchor="iana-grant-ext-reg-pkce">
          <name><tt>pkce</tt> grant extension type</name>
          <dl>
            <dt>Type name:</dt>
            <dd>
              <t><tt>pkce</tt></t>
            </dd>
            <dt>Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Specification document(s):</dt>
            <dd>
              <t>This RFC as a reference to <xref target="RFC7636"/></t>
            </dd>
          </dl>
        </section>
        <section anchor="iana-grant-ext-reg-dpop">
          <name><tt>dpop</tt> grant extension type</name>
          <dl>
            <dt>Type name:</dt>
            <dd>
              <t><tt>dpop</tt></t>
            </dd>
            <dt>Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Specification document(s):</dt>
            <dd>
              <t>This RFC as a reference to <xref target="RFC9449"/></t>
            </dd>
          </dl>
        </section>
        <section anchor="iana-grant-ext-reg-wpt">
          <name><tt>wpt</tt> grant extension type</name>
          <dl>
            <dt>Type name:</dt>
            <dd>
              <t><tt>wpt</tt></t>
            </dd>
            <dt>Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Specification document(s):</dt>
            <dd>
              <t>This RFC as a reference to section 4.2 of <xref target="I-D.ietf-wimse-s2s-protocol"/></t>
            </dd>
          </dl>
        </section>
        <section anchor="iana-grant-ext-rar">
          <name><tt>rar</tt> grant extension type</name>
          <dl>
            <dt>Type name:</dt>
            <dd>
              <t><tt>rar</tt></t>
            </dd>
            <dt>Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Specification document(s):</dt>
            <dd>
              <t>This RFC as a reference to <xref target="RFC9396"/></t>
            </dd>
          </dl>
        </section>
        <section anchor="iana-grant-ext-reg-par">
          <name><tt>par</tt> grant extension type</name>
          <dl>
            <dt>Type name:</dt>
            <dd>
              <t><tt>par</tt></t>
            </dd>
            <dt>Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Specification document(s):</dt>
            <dd>
              <t>This RFC as a reference to <xref target="RFC9126"/></t>
            </dd>
          </dl>
        </section>
        <section anchor="iana-grant-ext-reg-jar">
          <name><tt>jar</tt> grant extension type</name>
          <dl>
            <dt>Type name:</dt>
            <dd>
              <t><tt>jar</tt></t>
            </dd>
            <dt>Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Specification document(s):</dt>
            <dd>
              <t>This RFC as a reference to <xref target="RFC9101"/></t>
            </dd>
          </dl>
        </section>
      </section>
      <section anchor="iana-token-authn-reg">
        <name>OAuth Token Endpoint Authentication Methods Registration</name>
        <t>This specification registers additional token endpoint authentication methods in the <xref target="IANA.oauth-parameters"/> OAuth Token Endpoint Authentication Methods registry.</t>
        <section anchor="iana-token-authn-reg-jwt">
          <name><tt>jwt-bearer</tt> token endpoint authentication method</name>
          <dl>
            <dt>Type name:</dt>
            <dd>
              <t><tt>jwt-bearer</tt></t>
            </dd>
            <dt>Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Specification document(s):</dt>
            <dd>
              <t>This RFC as a reference to <xref target="RFC7591"/> and <xref target="I-D.parecki-oauth-identity-assertion-authz-grant"/></t>
            </dd>
          </dl>
        </section>
        <section anchor="iana-token-authn-reg-jwt-svid">
          <name><tt>jwt-svid</tt> token endpoint authentication method</name>
          <dl>
            <dt>Type name:</dt>
            <dd>
              <t><tt>jwt-svid</tt></t>
            </dd>
            <dt>Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Specification document(s):</dt>
            <dd>
              <t>This RFC as a reference to <eref target="https://github.com/spiffe/spiffe/blob/main/standards/JWT-SVID.md">SPIFFE JWT-SVID</eref></t>
            </dd>
          </dl>
        </section>
        <section anchor="iana-token-authn-reg-wit">
          <name><tt>wit</tt> token endpoint authentication method</name>
          <dl>
            <dt>Type name:</dt>
            <dd>
              <t><tt>wit</tt></t>
            </dd>
            <dt>Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Specification document(s):</dt>
            <dd>
              <t>This RFC as a reference to <xref target="I-D.ietf-wimse-s2s-protocol"/></t>
            </dd>
          </dl>
        </section>
        <section anchor="iana-token-authn-reg-txntoken">
          <name><tt>txn_token</tt> token endpoint authentication method</name>
          <dl>
            <dt>Type name:</dt>
            <dd>
              <t><tt>txn_token</tt></t>
            </dd>
            <dt>Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Specification document(s):</dt>
            <dd>
              <t>This RFC as a reference to <xref target="I-D.ietf-oauth-transaction-tokens"/></t>
            </dd>
          </dl>
        </section>
      </section>
      <section anchor="iana-claims-reg">
        <name>Claims Registration</name>
        <t>Section X.Y of this specification refers to the attributes <tt>gty</tt>, <tt>cxt</tt>, <tt>ccr</tt>, and <tt>cmr</tt> to express client metadata JWT access tokens. This section registers those attributes as claims in the <xref target="IANA.jwt"/> registry introduced in <xref target="RFC7519"/>.</t>
        <section anchor="iana-claims-reg-gty">
          <name><tt>gty</tt> claim definition</name>
          <dl>
            <dt>Claim Name:</dt>
            <dd>
              <t><tt>gty</tt></t>
            </dd>
            <dt>Claim Description:</dt>
            <dd>
              <t>OAuth2 Grant Type used</t>
            </dd>
            <dt>Change Controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
          </dl>
          <t>Specification Document(s):
      Section X.Y of this document</t>
        </section>
        <section anchor="iana-claims-cxt">
          <name><tt>cxt</tt> claim definition</name>
          <dl>
            <dt>Claim Name:</dt>
            <dd>
              <t><tt>cxt</tt></t>
            </dd>
            <dt>Claim Description:</dt>
            <dd>
              <t>Client Extensions used on top of the OAuth2 Grant Type</t>
            </dd>
            <dt>Change Controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Specification Document(s):</dt>
            <dd>
              <t>Section X.Y of this document</t>
            </dd>
          </dl>
        </section>
        <section anchor="iana-claims-ccr">
          <name><tt>ccr</tt> claim definition</name>
          <dl>
            <dt>Claim Name:</dt>
            <dd>
              <t><tt>ccr</tt></t>
            </dd>
            <dt>Claim Description:</dt>
            <dd>
              <t>Client Authentication Class Reference</t>
            </dd>
            <dt>Change Controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Specification Document(s):</dt>
            <dd>
              <t>Section X.Y of this document</t>
            </dd>
          </dl>
        </section>
        <section anchor="iana-claims-cmr">
          <name><tt>cmr</tt> claim definition</name>
          <dl>
            <dt>Claim Name:</dt>
            <dd>
              <t><tt>cmr</tt></t>
            </dd>
            <dt>Claim Description:</dt>
            <dd>
              <t>Client Authentication Methods Reference</t>
            </dd>
            <dt>Change Controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
            <dt>Specification Document(s):</dt>
            <dd>
              <t>Section X.Y of this document</t>
            </dd>
          </dl>
        </section>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC6749">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
        <reference anchor="RFC7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7519"/>
          <seriesInfo name="DOI" value="10.17487/RFC7519"/>
        </reference>
        <reference anchor="RFC9068">
          <front>
            <title>JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens</title>
            <author fullname="V. Bertocci" initials="V." surname="Bertocci"/>
            <date month="October" year="2021"/>
            <abstract>
              <t>This specification defines a profile for issuing OAuth 2.0 access tokens in JSON Web Token (JWT) format. Authorization servers and resource servers from different vendors can leverage this profile to issue and consume access tokens in an interoperable manner.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9068"/>
          <seriesInfo name="DOI" value="10.17487/RFC9068"/>
        </reference>
        <reference anchor="RFC7591">
          <front>
            <title>OAuth 2.0 Dynamic Client Registration Protocol</title>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="M. Machulak" initials="M." surname="Machulak"/>
            <author fullname="P. Hunt" initials="P." surname="Hunt"/>
            <date month="July" year="2015"/>
            <abstract>
              <t>This specification defines mechanisms for dynamically registering OAuth 2.0 clients with authorization servers. Registration requests send a set of desired client metadata values to the authorization server. The resulting registration responses return a client identifier to use at the authorization server and the client metadata values registered for the client. The client can then use this registration information to communicate with the authorization server using the OAuth 2.0 protocol. This specification also defines a set of common client metadata fields and values for clients to use during registration.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7591"/>
          <seriesInfo name="DOI" value="10.17487/RFC7591"/>
        </reference>
        <reference anchor="RFC8693">
          <front>
            <title>OAuth 2.0 Token Exchange</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="A. Nadalin" initials="A." surname="Nadalin"/>
            <author fullname="B. Campbell" initials="B." role="editor" surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
            <date month="January" year="2020"/>
            <abstract>
              <t>This specification defines a protocol for an HTTP- and JSON-based Security Token Service (STS) by defining how to request and obtain security tokens from OAuth 2.0 authorization servers, including security tokens employing impersonation and delegation.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8693"/>
          <seriesInfo name="DOI" value="10.17487/RFC8693"/>
        </reference>
        <reference anchor="RFC8628">
          <front>
            <title>OAuth 2.0 Device Authorization Grant</title>
            <author fullname="W. Denniss" initials="W." surname="Denniss"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="August" year="2019"/>
            <abstract>
              <t>The OAuth 2.0 device authorization grant is designed for Internet- connected devices that either lack a browser to perform a user-agent- based authorization or are input constrained to the extent that requiring the user to input text in order to authenticate during the authorization flow is impractical. It enables OAuth clients on such devices (like smart TVs, media consoles, digital picture frames, and printers) to obtain user authorization to access protected resources by using a user agent on a separate device.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8628"/>
          <seriesInfo name="DOI" value="10.17487/RFC8628"/>
        </reference>
        <reference anchor="OpenID.CIBA" target="https://openid.net/specs/openid-client-initiated-backchannel-authentication-core-1_0.html">
          <front>
            <title>OpenID Connect Client-Initiated Backchannel Authentication Flow - Core 1.0</title>
            <author initials="G. F." surname="Rodriguez" fullname="Gonzalo Fernandez Rodriguez" role="editor">
              <organization>Telefonica</organization>
            </author>
            <author initials="F." surname="Walter" fullname="Florian Walter" role="editor">
              <organization>Deutsche Telekom AG</organization>
            </author>
            <author initials="A." surname="Nennker" fullname="Axel Nennker" role="editor">
              <organization>Deutsche Telekom AG</organization>
            </author>
            <author initials="D." surname="Tonge" fullname="Dave Tonge" role="editor">
              <organization>Moneyhub</organization>
            </author>
            <author initials="B." surname="Campbell" fullname="Brian Campbell" role="editor">
              <organization>Ping Identity</organization>
            </author>
            <date year="2021" month="September"/>
          </front>
        </reference>
        <reference anchor="RFC8414">
          <front>
            <title>OAuth 2.0 Authorization Server Metadata</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <date month="June" year="2018"/>
            <abstract>
              <t>This specification defines a metadata format that an OAuth 2.0 client can use to obtain the information needed to interact with an OAuth 2.0 authorization server, including its endpoint locations and authorization server capabilities.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8414"/>
          <seriesInfo name="DOI" value="10.17487/RFC8414"/>
        </reference>
        <reference anchor="IANA.oauth-parameters" target="https://www.iana.org/assignments/oauth-parameters">
          <front>
            <title>OAuth Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC6750">
          <front>
            <title>The OAuth 2.0 Authorization Framework: Bearer Token Usage</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="D. Hardt" initials="D." surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>This specification describes how to use bearer tokens in HTTP requests to access OAuth 2.0 protected resources. Any party in possession of a bearer token (a "bearer") can use it to get access to the associated resources (without demonstrating possession of a cryptographic key). To prevent misuse, bearer tokens need to be protected from disclosure in storage and in transport. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6750"/>
          <seriesInfo name="DOI" value="10.17487/RFC6750"/>
        </reference>
        <reference anchor="RFC7521">
          <front>
            <title>Assertion Framework for OAuth 2.0 Client Authentication and Authorization Grants</title>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="Y. Goland" initials="Y." surname="Goland"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>This specification provides a framework for the use of assertions with OAuth 2.0 in the form of a new client authentication mechanism and a new authorization grant type. Mechanisms are specified for transporting assertions during interactions with a token endpoint; general processing rules are also specified.</t>
              <t>The intent of this specification is to provide a common framework for OAuth 2.0 to interwork with other identity systems using assertions and to provide alternative client authentication mechanisms.</t>
              <t>Note that this specification only defines abstract message flows and processing rules. In order to be implementable, companion specifications are necessary to provide the corresponding concrete instantiations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7521"/>
          <seriesInfo name="DOI" value="10.17487/RFC7521"/>
        </reference>
        <reference anchor="RFC7523">
          <front>
            <title>JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>This specification defines the use of a JSON Web Token (JWT) Bearer Token as a means for requesting an OAuth 2.0 access token as well as for client authentication.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7523"/>
          <seriesInfo name="DOI" value="10.17487/RFC7523"/>
        </reference>
        <reference anchor="RFC8176">
          <front>
            <title>Authentication Method Reference Values</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="P. Hunt" initials="P." surname="Hunt"/>
            <author fullname="A. Nadalin" initials="A." surname="Nadalin"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>The "amr" (Authentication Methods References) claim is defined and registered in the IANA "JSON Web Token Claims" registry, but no standard Authentication Method Reference values are currently defined. This specification establishes a registry for Authentication Method Reference values and defines an initial set of Authentication Method Reference values.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8176"/>
          <seriesInfo name="DOI" value="10.17487/RFC8176"/>
        </reference>
        <reference anchor="RFC7636">
          <front>
            <title>Proof Key for Code Exchange by OAuth Public Clients</title>
            <author fullname="N. Sakimura" initials="N." role="editor" surname="Sakimura"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Agarwal" initials="N." surname="Agarwal"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>OAuth 2.0 public clients utilizing the Authorization Code Grant are susceptible to the authorization code interception attack. This specification describes the attack as well as a technique to mitigate against the threat through the use of Proof Key for Code Exchange (PKCE, pronounced "pixy").</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7636"/>
          <seriesInfo name="DOI" value="10.17487/RFC7636"/>
        </reference>
        <reference anchor="RFC9396">
          <front>
            <title>OAuth 2.0 Rich Authorization Requests</title>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <author fullname="J. Richer" initials="J." surname="Richer"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <date month="May" year="2023"/>
            <abstract>
              <t>This document specifies a new parameter authorization_details that is used to carry fine-grained authorization data in OAuth messages.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9396"/>
          <seriesInfo name="DOI" value="10.17487/RFC9396"/>
        </reference>
        <reference anchor="RFC9126">
          <front>
            <title>OAuth 2.0 Pushed Authorization Requests</title>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <author fullname="D. Tonge" initials="D." surname="Tonge"/>
            <author fullname="F. Skokan" initials="F." surname="Skokan"/>
            <date month="September" year="2021"/>
            <abstract>
              <t>This document defines the pushed authorization request (PAR) endpoint, which allows clients to push the payload of an OAuth 2.0 authorization request to the authorization server via a direct request and provides them with a request URI that is used as reference to the data in a subsequent call to the authorization endpoint.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9126"/>
          <seriesInfo name="DOI" value="10.17487/RFC9126"/>
        </reference>
        <reference anchor="RFC9101">
          <front>
            <title>The OAuth 2.0 Authorization Framework: JWT-Secured Authorization Request (JAR)</title>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="August" year="2021"/>
            <abstract>
              <t>The authorization request in OAuth 2.0 described in RFC 6749 utilizes query parameter serialization, which means that authorization request parameters are encoded in the URI of the request and sent through user agents such as web browsers. While it is easy to implement, it means that a) the communication through the user agents is not integrity protected and thus, the parameters can be tainted, b) the source of the communication is not authenticated, and c) the communication through the user agents can be monitored. Because of these weaknesses, several attacks to the protocol have now been put forward.</t>
              <t>This document introduces the ability to send request parameters in a JSON Web Token (JWT) instead, which allows the request to be signed with JSON Web Signature (JWS) and encrypted with JSON Web Encryption (JWE) so that the integrity, source authentication, and confidentiality properties of the authorization request are attained. The request can be sent by value or by reference.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9101"/>
          <seriesInfo name="DOI" value="10.17487/RFC9101"/>
        </reference>
        <reference anchor="RFC9449">
          <front>
            <title>OAuth 2.0 Demonstrating Proof of Possession (DPoP)</title>
            <author fullname="D. Fett" initials="D." surname="Fett"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="D. Waite" initials="D." surname="Waite"/>
            <date month="September" year="2023"/>
            <abstract>
              <t>This document describes a mechanism for sender-constraining OAuth 2.0 tokens via a proof-of-possession mechanism on the application level. This mechanism allows for the detection of replay attacks with access and refresh tokens.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9449"/>
          <seriesInfo name="DOI" value="10.17487/RFC9449"/>
        </reference>
        <reference anchor="RFC8705">
          <front>
            <title>OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens</title>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document describes OAuth client authentication and certificate-bound access and refresh tokens using mutual Transport Layer Security (TLS) authentication with X.509 certificates. OAuth clients are provided a mechanism for authentication to the authorization server using mutual TLS, based on either self-signed certificates or public key infrastructure (PKI). OAuth authorization servers are provided a mechanism for binding access tokens to a client's mutual-TLS certificate, and OAuth protected resources are provided a method for ensuring that such an access token presented to it was issued to the client presenting the token.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8705"/>
          <seriesInfo name="DOI" value="10.17487/RFC8705"/>
        </reference>
        <reference anchor="RFC9421">
          <front>
            <title>HTTP Message Signatures</title>
            <author fullname="A. Backman" initials="A." role="editor" surname="Backman"/>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <author fullname="M. Sporny" initials="M." surname="Sporny"/>
            <date month="February" year="2024"/>
            <abstract>
              <t>This document describes a mechanism for creating, encoding, and verifying digital signatures or message authentication codes over components of an HTTP message. This mechanism supports use cases where the full HTTP message may not be known to the signer and where the message may be transformed (e.g., by intermediaries) before reaching the verifier. This document also describes a means for requesting that a signature be applied to a subsequent HTTP message in an ongoing HTTP exchange.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9421"/>
          <seriesInfo name="DOI" value="10.17487/RFC9421"/>
        </reference>
        <reference anchor="RFC9700">
          <front>
            <title>Best Current Practice for OAuth 2.0 Security</title>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="A. Labunets" initials="A." surname="Labunets"/>
            <author fullname="D. Fett" initials="D." surname="Fett"/>
            <date month="January" year="2025"/>
            <abstract>
              <t>This document describes best current security practice for OAuth 2.0. It updates and extends the threat model and security advice given in RFCs 6749, 6750, and 6819 to incorporate practical experiences gathered since OAuth 2.0 was published and covers new threats relevant due to the broader application of OAuth 2.0. Further, it deprecates some modes of operation that are deemed less secure or even insecure.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="240"/>
          <seriesInfo name="RFC" value="9700"/>
          <seriesInfo name="DOI" value="10.17487/RFC9700"/>
        </reference>
        <reference anchor="I-D.parecki-oauth-identity-assertion-authz-grant">
          <front>
            <title>Identity Assertion Authorization Grant</title>
            <author fullname="Aaron Parecki" initials="A." surname="Parecki">
              <organization>Okta</organization>
            </author>
            <author fullname="Karl McGuinness" initials="K." surname="McGuinness">
              <organization>Independent</organization>
            </author>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <date day="20" month="June" year="2025"/>
            <abstract>
              <t>   This specification provides a mechanism for an application to use an
   identity assertion to obtain an access token for a third-party API by
   coordinating through a common enterprise identity provider using
   Token Exchange [RFC8693] and JWT Profile for OAuth 2.0 Authorization
   Grants [RFC7523].

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-parecki-oauth-identity-assertion-authz-grant-04"/>
        </reference>
        <reference anchor="I-D.ietf-wimse-s2s-protocol">
          <front>
            <title>WIMSE Workload to Workload Authentication</title>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <author fullname="Joe Salowey" initials="J." surname="Salowey">
              <organization>Venafi</organization>
            </author>
            <author fullname="Arndt Schwenkschuster" initials="A." surname="Schwenkschuster">
              <organization>SPIRL</organization>
            </author>
            <author fullname="Yaron Sheffer" initials="Y." surname="Sheffer">
              <organization>Intuit</organization>
            </author>
            <date day="19" month="June" year="2025"/>
            <abstract>
              <t>   The WIMSE architecture defines authentication and authorization for
   software workloads in a variety of runtime environments, from the
   most basic ones up to complex multi-service, multi-cloud, multi-
   tenant deployments.  This document defines the simplest, atomic unit
   of this architecture: the protocol between two workloads that need to
   verify each other's identity in order to communicate securely.  The
   scope of this protocol is a single HTTP request-and-response pair.
   To address the needs of different setups, we propose two protocols,
   one at the application level and one that makes use of trusted TLS
   transport.  These two protocols are compatible, in the sense that a
   single call chain can have some calls use one protocol and some use
   the other.  Workload A can call Workload B with mutual TLS
   authentication, while the next call from Workload B to Workload C
   would be authenticated at the application level.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-s2s-protocol-05"/>
        </reference>
        <reference anchor="I-D.ietf-oauth-transaction-tokens">
          <front>
            <title>Transaction Tokens</title>
            <author fullname="Atul Tulshibagwale" initials="A." surname="Tulshibagwale">
              <organization>SGNL</organization>
            </author>
            <author fullname="George Fletcher" initials="G." surname="Fletcher">
              <organization>Capital One</organization>
            </author>
            <author fullname="Pieter Kasselman" initials="P." surname="Kasselman">
              <organization>SPIRL</organization>
            </author>
            <date day="3" month="March" year="2025"/>
            <abstract>
              <t>   Transaction Tokens (Txn-Tokens) enable workloads in a trusted domain
   to ensure that user identity and authorization context of an external
   programmatic request, such as an API invocation, are preserved and
   available to all workloads that are invoked as part of processing
   such a request.  Txn-Tokens also enable workloads within the trusted
   domain to initiate transactions with protected user identity an
   authorization context throughout the call chain of the workloads
   required to complete the request.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-transaction-tokens-05"/>
        </reference>
        <reference anchor="IANA.oauth-parameters_token-endpoint-auth-method" target="https://www.iana.org/assignments/oauth-parameters">
          <front>
            <title>OAuth Token Endpoint Authentication Methods</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.jwt" target="https://www.iana.org/assignments/jwt">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="FAPI2.0-Security-Profiles" target="https://openid.net/specs/fapi-2_0-security-02.html">
          <front>
            <title>FAPI 2.0 Security Profile</title>
            <author initials="D. D." surname="Fett" fullname="Dr Daniel Fett" role="editor">
              <organization>Authlete</organization>
            </author>
            <author initials="D." surname="Tonge" fullname="Dave Tonge" role="editor">
              <organization>Moneyhub Financial Technology</organization>
            </author>
            <author initials="J." surname="Heenan" fullname="Joseph Heenan" role="editor">
              <organization>Authlete</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="hl7.fhir.uv.smart-app-launch" target="https://www.hl7.org/fhir/smart-app-launch/app-launch.html#obtain-authorization-code">
          <front>
            <title>HL7 FHIR SMART App Launch</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 527?>

<section numbered="false" anchor="ack">
      <name>Acknowledgments</name>
      <t>The authors wants to acknowledge the support and work of the following individuals: George Fletcher (Practical Identity), Christopher Langton (Vulnetix).</t>
      <t>The authors wants also to recognize the trail blazers and thought leaders that created the ecosystem without which this draft proposal would not be able to solve customer pain points and secure usage of digital services, especially without being limited to: Vittorio Bertocci†, Brian Campbell (Ping Identity), Justin Richer (MongoDB), Aaron Parecki (Okta), Pieter Kasselman (SPRL), Dr Mike Jones (Self-Issued Consulting, LLC), Dr Daniel Fett (Authlete).</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
