<?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.30 (Ruby 3.4.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-mcguinness-oauth-resource-token-resp-02" category="std" consensus="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="Resource Token Response Parameter">OAuth 2.0 Resource Parameter in Access Token Response</title>
    <seriesInfo name="Internet-Draft" value="draft-mcguinness-oauth-resource-token-resp-02"/>
    <author fullname="Karl McGuinness">
      <organization>Independent</organization>
      <address>
        <email>public@karlmcguinness.com</email>
      </address>
    </author>
    <author fullname="Jared Hanson">
      <organization>Keycard Labs</organization>
      <address>
        <email>jared@keycard.ai</email>
        <uri>https://keycard.ai</uri>
      </address>
    </author>
    <date year="2026" month="March" day="02"/>
    <area>Security</area>
    <workgroup>Web Authorization Protocol</workgroup>
    <keyword>OAuth 2.0</keyword>
    <keyword>Resource Indicators</keyword>
    <keyword>Authorization Server</keyword>
    <keyword>Token Response</keyword>
    <keyword>Mix-up Attack</keyword>
    <abstract>
      <?line 49?>

<t>This specification defines a new parameter <tt>resource</tt> to be returned in OAuth 2.0 access token responses. It enables clients to confirm that the issued token is valid for the intended resource. This mitigates ambiguity and certain classes of security vulnerabilities such as resource mix-up attacks, particularly in systems that use the Resource Indicators for OAuth 2.0 specification <xref target="RFC8707"/>.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://mcguinness.github.io/draft-mcguinness-oauth-resource-token-resp/draft-mcguinness-oauth-resource-token-resp.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-mcguinness-oauth-resource-token-resp/"/>.
      </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/mcguinness/draft-mcguinness-resource-token-resp"/>.</t>
    </note>
  </front>
  <middle>
    <?line 53?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>OAuth 2.0 defines a framework in which clients obtain access tokens from authorization servers and present them to protected resources. In deployments involving multiple protected resources or resource servers (APIs), clients often need to determine whether a given access token is valid for a specific resource.</t>
      <t>The Resource Indicators for OAuth 2.0 specification <xref target="RFC8707"/> introduced the <tt>resource</tt> request parameter, which allows a client to indicate the protected resource(s) for which an access token is intended to be used. An authorization server can use this information when issuing an access token, for example by applying resource-specific restrictions based on policy or configuration.</t>
      <t>However, <xref target="RFC8707"/> does not define any mechanism for an authorization server to confirm, in the access token response, which resource(s) were ultimately accepted. As a result, a client has no interoperable way to validate the effective resource scope of an issued access token.</t>
      <t>When an authorization request includes one or more <tt>resource</tt> parameters, authorization servers in deployed systems may exhibit a range of behaviors depending on their capabilities and policy configuration. An authorization server <bcp14>MAY</bcp14>, for example:</t>
      <ul spacing="normal">
        <li>
          <t>Ignore the <tt>resource</tt> parameter and issue an access token that is not restricted to any specific resource.</t>
        </li>
        <li>
          <t>Ignore the <tt>resource</tt> parameter and issue an access token that is valid for a server-assigned resource or set of resources.</t>
        </li>
        <li>
          <t>Accept all requested <tt>resource</tt> values and issue an access token that is valid for the complete requested set.</t>
        </li>
        <li>
          <t>Accept only a subset of requested <tt>resource</tt> values and issue an access token that is valid for that subset, without explicitly indicating that other requested resources were rejected.</t>
        </li>
        <li>
          <t>Override the requested <tt>resource</tt> values and issue an access token that is valid for resources determined by authorization server policy or client configuration.</t>
        </li>
        <li>
          <t>Reject the request by returning an <tt>invalid_target</tt> error response as defined in <xref target="RFC8707"/>.</t>
        </li>
      </ul>
      <t>In the absence of explicit confirmation in the token response, a client cannot determine which of these behaviors occurred and may incorrectly assume that an access token is valid for a particular resource.</t>
      <t>This ambiguity is especially problematic in deployments that rely on dynamic discovery of protected resources and authorization servers. In such environments, a client may learn the protected resource URL at runtime and discover an authorization server using OAuth 2.0 Protected Resource Metadata <xref target="RFC9728"/>, without any pre-established trust relationship between the client and the resource. See <xref target="resource-mix-up-via-dynamic-discovery-example"/> for an example of how this can lead to resource mix-up attacks.</t>
      <t>A key challenge in these deployments is that the client has no reliable way to validate whether a discovered authorization server is actually authoritative for a given protected resource. While <xref target="RFC9728"/> allows protected resource metadata to be cryptographically signed, this would require clients to be pre-configured with trust anchors for signature verification, which defeats the purpose of runtime discovery.</t>
      <t>Similarly, an authorization server could publish a list of protected resources it supports in its metadata <xref target="RFC8414"/>, but this approach does not scale in practice for large APIs or resource domains with many distinct resource identifiers, nor does it address cases where authorization server policy dynamically determines resource validity.</t>
      <t>Some clients attempt to determine the applicability of an access token by examining audience-related information. A client might call the token introspection endpoint <xref target="RFC7662"/> to obtain an audience value, or might locally inspect the aud claim when the access token is self-contained, such as a JWT <xref target="RFC7519"/>. OAuth treats access tokens as opaque to the client (<xref section="1.4" sectionFormat="of" target="RFC6749"/>). As a result, neither token introspection nor local inspection of a self-contained token provides a reliable or interoperable mechanism for determining the protected resource for which an access token is valid.</t>
      <t>Audience values are token-format-specific and policy-defined. They do not have standardized semantics across authorization server implementations. As described in <xref target="resource-vs-audience"/>, audience values commonly identify authorization servers, tenants, resource servers, or other logical entities rather than concrete protected resource identifiers. A protected resource may accept access tokens with broad, narrow, or indirect audience values. There is no predictable or discoverable relationship between such values and the resource’s URL. Clients therefore cannot rely on audience information, whether obtained from a token introspection response or from local inspection of a self-contained access token, to determine whether an access token is applicable to a specific protected resource.</t>
      <t>As a result, learning the audience of an issued access token does not provide a reliable or interoperable way for a client to determine whether the token is valid for the intended resource, particularly when multiple protected resources share an authorization server or when the client interacts with resources discovered dynamically at runtime. This document uses the term <em>resource</em> as defined in <xref target="RFC8707"/>. The relationship between resources and token audience values is discussed further in <xref target="resource-vs-audience"/>.</t>
      <t>Consequently, existing OAuth mechanisms do not provide a practical, interoperable way for a client to confirm that an issued access token is valid for the intended resource.</t>
      <t>This specification defines a new <tt>resource</tt> parameter to be returned in OAuth 2.0 access token responses that is orthogonal to the token format issued by the authorization server. The parameter explicitly identifies the protected resource(s) for which the issued access token is valid, enabling clients to validate token applicability before use and reducing ambiguity across deployments.</t>
      <section anchor="resource-mix-up-via-dynamic-discovery-example">
        <name>Resource Mix-Up via Dynamic Discovery Example</name>
        <t>The following example illustrates how ambiguity about the effective resource scope of an issued access token can lead to a resource mix-up attack in deployments that rely on dynamic discovery.</t>
        <t><strong>Preconditions:</strong></t>
        <ul spacing="normal">
          <li>
            <t>A client wants to access a protected resource at <tt>https://api.example.net/data</tt> and is not statically configured with knowledge of that resource or its authorization server.</t>
          </li>
          <li>
            <t>The client uses OAuth 2.0 Protected Resource Metadata <xref target="RFC9728"/> to dynamically discover an authorization server for the resource.</t>
          </li>
          <li>
            <t>An attacker controls the protected resource at <tt>https://api.example.net/data</tt> and publishes Protected Resource Metadata claiming <tt>https://legit-as.example.com</tt> as the authorization server, advertising legitimate-looking scopes such as <tt>data:read data:write</tt>.</t>
          </li>
          <li>
            <t>The client has an existing client registration with <tt>https://legit-as.example.com</tt>.</t>
          </li>
          <li>
            <t>The authorization server at <tt>https://legit-as.example.com</tt> does not support <xref target="RFC8707"/> and ignores the <tt>resource</tt> parameter, issuing access tokens based solely on requested scopes.</t>
          </li>
          <li>
            <t>The user trusts <tt>https://legit-as.example.com</tt> and would consent to the requested scopes for a legitimate client.</t>
          </li>
        </ul>
        <t><strong>Attack Flow:</strong></t>
        <ol spacing="normal" type="1"><li>
            <t>The client retrieves Protected Resource Metadata from <tt>https://api.example.net/data</tt> and discovers <tt>https://legit-as.example.com</tt> as the authorization server.</t>
          </li>
          <li>
            <t>The client sends an authorization request to <tt>https://legit-as.example.com</tt>, including <tt>resource=https://api.example.net/data</tt> and scopes <tt>data:read data:write</tt>.</t>
          </li>
          <li>
            <t>The authorization server processes the request based on scopes, ignores the <tt>resource</tt> parameter, and—after user consent—issues an access token without confirming the selected resource.</t>
          </li>
          <li>
            <t>The client receives the access token but cannot determine whether it is valid for <tt>https://api.example.net/data</tt> or for some other protected resource.</t>
          </li>
          <li>
            <t>The client presents the access token to <tt>https://api.example.net/data</tt>. The attacker intercepts the token and reuses it to access a legitimate protected resource that trusts the same authorization server and accepts tokens with the same scopes.</t>
          </li>
        </ol>
        <t>Without explicit confirmation of the resource in the token response, the client cannot detect that the authorization server ignored or overrode the requested resource indicator. User consent alone may not prevent this attack, particularly when authorization servers do not prominently display resource information during authorization.</t>
      </section>
    </section>
    <section anchor="conventions-and-terminology">
      <name>Conventions and Terminology</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 anchor="terminology">
        <name>Terminology</name>
        <t>The terms "client", "authorization server", "resource server", "access token", "protected resource", "authorization request", "authorization response", "access token request", "access token response" are defined by the OAuth 2.0 Authorization Framework specification <xref target="RFC6749"/>.</t>
        <t>The term "resource" is defined by the Resource Indicators for OAuth 2.0 specification <xref target="RFC8707"/>.</t>
        <t>The term "server-assigned resource" denotes resource(s) assigned by the authorization server (e.g., defaults or additions based on policy, configuration, or requested scopes).</t>
        <t>The term "StringOrURI" is defined by the JWT specification <xref target="RFC7519"/>.</t>
      </section>
      <section anchor="resource-vs-audience">
        <name>Resource vs Audience</name>
        <t>This specification uses the term <em>resource</em> (as defined in <xref target="RFC8707"/>) rather than <em>audience</em> (as commonly used in access token formats such as JWTs) to describe the protected resource for which an access token is valid. This distinction is intentional and reflects a fundamental separation in OAuth between resource identification and token representation.</t>
        <t>In OAuth, a client interacts with a protected resource by making requests to a specific resource URL. The client may not know how that resource is represented internally by the authorization server, including which audience values a resource server will accept. As a result, a client cannot assume any fixed or discoverable relationship between a protected resource’s URL and the audience values that may appear in an access token.</t>
        <t>While a resource identifier and an access token’s audience value may coincide in some deployments, they are not equivalent. A resource server protecting a given resource may accept access tokens with audience restrictions that are:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Broad</strong>, such as <tt>https://api.example.com</tt>, representing an API-wide identifier.</t>
          </li>
          <li>
            <t><strong>Narrow</strong>, such as <tt>https://api.example.com/some/protected/resource</tt>, representing a specific protected resource.</t>
          </li>
          <li>
            <t><strong>Logical or indirect</strong>, such as <tt>urn:example:api</tt> or <tt>https://example.net</tt>, which have no direct correspondence to the resource’s URL.</t>
          </li>
        </ul>
        <t>Audience assignment is a matter of authorization server policy. A client therefore cannot reliably predict which audience value will be used in an issued access token or which audience values a resource server will accept. This limitation is particularly relevant in dynamic environments, such as those using OAuth 2.0 Protected Resource Metadata <xref target="RFC9728"/>, where a client can discover the protected resource URL but cannot discover the authorization server’s audience assignment policy.</t>
        <t>Some deployments attempt to encode protected resource identifiers into scope values and rely on the <tt>scope</tt> parameter in the access token response <xref target="RFC6749"/> to infer the applicability of an access token. This approach conflates two distinct concepts in OAuth. Scope expresses the permissions or actions that an access token authorizes, while the <tt>resource</tt> parameter <xref target="RFC8707"/> identifies the protected resource at which those permissions may be exercised. Encoding resource identifiers into scope values obscures this distinction, limits the independent evolution of authorization and resource targeting, and does not compose well in deployments where a single resource supports multiple scopes or where the same scope applies across multiple resources.</t>
        <t>Some deployments also rely on protected resource metadata <xref target="RFC9728"/> or authorization server metadata <xref target="RFC8414"/> to discover which authorization server is authoritative for a given protected resource. While these mechanisms support discovery, they do not provide issuance-time confirmation of the resource(s) for which an access token is valid. Metadata describes static relationships and capabilities, not the authorization server’s resource selection decision for a specific token. As a result, metadata alone cannot be relied upon to determine whether an authorization server honored, restricted, or substituted a requested resource when issuing an access token.</t>
        <t>For these reasons, returning audience or scope information in the token response is less useful to a client than returning the resource(s) for which the access token was issued. By returning the <tt>resource</tt> parameter, this specification enables a client to confirm that an access token is valid for the specific resource it requested and to detect resource mix-up conditions in which an authorization server issues a token for a different resource than intended.</t>
        <t>This approach is consistent with Resource Indicators <xref target="RFC8707"/> and Protected Resource Metadata <xref target="RFC9728"/>, which define the <tt>resource</tt> parameter as the client-facing mechanism for identifying the target protected resource, independent of how a resource server enforces audience restrictions internally.</t>
        <t>This specification does not define, constrain, or replace the use of audience values in access tokens, nor does it require any particular token format. How authorization servers encode audience information and how resource servers enforce audience restrictions are explicitly out of scope.</t>
      </section>
    </section>
    <section anchor="resource-parameter-in-token-response">
      <name>Resource Parameter in Token Response</name>
      <t>Authorization servers that support this specification <bcp14>MUST</bcp14> include the <tt>resource</tt> parameter in successful access token responses, as defined in Section 5.1 of <xref target="RFC6749"/>, to identify the protected resource(s) for which the access token is valid, according to the rules in <xref target="authorization-server-processing-rules"/>.</t>
      <t>The value of the <tt>resource</tt> parameter <bcp14>MUST</bcp14> be either:</t>
      <ul spacing="normal">
        <li>
          <t>A single case-sensitive string containing an absolute URI, as defined in <xref section="2" sectionFormat="of" target="RFC8707"/>, when the access token is valid for exactly one resource.</t>
        </li>
        <li>
          <t>An array of case-sensitive strings, each containing an absolute URI as defined in <xref section="2" sectionFormat="of" target="RFC8707"/>, when the access token is valid for more than one resource. The array <bcp14>MUST</bcp14> contain at least one element, and each element <bcp14>MUST</bcp14> be unique when compared using the URI comparison rules in <xref section="6.2.1" sectionFormat="of" target="RFC3986"/> after applying syntax-based normalization as defined in <xref section="6.2.2" sectionFormat="of" target="RFC3986"/>.</t>
        </li>
      </ul>
      <t>When an access token is valid for exactly one resource, the authorization server <bcp14>SHOULD</bcp14> represent the <tt>resource</tt> parameter value as a single string to improve interoperability and ease of processing. When the access token is valid for more than one resource, the authorization server <bcp14>MUST</bcp14> represent the <tt>resource</tt> parameter value as an array.</t>
      <t>This representation is determined solely by the number of resources for which the access token is valid and applies regardless of how many <tt>resource</tt> parameters were included in the request.</t>
      <t>The <tt>resource</tt> parameter uses the same value syntax and requirements as the <tt>resource</tt> request parameter defined in <xref target="RFC8707"/>. Each value <bcp14>MUST</bcp14> be an absolute URI, <bcp14>MUST NOT</bcp14> contain a fragment component, and <bcp14>SHOULD NOT</bcp14> contain a query component.</t>
      <artwork><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache

{
  "access_token": "2YotnFZFEjr1zCsicMWpAA",
  "token_type": "Bearer",
  "expires_in": 3600,
  "resource": "https://api.example.com/"
}
]]></artwork>
      <section anchor="resource-identifier-comparison">
        <name>Resource Identifier Comparison</name>
        <t>This section defines the canonical rules for comparing resource identifiers when determining uniqueness, evaluating requested resources against authorization server policy, or validating that returned resource values correspond to client expectations.</t>
        <t>When comparing resource identifiers, implementations <bcp14>MUST</bcp14> apply the URI comparison rules defined in <xref section="6.2.1" sectionFormat="of" target="RFC3986"/>, after applying syntax-based normalization as defined in <xref section="6.2.2" sectionFormat="of" target="RFC3986"/>. Resource identifiers that are equivalent under these rules <bcp14>MUST</bcp14> be treated as identical.</t>
      </section>
      <section anchor="authorization-server-processing-rules">
        <name>Authorization Server Processing Rules</name>
        <t>Authorization server processing is determined by the number of <tt>resource</tt> parameters included in the authorization request or token request, as defined in <xref target="RFC8707"/>. Server-assigned resources may also affect processing; the effective resource set can be influenced by requested scopes, authorization server policy, client configuration, and other factors.</t>
        <t>The following rules describe how an authorization server evaluates requested resources and determines the effective resource(s) associated with an issued access token. These rules apply equally to access tokens issued using the authorization code grant and the refresh token grant.</t>
        <t>When issuing an access token, any <tt>resource</tt> parameters included in the token request represent an additional restriction on the resources permitted by the underlying authorization grant. The authorization server <bcp14>MUST</bcp14> ensure that each requested resource in the token request is within the set of resources authorized by the grant, or otherwise acceptable under local policy consistent with <xref target="RFC8707"/>. If this condition is not met, the authorization server <bcp14>MUST</bcp14> return an <tt>invalid_target</tt> error and <bcp14>MUST NOT</bcp14> issue an access token.</t>
        <t>If the client includes <tt>resource</tt> parameters in both the authorization request and the token request, the values in the token request <bcp14>MUST</bcp14> be treated as a further restriction and <bcp14>MUST</bcp14> be a subset of the resources permitted by the underlying grant. If no <tt>resource</tt> parameter is included in the token request, the authorization server <bcp14>MAY</bcp14> issue an access token for the resource(s) previously authorized by the grant, subject to local policy.</t>
        <t>When issuing an access token in response to a refresh token request, the authorization server <bcp14>MUST NOT</bcp14> expand the set of authorized resources beyond those previously bound to the underlying grant. If the client supplies one or more <tt>resource</tt> parameters in the refresh token request, each requested resource <bcp14>MUST</bcp14> be within the previously authorized set or otherwise acceptable under local policy consistent with <xref target="RFC8707"/>. If this condition is not met, the authorization server <bcp14>MUST</bcp14> return an <tt>invalid_target</tt> error and <bcp14>MUST NOT</bcp14> issue an access token.</t>
        <t>An authorization server <bcp14>MAY</bcp14> require clients to include a <tt>resource</tt> parameter. If a <tt>resource</tt> parameter is required by local policy and the client does not include one, the authorization server <bcp14>MUST</bcp14> return an <tt>invalid_target</tt> error as defined in <xref target="RFC8707"/> and <bcp14>MUST NOT</bcp14> issue an access token.</t>
        <t>When including a <tt>resource</tt> parameter in the access token response, the authorization server <bcp14>MUST</bcp14> use a string when exactly one resource value is returned and <bcp14>MUST</bcp14> use an array of strings when more than one resource value is returned (whether from requested resources, server-assigned resources, or both).</t>
        <t>When the client included one or more <tt>resource</tt> parameters in the request, the authorization server <bcp14>MUST NOT</bcp14> issue an access token unless at least one requested resource is acceptable. The server <bcp14>MUST</bcp14> return an <tt>invalid_target</tt> error if none of the requested resources are acceptable, even if server-assigned resources could be returned. Server-assigned resources may only be included in addition to at least one accepted requested resource.</t>
        <section anchor="summary-table">
          <name>Summary Table</name>
          <table>
            <thead>
              <tr>
                <th align="left">Client Request Shape</th>
                <th align="left">Authorization Server Outcome</th>
                <th align="left">Authorization Server Processing Rules</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <strong>One or more <tt>resource</tt> values requested</strong></td>
                <td align="left">No acceptable requested resource</td>
                <td align="left">
                  <bcp14>MUST</bcp14> return <tt>invalid_target</tt> and <bcp14>MUST NOT</bcp14> issue an access token.</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">One or more acceptable requested resources</td>
                <td align="left">
                  <bcp14>MUST</bcp14> include <tt>resource</tt> with at least the accepted requested resource(s). <bcp14>MAY</bcp14> include server-assigned resource(s) in addition.</td>
              </tr>
              <tr>
                <td align="left">
                  <strong>No <tt>resource</tt> requested</strong></td>
                <td align="left">server-assigned resource(s)</td>
                <td align="left">
                  <bcp14>SHOULD</bcp14> include the assigned resource(s) in the <tt>resource</tt> parameter.</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">No resource-specific restriction</td>
                <td align="left">
                  <bcp14>SHOULD</bcp14> omit the <tt>resource</tt> parameter.</td>
              </tr>
            </tbody>
          </table>
          <t>When comparing resource identifiers, the authorization server <bcp14>MUST</bcp14> apply the rules defined in <xref target="resource-identifier-comparison"/>.</t>
        </section>
        <section anchor="client-requested-one-or-more-resources">
          <name>Client Requested One or More Resources</name>
          <t>If the client included one or more <tt>resource</tt> parameters in the authorization request or token request:</t>
          <ul spacing="normal">
            <li>
              <t>The authorization server <bcp14>MUST</bcp14> evaluate the requested <tt>resource</tt> value(s) according to local policy and determine which requested values are acceptable.</t>
            </li>
            <li>
              <t>If none of the requested <tt>resource</tt> values are acceptable, the authorization server <bcp14>MUST</bcp14> return an <tt>invalid_target</tt> error response as defined in <xref target="RFC8707"/> and <bcp14>MUST NOT</bcp14> issue an access token.</t>
            </li>
            <li>
              <t>If one or more requested <tt>resource</tt> values are acceptable:
              </t>
              <ul spacing="normal">
                <li>
                  <t>The authorization server <bcp14>MUST</bcp14> include the <tt>resource</tt> parameter in the access token response.</t>
                </li>
                <li>
                  <t>The returned value(s) <bcp14>MUST</bcp14> include at least one requested <tt>resource</tt> value according to the rules defined in <xref target="resource-identifier-comparison"/>.</t>
                </li>
                <li>
                  <t>The returned set <bcp14>MAY</bcp14> contain a strict subset of the requested <tt>resource</tt> values (when multiple were requested).</t>
                </li>
                <li>
                  <t>The returned set <bcp14>MAY</bcp14> contain additional server-assigned resources. See <xref target="ex-scope-defined-resource"/> for an example using scope-defined resources.</t>
                </li>
                <li>
                  <t>The returned set <bcp14>MUST NOT</bcp14> contain duplicate <tt>resource</tt> values, including values that differ only by URI normalization using rules defined in <xref target="resource-identifier-comparison"/>.</t>
                </li>
              </ul>
            </li>
          </ul>
        </section>
        <section anchor="client-did-not-request-a-resource">
          <name>Client Did Not Request a Resource</name>
          <t>If the client did not include any <tt>resource</tt> parameters in the authorization request or token request:</t>
          <ul spacing="normal">
            <li>
              <t>If the authorization server assigns one or more server-assigned <tt>resource</tt> value(s) based on policy, client configuration, or requested scopes:
              </t>
              <ul spacing="normal">
                <li>
                  <t>The authorization server <bcp14>SHOULD</bcp14> include the assigned <tt>resource</tt> value(s) in the <tt>resource</tt> parameter of the response.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>If the authorization server does not apply any <tt>resource</tt>-specific restriction to the access token:
              </t>
              <ul spacing="normal">
                <li>
                  <t>The authorization server <bcp14>SHOULD</bcp14> omit the <tt>resource</tt> parameter from the response.</t>
                </li>
              </ul>
            </li>
          </ul>
          <t>If the <tt>resource</tt> parameter is omitted, the access token is not valid for any specific resource as defined by this specification.</t>
        </section>
      </section>
      <section anchor="client-processing-rules">
        <name>Client Processing Rules</name>
        <t>A client that supports this extension <bcp14>MUST</bcp14> process access token responses according to the rules in this section, which are determined by whether the client requested one or more resources or no resources, as defined in <xref target="RFC8707"/>.</t>
        <t>When a <tt>resource</tt> parameter is included in an access token response, the client <bcp14>MUST</bcp14> interpret and compare the returned resource identifiers using the rules defined in <xref target="resource-identifier-comparison"/>. If the client cannot determine that an access token is valid for the intended protected resource, the client <bcp14>MUST NOT</bcp14> use the access token.</t>
        <t>If validation succeeds, the client <bcp14>MAY</bcp14> use the access token and <bcp14>MUST</bcp14> use it only with the resource(s) identified in the response. Any returned <tt>scope</tt> value <bcp14>MUST</bcp14> be interpreted in conjunction with the returned <tt>resource</tt> values, and the granted scopes <bcp14>MUST</bcp14> be appropriate for the returned resource(s), consistent with <xref section="3.3" sectionFormat="of" target="RFC6749"/>.</t>
        <t>If validation fails at any point, the client <bcp14>MUST NOT</bcp14> use the access token and <bcp14>SHOULD</bcp14> discard it.</t>
        <t>These client processing rules apply equally to access tokens issued using the authorization code grant and to access tokens issued using the refresh token grant.</t>
        <section anchor="summary-table-1">
          <name>Summary Table</name>
          <table>
            <thead>
              <tr>
                <th align="left">Client Request Shape</th>
                <th align="left">Token Response</th>
                <th align="left">Client Processing Rules</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <strong>One or more <tt>resource</tt> values requested</strong></td>
                <td align="left">
                  <tt>resource</tt> omitted</td>
                <td align="left">Invalid. Client <bcp14>MUST NOT</bcp14> use the access token and <bcp14>SHOULD</bcp14> discard it.</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>resource</tt> present</td>
                <td align="left">Valid only if at least one returned identifier matches a requested resource; additional elements <bcp14>MAY</bcp14> be server-assigned resources.</td>
              </tr>
              <tr>
                <td align="left">
                  <strong>No <tt>resource</tt> requested</strong></td>
                <td align="left">
                  <tt>resource</tt> omitted</td>
                <td align="left">Valid. Token is not resource-specific.</td>
              </tr>
              <tr>
                <td align="left"> </td>
                <td align="left">
                  <tt>resource</tt> present</td>
                <td align="left">Valid. Client <bcp14>SHOULD</bcp14> treat the returned value as a server-assigned resource assignment.</td>
              </tr>
              <tr>
                <td align="left">
                  <strong>Any request shape</strong></td>
                <td align="left">
                  <tt>error=invalid_target</tt></td>
                <td align="left">Client <bcp14>MUST</bcp14> treat this as a terminal error and <bcp14>MUST NOT</bcp14> use an access token.</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="parsing-the-resource-parameter">
          <name>Parsing the <tt>resource</tt> Parameter</name>
          <t>If the access token response includes a <tt>resource</tt> parameter, the client <bcp14>MUST</bcp14> parse it as follows:</t>
          <ul spacing="normal">
            <li>
              <t>A string value represents a single resource identifier.</t>
            </li>
            <li>
              <t>An array value represents multiple resource identifiers; each element <bcp14>MUST</bcp14> be a string.</t>
            </li>
            <li>
              <t>Any other value is invalid; the client <bcp14>MUST NOT</bcp14> use the access token and <bcp14>SHOULD</bcp14> discard it.</t>
            </li>
          </ul>
          <t>The client <bcp14>MUST</bcp14> normalize the parsed value to a set of resource identifiers (treating a string as a single-element set) before applying the validation rules below. When comparing resource identifiers, the client <bcp14>MUST</bcp14> apply the rules defined in <xref target="resource-identifier-comparison"/>.</t>
        </section>
        <section anchor="client-requested-one-or-more-resources-1">
          <name>Client Requested One or More Resources</name>
          <t>If the client included one or more <tt>resource</tt> parameters in the token request:</t>
          <ul spacing="normal">
            <li>
              <t>The response <bcp14>MUST</bcp14> include a <tt>resource</tt> parameter containing at least one identifier that matches a requested resource (additional identifiers <bcp14>MAY</bcp14> be server-assigned resources).</t>
            </li>
            <li>
              <t>Validation fails when the response omits the <tt>resource</tt> parameter, when the returned set does not contain any of the requested resources, or when duplicate resource identifiers are present.</t>
            </li>
          </ul>
          <section anchor="ex-single-resource-authz">
            <name>Authorization Request Example</name>
            <t>Client obtains an access token for the protected resource at <tt>https://api.example.com/customers</tt> using the authorization code grant.</t>
            <section anchor="authorization-request">
              <name>Authorization Request</name>
              <t>Client makes an authorization request for the protected resource at <tt>https://api.example.com/customers</tt>.</t>
              <artwork><![CDATA[
GET /authorize?response_type=code
  &client_id=client123
  &redirect_uri=https%3A%2F%2Fclient.example.com%2Fcb
  &scope=customers%3Aread
  &state=abc123
  &resource=https%3A%2F%2Fapi.example.com%2Fcustomers
  &code_challenge=E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM
  &code_challenge_method=S256
HTTP/1.1
Host: authorization-server.example.com
]]></artwork>
            </section>
            <section anchor="redirect">
              <name>Redirect</name>
              <t>The authorization server redirects the user-agent back to the client with an authorization code.</t>
              <artwork><![CDATA[
HTTP/1.1 302 Found
Location: https://client.example.com/cb?code=SplxlOBeZQQYbYS6WxSbIA&state=abc123
]]></artwork>
            </section>
            <section anchor="token-request">
              <name>Token Request</name>
              <t>The client exchanges the authorization code for an access token.</t>
              <artwork><![CDATA[
POST /token HTTP/1.1
Host: authorization-server.example.com
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code&
code=SplxlOBeZQQYbYS6WxSbIA&
redirect_uri=https%3A%2F%2Fclient.example.com%2Fcb&
client_id=client123&
code_verifier=dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk
]]></artwork>
            </section>
            <section anchor="token-response">
              <name>Token Response</name>
              <t>The authorization server issues an access token that is valid for the protected resource at <tt>https://api.example.com/customers</tt>.</t>
              <artwork><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache

