<?xml version='1.0' encoding='UTF-8'?>

<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>

<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" ipr="trust200902" submissionType="IETF" consensus="true" docName="draft-ietf-oauth-rfc7523bis-11" number="10070" updates="7521, 7522, 7523, 9126" obsoletes="" tocInclude="true" tocDepth="5" symRefs="true" sortRefs="true" version="3" xml:lang="en">

  <front>
    <title abbrev="JWT Client Auth Updates">Updates to OAuth 2.0 JSON Web Token (JWT) Client Authentication and Assertion-Based Authorization Grants</title>
    <seriesInfo name="RFC" value="10070"/>
    <author fullname="Michael B. Jones" surname="Jones" initials="M.B.">
      <organization>Self-Issued Consulting</organization>
      <address>
        <email>michael_b_jones@hotmail.com</email>
        <uri>https://self-issued.info/</uri>
      </address>
    </author>
    <author fullname="Brian Campbell" initials="B." surname="Campbell">
      <organization abbrev="Ping Identity">Ping Identity</organization>
      <address>
        <email>bcampbell@pingidentity.com</email>
      </address>
    </author>
    <author fullname="Chuck Mortimore" initials="C." surname="Mortimore">
      <organization abbrev="Ticketmaster">Ticketmaster</organization>
      <address>
        <email>charliemortimore@gmail.com</email>
      </address>
    </author>
    <author fullname="Filip Skokan" initials="F." surname="Skokan">
      <organization abbrev="Okta">Okta</organization>
      <address>
        <email>panva.ip@gmail.com</email>
      </address>
    </author>
    <date month="November" year="2026"/>

    <area>SEC</area>
    <workgroup>oauth</workgroup>

    <keyword>OAuth</keyword>
    <keyword>JWT</keyword>
    <keyword>Assertion</keyword>
    <keyword>Token</keyword>
    <keyword>Security Token</keyword>

    <abstract>
      <t>
	This document updates RFCs 7521, 7522, 7523, and 9126 with respect to the treatment of audience values
	in OAuth 2.0 Client Assertion Authentication and Assertion-based Authorization Grants
	to address a security vulnerability identified in the previous
	requirements for those audience values in multiple OAuth 2.0 specifications.
      </t>
    </abstract>
  </front>
  <middle>
    <section anchor="Introduction">
      <name>Introduction</name>
      <t>
	Multiple OAuth 2.0 specifications use tokens (also known as "assertions")
	that are sent to authorization servers.
	These tokens contain audience value(s) that identify the intended recipient(s).
	When the token is a JSON Web Token (JWT) <xref target="RFC7519"/>,
	the audience value(s) are contained in the
	"aud" (audience) claim.
      </t>
      <t>
	When performing a security analysis of a pre-final version of
	the OpenID Federation specification <xref target="OpenID.Federation"/>,
	University of Stuttgart security researchers
	Pedram Hosseyni, Dr. Ralf Küsters, and Tim Würtele
	discovered a vulnerability affecting multiple OpenID and OAuth
	specifications caused by ambiguities in the audience values
	of tokens sent to authorization servers.
	The vulnerability was disclosed to the OAuth Working Group
	in an interim meeting in January 2025 called for that purpose and a description of the vulnerability
	<xref target="private_key_jwt.Disclosure"/> was provided.
	A paper they published describing the attack is
	<xref target="Audience.Injection"/>.
      </t>
      <t>
	This specification updates the affected OAuth specifications
	to address the security vulnerability that was identified.
	Specifically, it eliminates former choices in the audience values
	of tokens sent to OAuth 2.0 authorization servers.
	<xref target="RFC8414" section="3.3"/> requires that the client having retrieved the metadata validates the returned issuer value.
	Other endpoint values of the metadata cannot be directly validated and, if used as the audience when sent to a different endpoint, can open an attack vector.
      </t>
      <t>
	A general description of the updates made is
	to require that the issuer identifier URL of the authorization server,
	as defined in <xref target="RFC8414"/>,
	be used as the sole value of the audience of the JWT client authentication assertion.
	Furthermore, the authorization server rejects any JWT client authentication assertion that
	does not contain its own issuer identifier as the sole audience value.
	An explicit type for the JWT client authentication assertion,
	as defined in <xref target="RFC8725"/>,
	is also defined to facilitate distinguishing between
	tokens produced in accordance with specifications
	published prior to these updates and those incorporating them.
	Specific updates made to each affected specification follow.
      </t>
      <section anchor="NotationalConventions">
        <name>Notational Conventions</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&nbsp;14 <xref target="RFC2119"/> <xref target="RFC8174"/> 
    when, and only when, they appear in all capitals, as shown here.
        </t>
      </section>
      <section anchor="Terminology">
        <name>Terminology</name>
        <t>
	  All terms are as defined in the following specifications:
	  "The OAuth 2.0 Authorization Framework" <xref target="RFC6749"/>,
	  "Assertion Framework for OAuth 2.0 Client Authentication and Authorization Grants" <xref target="RFC7521"/>,
	  and "JSON Web Token (JWT)" <xref target="RFC7519"/>.
        </t>
      </section>
    </section>
    <section anchor="RFC7521Updates">
      <name>Updates to RFC 7521</name>
      <t>
	This section updates
	"Assertion Framework for OAuth 2.0 Client Authentication and
	Authorization Grants" <xref target="RFC7521"/>
	to tighten its audience requirements.
      </t>
      <t>
	The description of the Audience parameter
	in <xref section="5.1" target="RFC7521"/> (Assertion Metamodel)
	is replaced as follows.
      </t>
	<t>OLD:</t>
	<blockquote>
		<dl newline="true" spacing="normal">
		<dt>Audience</dt>
		<dd>A value that identifies the party or parties intended to process
      the assertion.  The URL of the token endpoint, as defined in Section
      <xref section="3.2" target="RFC6749" sectionFormat="bare"/> of OAuth 2.0 <xref target="RFC6749"/>, can be used to indicate that
      the authorization server is a valid intended audience of the
      assertion.  In the absence of an application profile specifying
      otherwise, compliant applications MUST compare the Audience values
      using the Simple String Comparison method defined in Section <xref section="6.2.1" target="RFC3986" sectionFormat="bare"/>
      of RFC 3986 <xref target="RFC3986"/>.
		</dd>
	  </dl>
		</blockquote>
