<?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-01" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.0 -->
  <front>
    <title abbrev="TODO - Abbreviation">OAuth 2.0 client extension claims</title>
    <seriesInfo name="Internet-Draft" value="draft-lombardo-oauth-client-extension-claims-01"/>
    <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="28"/>
    <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 long 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 Authenticaiton Information claims like the user class of authentication (<tt>acr</tt>claim) or user methord of authentication (claim <tt>amr</tt> <xref target="RFC8176"/>)
- Any Authorization Information if applicable</t>
      <t>The resource provider has very few 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 with 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 accros 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 conjonction 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 tokenis exchanged for another via an <xref target="RFC8693"/> procedure in order to reflect the specifities 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 furture 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 <xref target="RFC8414"/> are introduced to signal the server's capability</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 claimns 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 claimns 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 layout 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." surname="Fernandez" fullname="G. Fernandez" role="editor">
              <organization>TElefonica</organization>
            </author>
            <author initials="F." surname="Walter" fullname="F. Walter" role="editor">
              <organization>Deutsche Telekom AG</organization>
            </author>
            <author initials="A." surname="Nennker" fullname="A. Nennker" role="editor">
              <organization>Deutsche Telekom AG</organization>
            </author>
            <author initials="D." surname="Tonge" fullname="D. Tonge" role="editor">
              <organization>Moneyhub</organization>
            </author>
            <author initials="B." surname="Campbell" fullname="B. 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 indivisuals: George Fletcher (Pratical 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>
