<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-zehavi-oauth-audience-bound-token-exchange-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="OAuth 2.0 Audience-Bound Token Exchange">OAuth 2.0 Audience-Bound Token Exchange</title>
    <seriesInfo name="Internet-Draft" value="draft-zehavi-oauth-audience-bound-token-exchange-00"/>
    <author fullname="Yaron Zehavi">
      <organization>Raiffeisen Bank International</organization>
      <address>
        <email>yaron.zehavi@rbinternational.com</email>
      </address>
    </author>
    <date year="2026" month="October" day="08"/>
    <area>Security</area>
    <workgroup>Web Authorization Protocol</workgroup>
    <keyword>OAuth</keyword>
    <keyword>token exchange</keyword>
    <keyword>protected resource metadata</keyword>
    <keyword>audience</keyword>
    <abstract>
      <?line 50?>

<t>In deployments where resource servers are invoked using access tokens with a restricted audience, resource servers that need to call downstream services must first exchange received tokens so their audience is appropriate for the downstream service.</t>
      <t>Authorization servers that support OAuth 2.0 Token Exchange <xref target="RFC8693"/> need to ensure that only authorized clients can exchange a subject token, to prevent misuse by unauthorized parties.</t>
      <t>This document defines a model in which authorization to perform token exchange is anchored in the audience claim of the subject token. An authorization server determines whether the token exchange client is associated with the audience-restricted protected resource identified by the subject token, then applies the remaining token exchange authorization policy.</t>
      <t>This relationship can be established by authorization server local policy, by validating a JWT presented by the token exchange client using the protected resource's <tt>jwks_uri</tt>, or by using a new OAuth 2.0 Protected Resource Metadata parameter that identifies token exchange clients for the protected resource.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://yaron-zehavi.github.io/oauth-audience-bound-token-exchange/draft-zehavi-oauth-audience-bound-token-exchange.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-zehavi-oauth-audience-bound-token-exchange/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Web Authorization Protocol Working Group 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/yaron-zehavi/oauth-audience-bound-token-exchange"/>.</t>
    </note>
  </front>
  <middle>
    <?line 60?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>OAuth 2.0 access tokens are commonly issued for a specific protected resource, identified by the token’s <tt>aud</tt> claim. In many deployments, that resource needs to call downstream services. Because an access token audience-restricted to the protected resource is not suitable for a downstream service, the resource server must obtain a new token with the appropriate audience. OAuth 2.0 Token Exchange <xref target="RFC8693"/> provides this mechanism.</t>
      <t>When processing a token exchange request, the authorization server must determine whether the requesting client is permitted to exchange the subject token. Otherwise, unauthorized parties in possession of a subject token could attempt to exchange it for a new token and potentially bypass the original audience restriction. Sender-constraining the subject token to the original client does not remove this risk, because such proof demonstrates possession by the client to which the subject token was issued and does not establish that the protected resource receiving the token is permitted to exchange it.</t>
      <t>The Token Exchange <tt>may_act</tt> claim can explicitly identify an authorized actor. However, the original token issuer cannot know in advance which authorization server will process a later exchange request, or which client identifier that server uses for the protected resource. This makes <tt>may_act</tt> difficult to use when a protected resource calls multiple downstream services protected by different authorization servers.</t>
      <t>This document specifies an audience-anchored model for determining whether a client may exchange a subject token. In this model, the authorization server uses the subject token’s audience to identify the protected resource, establishes whether the token exchange client is associated with that protected resource, then applies additional authorization policy.</t>
      <t>This relationship can be established in three ways.</t>
      <t>First, the authorization server can use local policy. For example, the authorization server can be configured to allow a particular client identifier to exchange subject tokens whose audience is a particular protected resource.</t>
      <t>Second, when the protected resource metadata contains a <tt>jwks_uri</tt>, the authorization server can use the keys referenced by that <tt>jwks_uri</tt> to validate a JWT presented by the token exchange client. If the JWT is accepted as an <tt>actor_token</tt> or as a client assertion, the authorization server can establish that the presenter is associated with the protected resource identified by the subject token audience.</t>
      <t>Third, the authorization server can use OAuth 2.0 Protected Resource Metadata <xref target="RFC9728"/>. This document defines a new protected-resource metadata parameter that allows a protected resource to publish the OAuth client identifiers that represent it for token exchange at one or more authorization servers.</t>
      <t>The authorization server can use any of these mechanisms, together with its own trust and policy checks, to verify that the client is permitted to exchange a subject token whose audience identifies that protected resource.</t>
      <t>This specification does not define a new access token claim, actor chain, actor proof, or actor receipt, nor does it change the semantics of the <tt>act</tt> or <tt>may_act</tt> claims used by OAuth 2.0 Token Exchange. Instead, it defines mechanisms and authorization-server processing rules for establishing the relationship between a subject token audience and a token exchange client.</t>
    </section>
    <section anchor="requirements-notation-and-conventions">
      <name>Requirements Notation and 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 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="scope">
      <name>Scope</name>
      <t>This specification defines how an authorization server establishes a relationship between the audience of a subject token and the OAuth client requesting OAuth 2.0 Token Exchange, in order to evaluate whether that client is permitted to exchange the subject token.</t>
      <t>This specification defines:</t>
      <ul spacing="normal">
        <li>
          <t>how audience values from the subject token are used to identify the protected resource context;</t>
        </li>
        <li>
          <t>how local policy can establish the relationship between a protected resource audience and a token exchange client;</t>
        </li>
        <li>
          <t>how validation of a JWT using a protected resource's <tt>jwks_uri</tt> can establish the relationship between the protected resource audience and the token exchange client;</t>
        </li>
        <li>
          <t>a protected-resource metadata parameter named <tt>token_exchange_clients</tt>;</t>
        </li>
        <li>
          <t>how an authorization server selects entries from that metadata; and</t>
        </li>
        <li>
          <t>how the selected entry is compared to the token exchange client.</t>
        </li>
      </ul>
      <t>This specification does not define:</t>
      <ul spacing="normal">
        <li>
          <t>a new access token claim;</t>
        </li>
        <li>
          <t>a replacement for the <tt>act</tt> or <tt>may_act</tt> claims defined by <xref target="RFC8693"/>;</t>
        </li>
        <li>
          <t>actor-chain representation; or</t>
        </li>
        <li>
          <t>token exchange grant semantics beyond those already defined by <xref target="RFC8693"/>.</t>
        </li>
      </ul>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>This document uses the terms "client", "authorization server", "protected resource", "resource server", "access token", and "scope" as defined by OAuth 2.0 <xref target="RFC6749"/>.</t>
      <t>This document uses the term "token exchange" as defined by <xref target="RFC8693"/>.</t>
      <t>This document uses the term "protected resource metadata" as defined by <xref target="RFC9728"/>.</t>
      <dl>
        <dt>Subject Token:</dt>
        <dd>
          <t>The token presented to the authorization server in a token exchange request as the "subject_token" parameter defined by <xref target="RFC8693"/>.</t>
        </dd>
        <dt>Subject Token Audience:</dt>
        <dd>
          <t>The audience value, or values, of the subject token. For JWT subject tokens, this is the "aud" claim defined by <xref target="RFC7519"/>.</t>
        </dd>
        <dt>Selected Protected Resource Identifier:</dt>
        <dd>
          <t>The single audience value selected by the authorization server as the protected resource context for the token exchange request.</t>
        </dd>
        <dt>Token Exchange Client:</dt>
        <dd>
          <t>An OAuth client that requests OAuth 2.0 Token Exchange for subject tokens.</t>
        </dd>
        <dt>Audience-Client Relationship:</dt>
        <dd>
          <t>A relationship, accepted by the authorization server, between the selected protected resource identifier from the subject token audience and the token exchange client.</t>
        </dd>
        <dt>Resource Key-Bound JWT:</dt>
        <dd>
          <t>A JWT presented by the token exchange client and validated using keys obtained from the protected resource's <tt>jwks_uri</tt>.</t>
        </dd>
        <dt>Authorization-Server Local Client Identifier:</dt>
        <dd>
          <t>A client identifier whose value is scoped to a specific authorization server.</t>
        </dd>
        <dt>Globally Scoped Client Identifier:</dt>
        <dd>
          <t>A CIMD client identifier <xref target="I-D.ietf-oauth-client-id-metadata-document"/>, whose value is not scoped to a specific authorization server.</t>
        </dd>
      </dl>
    </section>
    <section anchor="overview">
      <name>Overview</name>
      <t>An authorization server processing a token exchange request needs to determine whether the token exchange client is associated with the protected resource identified by the subject token audience. This document calls this the audience-client relationship.</t>
      <t>The audience-client relationship can be established by one or more of the following mechanisms:</t>
      <ol spacing="normal" type="1"><li>
          <t>local policy;</t>
        </li>
        <li>
          <t>validation of a JWT presented by the token exchange client using keys obtained from the protected resource's <tt>jwks_uri</tt>; or</t>
        </li>
        <li>
          <t>a <tt>token_exchange_clients</tt> protected-resource metadata parameter.</t>
        </li>
      </ol>
      <t>An authorization server processing a token exchange request performs the following high-level steps:</t>
      <ol spacing="normal" type="1"><li>
          <t>validates the subject token according to normal token exchange policy;</t>
        </li>
        <li>
          <t>obtains protected-resource metadata for the selected protected resource identifier, if metadata-based processing is used;</t>
        </li>
        <li>
          <t>establishes the audience-client relationship using local policy, resource key-bound JWT validation, <tt>token_exchange_clients</tt>, or a combination of these mechanisms;</t>
        </li>
        <li>
          <t>applies all remaining token exchange policy before issuing an exchanged token.</t>
        </li>
      </ol>
      <t>The mechanisms defined by this specification only establish that the token exchange client is associated with the protected resource audience. They do not by themselves authorize the requested token audience, scopes, subject, actor chain, or delegation semantics.</t>
    </section>
    <section anchor="subject-token-audience-processing">
      <name>Subject Token Audience Processing</name>
      <t>Since the <tt>aud</tt> claim value may be an array, the authorization server <bcp14>MUST</bcp14> determine the protected resource audience of the subject token before applying this specification.</t>
      <t>If the subject token contains an "aud" claim whose value is a string, the authorization server treats that value as the candidate protected resource identifier.</t>
      <t>If the subject token contains an "aud" claim whose value is an array, the authorization server treats each string value in the array as a candidate protected resource identifier.</t>
      <t>If the subject token does not contain an audience value, or if the authorization server cannot determine the protected resource identifier, it <bcp14>MUST NOT</bcp14> use the metadata processing defined by this specification.</t>
      <t>The authorization server <bcp14>MUST</bcp14> identify exactly one selected protected resource identifier for which the token exchange client is permitted to perform token exchange. If no candidate protected resource identifier matches, the authorization server <bcp14>MUST</bcp14> reject the request. If multiple candidate protected resource identifiers match and the authorization server cannot determine the applicable protected resource context unambiguously, the authorization server <bcp14>MUST</bcp14> reject the request.</t>
      <section anchor="https-and-non-https-audience-values">
        <name>HTTPS and Non-HTTPS Audience Values</name>
        <t>This specification does not require all subject token audience values to be HTTPS URIs. However, protected-resource metadata discovery <bcp14>MUST</bcp14> only be performed for candidate protected resource identifiers that are HTTPS URIs and that are acceptable to the authorization server according to local policy.</t>
        <t>The authorization server <bcp14>MUST NOT</bcp14> dereference arbitrary non-HTTPS audience values as protected-resource metadata locations.</t>
        <t>If a subject token audience value is not an HTTPS URI, the authorization server <bcp14>MAY</bcp14> use local policy to associate that audience value with a protected resource and with a permitted token exchange client.</t>
        <t>For example, the following audience value can be used with local policy:</t>
        <sourcecode type="json"><![CDATA[
{
  "aud": "api://orders"
}
]]></sourcecode>
        <t>The authorization server can have local policy equivalent to:</t>
        <sourcecode type="text"><![CDATA[
api://orders -> rs-orders-client
]]></sourcecode>
        <t>The authorization server <bcp14>MUST NOT</bcp14> attempt to dereference "api://orders" as protected-resource metadata.</t>
      </section>
    </section>
    <section anchor="establishing-the-audience-client-relationship">
      <name>Establishing the Audience-Client Relationship</name>
      <t>Before issuing an exchanged token, the authorization server <bcp14>MUST</bcp14> establish a relationship between the selected protected resource identifier and the token exchange client. If the subject token contains a <tt>may_act</tt> claim, the authorization server <bcp14>MUST</bcp14> evaluate it according to <xref target="RFC8693"/> and local policy.</t>
      <t>A <tt>may_act</tt> claim that identifies a permitted actor takes precedence over the audience-client relationship mechanisms defined in this specification for determining which actor is explicitly authorized by the subject token.</t>
      <t>The authorization server <bcp14>MAY</bcp14> establish the audience-client relationship using one or more of the following mechanisms:</t>
      <ul spacing="normal">
        <li>
          <t>local policy;</t>
        </li>
        <li>
          <t>validation of a JWT presented by the token exchange client using keys obtained from the protected resource's <tt>jwks_uri</tt>; or</t>
        </li>
        <li>
          <t>the <tt>token_exchange_clients</tt> protected-resource metadata parameter defined by this specification.</t>
        </li>
      </ul>
      <t>An authorization server <bcp14>MAY</bcp14> require more than one mechanism to succeed. For example, an authorization server can require that the client match an entry in <tt>token_exchange_clients</tt> and that a client assertion be validated using the protected resource's <tt>jwks_uri</tt>.</t>
      <t>If none of the mechanisms accepted by authorization server policy establishes the relationship between the selected protected resource identifier and the token exchange client, the authorization server <bcp14>MUST</bcp14> reject the token exchange request.</t>
      <t>Establishing the audience-client relationship does not by itself authorize issuance of an exchanged token. The authorization server <bcp14>MUST</bcp14> also apply all other token exchange policy, including policy for the requested audience, resource, scope, subject, actor, delegation model, and consent.</t>
      <section anchor="local-policy">
        <name>Local Policy</name>
        <t>An authorization server <bcp14>MAY</bcp14> use local policy to determine the token exchange client for a selected protected resource identifier. The authorization server <bcp14>MUST</bcp14> compare the client making the token exchange request to the client identifier identified by local policy. If the client does not match, the authorization server <bcp14>MUST</bcp14> reject the token exchange request.</t>
        <t>Local policy can be used for HTTPS and non-HTTPS audience values.</t>
      </section>
    </section>
    <section anchor="metadata-discovery">
      <name>Metadata Discovery</name>
      <t>When the selected protected resource identifier is an HTTPS URI, the authorization server <bcp14>MAY</bcp14> obtain protected-resource metadata for that identifier using OAuth 2.0 Protected Resource Metadata <xref target="RFC9728"/>.</t>
      <t>The authorization server constructs the protected-resource metadata URL from the selected protected resource identifier as specified in <xref target="RFC9728"/>. If the identifier has no path or query component, the metadata URL is formed by appending <tt>/.well-known/oauth-protected-resource</tt> to the origin. For example, the identifier:</t>
      <t><tt>https://resource.example.com</tt></t>
      <t>corresponds to the metadata URL:</t>
      <t><tt>https://resource.example.com/.well-known/oauth-protected-resource</tt></t>
      <t>If the identifier contains a path or query component, the authorization server <bcp14>MUST</bcp14> insert <tt>/.well-known/oauth-protected-resource</tt> after the host component and before the path or query component. The authorization server <bcp14>MUST NOT</bcp14> remove the path component before constructing the metadata URL. For example, the identifier:</t>
      <t><tt>https://resource.example.com/resource1</tt></t>
      <t>corresponds to the metadata URL:</t>
      <t><tt>https://resource.example.com/.well-known/oauth-protected-resource/resource1</tt></t>
      <t>The authorization server <bcp14>MUST NOT</bcp14> attempt alternative metadata URLs formed by stripping the path component, appending the well-known suffix after the path component, or otherwise modifying the selected protected resource identifier, unless such behavior is explicitly configured by local policy. Metadata obtained from a URL other than the one constructed for the selected protected resource identifier <bcp14>MUST NOT</bcp14> be used to establish that a client is authorized to exchange a subject token for that protected resource.</t>
      <section anchor="metadata-verification">
        <name>Metadata Verification</name>
        <t>The authorization server <bcp14>MUST</bcp14> verify that the "resource" value in the obtained metadata corresponds to the selected protected resource identifier. Metadata whose "resource" value does not correspond to the selected protected resource identifier <bcp14>MUST NOT</bcp14> be used for the authorization decision defined by this specification.</t>
        <t>The authorization server <bcp14>MUST NOT</bcp14> use protected-resource metadata as the basis for accepting an otherwise untrusted audience value. The authorization server first determines whether the subject token audience identifies a protected resource that is acceptable according to local policy. Protected-resource metadata can then be used to establish the relationship between that protected resource audience and the token exchange client.</t>
        <t>Protected-resource metadata can establish this relationship by publishing a <tt>jwks_uri</tt>, by publishing <tt>token_exchange_clients</tt>, or by publishing both.</t>
        <t>When <tt>jwks_uri</tt> is used, the authorization server <bcp14>MUST</bcp14> verify that the JWT presented by the token exchange client validates with a key obtained from the protected resource's JWK Set document.</t>
        <t>When <tt>token_exchange_clients</tt> is used, the authorization server <bcp14>MUST</bcp14> verify that the token exchange client matches an applicable entry in the <tt>token_exchange_clients</tt> metadata parameter.</t>
        <t>The authorization server <bcp14>SHOULD</bcp14> cache protected-resource metadata according to HTTP caching semantics and local policy. Cached metadata <bcp14>MUST NOT</bcp14> be used beyond any applicable expiration time or beyond limits established by local policy.</t>
        <t>The authorization server <bcp14>MUST</bcp14> handle metadata retrieval failure as an authorization failure unless local policy provides another permitted method for establishing the audience-client relationship.</t>
      </section>
      <section anchor="jwt-validation-using-jwksuri">
        <name>JWT Validation Using <tt>jwks_uri</tt></name>
        <t>Protected-resource metadata can contain a <tt>jwks_uri</tt> parameter that identifies the protected resource's JWK Set document. The authorization server <bcp14>MAY</bcp14> use the keys referenced by <tt>jwks_uri</tt> to validate a JWT presented by the token exchange client:</t>
        <ul spacing="normal">
          <li>
            <t>an <tt>actor_token</tt>; or</t>
          </li>
          <li>
            <t>a client assertion.</t>
          </li>
        </ul>
        <t>If the authorization server validates a client-provided JWT using a key obtained from the <tt>jwks_uri</tt> in the protected-resource metadata for the selected protected resource identifier, the authorization server <bcp14>MAY</bcp14> treat the JWT validation as establishing the audience-client relationship.</t>
        <t>When using this mechanism, the authorization server <bcp14>MUST</bcp14> verify the protected-resource metadata as described in <xref target="metadata-verification"/> before using the <tt>jwks_uri</tt>.</t>
        <t>The authorization server <bcp14>MUST</bcp14> validate the JWT according to applicable JWT, OAuth, and token exchange rules, including validation of the signature, issuer, audience, expiration time, and any other claims required by local policy.</t>
        <t>A protected resource that uses JWT validation through <tt>jwks_uri</tt> <bcp14>MAY</bcp14> omit the <tt>token_exchange_clients</tt> metadata parameter. In such a case, the authorization server relies on successful JWT validation, together with local policy, to establish the audience-client relationship.</t>
        <t>If the protected resource metadata includes both <tt>jwks_uri</tt> and <tt>token_exchange_clients</tt>, the authorization server <bcp14>SHOULD</bcp14> verify that the token exchange client identified by the JWT is consistent with an applicable <tt>token_exchange_clients</tt> entry. If the values are inconsistent, the authorization server <bcp14>MUST</bcp14> reject the token exchange request unless local policy explicitly allows the JWT-based mechanism to take precedence.</t>
      </section>
    </section>
    <section anchor="protected-resource-metadata">
      <name>Protected Resource Metadata</name>
      <section anchor="tokenexchangeclients-metadata-parameter">
        <name><tt>token_exchange_clients</tt> Metadata Parameter</name>
        <t>This specification defines the "token_exchange_clients" protected-resource metadata parameter. This parameter is one mechanism for establishing the relationship between a protected resource audience and the OAuth client requesting token exchange. A protected resource <bcp14>MAY</bcp14> omit this parameter when the authorization server can establish the relationship by local policy or by validating a JWT using the protected resource's <tt>jwks_uri</tt>.</t>
        <t>The "token_exchange_clients" parameter is a JSON array. Each array element is a JSON object identifying an OAuth client that represents the protected resource for the purpose of requesting OAuth 2.0 Token Exchange.</t>
        <t>Each array element has the following attributes:</t>
        <dl>
          <dt>authorization_server:</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>. An issuer identifier for the authorization server at which the "client_id" value is scoped. This attribute is <bcp14>REQUIRED</bcp14> when the "client_id" is an authorization-server local client identifier. This attribute <bcp14>MUST</bcp14> be omitted when the "client_id" is a globally scoped client identifier.</t>
          </dd>
          <dt>client_id:</dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14>. The OAuth client identifier that represents the protected resource for token exchange.</t>
          </dd>
        </dl>
        <t>If the "authorization_server" attribute is present, the "client_id" value is scoped to the authorization server identified by that attribute.</t>
        <t>If the "authorization_server" attribute is omitted, the "client_id" value is a globally scoped client identifier <xref target="I-D.ietf-oauth-client-id-metadata-document"/>.</t>
        <t>An authorization server <bcp14>MUST</bcp14> ignore any attribute of a "token_exchange_clients" entry that it does not understand.</t>
      </section>
      <section anchor="metadata-example">
        <name>Metadata Example</name>
        <t>The following example shows a protected resource that publishes both <tt>jwks_uri</tt> and <tt>token_exchange_clients</tt>. The <tt>jwks_uri</tt> enables JWT-based establishment of the audience-client relationship. The <tt>token_exchange_clients</tt> parameter explicitly identifies clients that represent the protected resource at two authorization servers and by a globally scoped client identifier:</t>
        <sourcecode type="json"><![CDATA[
{
  "resource": "https://api.example.com",
  "authorization_servers": [
    "https://as-a.example",
    "https://as-b.example"
  ],
  "jwks_uri": "https://api.example.com/jwks.json",
  "token_exchange_clients": [
    {
      "authorization_server": "https://as-a.example",
      "client_id": "rs-client-at-as-a"
    },
    {
      "authorization_server": "https://as-b.example",
      "client_id": "rs-client-at-as-b"
    },
    {
      "client_id": "https://api.example.com/oauth-client"
    }
  ]
}
]]></sourcecode>
        <t>The following example shows a protected resource that relies on JWT-based establishment of the audience-client relationship and therefore omits <tt>token_exchange_clients</tt>:</t>
        <sourcecode type="json"><![CDATA[
{
  "resource": "https://api.example.com",
  "authorization_servers": [
    "https://as-a.example"
  ],
  "jwks_uri": "https://api.example.com/jwks.json"
}
]]></sourcecode>
      </section>
      <section anchor="selecting-a-token-exchange-client-entry">
        <name>Selecting a Token Exchange Client Entry</name>
        <t>After obtaining protected-resource metadata containing "token_exchange_clients", the authorization server selects an applicable entry as follows.</t>
        <t>If an entry contains an "authorization_server" attribute, the authorization server <bcp14>MUST</bcp14> use the entry only if the "authorization_server" value identifies the authorization server processing the token exchange request.</t>
        <t>If an entry omits the "authorization_server" attribute, the authorization server <bcp14>MUST</bcp14> treat the "client_id" as a globally scoped client identifier <xref target="I-D.ietf-oauth-client-id-metadata-document"/>.</t>
        <t>If no applicable entry is found, the authorization server <bcp14>MUST</bcp14> reject the token exchange request unless another mechanism accepted by authorization server policy establishes the audience-client relationship.</t>
        <t>If multiple applicable entries are found and the authorization server cannot select a single entry unambiguously, the authorization server <bcp14>MUST</bcp14> reject the token exchange request.</t>
      </section>
      <section anchor="client-comparison">
        <name>Client Comparison</name>
        <t>When the audience-client relationship is established using <tt>token_exchange_clients</tt>, the authorization server <bcp14>MUST</bcp14> compare the token exchange client to the <tt>client_id</tt> value in the selected <tt>token_exchange_clients</tt> entry.</t>
        <t>When the selected entry contains an <tt>authorization_server</tt> attribute, the comparison is made against the authorization-server local client identifier of the token exchange client.</t>
        <t>When the selected entry omits the <tt>authorization_server</tt> attribute, the <tt>client_id</tt> value is a globally scoped client identifier. The authorization server <bcp14>MUST</bcp14> verify that the token exchange client is bound to the globally scoped client identifier.</t>
        <t>If both JWT validation and <tt>token_exchange_clients</tt> are used, the authorization server <bcp14>MUST</bcp14> verify that the token exchange client identified by the JWT is consistent with the applicable <tt>token_exchange_clients</tt> entry. If the values are inconsistent, the authorization server <bcp14>SHOULD</bcp14> reject the request unless local policy explicitly allows one mechanism to take precedence.</t>
        <t>If the authorization server cannot establish that the token exchange client matches, or is bound to, the client associated with the selected protected resource identifier, the authorization server <bcp14>MUST</bcp14> reject the token exchange request.</t>
      </section>
    </section>
    <section anchor="token-exchange-processing">
      <name>Token Exchange Processing</name>
      <t>At token exchange time, the authorization server performs the following checks:</t>
      <ol spacing="normal" type="1"><li>
          <t>Validate the token exchange request according to <xref target="RFC8693"/> and local policy.</t>
        </li>
        <li>
          <t>Authenticate or otherwise identify the client making the token exchange request according to OAuth 2.0 and authorization server policy.</t>
        </li>
        <li>
          <t>Validate the subject token according to token format, issuer, audience, expiration, and local policy.</t>
        </li>
        <li>
          <t>Determine the selected protected resource identifier from the subject token audience, as described in <xref target="subject-token-audience-processing"/>.</t>
        </li>
        <li>
          <t>Verify that the selected protected resource identifier is acceptable to the authorization server according to local policy.</t>
        </li>
        <li>
          <t>If metadata-based processing is used, obtain and verify protected-resource metadata for the selected protected resource identifier.</t>
        </li>
        <li>
          <t>Establish the relationship between the selected protected resource identifier and the token exchange client using one or more of the following:
          </t>
          <ul spacing="normal">
            <li>
              <t>local policy;</t>
            </li>
            <li>
              <t>validation of a JWT presented by the token exchange client using keys obtained from the protected resource's <tt>jwks_uri</tt>; or</t>
            </li>
            <li>
              <t>an applicable <tt>token_exchange_clients</tt> entry.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>If the relationship cannot be established, reject the request.</t>
        </li>
        <li>
          <t>Apply all remaining token exchange authorization policy.</t>
        </li>
        <li>
          <t>Issue the exchanged token only if all checks succeed.</t>
        </li>
      </ol>
      <t>Use of the mechanisms defined by this specification only establishes that the token exchange client is associated with the subject token audience for the purpose of requesting token exchange. It does not authorize the issuance of a token for any particular requested resource, scope, subject, or actor chain.</t>
      <section anchor="error-handling">
        <name>Error Handling</name>
        <t>If the authorization server rejects the token exchange request because the token exchange client is not permitted to exchange the subject token under this specification, the authorization server <bcp14>SHOULD</bcp14> return the "invalid_request" or "invalid_grant" error code defined by <xref target="RFC8693"/>, according to the nature of the failure and local policy.</t>
        <t>The authorization server <bcp14>SHOULD NOT</bcp14> disclose sensitive information about protected-resource metadata, configured mappings, keys, or permitted client identifiers in error responses.</t>
        <t>For example, the authorization server can return:</t>
        <sourcecode type="http-message"><![CDATA[
HTTP/1.1 400 Bad Request
Content-Type: application/json

{
  "error": "invalid_grant",
  "error_description": "The subject token cannot be exchanged by the client."
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="relationship-to-mayact">
      <name>Relationship to <tt>may_act</tt></name>
      <t>The <tt>may_act</tt> claim defined by <xref target="RFC8693"/> identifies an actor that is authorized to act with respect to the subject token. It is appropriate when the issuer of the subject token knows the authorized actor at token issuance time.</t>
      <t>This specification does not replace <tt>may_act</tt>. An authorization server <bcp14>MAY</bcp14> require both:</t>
      <ul spacing="normal">
        <li>
          <t>that the token exchange client satisfy the audience-client relationship defined by this specification; and</t>
        </li>
        <li>
          <t>that the subject token contain an appropriate <tt>may_act</tt> claim.</t>
        </li>
      </ul>
      <t>An authorization server <bcp14>MAY</bcp14> also use this specification without a <tt>may_act</tt> claim when local policy permits audience-anchored token exchange.</t>
      <t>When the audience-client relationship is established using a JWT validated with the protected resource's <tt>jwks_uri</tt>, that validation does not itself create or replace a <tt>may_act</tt> claim. It only establishes that the token exchange client is associated with the protected resource identified by the subject token audience. An authorization server can still require an appropriate <tt>may_act</tt> claim when its policy requires explicit actor authorization in the subject token.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="protected-resource-metadata-does-not-establish-audience-validity">
        <name>Protected Resource Metadata Does Not Establish Audience Validity</name>
        <t>An authorization server <bcp14>MUST NOT</bcp14> treat protected-resource metadata, including <tt>jwks_uri</tt> or <tt>token_exchange_clients</tt>, as establishing that an audience value is valid. The authorization server <bcp14>MUST</bcp14> first determine, according to its own policy, that the subject token audience identifies a protected resource for which the authorization server is willing to process token exchange. Only then can the authorization server use protected-resource metadata associated with that audience to establish the relationship between the protected resource and the token exchange client.</t>
        <t>If an attacker can cause an authorization server to issue a subject token with an attacker-controlled audience, the attacker might also control the protected-resource metadata for that audience. In such a case, the metadata can legitimately identify an attacker-controlled client as the client representing that audience. This specification relies on the authorization server's existing audience and resource policy to prevent such an audience from being used to obtain tokens for unrelated resources.</t>
        <t>The mechanisms defined by this specification only establish that a token exchange client is associated with the subject token audience. They do not authorize issuance of a token for any particular requested resource, scope, subject, or actor chain.</t>
        <t>Authorization servers <bcp14>MUST</bcp14> apply independent policy to the requested token parameters before issuing an exchanged token.</t>
      </section>
      <section anchor="metadata-substitution">
        <name>Metadata Substitution</name>
        <t>An authorization server <bcp14>MUST</bcp14> verify that the "resource" value in the protected-resource metadata corresponds to the selected protected resource identifier. Metadata whose "resource" value does not correspond to the selected protected resource identifier <bcp14>MUST NOT</bcp14> be used.</t>
        <t>If an attacker can substitute protected-resource metadata, the attacker could cause the authorization server to use an attacker-controlled <tt>jwks_uri</tt> or attacker-controlled <tt>token_exchange_clients</tt> value. Therefore, the authorization server <bcp14>MUST</bcp14> verify that the obtained metadata is the metadata for the selected protected resource identifier and <bcp14>MUST</bcp14> follow the discovery and validation rules of <xref target="RFC9728"/>.</t>
        <t>Authorization servers <bcp14>SHOULD</bcp14> use HTTPS, normal certificate validation, and the discovery and verification rules of <xref target="RFC9728"/> when obtaining protected-resource metadata.</t>
      </section>
      <section anchor="server-side-request-forgery">
        <name>Server-Side Request Forgery</name>
        <t>Dereferencing protected-resource metadata can create a server-side request forgery risk. An authorization server <bcp14>MUST NOT</bcp14> dereference arbitrary audience values supplied by an attacker, a client, or an untrusted subject token issuer.</t>
        <t>Protected-resource metadata discovery defined by this specification <bcp14>MUST</bcp14> only be performed for HTTPS audience values that the authorization server has already determined to be acceptable according to local policy.</t>
        <t>Authorization servers <bcp14>SHOULD</bcp14> apply additional fetch protections, including:</t>
        <ul spacing="normal">
          <li>
            <t>rejecting private, loopback, link-local, and otherwise prohibited network destinations unless explicitly allowed by local policy;</t>
          </li>
          <li>
            <t>limiting redirects;</t>
          </li>
          <li>
            <t>enforcing response size limits;</t>
          </li>
          <li>
            <t>enforcing timeouts;</t>
          </li>
          <li>
            <t>caching validated metadata; and</t>
          </li>
          <li>
            <t>avoiding inclusion of sensitive request headers when fetching metadata.</t>
          </li>
        </ul>
      </section>
      <section anchor="multiple-audience-values">
        <name>Multiple Audience Values</name>
        <t>If a subject token contains multiple audience values, the authorization server <bcp14>MUST</bcp14> determine a single selected protected resource identifier. If the authorization server cannot determine the protected resource context unambiguously, it <bcp14>MUST</bcp14> reject the request.</t>
        <t>This prevents a client authorized for one audience from using that relationship to exchange a token under a different audience context.</t>
      </section>
      <section anchor="confidentiality-of-metadata">
        <name>Confidentiality of Metadata</name>
        <t>The "token_exchange_clients" metadata parameter can reveal information about the internal topology, client registrations, or downstream call patterns of a protected resource. A <tt>jwks_uri</tt> can reveal information about the key material used by a protected resource to establish the audience-client relationship.</t>
        <t>Protected resources should publish this metadata only when the operational benefits outweigh the disclosure risk.</t>
        <t>Deployments that consider this information sensitive can use local authorization server policy instead of public metadata discovery, or can restrict metadata publication according to mechanisms outside the scope of this specification.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="oauth-protected-resource-metadata-registration">
        <name>OAuth Protected Resource Metadata Registration</name>
        <t>IANA is requested to register the following value in the "OAuth Protected Resource Metadata" registry established by <xref target="RFC9728"/>.</t>
        <dl>
          <dt>Metadata Name:</dt>
          <dd>
            <t>token_exchange_clients</t>
          </dd>
          <dt>Metadata Description:</dt>
          <dd>
            <t>JSON array identifying OAuth clients that represent the protected resource for the purpose of requesting OAuth 2.0 Token Exchange for subject tokens whose audience identifies the protected resource. This parameter is one mechanism for establishing the relationship between a subject token audience and a token exchange client.</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t>This document</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>The authors would like to thank the following individuals who contributed ideas, feedback, and wording that helped shape the final specification: Henrik Kroll.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="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="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="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="RFC8707">
          <front>
            <title>Resource Indicators for OAuth 2.0</title>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document specifies an extension to the OAuth 2.0 Authorization Framework defining request parameters that enable a client to explicitly signal to an authorization server about the identity of the protected resource(s) to which it is requesting access.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8707"/>
          <seriesInfo name="DOI" value="10.17487/RFC8707"/>
        </reference>
        <reference anchor="RFC9728">
          <front>
            <title>OAuth 2.0 Protected Resource Metadata</title>
            <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
            <author fullname="P. Hunt" initials="P." surname="Hunt"/>
            <author fullname="A. Parecki" initials="A." surname="Parecki"/>
            <date month="April" year="2025"/>
            <abstract>
              <t>This specification defines a metadata format that an OAuth 2.0 client or authorization server can use to obtain the information needed to interact with an OAuth 2.0 protected resource.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9728"/>
          <seriesInfo name="DOI" value="10.17487/RFC9728"/>
        </reference>
        <reference anchor="I-D.ietf-oauth-client-id-metadata-document" target="https://datatracker.ietf.org/doc/draft-ietf-oauth-client-id-metadata-document/">
          <front>
            <title>OAuth Client ID Metadata Document</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <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="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>
      </references>
    </references>
    <?line 500?>

<section anchor="examples">
      <name>Examples</name>
      <section anchor="example-tokenexchangeclients">
        <name>Example: <tt>token_exchange_clients</tt></name>
        <t>In this example, a client calls a protected resource with an access token whose audience is "https://api.example.com":</t>
        <sourcecode type="json"><![CDATA[
{
  "iss": "https://issuer.example",
  "sub": "248289761001",
  "aud": "https://api.example.com",
  "scope": "read write",
  "exp": 1710000000
}
]]></sourcecode>
        <t>The protected resource needs to call a downstream service protected by "https://as-a.example". The protected resource authenticates to "https://as-a.example" as the OAuth client "rs-client-at-as-a" and makes a token exchange request.</t>
        <t>The authorization server obtains protected-resource metadata for "https://api.example.com" and receives:</t>
        <sourcecode type="json"><![CDATA[
{
  "resource": "https://api.example.com",
  "authorization_servers": [
    "https://as-a.example"
  ],
  "token_exchange_clients": [
    {
      "authorization_server": "https://as-a.example",
      "client_id": "rs-client-at-as-a"
    }
  ]
}
]]></sourcecode>
        <t>The authorization server verifies that:</t>
        <ul spacing="normal">
          <li>
            <t>the subject token is valid;</t>
          </li>
          <li>
            <t>the subject token audience is "https://api.example.com";</t>
          </li>
          <li>
            <t>the protected-resource metadata "resource" value corresponds to "https://api.example.com";</t>
          </li>
          <li>
            <t>the selected "token_exchange_clients" entry is scoped to "https://as-a.example";</t>
          </li>
          <li>
            <t>the token exchange client is "rs-client-at-as-a"; and</t>
          </li>
          <li>
            <t>all other token exchange policy permits issuing the requested token.</t>
          </li>
        </ul>
        <t>If all checks succeed, the authorization server issues the exchanged token.</t>
      </section>
      <section anchor="example-jwt-validation-using-jwksuri">
        <name>Example: JWT Validation Using <tt>jwks_uri</tt></name>
        <t>In this example, a protected resource publishes a <tt>jwks_uri</tt> but omits <tt>token_exchange_clients</tt>:</t>
        <sourcecode type="json"><![CDATA[
{
  "resource": "https://api.example.com",
  "authorization_servers": [
    "https://as-a.example"
  ],
  "jwks_uri": "https://api.example.com/jwks.json"
}
]]></sourcecode>
        <t>A client receives a subject token whose audience is "https://api.example.com". The client then requests token exchange at "https://as-a.example" and presents a JWT as a client assertion or as an <tt>actor_token</tt>.</t>
        <t>The authorization server obtains the protected-resource metadata for "https://api.example.com", verifies that the metadata <tt>resource</tt> value corresponds to the subject token audience, retrieves the JWK Set from the <tt>jwks_uri</tt>, and validates the JWT.</t>
        <t>If the JWT is valid and the authorization server policy accepts the JWT as identifying or binding the token exchange client to "https://api.example.com", the authorization server treats the audience-client relationship as established.</t>
        <t>The authorization server then applies all remaining token exchange policy before issuing the exchanged token.</t>
      </section>
      <section anchor="example-jwksuri-and-tokenexchangeclients">
        <name>Example: <tt>jwks_uri</tt> and <tt>token_exchange_clients</tt></name>
        <t>In this example, a protected resource publishes both <tt>jwks_uri</tt> and <tt>token_exchange_clients</tt>:</t>
        <sourcecode type="json"><![CDATA[
{
  "resource": "https://api.example.com",
  "authorization_servers": [
    "https://as-a.example"
  ],
  "jwks_uri": "https://api.example.com/jwks.json",
  "token_exchange_clients": [
    {
      "authorization_server": "https://as-a.example",
      "client_id": "rs-client-at-as-a"
    }
  ]
}
]]></sourcecode>
        <t>The client presents a JWT as a client assertion or as an <tt>actor_token</tt>. The authorization server validates the JWT using the JWK Set obtained from "https://api.example.com/jwks.json".</t>
        <t>The authorization server also verifies that the token exchange client identified by the JWT is consistent with the applicable <tt>token_exchange_clients</tt> entry. If the JWT identifies a different client and local policy does not explicitly allow one mechanism to take precedence, the authorization server rejects the request.</t>
      </section>
    </section>
    <section anchor="document-history">
      <name>Document History</name>
      <t>-00</t>
      <ul spacing="normal">
        <li>
          <t>Initial version.</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