<t>NEW:</t>	
      <blockquote>
      <dl newline="true" spacing="normal">
        <dt>Audience</dt>
        <dd>
            A value that identifies the party intended to process the assertion.
           The issuer identifier of the authorization server,
           as defined in <xref target="RFC8414"/>, can be used to indicate that
           the authorization server is a valid intended audience of the assertion.
	  </dd>
      </dl>
      </blockquote>
    </section>
    <section anchor="RFC7522Updates">
      <name>Updates to RFC 7522</name>
      <t>
	This section updates
	"Security Assertion Markup Language (SAML) 2.0 Profile for OAuth 2.0
	Client Authentication and Authorization Grants" <xref target="RFC7522"/>.
	It tightens its audience requirements for SAML authorization grants and
	it deprecates the use of SAML assertions for client authentication.
      </t>
      <t>
	The text and example in <xref section="2.2" target="RFC7522"/>
	(Using SAML Assertions for Client Authentication)
	is replaced as follows.
      </t>
<t>OLD:</t>
<blockquote>
<t>To use a SAML Bearer Assertion for client authentication, the client
   uses the following parameter values and encodings.</t>
<t>The value of the "client_assertion_type" parameter is
   "urn:ietf:params:oauth:client-assertion-type:saml2-bearer".</t>
<t>The value of the "client_assertion" parameter MUST contain a single
   SAML 2.0 Assertion.  The SAML Assertion XML data MUST be encoded
   using base64url, where the encoding adheres to the definition in Section
   <xref target="RFC4648" sectionFormat="bare" section="5"/> of RFC 4648 <xref target="RFC4648"/> and where the padding bits are set to
   zero.  To avoid the need for subsequent encoding steps (by
   "application/x-www-form-urlencoded" <xref target="W3C.REC-html401-19991224"/>, for
   example), the base64url-encoded data SHOULD NOT be line wrapped and
   pad characters ("=") SHOULD NOT be included.</t>
<t>The following example demonstrates a client authenticating using an
   Assertion during the presentation of an authorization code grant in
   an access token request (with extra line breaks for display purposes
   only):</t>
<artwork><![CDATA[ 
POST /token.oauth2 HTTP/1.1
Host: as.example.com
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code&
code=n0esc3NRze7LTCu7iYzS6a5acc3f0ogp4&
client_assertion_type=urn%3Aietf%3Aparams%3Aoauth
%3Aclient-assertion-type%3Asaml2-bearer&
client_assertion=PHNhbW...[omitted for brevity]...ZT
]]></artwork>   
</blockquote>
<t>NEW:</t>
      <blockquote><t>
	    SAML Bearer Assertions
	    <bcp14>MUST NOT</bcp14> be used for client authentication for any new applications.
	    Should any applications already be doing this in the manner
	    described in <xref section="2.2" target="RFC7522"/>,
	    it is left to the discretion of their implementers and deployers
	    whether to migrate away from this feature and/or
	    potentially tighten the audience values used
	    in a manner parallel to the changes being made to RFC 7523
	    by this specification.
          </t>
      </blockquote>
      <t>
	The description of the Audience element in Item 2 of
	<xref section="3" target="RFC7522"/> (Assertion Format and Processing Requirements)
	is replaced as follows.
      </t>