{
  "access_token": "ACCESS_TOKEN",
  "token_type": "Bearer",
  "expires_in": 3600,
  "scope": "customers:read",
  "resource": "https://api.example.com/customers"
}
]]></artwork>
            </section>
          </section>
          <section anchor="ex-single-resource-refresh">
            <name>Refresh Token Request Example</name>
            <t>Client refreshes an access token for the protected resource at <tt>https://api.example.com/customers</tt>.</t>
            <section anchor="refresh-token-request">
              <name>Refresh Token Request</name>
              <t>The client uses a refresh token to request a new access token that is valid for the protected resource at <tt>https://api.example.com/customers</tt>.</t>
              <artwork><![CDATA[
POST /token HTTP/1.1
Host: authorization-server.example.com
Content-Type: application/x-www-form-urlencoded

grant_type=refresh_token&
refresh_token=REFRESH_TOKEN&
client_id=client123&
scope=customers%3Aread&
resource=https%3A%2F%2Fapi.example.com%2Fcustomers
]]></artwork>
            </section>
            <section anchor="token-response-1">
              <name>Token Response</name>
              <t>The authorization server issues a new access token that is valid for the protected resource at <tt>https://api.example.com/customers</tt>.</t>
              <artwork><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache

{
  "access_token": "ACCESS_TOKEN",
  "token_type": "Bearer",
  "expires_in": 3600,
  "scope": "customers:read",
  "resource": "https://api.example.com/customers"
}
]]></artwork>
            </section>
          </section>
          <section anchor="ex-multi-resource-authz">
            <name>Authorization Request Example</name>
            <t>Client obtains an access token for the protected resources at <tt>https://api.example.com/customers</tt> and <tt>https://api.example.com/orders</tt>.</t>
            <section anchor="authorization-request-1">
              <name>Authorization Request</name>
              <t>Client makes an authorization request for both protected resources.</t>
              <artwork><![CDATA[
GET /authorize?response_type=code
  &client_id=client123
  &redirect_uri=https%3A%2F%2Fclient.example.com%2Fcb
  &scope=customers%3Aread%20orders%3Aread
  &state=abc123
  &resource=https%3A%2F%2Fapi.example.com%2Fcustomers
  &resource=https%3A%2F%2Fapi.example.com%2Forders
  &code_challenge=E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM
  &code_challenge_method=S256
HTTP/1.1
Host: authorization-server.example.com
]]></artwork>
            </section>
            <section anchor="redirect-1">
              <name>Redirect</name>
              <t>The authorization server redirects the user-agent back to the client with an authorization code.</t>
              <artwork><![CDATA[
HTTP/1.1 302 Found
Location: https://client.example.com/cb?code=SplxlOBeZQQYbYS6WxSbIA&state=abc123
]]></artwork>
            </section>
            <section anchor="token-request-1">
              <name>Token Request</name>
              <t>The client exchanges the authorization code for an access token.</t>
              <artwork><![CDATA[
POST /token HTTP/1.1
Host: authorization-server.example.com
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code&
code=SplxlOBeZQQYbYS6WxSbIA&
redirect_uri=https%3A%2F%2Fclient.example.com%2Fcb&
client_id=client123&
code_verifier=dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk
]]></artwork>
            </section>
            <section anchor="token-response-2">
              <name>Token Response</name>
              <t>The authorization server issues an access token that is valid for both protected resources.</t>
              <artwork><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache

{
  "access_token": "ACCESS_TOKEN",
  "token_type": "Bearer",
  "expires_in": 3600,
  "scope": "customers:read orders:read",
  "resource": [
    "https://api.example.com/customers",
    "https://api.example.com/orders"
  ]
}
]]></artwork>
            </section>
          </section>
          <section anchor="ex-multi-resource-refresh">
            <name>Refresh Token Request Example</name>
            <t>Client refreshes an access token for the protected resources at <tt>https://api.example.com/customers</tt> and <tt>https://api.example.com/orders</tt>.</t>
            <section anchor="refresh-token-request-1">
              <name>Refresh Token Request</name>
              <t>The client uses a refresh token to request a new access token that is valid for both protected resources.</t>
              <artwork><![CDATA[
POST /token HTTP/1.1
Host: authorization-server.example.com
Content-Type: application/x-www-form-urlencoded

grant_type=refresh_token&
refresh_token=REFRESH_TOKEN&
client_id=client123&
scope=customers%3Aread%20orders%3Aread&
resource=https%3A%2F%2Fapi.example.com%2Fcustomers&
resource=https%3A%2F%2Fapi.example.com%2Forders
]]></artwork>
            </section>
            <section anchor="token-response-3">
              <name>Token Response</name>
              <t>The authorization server issues a new access token that is valid for both protected resources.</t>
              <artwork><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache

{
  "access_token": "ACCESS_TOKEN",
  "token_type": "Bearer",
  "expires_in": 3600,
  "scope": "customers:read orders:read",
  "resource": [
    "https://api.example.com/customers",
    "https://api.example.com/orders"
  ]
}
]]></artwork>
            </section>
          </section>
        </section>
        <section anchor="client-did-not-request-a-resource-1">
          <name>Client Did Not Request a Resource</name>
          <t>If the client did not include any <tt>resource</tt> parameters in the token request:</t>
          <ul spacing="normal">
            <li>
              <t>If the response includes a <tt>resource</tt> parameter, the client <bcp14>MAY</bcp14> treat it as a server-assigned resource assignment.</t>
            </li>
            <li>
              <t>If the response omits the <tt>resource</tt> parameter, the token <bcp14>SHOULD</bcp14> be treated as unbounded.</t>
            </li>
          </ul>
          <section anchor="ex-default-resource-authz">
            <name>Authorization Request Example</name>
            <t>Client obtains an access token without requesting a specific resource.</t>
            <section anchor="authorization-request-2">
              <name>Authorization Request</name>
              <t>Client makes an authorization request without including a resource indicator.</t>
              <artwork><![CDATA[
GET /authorize?response_type=code
  &client_id=client123
  &redirect_uri=https%3A%2F%2Fclient.example.com%2Fcb
  &scope=orders%3Aread
  &state=abc123
  &code_challenge=E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM
  &code_challenge_method=S256
HTTP/1.1
Host: authorization-server.example.com
]]></artwork>
            </section>
            <section anchor="redirect-2">
              <name>Redirect</name>
              <t>The authorization server redirects the user-agent back to the client with an authorization code.</t>
              <artwork><![CDATA[
HTTP/1.1 302 Found
Location: https://client.example.com/cb?code=SplxlOBeZQQYbYS6WxSbIA&state=abc123
]]></artwork>
            </section>
            <section anchor="token-request-2">
              <name>Token Request</name>
              <t>The client exchanges the authorization code for an access token.</t>
              <artwork><![CDATA[
POST /token HTTP/1.1
Host: authorization-server.example.com
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code&
code=SplxlOBeZQQYbYS6WxSbIA&
redirect_uri=https%3A%2F%2Fclient.example.com%2Fcb&
client_id=client123&
code_verifier=dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk
]]></artwork>
            </section>
            <section anchor="token-response-4">
              <name>Token Response</name>
              <t>The authorization server issues an access token that is valid for the server-assigned protected resource (<tt>https://api.example.com/orders</tt>).</t>
              <artwork><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache

{
  "access_token": "ACCESS_TOKEN",
  "token_type": "Bearer",
  "expires_in": 3600,
  "scope": "orders:read",
  "resource": "https://api.example.com/orders"
}
]]></artwork>
            </section>
          </section>
          <section anchor="ex-default-resource-refresh">
            <name>Refresh Token Request Example</name>
            <t>Client refreshes an access token without explicitly requesting a resource.</t>
            <section anchor="refresh-token-request-2">
              <name>Refresh Token Request</name>
              <t>The client uses a refresh token to request a new access token without explicitly requesting a resource.</t>
              <artwork><![CDATA[
POST /token HTTP/1.1
Host: authorization-server.example.com
Content-Type: application/x-www-form-urlencoded

grant_type=refresh_token&
refresh_token=REFRESH_TOKEN&
client_id=client123&
scope=orders%3Aread
]]></artwork>
            </section>
            <section anchor="token-response-5">
              <name>Token Response</name>
              <t>The authorization server issues a new access token that is valid for the server-assigned protected resource (<tt>https://api.example.com/orders</tt>).</t>
              <artwork><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache

{
  "access_token": "ACCESS_TOKEN",
  "token_type": "Bearer",
  "expires_in": 3600,
  "scope": "orders:read",
  "resource": "https://api.example.com/orders"
}
]]></artwork>
            </section>
          </section>
        </section>
        <section anchor="invalid-resource">
          <name>Invalid Resource</name>
          <t>An <tt>invalid_target</tt> error indicates that none of the requested resource values were acceptable to the authorization server. This outcome may result from authorization server policy or client configuration.</t>
          <t>Upon receiving an <tt>invalid_target</tt> error, the client <bcp14>MAY</bcp14> retry the authorization request with a different <tt>resource</tt> value.</t>
          <section anchor="ex-invalid-resource-authz">
            <name>Authorization Request Example</name>
            <t>Client attempts to obtain an access token for a protected resource (<tt>https://unknown.example.com</tt>) that is not permitted.</t>
            <section anchor="authorization-request-3">
              <name>Authorization Request</name>
              <t>Client makes an authorization request for a protected resource that is not permitted.</t>
              <artwork><![CDATA[
GET /authorize?response_type=code
  &client_id=client123
  &redirect_uri=https%3A%2F%2Fclient.example.com%2Fcb
  &scope=customers%3Aread
  &state=invalid123
  &resource=https%3A%2F%2Funknown.example.com%2F
  &code_challenge=E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM
  &code_challenge_method=S256
HTTP/1.1
Host: authorization-server.example.com
]]></artwork>
            </section>
            <section anchor="error-redirect">
              <name>Error Redirect</name>
              <t>The authorization server rejects the requested resource and does not issue an authorization code.</t>
              <artwork><![CDATA[
HTTP/1.1 302 Found
Location: https://client.example.com/cb?error=invalid_target&error_description=Resource%20not%20allowed&state=invalid123
]]></artwork>
            </section>
          </section>
          <section anchor="ex-invalid-resource-refresh">
            <name>Refresh Token Request Example</name>
            <t>Client attempts to refresh an access token for a protected resource (<tt>https://unknown.example.com</tt>) that is not permitted.</t>
            <section anchor="refresh-token-request-3">
              <name>Refresh Token Request</name>
              <t>The client uses a refresh token to request a new access token for a protected resource that is not permitted.</t>
              <artwork><![CDATA[
POST /token HTTP/1.1
Host: authorization-server.example.com
Content-Type: application/x-www-form-urlencoded

grant_type=refresh_token&
refresh_token=REFRESH_TOKEN&
client_id=client123&
scope=customers%3Aread&
resource=https%3A%2F%2Funknown.example.com%2F
]]></artwork>
            </section>
            <section anchor="error-response">
              <name>Error Response</name>
              <t>The authorization server rejects the requested resource.</t>
              <artwork><![CDATA[
HTTP/1.1 400 Bad Request
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache

{
  "error": "invalid_target",
  "error_description": "Resource not allowed"
}
]]></artwork>
            </section>
          </section>
        </section>
      </section>
      <section anchor="security-considerations">
        <name>Security Considerations</name>
        <t>This section describes security threats related to ambiguous resource selection and access token reuse, and explains how this specification mitigates those threats, either directly or in combination with other OAuth security mechanisms.</t>
        <section anchor="resource-selection-ambiguity-and-mix-up-attacks">
          <name>Resource Selection Ambiguity and Mix-Up Attacks</name>
          <t><strong>Threat:</strong>
An authorization server issues a successful access token response without clearly indicating the protected resource(s) for which the token is valid. This can occur when the server applies server-assigned resource selection, narrows a requested resource set, or substitutes a different resource according to local policy without communicating that decision to the client. Such conditions are more likely in deployments where a client interacts with multiple authorization servers and protected resources, or dynamically discovers authorization servers at runtime, including via HTTP authorization challenges using OAuth 2.0 Protected Resource Metadata <xref target="RFC9728"/>.</t>
          <t><strong>Impact:</strong>
A client may incorrectly assume that an access token is valid for a different protected resource than the one actually authorized. This can result in access token misuse, unintended token disclosure to an incorrect protected resource, or resource mix-up attacks in which a token intended for one resource is presented to another. These risks are amplified in dynamic environments where the client cannot fully validate the trust relationship between a protected resource and the authorization server.</t>
          <t><strong>Mitigation:</strong>
This specification mitigates resource selection ambiguity and OAuth mix-up attacks by requiring authorization servers to explicitly return the resource(s) for which an access token is valid in the access token response. By providing issuance-time confirmation of the effective resource selection, clients can detect cases where a requested resource was narrowed, substituted, or overridden, and can avoid using access tokens with unintended protected resources.</t>
        </section>
        <section anchor="limitations-of-discovery-time-mechanisms">
          <name>Limitations of Discovery-Time Mechanisms</name>
          <t><strong>Threat:</strong>
Clients rely on protected resource metadata <xref target="RFC9728"/> or authorization server metadata <xref target="RFC8414"/> to determine which authorization server is authoritative for a protected resource and assume that successful token issuance implies correct resource binding.</t>
          <t><strong>Impact:</strong>
Metadata describes static relationships and supported capabilities, but does not reflect issuance-time authorization decisions. As a result, clients may be unable to detect cases where an authorization server issues an access token valid for a different resource than the one requested, particularly in dynamic or multi-resource environments.</t>
          <t><strong>Mitigation:</strong>
By returning the effective resource selection in the token response, this specification complements discovery-time mechanisms with issuance-time confirmation. This enables clients to verify that an access token is valid for the intended protected resource regardless of how authorization server relationships were discovered.</t>
        </section>
        <section anchor="token-reuse-by-malicious-protected-resources">
          <name>Token Reuse by Malicious Protected Resources</name>
          <t><strong>Threat:</strong>
A malicious protected resource intercepts an access token during a client's legitimate request and reuses that token to access other protected resources that trust the same authorization server and accept tokens with the same audience and scopes.</t>
          <t><strong>Impact:</strong>
Token reuse can lead to unauthorized access to protected resources beyond those intended by the client, particularly in environments where multiple resources trust a common authorization server and audience values are broad or indirect.</t>
          <t><strong>Mitigation:</strong>
To prevent token reuse attacks, access tokens <bcp14>SHOULD</bcp14> require proof-of-possession, such as Demonstrating Proof-of-Possession (DPoP) as defined in <xref target="RFC9449"/>. Other proof-of-possession mechanisms may also be applicable. Proof-of-possession mechanisms bind the access token to a cryptographic key held by the client and require demonstration of key possession when the token is used. This prevents a malicious protected resource that intercepts an access token from reusing it at other resources, as it does not possess the client's private key. Both the client and authorization server must support proof-of-possession mechanisms for this protection to be effective. See <xref section="9" sectionFormat="of" target="RFC9449"/> for additional details.</t>
        </section>
        <section anchor="client-validation-and-defense-in-depth">
          <name>Client Validation and Defense in Depth</name>
          <t><strong>Threat:</strong>
A client fails to validate the resource(s) returned in the access token response and proceeds to use an access token for a protected resource other than the one for which it was issued.</t>
          <t><strong>Impact:</strong>
Failure to validate the returned <tt>resource</tt> parameter can result in token misuse or unintended interactions with protected resources, even when the authorization server correctly indicates the effective resource selection.</t>
          <t><strong>Mitigation:</strong>
Clients are advised to validate the <tt>resource</tt> parameter in the token response as specified in <xref target="client-processing-rules"/> and to treat mismatches as errors unless explicitly designed to support resource negotiation. While validating the <tt>resource</tt> parameter provides defense in depth by allowing the client to detect resource substitution, it does not prevent token reuse by malicious protected resources. Clients that require strict resource binding <bcp14>SHOULD</bcp14> treat the absence of the <tt>resource</tt> parameter as a potential ambiguity.</t>
        </section>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>Returning the <tt>resource</tt> value may reveal some information about the protected resource. If the value is sensitive, the authorization server <bcp14>SHOULD</bcp14> assess whether the resource name can be safely disclosed to the client.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document updates the "resource" parameter in the OAuth Parameters registry established by <xref target="RFC6749"/>. The "resource" parameter is defined by <xref target="RFC8707"/> for use in authorization requests and token requests. This specification adds the following usage location:</t>
      <section anchor="oauth-parameters-registry">
        <name>OAuth Parameters Registry</name>
        <table>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Parameter Usage Location</th>
              <th align="left">Description</th>
              <th align="left">Specification</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">resource</td>
              <td align="left">token response</td>
              <td align="left">Resource to which the access token applies</td>
              <td align="left">This document</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC6749" target="https://www.rfc-editor.org/info/rfc6749" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6749.xml">
        <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="RFC6750" target="https://www.rfc-editor.org/info/rfc6750" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6750.xml">
        <front>
          <title>The OAuth 2.0 Authorization Framework: Bearer Token Usage</title>
          <author fullname="M. Jones" initials="M." surname="Jones"/>
          <author fullname="D. Hardt" initials="D." surname="Hardt"/>
          <date month="October" year="2012"/>
          <abstract>
            <t>This specification describes how to use bearer tokens in HTTP requests to access OAuth 2.0 protected resources. Any party in possession of a bearer token (a "bearer") can use it to get access to the associated resources (without demonstrating possession of a cryptographic key). To prevent misuse, bearer tokens need to be protected from disclosure in storage and in transport. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6750"/>
        <seriesInfo name="DOI" value="10.17487/RFC6750"/>
      </reference>
      <reference anchor="RFC8707" target="https://www.rfc-editor.org/info/rfc8707" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8707.xml">
        <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" target="https://www.rfc-editor.org/info/rfc9728" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9728.xml">
        <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="RFC8414" target="https://www.rfc-editor.org/info/rfc8414" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8414.xml">
        <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="RFC9207" target="https://www.rfc-editor.org/info/rfc9207" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9207.xml">
        <front>
          <title>OAuth 2.0 Authorization Server Issuer Identification</title>
          <author fullname="K. Meyer zu Selhausen" initials="K." surname="Meyer zu Selhausen"/>
          <author fullname="D. Fett" initials="D." surname="Fett"/>
          <date month="March" year="2022"/>
          <abstract>
            <t>This document specifies a new parameter called iss. This parameter is used to explicitly include the issuer identifier of the authorization server in the authorization response of an OAuth authorization flow. The iss parameter serves as an effective countermeasure to "mix-up attacks".</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9207"/>
        <seriesInfo name="DOI" value="10.17487/RFC9207"/>
      </reference>
      <reference anchor="RFC3986" target="https://www.rfc-editor.org/info/rfc3986" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3986.xml">
        <front>
          <title>Uniform Resource Identifier (URI): Generic Syntax</title>
          <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
          <author fullname="R. Fielding" initials="R." surname="Fielding"/>
          <author fullname="L. Masinter" initials="L." surname="Masinter"/>
          <date month="January" year="2005"/>
          <abstract>
            <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="66"/>
        <seriesInfo name="RFC" value="3986"/>
        <seriesInfo name="DOI" value="10.17487/RFC3986"/>
      </reference>
      <reference anchor="RFC7519" target="https://www.rfc-editor.org/info/rfc7519" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7519.xml">
        <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="RFC7662" target="https://www.rfc-editor.org/info/rfc7662" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7662.xml">
        <front>
          <title>OAuth 2.0 Token Introspection</title>
          <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
          <date month="October" year="2015"/>
          <abstract>
            <t>This specification defines a method for a protected resource to query an OAuth 2.0 authorization server to determine the active state of an OAuth 2.0 token and to determine meta-information about this token. OAuth 2.0 deployments can use this method to convey information about the authorization context of the token from the authorization server to the protected resource.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7662"/>
        <seriesInfo name="DOI" value="10.17487/RFC7662"/>
      </reference>
      <reference anchor="RFC9700" target="https://www.rfc-editor.org/info/rfc9700" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9700.xml">
        <front>
          <title>Best Current Practice for OAuth 2.0 Security</title>
          <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
          <author fullname="J. Bradley" initials="J." surname="Bradley"/>
          <author fullname="A. Labunets" initials="A." surname="Labunets"/>
          <author fullname="D. Fett" initials="D." surname="Fett"/>
          <date month="January" year="2025"/>
          <abstract>
            <t>This document describes best current security practice for OAuth 2.0. It updates and extends the threat model and security advice given in RFCs 6749, 6750, and 6819 to incorporate practical experiences gathered since OAuth 2.0 was published and covers new threats relevant due to the broader application of OAuth 2.0. Further, it deprecates some modes of operation that are deemed less secure or even insecure.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="240"/>
        <seriesInfo name="RFC" value="9700"/>
        <seriesInfo name="DOI" value="10.17487/RFC9700"/>
      </reference>
      <reference anchor="RFC9449" target="https://www.rfc-editor.org/info/rfc9449" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9449.xml">
        <front>
          <title>OAuth 2.0 Demonstrating Proof of Possession (DPoP)</title>
          <author fullname="D. Fett" initials="D." surname="Fett"/>
          <author fullname="B. Campbell" initials="B." surname="Campbell"/>
          <author fullname="J. Bradley" initials="J." surname="Bradley"/>
          <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
          <author fullname="M. Jones" initials="M." surname="Jones"/>
          <author fullname="D. Waite" initials="D." surname="Waite"/>
          <date month="September" year="2023"/>
          <abstract>
            <t>This document describes a mechanism for sender-constraining OAuth 2.0 tokens via a proof-of-possession mechanism on the application level. This mechanism allows for the detection of replay attacks with access and refresh tokens.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9449"/>
        <seriesInfo name="DOI" value="10.17487/RFC9449"/>
      </reference>
      <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
        <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" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
    </references>
    <?line 710?>

<section anchor="additional-examples">
      <name>Additional Examples</name>
      <section anchor="requesting-a-token-for-a-dynamically-discovered-protected-resource">
        <name>Requesting a token for a dynamically discovered protected resource</name>
        <t>The following example details the need for the <tt>resource</tt> parameter when a client dynamically discovers an authorization server and obtains an access token using <xref target="RFC9728"/> and <xref target="RFC8414"/></t>
        <t>Client attempts to access a protected resource without a valid access token</t>
        <artwork><![CDATA[
GET /resource
Host: api.example.com
Accept: application/json
]]></artwork>
        <t>Client is challenged for authentication</t>
        <artwork><![CDATA[
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer resource_metadata=
  "https://api.example.com/.well-known/oauth-protected-resource"
]]></artwork>
        <t>Client fetches the resource's OAuth 2.0 Protected Resource Metadata per <xref target="RFC9728"/> to dynamically discover an authorization server that can issue an access token for the resource.</t>
        <artwork><![CDATA[
GET /.well-known/oauth-protected-resource
Host: api.example.com
Accept: application/json

HTTP/1.1 200 OK
Content-Type: application/json

{
   "resource":
     "https://api.example.com/resource",
   "authorization_servers":
     [ "https://authorization-server.example.com/" ],
   "bearer_methods_supported":
     ["header", "body"],
   "scopes_supported":
     ["resource.read", "resource.write"],
   "resource_documentation":
     "https://api.example.com/resource_documentation.html"
 }
]]></artwork>
        <t>Client discovers the Authorization Server configuration per <xref target="RFC8414"/></t>
        <artwork><![CDATA[
GET /.well-known/oauth-authorization-server
Host: authorization-server.example.com
Accept: application/json

HTTP/1.1 200 OK
Content-Type: application/json

{
  "issuer": "https://authorization-server.example.com/",
  "authorization_endpoint": "https://authorization-server.example.com/oauth2/authorize",
  "token_endpoint": "https://authorization-server.example.com/oauth2/token",
  "jwks_uri": "https://authorization-server.example.com/oauth2/keys",
  "scopes_supported": [
    "resource.read", "resource.write"
  ],
  "response_types_supported": [
    "code"
  ],
  "grant_types_supported": [
    "authorization_code", "refresh_token"
  ],
  ...
}
]]></artwork>
        <t>Client makes an authorization request for the resource</t>
        <artwork><![CDATA[
GET /oauth2/authorize?response_type=code
  &client_id=client123
  &redirect_uri=https%3A%2F%2Fclient.example%2Fcallback
  &scope=resource.read
  &state=abc123
  &resource=https%3A%2F%2Fapi.example.com%2Fresource
  &code_challenge=E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM
  &code_challenge_method=S256
HTTP/1.1
Host: authorization-server.example.com
]]></artwork>
        <t>User successfully authenticates and delegates access to the client for the requested resource and scopes</t>
        <artwork><![CDATA[
HTTP/1.1 302 Found
Location: https://client.example/callback?code=SplxlOBeZQQYbYS6WxSbIA&state=abc123
]]></artwork>
        <t>Client exchanges the authorization code for an access token</t>
        <artwork><![CDATA[
POST /oauth2/token HTTP/1.1
Host: authorization-server.example.com
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code&
code=SplxlOBeZQQYbYS6WxSbIA&
redirect_uri=https%3A%2F%2Fclient.example%2Fcallback&
client_id=client123&
code_verifier=dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk
]]></artwork>
        <t>Client obtains an access token for the resource.</t>
        <artwork><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache

{
  "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
  "token_type": "Bearer",
  "expires_in": 3600,
  "scope": "resource.read",
  "resource": "https://api.example.com/resource"
}
]]></artwork>
        <t>Client verifies that it obtained an access token that is valid for the discovered resource.</t>
      </section>
      <section anchor="ex-scope-defined-resource">
        <name>Scope-defined resource with a resource request</name>
        <t>An authorization server may determine resources from requested scopes in addition to explicit <tt>resource</tt> parameters. For example, a scope might imply a protected resource URL that the authorization server returns as a server-assigned resource alongside any client-requested resources.</t>
        <t>The following example uses OpenID Connect: the <tt>openid</tt> scope implies access to the UserInfo endpoint. When a client requests both a protected resource and the <tt>openid</tt> scope, the authorization server may determine the UserInfo endpoint URL from its configuration (e.g., <tt>{issuer}/userinfo</tt>) and return it as a server-assigned resource alongside the client-requested resource.</t>
        <section anchor="authorization-request-example">
          <name>Authorization request example</name>
          <section anchor="authorization-request-4">
            <name>Authorization Request</name>
            <artwork><![CDATA[
GET /authorize?response_type=code
  &client_id=client123
  &redirect_uri=https%3A%2F%2Fclient.example.com%2Fcb
  &scope=openid%20profile%20data%3Aread
  &state=oidc123
  &resource=https%3A%2F%2Fapi.example.com%2Fdata
  &code_challenge=E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM
  &code_challenge_method=S256
HTTP/1.1
Host: idp.example.com
]]></artwork>
          </section>
          <section anchor="redirect-3">
            <name>Redirect</name>
            <artwork><![CDATA[
HTTP/1.1 302 Found
Location: https://client.example.com/cb?code=SplxlOBeZQQYbYS6WxSbIA&state=oidc123
]]></artwork>
          </section>
          <section anchor="token-request-3">
            <name>Token Request</name>
            <artwork><![CDATA[
POST /token HTTP/1.1
Host: idp.example.com
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code&
code=SplxlOBeZQQYbYS6WxSbIA&
redirect_uri=https%3A%2F%2Fclient.example.com%2Fcb&
client_id=client123&
code_verifier=dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk
]]></artwork>
          </section>
          <section anchor="token-response-6">
            <name>Token Response</name>
            <t>The authorization server issues an access token valid for both the requested resource (<tt>https://api.example.com/data</tt>) and the UserInfo endpoint (<tt>https://idp.example.com/userinfo</tt>), which it determined from the <tt>openid</tt> scope.</t>
            <artwork><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache

{
  "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
  "token_type": "Bearer",
  "expires_in": 3600,
  "scope": "openid profile data:read",
  "resource": [
    "https://api.example.com/data",
    "https://idp.example.com/userinfo"
  ]
}
]]></artwork>
            <t>The client validates that the requested resource (<tt>https://api.example.com/data</tt>) is present in the response. The additional resource (<tt>https://idp.example.com/userinfo</tt>) is a server-assigned resource determined by the authorization server based on the <tt>openid</tt> scope, enabling the client to use the same access token for both the API and the UserInfo endpoint.</t>
          </section>
        </section>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This proposal builds on prior work in OAuth 2.0 extensibility and security analysis, particularly <xref target="RFC8707"/>, <xref target="RFC9700"/>, and <xref target="RFC9207"/>.</t>
      <t>The authors would like to thank the following individuals who contributed ideas, feedback, and wording that helped shape this specification: Filip Skokan</t>
    </section>
    <section numbered="false" anchor="document-history">
      <name>Document History</name>
      <t>-02</t>
      <ul spacing="normal">
        <li>
          <t>Modified processing rules to allow server-assigned resources to be combined with requested resources</t>
        </li>
        <li>
          <t>Added OIDC example</t>
        </li>
        <li>
          <t>Collapsed one and many processing rules to single "one or more"</t>
        </li>
        <li>
          <t>Changed OAuth Registry to update existing resource parameter</t>
        </li>
        <li>
          <t>Editorial cleanup and consistency updates</t>
        </li>
        <li>
          <t>Updated Acknowledgements</t>
        </li>
      </ul>
      <t>-01</t>
      <ul spacing="normal">
        <li>
          <t>Revised Introduction and included attack example</t>
        </li>
        <li>
          <t>Added Resource vs Audience to Terminology</t>
        </li>
        <li>
          <t>Revised Response to provide detailed Authorization Server and Client Processing Rules</t>
        </li>
        <li>
          <t>Updated Security Considerations</t>
        </li>
        <li>
          <t>Editorial cleanup and consistency</t>
        </li>
      </ul>
      <t>-00</t>
      <ul spacing="normal">
        <li>
          <t>Initial revision</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
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
oMTIYiNtPFpiYTMKNAYRn8bdoJSaDdaVwFUKOGXmDV2PidK6iNPbUFClszyL
JSPnq+Csns3CYhGc44K3tt7KdWQwrVgwn03DeRy89VtDJ3U1wnByx88tY+nt
1tu+95+Or9f82TwH69/ZOfEjnqgfGhI7O7DuJ7nN2D1I89ZBjhZmrMFVcNeB
95+3gb3Upeso1UIUs7Q2xmaGOnbFmTqOHdSOAWspMlAXaqJ+YqEWb2Nn50nu
8aIJMJcN9VY5vuzAStekXQ7OpbB8YsrbeMvgmSXks6TbiYpzrOcwWc6ujOfE
4ypZ4a56J8Tp0iK8LPjyGPFFOT/KDh1+Aw68nteAgjsr7DCxoRsMskmFZCfb
QaqWntAsiGXGsupoWNwc68d1sec2D2iy6Q9UOoqVFcPW0j5oC/aZrb8FLrm8
/GzWiWh2qjUDPYHWIPRJOqN3COHmBrpilBtSSWtRqLYjdzOudab/lqXYDdlr
biEHqX4nz19fZ07jA+mU+6rOV/y6T/4vVfJFl2Nu1/Ri94/ztDVex7KacYmo
5oCBRzLayeJ22jVneYjesSA/sOux5YV9MJe7m0TAw43mEWoO12RwURI5hsMy
z9Wm/E1m8t/4o2N0jdPmCftYXfuSideb6blrsoKul4lU30KWiFbLhyIEvxwW
2npjOecegV/+CqHb/GW9/S2V12zAuEtX+NJloubsHOp5w5m4Katgoq9cqc3o
yVvTzCHhCIIgtidmILlHviiBlZxmlWijKeLXFeYqqBQVeburbEh3FkhlxcJ0
QWS6N2aHH+ySOPo2sUJPV0wpHRW+yYwW1kp/cS99ccB/LQ9c0+ArfLdiRQzJ
XUpOsuSUB8GOZgDNDhoZ3/r78LGGF6t1rXq9ZD5dZMaXZtbcKDJ1VdO87dFV
0cNckpTiqHSHAHHle9v1MiRSnlZfa3bUdAULK2Yv9BccZgsDb5UD74bQ7Uuv
CdX7elXLnS9rOjVEW1YpZxK5ETW/NK5hTDmcFxiHsTyvDQy4RsXNW547FXH8
ZvCNU6CuBdpxmKTkdqC8OSzTt/452bkAmKiMvQwSyXcorUvymnV8ikjRytf9
caRN/AaNHiZvO5ni+r6BJd6AzR0A1u8iFeDL40wyuo/e/ySXmao2z5PY2dvg
Z2IGXF5v3NSjVbkok/4wC6vRVO78NI3839s6qOSElUT0w26Dv1zHxPeC62e5
vGlL0JYp/p4A0WcgEKYAkUvOdvpWV9VvcwFI7ZJ5FCNricjK+yOL7k7Tznvr
YIJaQ1LyrMzmEdRtj7zy1jY8QkRDp2GhKc2CgE5p1XqM/7aQjtX5hWibF8FP
zNXDUkLkpUrYZH80Q1IHdEvPnRT3wqBOpmy92bp7Yovb3/uzFZVfnEdeSGhf
+67lUH7/UXisM4CyZ+TuMoJJoRXf3nXjwo7mcI2wQW46MhitTMK+2iMMcV3V
ONNpMBIVVfKEWfwwhoORPMJ1XFD2Rv6enE5+35LGbter4FcT7RRdm19abFJu
DnfzyuCaxSvtg13FLq8jmv7c1AZ0yq/eSK7vk/mp1HrDstyti2PiVcgWSyIP
PV0+0lj4XnRFdViIlM+7meikBLipl4c+CkZmjUGoVvwK1orgCtcgbVctUprX
BqXRMPNvVJdVPoPVvlxDk5FddGxDL3EWXsRLyk198EolZfPHe+fBrg4j/0Eh
AaVI3sFFSwbk75hsXiTRHf60f/CN+glvCOO95Rd1kXBBq6+/Ofz64D78K/W/
rCXgl0P1JinBd/Si4DUscKV/rQAr7oTDkTMX77IxT2OfOIkaVG8ANvNC14u/
c+/W4zid5uHBydXl/eLe4/OHk/roQZjHP+1X3z97+nxY//jwrKyu+qPH/hFe
ADlM8+jO2cG3N53sV/4jx15ovlQ7e50KFZ4KBJnTe10LCshMmViEqx9OEFGG
WFXNLVqt8rjaKNhM1P1m7yC4jwkP9PWjnL0BpvdY+/x2R8M/4Eh3zubp6/Tk
h/jPf/rTL8Nfzm4+f302PD50D022p3RqwXBLmsWv8RbTRNX7apOM6tnjWoy4
2NMT4Le7TLfvA3p8tDs5+XX/6uqKSl736yLlC0MRT0xUzATiTPICn/kdPbIM
QPTA5iQjA7ep0Mz4giv2x8Wd6IdX4+ph/OcbRz+f9mc/3Dr46eC7ejp89vDZ
/ny/eHH1fH9y//n9k3uv/u2ieUbqKlInInYUfPO3k/lQ9vS3zyg/PDq6d3b2
4vzkp3tPPjyPnBgevqJ3SiX9tjdKNNfvWhnnxETY9nWobblYFHPZCEb5wnO+
H+NEv+pep8MV6KZEMwOMuoEoTzuWK/4M6Pdb4DECBcZIxT2sr+48vXf/6b2z
B4yiK9iEX+CqUTcWre/LOz7X+X1hH+uzjzW0arKRP6JSXa6rVaNd3PlcXkQO
f/lgvZoyhn2tKn+7KvPXB3sMhk+qQq/9Jq/li+b9RfP+onn/DTTvFQzs/4lU
DJgLdUvIv8h3wTqysrf6YZ5vWx7866bKeUO6fhTd/NNI2M+kwa9A498CG/oM
ynlTtL+vsr7heyLCP6WG/4VN/cbY1GfIbOtMYHu/KOHhLxLc5CDhegFVz6Sr
Yh5m6RKec6/+1RndGqMKUusaU1LfeWNzSnVWEBg2Spaq0T6ONaTmsm8YmSiN
Lr//27GL1jaCvtgkX2ySLzbJZ44GNJmzx713bZUSev0fXTtYpQ6sJdc3MDta
cmgDw+Oq0SgmXbhiqSWNPonlsMEqfius4hPYDa7o+9Se+S+k/HlJWaV4Wpr4
YffFX9bM1IWY5ZeAVZop3Ruy7nSq2w8dfTnxVoLcpp1xNyRgItLTd0mjcyxW
5blMApjwbE6KJ7b/kvoQ/t21DABsHedrKWErsU7x12aK7QZKu6yoU2mXkuxU
lMBqed501nhbcRh6qTNsqpE5PRGua0KkmtCqXsjHi3p419Q1529F31+eOiSn
tTr24QE4fPv3YCvcI4Jfy2J4pe0FDxNwar+b+56fyGTwJS3/jr58waWv5jjK
HcXrvj7Yg2XBf0PMAY6j9vGure20CLil7dgkrLSQz0TDn0Q7ei/a/gfVkTZK
fOhgCg3CW6lZLSe8Jj3dABXohzDSh//pdSEiO1RGXHK0FJ0mXeLDijT5SiWT
pV0A8yweAUuvFrj4MgFthos0tupa6r4D6vlqim41vPWSkncN89mpU3Vee7sK
qK6W1nWDGi/aUblbMAjIh8btqVqFswHlk4noSTnl49PcPSkOLe140gU3+sHk
9mGShebOF+f7cz8ZvQHT2EHy0zWozvSiD03vbbx7wW3AuUFuib1yz2kh2Ca3
qxCS1tdX1fQ2nVjTmJrmiHKo0pTXKdvt3v8T7Q+rJOYj2LRJCFfXjqUmVqcv
Vp9eL8iof1NHpnsZV40eDaW/in93bQbTh3Y2qzOzcbwnrvpROO6yQXBWczFt
1WsAM9DpdkCaXMQEQG8zFH/TNX2txF+JntpptyMgtGtf529/s3GK8hV1ho1B
nFvxSUicpSnHlSJSvm9HJGrofDybwz4JSe2ecDA9VnglupGOa6uvk9qn6hdV
jGFcI6ji24Sm+pmFkmKINLsAzpKS2ALggLq1yj8gZNOcqzHmVPxSrd97rZWr
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
tAJs3l5SeAvDmEDsW/8HsgR1DYvNAAA=

-->

</rfc>