<t>OLD:</t>
		<blockquote><t>The Assertion <bcp14>MUST</bcp14> contain a &lt;Conditions&gt; element with an
        &lt;AudienceRestriction&gt; element with an &lt;Audience&gt; element that
        identifies the authorization server as an intended audience.
        Section 2.5.1.4 of "Assertions and Protocols for the OASIS
        Security Assertion Markup Language (SAML) V2.0"
        <xref target="OASIS.saml-core-2.0-os"/> defines the &lt;AudienceRestriction&gt; and
        &lt;Audience&gt; elements and, in addition to the URI references
        discussed there, the token endpoint URL of the authorization
        server MAY be used as a URI that identifies the authorization
        server as an intended audience.  The authorization server MUST
        reject any Assertion that does not contain its own identity as
        the intended audience.  In the absence of an application profile
        specifying otherwise, compliant applications MUST compare the
        Audience values using the Simple String Comparison method
        defined in Section <xref target="RFC3986" sectionFormat="bare" section="6.2.1"/> of RFC 3986 <xref target="RFC3986"/>.  As noted in
        Section <xref target="RFC3986" sectionFormat="bare" section="5"/>, the precise strings to be used as the Audience for a
        given authorization server must be configured out of band by the
        authorization server and the issuer of the Assertion.</t></blockquote>

<t>NEW:</t>
      <blockquote><t>
	    The Assertion <bcp14>MUST</bcp14> contain a &lt;Conditions&gt; element
	    with an &lt;AudienceRestriction&gt; element
	    with an &lt;Audience&gt; element that identifies the
	    authorization server as the intended audience.
	    The client is responsible for ensuring that the audience of the Assertion
	    is appropriate for the authorization server to which it is sent.
	    This <bcp14>MAY</bcp14> be the issuer identifier of the authorization server,
	    the token endpoint URL of the authorization server, or
	    a SAML Entity ID.
	    Section 2.5.1.4 of
	    "Assertions and Protocols for the OASIS Security Assertion Markup Language (SAML) V2.0"
	    <xref target="OASIS.saml-core-2.0-os"/>
	    defines the &lt;AudienceRestriction&gt; and &lt;Audience&gt; elements.
	    The authorization server <bcp14>MUST</bcp14> reject any assertion that does not
	    contain its own identity as the intended audience.
          </t>
        </blockquote>

    </section>
    <section anchor="RFC7523Updates">
      <name>Updates to RFC 7523</name>
      <t>
	This section updates
	"JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants" <xref target="RFC7523"/>
	to tighten its audience requirements.
      </t>
      <t>
	In <xref section="3" target="RFC7523"/> (JWT Format and Processing Requirements),
	Item 3, which describes the audience value,
	is replaced as follows.
      </t>
<t>OLD:</t>
		<blockquote>
The JWT <bcp14>MUST</bcp14> contain an "aud" (audience) claim containing a
        value that identifies the authorization server as an intended
        audience.  The token endpoint URL of the authorization server
        <bcp14>MAY</bcp14> be used as a value for an "aud" element to identify the
        authorization server as an intended audience of the JWT.  The
        authorization server <bcp14>MUST</bcp14> reject any JWT that does not contain
        its own identity as the intended audience.  In the absence of an
        application profile specifying otherwise, compliant applications
        <bcp14>MUST</bcp14> compare the audience values using the Simple String
        Comparison method defined in Section <xref target="RFC3986" sectionFormat="bare" section="6.2.1"/> of RFC 3986 <xref                  
target="RFC3986"/>.  As noted in Section <xref target="RFC3986" sectionFormat="bare" section="5"/>, the precise strings to be
        used as the audience for a given authorization server must be
        configured out of band by the authorization server and the
        issuer of the JWT.</blockquote>
			
<t>NEW:</t>
      <blockquote>
          <t>
	    The JWT <bcp14>MUST</bcp14> contain an "aud"
	    (audience) claim containing a value that
	    identifies the authorization server as the intended audience.
	    Two cases are differentiated:
          </t>
          <ol spacing="normal" type="A">
	    <li>
              <t>
		For the authorization grant,
		the client is responsible for ensuring that the audience of the JWT assertion
		is appropriate for the authorization server to which it is sent. An
		authorization server <bcp14>MAY</bcp14> be identified by either its issuer identifier
		or its token endpoint URL.
              </t>
            </li>
            <li>
              <t>
		For client authentication,
		the "aud" (audience) claim value <bcp14>MUST</bcp14> use
		the issuer identifier <xref target="RFC8414"/>
		of the authorization server as its sole value.
		The authorization server <bcp14>MUST</bcp14> have an issuer identifier
		to be used with this specification.
		The "aud" claim value <bcp14>MUST</bcp14> indicate only
		the issuer identifier of the intended authorization server
		as the audience of the JWT;
		this includes that the token endpoint URL of the authorization server
		<bcp14>MUST NOT</bcp14> be used as an audience value.
		The authorization server <bcp14>MUST</bcp14> reject any JWT that does not
		contain its issuer identifier as its sole audience value.
              </t>
            </li>
          </ol>
          <t>
	    In the absence of an application profile specifying
	    otherwise, applications <bcp14>MUST</bcp14> compare the audience
	    values using the Simple String Comparison method defined in 
	    <xref target="RFC3986" section="6.2.1"/>.
          </t>
      </blockquote>
      <t>
	In <xref section="3.2" target="RFC7523"/> (Client Authentication Processing),
	the following requirement is added:
      </t>

      <blockquote>
          <t>
	    Client authentication JWTs <bcp14>SHOULD</bcp14> be explicitly typed by using the
	    "typ" header parameter value
	    "client-authentication+jwt"
	    or another more specific explicit type value defined by a specification profiling this specification.
          </t>
          <t>
	    The introduction of strong typing for JWTs (using explicit "typ"
	    values) serves as a signal to distinguish between tokens produced in accordance with
	    specifications published prior to these updates and those incorporating them. However,
	    the primary security protection comes from the tightened audience requirements. The
	    use of explicit typing enables clients to
	    signal their compliance with the requirements herein. However, since
	    strong typing alone does not prevent the attacks described in <xref target="private_key_jwt.Disclosure"/> and <xref target="Audience.Injection"/>,
	    it is <bcp14>NOT RECOMMENDED</bcp14> for servers to reject JWTs
	    that do not have explicit types. Such rejection would cause interoperability issues with clients that
	    already conform to the tightened audience requirements but have not yet adopted explicit typing.
	    This approach balances security signaling with practical
	    deployment considerations, avoiding disruption to client deployments that already
	    conform to the tightened audience requirements but have not yet adopted explicit typing.
          </t>
      </blockquote>
      <t>
	In <xref section="4" target="RFC7523"/> (Authorization Grant Example),
	the sentence below is replaced as follows.
      </t>
<t>OLD:</t>
      <blockquote>
          <t>
	    The intended audience of the JWT is
	    "https://jwt-rp.example.net", which is an
	    identifier with which the authorization server identifies itself.
          </t>
      </blockquote>
      <t>NEW:</t>

      <blockquote>
          <t>
	    The intended audience of the JWT is
	    "https://authz.example.net",
	    which is the authorization server's issuer identifier.
          </t>
      </blockquote>

      <t>
	  In the same section, the JWT Claims Set example is replaced as follows.
      </t>
<t>OLD:</t>
		<blockquote>
			<artwork><![CDATA[
     {"iss":"https://jwt-idp.example.com",
      "sub":"mailto:mike@example.com",
      "aud":"https://jwt-rp.example.net",
      "nbf":1300815780,
      "exp":1300819380,
      "http://claims.example.com/member":true}
]]></artwork>
		</blockquote>
<t>NEW:</t>		
		<blockquote>
        <artwork><![CDATA[
  {
    "iss": "https://jwt-idp.example.com",
    "sub": "mailto:mike@example.com",
    "aud": "https://authz.example.net",
    "iat": 1731721541,
    "exp": 1731725141,
    "http://claims.example.com/member": true
  }
]]></artwork>
		</blockquote>
      <t>
	In the list of agreements required by participants
	in <xref target="RFC7523" sectionFormat="of" section="5"/> (Interoperability Considerations),
	an agreement on "audience identifiers" is no longer needed
	for client authentication JWTs.
      </t>
      <t>
	The additional example in the following subsection
	is added after <xref section="4" target="RFC7523"/>.
      </t>
      <section anchor="ClientAuthExample">
        <name>Client Authentication JWT Example</name>
        <t>
	  The following example illustrates what a client authentication JWT
	  and token request using it would look like.
        </t>
        <t>
	  The example shows a JWT issued and signed by the OAuth client identified as
	  "https://client.example".
	  The intended audience of the JWT is
	  "https://authz.example.net",
	  which is the authorization server's issuer identifier.
	  The JWT is sent as part of a token request to the authorization server's
	  token endpoint at "https://authz.example.net/token.oauth2".
        </t>
        <t>
	    Below is an example JSON object that could be encoded to
	    produce the JWT Claims Set for a client authentication JWT:
        </t>
        <artwork><![CDATA[
  {
    "iss": "https://client.example",
    "sub": "https://client.example",
    "aud": "https://authz.example.net",
    "iat": 1752702206,
    "exp": 1752705806
  }
]]></artwork>
        <t>
	    The following example JSON object, used as the header parameters of a JWT,
	    declares that the JWT is a client authentication JWT,
	    is signed with the Elliptic Curve Digital Signature Algorithm (ECDSA) P-256 with SHA-256,
	    and was signed with a key identified by
	    the "kid" value "16".
        </t>
        <artwork><![CDATA[
  {
    "typ": "client-authentication+jwt",
    "alg": "ES256",
    "kid": "16"
  }
]]></artwork>
        <t>
	    To present the JWT with the claims and header parameters shown above
	    as part of an access token request, for example,
	    the client might make the following HTTPS request
	    (with extra line breaks for display purposes only):
        </t>
        <artwork><![CDATA[
 POST /token.oauth2 HTTP/1.1
 Host: authz.example.net
 Content-Type: application/x-www-form-urlencoded

 grant_type=authorization_code&
 code=n0esc3NRze7LTCu7iYzS6a5acc3f0ogp4&
 client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3A
   client-assertion-type%3Ajwt-bearer&
 client_assertion=eyJ0eXAiOiJjbGllbnQtYXV0aGVudGljYXRpb24rand0IiwiYWx
   nIjoiRVMyNTYiLCJraWQiOiIxNiJ9.eyJhdWQiOiJodHRwczovL2F1dGh6LmV4YW1w
   bGUubmV0IiwiaXNzIjoiaHR0cHM6Ly9jbGllbnQuZXhhbXBsZSIsInN1YiI6Imh0dH
   BzOi8vY2xpZW50LmV4YW1wbGUiLCJpYXQiOjE3NTI3MDIyMDYsImV4cCI6MTc1Mjcw
   NTgwNn0.6KrSQUxdl9ehs[...omitted for brevity...]bwc0ZOJw
]]></artwork>
      </section>
    </section>
    <section anchor="RFC9126Updates">
      <name>Updates to RFC 9126</name>
      <t>
	This section updates
	"OAuth 2.0 Pushed Authorization Requests" <xref target="RFC9126"/>
	to tighten its audience requirements.
      </t>
      <t>
	The last paragraph in <xref section="2" target="RFC9126"/>
	(Pushed Authorization Request Endpoint),
	which describes the audience value,
	is replaced as follows.
      </t>
<t>OLD:</t>
		<blockquote>
<t>Due to historical reasons, there is potential ambiguity regarding the appropriate audience 
			value to use when employing JWT client assertion-based authentication (defined 
			in <xref target="RFC7523" sectionFormat="of" section="2.2"/> with private_key_jwt or client_secret_jwt authentication 
			method names per Section 9 of <xref target="OpenID.Core"/>). To address that ambiguity, the issuer identifier URL of the 
			authorization server according to <xref target="RFC8414"/> SHOULD be used as the value of the audience. In order to 
			facilitate interoperability, the authorization server MUST accept its issuer identifier, token endpoint URL, 
			or pushed authorization request endpoint URL as values that identify it as an intended audience.</t></blockquote>			
<t>NEW:</t>
      <blockquote>
          <t>
	    Due to historical reasons, there is potential ambiguity regarding
	    the appropriate audience value to use when employing
	    JWT client assertion-based authentication
	    (as defined in <xref section="2.2" target="RFC7523"/>
	    and as updated by <xref target="RFC7523Updates"/> with the
	    "private_key_jwt" or
	    "client_secret_jwt" authentication method names
	    per Section 9 of <xref target="OpenID.Core"/>).
	    To address that ambiguity, the issuer identifier URL
	    of the authorization server according to <xref target="RFC8414"/>
	    <bcp14>MUST</bcp14> be used as the sole value of the audience.
            The authorization server <bcp14>MUST</bcp14> reject any such JWT that does not
            contain its own issuer identifier as the sole audience value.
          </t>
          <t>
	    Client authentication JWTs <bcp14>SHOULD</bcp14> be explicitly typed by using the
	    "typ" header parameter value
	    "client-authentication+jwt"
	    or another more specific explicit type value defined by a specification profiling this specification.
          </t>
          <t>
	    The introduction of strong typing for JWTs (using explicit "typ"
	    values) serves as a signal to distinguish between tokens produced in accordance with
	    specifications published prior to these updates and those incorporating them. However,
	    the primary security protection comes from the tightened audience requirements. The
	    use of explicit typing enables clients to
	    signal their compliance with the requirements herein. However, since
	    strong typing alone does not prevent the attacks described in <xref target="private_key_jwt.Disclosure"/> and <xref target="Audience.Injection"/>,
	    it is <bcp14>NOT RECOMMENDED</bcp14> for servers to reject JWTs
	    that do not have explicit types. Such rejection would cause interoperability issues with clients that
	    already conform to the tightened audience requirements but have not yet adopted explicit typing.
	    This approach balances security signaling with practical
	    deployment considerations, avoiding disruption to client deployments that already
	    conform to the tightened audience requirements but have not yet adopted explicit typing.
          </t>
      </blockquote>
    </section>
    <section>
      <name>Operational Considerations</name>
      <t>
        Changes in this specification affect interoperability between clients and authorization servers that implement
        different versions. In particular, the resulting compatibility is not entirely symmetric.

        A client implementing this specification will interoperate with both authorization servers conforming
        to the updates herein as well as authorization servers implementing earlier versions.
        However, some clients implementing earlier versions may not interoperate with authorization servers that
        strictly enforce the updated requirements in this specification.

        Deployments upgrading to this specification should consider this asymmetry when planning rollouts
        or migrations, as it may be necessary to ensure that clients are updated before, or in coordination
        with, authorization servers that enforce the updated behavior.
      </t>
    </section>
    <section anchor="Security">
      <name>Security Considerations</name>
      <t>
	The security considerations described within the following specifications are all applicable
	to this document:
	"Assertion Framework for OAuth 2.0 Client Authentication and Authorization Grants" <xref target="RFC7521"/>,
	"Security Assertion Markup Language (SAML) 2.0 Profile for OAuth 2.0
	Client Authentication and Authorization Grants" <xref target="RFC7522"/>,
	"JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants" <xref target="RFC7523"/>,
	"OAuth 2.0 Pushed Authorization Requests" <xref target="RFC9126"/>,
	"The OAuth 2.0 Authorization Framework" <xref target="RFC6749"/>,
	and "JSON Web Token (JWT)" <xref target="RFC7519"/>.
      </t>
      <t>
	This specification tightens treatment of assertion audience values to prevent attacks
	that could result from exploiting audience ambiguities
	previously allowed by
	<xref target="RFC7521"/>, <xref target="RFC7522"/>,
	<xref target="RFC7523"/>, and <xref target="RFC9126"/>.
	These attacks are described in <xref target="private_key_jwt.Disclosure"/>
	and <xref target="Audience.Injection"/>.
      </t>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <section anchor="MediaReg">
        <name>Media Type Registration</name>
        <t>
          IANA has registered the following media type <xref target="RFC2046"/>
          in the "Media Types" registry <xref target="IANA.MediaTypes"/>
          in the manner described in <xref target="RFC6838"/>.
        </t>
        <section anchor="MediaContents">
          <name>Registry Contents</name>
          <dl spacing="normal" newline="false">
            <dt>Type name:</dt><dd>application</dd>
            <dt>Subtype name:</dt><dd>client-authentication+jwt</dd>
            <dt>Required parameters:</dt><dd>N/A</dd>
            <dt>Optional parameters:</dt><dd>N/A</dd>
            <dt>Encoding considerations:</dt><dd>binary;
                A client authentication JWT is a JWT;
                JWT values are encoded as a
                series of base64url-encoded values (some of which may be the
                empty string) separated by period ('.') characters.</dd>
            <dt>Security considerations:</dt><dd>See <xref target="Security"/> of RFC 10070</dd>
            <dt>Interoperability considerations:</dt><dd>N/A</dd>
            <dt>Published specification:</dt><dd><xref target="RFC7523Updates"/> of RFC 10070</dd>
            <dt>Applications that use this media type:</dt><dd>
                Applications that use RFC 10070</dd>
            <dt>Fragment identifier considerations:</dt><dd>N/A</dd>
            <dt>Additional information:</dt><dd><t><br/></t>
              <dl spacing="normal" newline="false">
                <dt>Magic number(s):</dt><dd>N/A</dd>
                <dt>File extension(s):</dt><dd>N/A</dd>
                <dt>Macintosh file type code(s):</dt><dd>N/A</dd>
              </dl>
	    </dd>
            <dt>Person &amp; email address to contact for further information:</dt><dd>
                IETF OAuth Working Group &lt;oauth@ietf.org&gt;</dd>
            <dt>Intended usage:</dt><dd>COMMON</dd>
            <dt>Restrictions on usage:</dt><dd>none</dd>
            <dt>Author:</dt><dd>Michael B.&nbsp;Jones &lt;michael_b_jones@hotmail.com&gt;</dd>
            <dt>Change controller:</dt><dd>IETF</dd>
            <dt>Provisional registration?</dt><dd>No</dd>
	  </dl>
        </section>
      </section>
      <section anchor="MethodsReg">
        <name>OAuth Token Endpoint Authentication Methods</name>
        <t>
          IANA has updated the following entries in the "OAuth Token Endpoint Authentication Methods" registry of <xref target="IANA.OAuthParameters"/>.
        </t>
        <section anchor="MethodsContents">
          <name>Registry Contents</name>
          <dl spacing="compact" newline="false">
            <dt>Token Endpoint Authentication Method Name:</dt><dd>private_key_jwt</dd>
            <dt>Change Controller:</dt><dd>IESG</dd>
            <dt>Reference:</dt><dd>Section 9 of <xref target="OpenID.Core"/>, RFC 10070</dd>
          </dl>
          <dl spacing="compact" newline="false">
            <dt>Token Endpoint Authentication Method Name:</dt><dd>client_secret_jwt</dd>
            <dt>Change Controller:</dt><dd>IESG</dd>
            <dt>Reference:</dt><dd>Section 9 of <xref target="OpenID.Core"/>, RFC 10070</dd>
          </dl>
        </section>
      </section>
      <section>
        <name>OAuth URI Registration Updates</name>
        <t>IANA has updated the following entries in the
        "OAuth URI" registry of <xref target="IANA.OAuthParameters"/> to list
        RFC 10070 as an additional reference.</t>

        <ul spacing="normal">
          <li>
            <t>urn:ietf:params:oauth:grant-type:jwt-bearer</t>
          </li>
          <li>
            <t>urn:ietf:params:oauth:client-assertion-type:jwt-bearer</t>
          </li>
          <li>
            <t>urn:ietf:params:oauth:grant-type:saml2-bearer</t>
          </li>
          <li>
            <t>urn:ietf:params:oauth:client-assertion-type:saml2-bearer</t>
          </li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3986.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6749.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7521.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7522.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7523.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8414.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8725.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9126.xml"/>
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7519.xml"/>
        <reference target="https://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf" anchor="OASIS.saml-core-2.0-os">
          <front>
            <title>Assertions and Protocols for the OASIS Security Assertion Markup Language
	(SAML) V2.0</title>
            <author fullname="Scott Cantor" initials="S." surname="Cantor" role="editor">
              <organization>Internet2</organization>
              <address>
                <email>cantor.2@osu.edu</email>
              </address>
            </author>
            <author fullname="John Kemp" initials="J." surname="Kemp" role="editor">
              <organization>Nokia</organization>
              <address>
                <email>John.Kemp@nokia.com</email>
              </address>
            </author>
            <author fullname="Rob Philpott" initials="R." surname="Philpott" role="editor">
              <organization>RSA Security</organization>
              <address>
                <email>rphilpott@rsasecurity.com</email>
              </address>
            </author>
            <author fullname="Eve Maler" initials="E." surname="Maler" role="editor">
              <organization>Sun Microsystems</organization>
              <address>
                <email>eve.maler@sun.com</email>
              </address>
            </author>
            <date year="2005" month="March"/>
          </front>
          <seriesInfo name="OASIS Standard" value="saml-core-2.0-os"/>
        </reference>
        <reference anchor="OpenID.Core" target="https://openid.net/specs/openid-connect-core-1_0.html">
          <front>
            <title>OpenID Connect Core 1.0 incorporating errata set 2</title>
            <author fullname="Nat Sakimura" initials="N." surname="Sakimura">
              <organization abbrev="NAT.Consulting (was at NRI)">NAT.Consulting</organization>
            </author>
            <author fullname="John Bradley" initials="J." surname="Bradley">
              <organization abbrev="Yubico (was at Ping Identity)">Yubico</organization>
            </author>
            <author fullname="Michael B. Jones" initials="M.B." surname="Jones">
              <organization abbrev="Self-Issued Consulting (was at Microsoft)">Self-Issued Consulting</organization>
            </author>
            <author fullname="Breno de Medeiros" initials="B." surname="de Medeiros">
              <organization abbrev="Google">Google</organization>
            </author>
            <author fullname="Chuck Mortimore" initials="C." surname="Mortimore">
              <organization abbrev="Disney (was at Salesforce)">Disney</organization>
            </author>
            <date day="15" month="December" year="2023"/>
          </front>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2046.xml"/>
		<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4648.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6838.xml"/>

		<reference anchor="W3C.REC-html401-19991224" target="https://www.w3.org/TR/1999/REC-html401-19991224/">
			<front>
				<title>HTML 4.01 Specification</title>
				<author fullname="Dave Ragget" initials="D." surname="Ragget" role="editor"/>
				<author fullname="Arnaud Le Hors" initials="A." surname="Hors" role="editor"/>
				<author fullname="Ian Jacobs" initials="I." surname="Jacobs" role="editor"/>
				<date month="December" year="1999"/>
			</front>
				<refcontent>World Wide Web Consortium Recommendation REC-html401-19991224</refcontent>
			</reference>
		  
        <reference anchor="Audience.Injection" target="https://eprint.iacr.org/2025/629">
          <front>
            <title>Audience Injection Attacks: A New Class of Attacks on Web-Based Authorization and Authentication Standards</title>
            <author fullname="Pedram Hosseyni" initials="P." surname="Hosseyni">
              <organization>University of Stuttgart</organization>
            </author>
            <author fullname="Ralf Küsters" initials="R." surname="Küsters">
              <organization>University of Stuttgart</organization>
            </author>
            <author fullname="Tim Würtele" initials="T." surname="Würtele">
              <organization>University of Stuttgart</organization>
            </author>
            <date month="April" year="2025"/>
          </front>
          <refcontent>Cryptology ePrint Archive, Paper 2025/629</refcontent>
        </reference>
        <reference anchor="private_key_jwt.Disclosure" target="https://openid.net/wp-content/uploads/2025/01/OIDF-Responsible-Disclosure-Notice-on-Security-Vulnerability-for-private_key_jwt.pdf">
          <front>
            <title>OIDF Responsible Disclosure Notice on Security Vulnerability for private_key_jwt</title>
            <author>
              <organization>OpenID Foundation</organization>
            </author>
            <date year="2025" month="January" day="24"/>
          </front>
        </reference>
        <reference anchor="OpenID.Federation" target="https://openid.net/specs/openid-federation-1_0.html">
          <front>
            <title>OpenID Federation 1.0</title>
            <author fullname="Roland Hedberg" role="editor">
              <organization>independent</organization>
            </author>
            <author fullname="Michael B. Jones">
              <organization>Self-Issued Consulting</organization>
            </author>
            <author fullname="A. Solberg">
              <organization>Sikt</organization>
            </author>
            <author fullname="John Bradley">
              <organization>Yubico</organization>
            </author>
            <author fullname="Giuseppe De Marco">
              <organization>independent</organization>
            </author>
            <author fullname="Vladimir Dzhuvinov">
              <organization>Connect2id</organization>
            </author>
            <date day="17" month="February" year="2026"/>
          </front>
        </reference>
        <reference anchor="IANA.MediaTypes" target="https://www.iana.org/assignments/media-types">
          <front>
            <title>Media Types</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="IANA.OAuthParameters" target="https://www.iana.org/assignments/oauth-parameters">
          <front>
            <title>OAuth Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
      </references>
    </references>

    <section anchor="Acknowledgements" numbered="false">
      <name>Acknowledgements</name>
      <t>
	We would like to acknowledge the contributions of the following
	people to this specification:
	<contact fullname="Brock Allen"/>,
	<contact fullname="John Bradley"/>,
	<contact fullname="Ralph Bragg"/>,
	<contact fullname="Deb Cooley"/>,
	<contact fullname="Jim Fenton"/>,
	<contact fullname="Mahesh Jethanandani"/>,
	<contact fullname="Joseph Heenan"/>,
	<contact fullname="Pedram Hosseyni"/>,
	<contact fullname="Luigi Iannone"/>,
	<contact fullname="Pieter Kasselman"/>,
	<contact fullname="Jamshid Khosravian"/>,
	<contact fullname="Ralf Küsters"/>,
	<contact fullname="Martin Lindström"/>,
	<contact fullname="Axel Nennker"/>,
	<contact fullname="Aaron Parecki"/>,
	<contact fullname="Rich Salz"/>,
	<contact fullname="Dean H. Saxe"/>,
	<contact fullname="Arndt Schwenkschuster"/>,
	<contact fullname="Rifaat Shekh-Yusef"/>,
	and
	<contact fullname="Tim Würtele"/>.
      </t>
    </section>
  </back>
</rfc>
