<?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.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-zehavi-oauth-rar-metadata-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="OAuth 2.0 RAR Metadata and Error Signaling">OAuth 2.0 RAR Metadata and Error Signaling</title>
    <seriesInfo name="Internet-Draft" value="draft-zehavi-oauth-rar-metadata-03"/>
    <author fullname="Yaron Zehavi">
      <organization>Raiffeisen Bank International</organization>
      <address>
        <email>yaron.zehavi@rbinternational.com</email>
      </address>
    </author>
    <date year="2026" month="June" day="03"/>
    <area>Security</area>
    <workgroup>Web Authorization Protocol</workgroup>
    <keyword>RAR</keyword>
    <keyword>Step-up</keyword>
    <keyword>oauth</keyword>
    <abstract>
      <?line 50?>

<t>OAuth 2.0 Rich Authorization Requests (RAR) <xref target="RFC9396"/>, standardizes the exchange and processing of authorization details but does not define metadata to describe authorization details types.</t>
      <t>The document addresses a practical interoperability challenge regarding metadata of authorization details types, allowing clients tp dynamically discover metadata instead of relying on out-of-band agreements.
It also standardizes error signaling, in case insufficient RAR was provided and offers structured ways of remediation.</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-rich-authorization-requests-metadata/draft-zehavi-oauth-rar-metadata.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-zehavi-oauth-rar-metadata/"/>.
      </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-rich-authorization-requests-metadata"/>.</t>
    </note>
  </front>
  <middle>
    <?line 57?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>OAuth 2.0 Rich Authorization Requests (RAR) <xref target="RFC9396"/> allows OAuth clients to request detailed and structured authorization, enabling advanced authorization models across domains such as banking and healthcare.</t>
      <t>However, RAR <xref target="RFC9396"/> does not specify how clients discover metadata describing valid authorization details objects. Such metadata and documentation are obtained out-of-band.</t>
      <t>This document defines:</t>
      <ul spacing="normal">
        <li>
          <t>A new authorization server endpoint: <tt>authorization_details_types_metadata_endpoint</tt>, providing metadata for authorization details types, including documentation and JSON Schema definitions <xref target="JSON.Schema"/>.</t>
        </li>
        <li>
          <t>Adds <strong>required</strong> authorization details types to OAuth 2.0 Protected Resource Metadata <xref target="RFC9728"/> response.</t>
        </li>
        <li>
          <t>A new normative OAuth 2.0 WWW-Authenticate Error Code, for resource servers to indicate <tt>insufficient_authorization_details</tt> as the cause of error.</t>
        </li>
        <li>
          <t>An <bcp14>OPTIONAL</bcp14> response body that <bcp14>MAY</bcp14> accompany the insufficient_authorization_details error, providing an informative and actionable authorization details object. This object can be used directly in a follow-up OAuth request.</t>
        </li>
        <li>
          <t><bcp14>RECOMMENDED</bcp14> handling of large RAR <xref target="RFC9396"/> authorization details objects when issuing JWT access tokens, to avoid failures due to token sizes exceeding header size restrictions.</t>
        </li>
      </ul>
      <t>The optional providing of actionable authorization details objects by resource servers enables:</t>
      <ul spacing="normal">
        <li>
          <t>Simplification for clients who can directly remediate without learning to construct valid authorization details objects.</t>
        </li>
        <li>
          <t>Support for ephemeral, interaction-specific claims from resource server, such as for example a risk profile or an internal interaction identifier, guiding authorization servers on required authentication strength and consent flows.</t>
        </li>
      </ul>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="protocol-overview">
      <name>Protocol Overview</name>
      <t>There are two main proposed flows:</t>
      <ul spacing="normal">
        <li>
          <t>Client remediates using <strong>metadata of required authorization details types</strong>.</t>
        </li>
        <li>
          <t>Client remediates using <strong>actionable authorization details objects</strong> provided by resource server.</t>
        </li>
      </ul>
      <section anchor="client-remediates-using-metadata-of-required-authorization-details-types">
        <name>Client remediates using metadata of required authorization details types</name>
        <artwork type="ascii-art"><![CDATA[
                                                +---------------------+
             +----------+ (B) API Request       |                     |
             |          |---------------------->|      Resource       |
(A) User +---|          |                       |       Server        |
   Starts|   |          |<----------------------|                     |
   Flow  +-->|          | (C) 403 Forbidden     +---------------------+
             |          |     WWW-Authenticate: Bearer
             |          |     error="insufficient_authorization_details",
             |          |     resource_metadata="[resource metadata url]"
             |          |           :
             |          |        Resource       +---------------------+
             |          | (D) Metadata Request  |   Resource Server   |
             |          |---------------------->|+-------------------+|
             |          |                       || Resource Metadata ||
             |  Client  |<----------------------||    Endpoint       ||
             |          | (E) Metadata Response |+-------------------+|
             |          |    (Discover also     +---------------------+
             |          |     expected RAR types)
             |          |           :           +---------------------+
             |          |        RAR Types      |    Authorization    |
             |          | (F) Metadata Request  |       Server        |
             |          |---------------------->|+-------------------+|
             |          |                       ||     RAR Types     ||
             |          |<----------------------|| Metadata Endpoint ||
             |          | (G) Metadata Response |+-------------------+|
             |          |           :           |                     |
             |          | (H) Construct RAR     |                     |
             |          |     Using Metadata    |                     |
             |          |        :              |                     |
             |          | (I) Authorization     |                     |
             |          |     Request + RAR     |                     |
             |          |---------------------->|+-------------------+|
             |          |                       ||   Authorization   ||
             |          |<----------------------||     Endpoint      ||
             |          | (J) Authorization Code||                   ||
             |          |        :              |+-------------------+|
             |          |        :              |                     |
             |          | (K) Token Request     |+-------------------+|
             |          |---------------------->||                   ||
             |          |                       ||   Token Endpoint  ||
             |          |<----------------------||                   ||
             |          | (L) Access Token      |+-------------------+|
             |          |        :              +---------------------+
             |          |        :
             |          | (M) API Call with
             |          |     Access Token      +---------------------+
             |          |---------------------->|                     |
             |          |                       |   Resource Server   |
             |          |<----------------------|                     |
             |          | (N) 200 OK + Resource +---------------------+
             |          |
             +----------+
]]></artwork>
        <t>Figure: Client remediates using metadata of required authorization details types</t>
        <ul spacing="normal">
          <li>
            <t>(A) The user starts the flow.</t>
          </li>
          <li>
            <t>(B) The client calls an API with an access token.</t>
          </li>
          <li>
            <t>(C) Resource server returns HTTP 403 Forbidden including a WWW-Authenticate header with error code <tt>insufficient_authorization_details</tt> and the resource metadata url (OAuth 2.0 Protected Resource Metadata <xref target="RFC9728"/>).</t>
          </li>
          <li>
            <t>(D-E) The client discovers expected authorization details types from resource metadata endpoint's response.</t>
          </li>
          <li>
            <t>(F-G) The client consumes authorization details types metadata from authorization server's <tt>authorization_details_types_metadata_endpoint</tt>.</t>
          </li>
          <li>
            <t>(H-I) The client constructs a valid authorization details object and makes an OAuth + RAR <xref target="RFC9396"/> request.</t>
          </li>
          <li>
            <t>(J) Authorization server returns authorization code.</t>
          </li>
          <li>
            <t>(K-L) The client exchanges authorization code for access token.</t>
          </li>
          <li>
            <t>(M) The client makes an API request with the (RAR) access token.</t>
          </li>
          <li>
            <t>(N) Resource server validates access token and returns successful response.</t>
          </li>
        </ul>
      </section>
      <section anchor="client-remediates-using-actionable-authorization-details-objects-provided-by-resource-server">
        <name>Client remediates using actionable authorization details objects provided by resource server</name>
        <artwork type="ascii-art"><![CDATA[
                                                +--------------------+
             +----------+ (B) API Request       |                    |
             |          |---------------------->|      Resource      |
(A) User +---|          |                       |       Server       |
   Starts|   |          |<----------------------|                    |
   Flow  +-->|  Client  | (C) 403 Forbidden     +--------------------+
             |          |     WWW-Authenticate: Bearer
             |          |     error="insufficient_authorization_details",
             |          |     resource_metadata="[resource metadata url]"
             |          |        +
             |          |     HTTP body provides authorization_details
             |          |        :
             |          |        :              +--------------------+
             |          |        :              |   Authorization    |
             |          | (D) Authorization     |      Server        |
             |          |     Request + RAR     |+------------------+|
             |          |---------------------->||                  ||
             |          |                       ||  Authorization   ||
             |          |<----------------------||    Endpoint      ||
             |          | (E) Authorization Code||                  ||
             |          |        :              |+------------------+|
             |          |        :              |                    |
             |          | (F) Token Request     |+------------------+|
             |          |---------------------->||                  ||
             |          |                       || Token Endpoint   ||
             |          |<----------------------||                  ||
             |          | (G) Access Token      |+------------------+|
             |          |        :              +--------------------+
             |          |        :
             |          |        :
             |          | (H) Retry API Call    +--------------------+
             |          |     with Token        |                    |
             |          |---------------------->|      Resource      |
             |          |                       |       Server       |
             |          |<----------------------|                    |
             |          | (I) 200 OK + Resource +--------------------+
             |          |
             +----------+
]]></artwork>
        <t>Figure: Client remediates using actionable authorization details objects provided by resource server</t>
        <ul spacing="normal">
          <li>
            <t>(A) The user starts the flow.</t>
          </li>
          <li>
            <t>(B) The client calls an API with an access token.</t>
          </li>
          <li>
            <t>(C) Resource server returns HTTP 403 Forbidden including a WWW-Authenticate header with error code <tt>insufficient_authorization_details</tt> and in the response body includes the <strong>required authorization details objects</strong>.</t>
          </li>
          <li>
            <t>(D) The client uses the obtained authorization details objects in a new OAuth + RAR <xref target="RFC9396"/> request.</t>
          </li>
          <li>
            <t>(E) Authorization server returns authorization code.</t>
          </li>
          <li>
            <t>(F-G) The client exchanges authorization code for access token.</t>
          </li>
          <li>
            <t>(H) The client makes an API request with the (RAR) access token.</t>
          </li>
          <li>
            <t>(I) Resource server validates access token and returns successful response.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="oauth-20-protected-resource-metadata-rfc9728">
      <name>OAuth 2.0 Protected Resource Metadata <xref target="RFC9728"/></name>
      <t>This document specifies a new <bcp14>OPTIONAL</bcp14> metadata attribute: <tt>authorization_details_types_required</tt>, to be included in the response of OAuth Protected Resource Metadata <xref target="RFC9728"/>.</t>
      <dl>
        <dt>"authorization_details_types_required":</dt>
        <dd>
          <t><bcp14>RECOMMENDED</bcp14>.  a JSON object that conforms to the syntax described in <xref target="syntax"/> for a <em>required types expression</em>.</t>
        </dd>
      </dl>
      <t>The following is a non-normative example response with the new <tt>authorization_details_types_required</tt> attribute:</t>
      <artwork><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json

{
    "resource":
    "https://resource.example.com/payments",
    "authorization_servers":
        ["https://as1.example.com",
        "https://as2.example.net"],
    "bearer_methods_supported": ["header"],
    "scopes_supported": ["payment"],
    "resource_documentation":
        "https://resource.example.com/docs/payments.html",
    "authorization_details_types_required": {
        "oneOf": ["payment_initiation", "payment_approval",
                  "beneficiary_designation"]
    }
}
]]></artwork>
      <t>Note: When resource servers accept access tokens <em>from several authorization servers</em>, clients can discover which authorization details types each authorization server supports.</t>
      <section anchor="syntax">
        <name>Required types expression syntax</name>
        <t>The following JSON syntax defines a <strong>required types expression</strong> that describes permitted combinations of required <em>authorization_details</em> types. This expression allows selection operators (oneOf, allOf) and boolean composition (and, or) to be combined in a predictable manner.</t>
        <t>A <strong>required types expression</strong> is a JSON object whose top-level claims <bcp14>MUST</bcp14> contain <strong>exactly</strong> one of the following attributes:</t>
        <ul spacing="normal">
          <li>
            <t>and</t>
          </li>
          <li>
            <t>or</t>
          </li>
          <li>
            <t>oneOf</t>
          </li>
          <li>
            <t>allOf</t>
          </li>
        </ul>
        <t>Attributes definition:</t>
        <dl>
          <dt>"and":</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>.  a non-empty JSON array of <em>required types expressions</em>. When <strong>and</strong> is specified, the expression is satisfied if <strong>all</strong> contained expressions are satisfied.</t>
          </dd>
          <dt>"or":</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>.  a non-empty JSON array of <em>required types expressions</em>. When <strong>or</strong> is specified, the expression is satisfied if <strong>at least one</strong> contained expression is satisfied.</t>
          </dd>
          <dt>"oneOf":</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>.  a non-empty JSON array of strings identifying <tt>authorization_details</tt> types. When <strong>oneOf</strong> is specified, the expression is satisfied if <strong>exactly one</strong> of the listed types is present.</t>
          </dd>
          <dt>"allOf":</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>.  a non-empty JSON array of strings identifying <tt>authorization_details</tt> types. When <strong>allOf</strong> is specified, the expression is satisfied if <strong>all</strong> of the listed types are present.</t>
          </dd>
        </dl>
      </section>
      <section anchor="required-types-expression-examples">
        <name>Required types expression examples</name>
        <section anchor="example-expression-using-and-operator">
          <name>Example expression using "and" operator</name>
          <t>Specifies that the selection <bcp14>MUST</bcp14> include a and b, <strong>and</strong> one of c <strong>or</strong> d.</t>
          <artwork><![CDATA[
{
  "and": [
    { "allOf": ["a", "b"] },
    { "oneOf": ["c", "d"] }
  ]
}
]]></artwork>
        </section>
        <section anchor="example-expression-using-or-operator">
          <name>Example expression using "or" operator</name>
          <t>Specifies that the selection <bcp14>MUST</bcp14> include <strong>either</strong> c <strong>and</strong> d, <strong>or</strong> one of a or b.</t>
          <artwork><![CDATA[
{
  "or": [
    { "allOf": ["c", "d"] },
    { "oneOf": ["a", "b"] }
  ]
}
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="authorization-details-types-metadata-endpoint">
      <name>Authorization Details Types Metadata Endpoint</name>
      <t>The following authorization server metadata <xref target="RFC8414"/> parameter is introduced to signal the server's support for Authorization Details Types Metadata:</t>
      <dl>
        <dt>"authorization_details_types_metadata_endpoint":</dt>
        <dd>
          <t><bcp14>OPTIONAL</bcp14>.  The URL of the Authorization Details Types Metadata endpoint.</t>
        </dd>
      </dl>
      <section anchor="authorization-details-types-metadata-endpoint-response">
        <name>Authorization Details Types Metadata Endpoint Response</name>
        <t>The Authorization Details Types Metadata endpoint's response is a JSON document with the key <tt>authorization_details_types_metadata</tt> whose attributes are authorization details type identifiers.</t>
        <t>Each identifier is an object describing a single authorization details type.</t>
        <artwork><![CDATA[
{
  "authorization_details_types_metadata": {
    "type": {
      "version": "...",
      "description": "...",
      "documentation_uri": "...",
      "schema": { },
      "schema_uri": "...",
      "examples": [ ]
    }
  }
}
]]></artwork>
        <t>Attributes definition:</t>
        <dl>
          <dt>"version":</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>. String identifying the version of the authorization details type definition. The value is informational and does not imply semantic version negotiation.</t>
          </dd>
          <dt>"description":</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>. String containing a description of the authorization details type. Clients <bcp14>MUST NOT</bcp14> rely on this value for authorization or validation decisions.</t>
          </dd>
          <dt>"documentation_uri":</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>. URI referencing external documentation describing the authorization details type.</t>
          </dd>
          <dt>"schema":</dt>
          <dd>
            <t>The <tt>schema</tt> attribute contains a JSON Schema document <xref target="JSON.Schema"/> that describes a single authorization details object. The schema <bcp14>MUST</bcp14> validate exactly one authorization details object and <bcp14>MUST</bcp14> restrict the <tt>type</tt> attribute to the corresponding authorization details type identifier. This attribute is <bcp14>REQUIRED</bcp14> unless <tt>schema_uri</tt> is specified. If present, <tt>schema_uri</tt> <bcp14>MUST NOT</bcp14> be included.</t>
          </dd>
          <dt>"schema_uri":</dt>
          <dd>
            <t>The <tt>schema_uri</tt> attribute is an absolute URI, as defined by RFC 3986 <xref target="RFC3986"/>, referencing a JSON Schema document describing a single authorization details object. The referenced schema <bcp14>MUST</bcp14> satisfy the same requirements as the <tt>schema</tt> attribute. This attribute is <bcp14>REQUIRED</bcp14> unless <tt>schema</tt> is specified. If this attribute is present, <tt>schema</tt> <bcp14>MUST NOT</bcp14> be present.</t>
          </dd>
          <dt>"examples":</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>. An array of example authorization details objects. Examples are non-normative.</t>
          </dd>
        </dl>
        <t>See Examples <xref target="metadata-examples"/> for non-normative response example.</t>
      </section>
    </section>
    <section anchor="resource-server-error-signaling-of-insufficient-authorizationdetails">
      <name>Resource Server Error Signaling of insufficient authorization_details</name>
      <t>This document defines a new error code in the OAuth 2.0 WWW-Authenticate Error Code Registry, <tt>insufficient_authorization_details</tt>, which resource servers <bcp14>SHALL</bcp14> return using the <tt>WWW-Authenticate</tt> header, to signal access is denied due to missing or insufficient authorization details.</t>
      <t>Example HTTP response:</t>
      <artwork><![CDATA[
HTTP/1.1 403 Forbidden
WWW-Authenticate: Bearer error="insufficient_authorization_details",
    resource_metadata="https://resource.example.com/
    .well-known/oauth-protected-resource/payments"
]]></artwork>
      <section anchor="optional-authorizationdetails-in-response-body">
        <name>OPTIONAL authorization_details in response body</name>
        <t>Resource server <bcp14>MAY</bcp14> include, alongside the insufficient_authorization_details error, an informative HTTP response body with content type application/json containing the required authorization details objects needed to satisfy the failing request.</t>
        <t>Note:</t>
        <ul spacing="normal">
          <li>
            <t>The audience of authorization details objects provided by a resource server in an error response is its trusted authorization servers, as advertised by the Resource Server’s metadata endpoint.</t>
          </li>
          <li>
            <t>Resource servers <bcp14>SHOULD</bcp14> provide <tt>authorization_details</tt> objects only if <strong>all</strong> trusted authorization servers accept the <strong>authorization details type</strong> used.</t>
          </li>
        </ul>
        <t>HTTP response body definition:</t>
        <dl>
          <dt>"authorization_details":</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>. Array of authorization details objects, matching the format specified in RAR <xref target="RFC9396"/> for the <tt>authorization_details</tt> request parameter.</t>
          </dd>
          <dt>"authorization_hint":</dt>
          <dd>
            <t><bcp14>RECOMMENDED</bcp14>. String serving as a stable reference, enabling the client to select existing access tokens linked to authorization details objects without having to understand RAR object semantics. Its value <bcp14>SHALL</bcp14> be identical for semantically equal <tt>authorization_details</tt> and it <bcp14>SHALL NOT</bcp14> be returned in case tokens resulting from provided <tt>authorization_details</tt> are single-use only.</t>
          </dd>
        </dl>
        <t>Clients <bcp14>MAY</bcp14> use the provided <tt>authorization_details</tt> in a subsequent OAuth request to obtain an access token satisfying  the resource's requirements.</t>
        <t>Example resource server response with <bcp14>OPTIONAL</bcp14> <tt>authorization_details</tt>:</t>
        <artwork><![CDATA[
HTTP/1.1 403 Forbidden
WWW-Authenticate: Bearer error="insufficient_authorization_details",
    resource_metadata="https://resource.example.com/
    .well-known/oauth-protected-resource/payments"
Content-Type: application/json
Cache-Control: no-store

{
  "authorization_details": [{
    "type": "payment_initiation",
    "instructed_amount": {
      "currency": "EUR",
      "amount": "100.00"
    },
    "creditor_account": {
      "iban": "DE02120300000000202051"
    }
  }],
  "authorization_hint": "Yb7q3AC5d"
}
]]></artwork>
      </section>
    </section>
    <section anchor="handling-large-rar-objects-when-issuing-access-tokens">
      <name>Handling large RAR objects when issuing access tokens</name>
      <t>RAR <xref target="RFC9396"/> section 9 instructs that authorization servers <bcp14>MUST</bcp14> provide approved RAR objects to resource servers for enforcement. The authorization server <bcp14>MAY</bcp14> add the <tt>authorization_details</tt> attribute to access tokens in JSON Web Token (JWT) format or to token introspection responses.</t>
      <t>Including large RAR objects in JWT access tokens may cause interoperability loss due to token sizes exceeding header size restrictions.</t>
      <t>Authorization servers <bcp14>SHOULD</bcp14> support a configurable <strong>maximum approved RAR objects size threshold</strong> (in bytes). If the size exceeds this threshold, JWT access tokens <bcp14>SHALL NOT</bcp14> include the <tt>authorization_details</tt> claim; instead, approved authorization details will be accessed via token introspection <xref target="RFC7662"/>.</t>
    </section>
    <section anchor="processing-rules">
      <name>Processing Rules</name>
      <section anchor="client-processing-rules">
        <name>Client Processing Rules</name>
        <ul spacing="normal">
          <li>
            <t>When receiving error <tt>insufficient_authorization_details</tt>, if response body contains an <em>authorization_hint</em> claim that matches a valid token in client's possession, client <bcp14>SHOULD</bcp14> retry calling the failing endpoint using the matching token.</t>
          </li>
          <li>
            <t>If the response body contains an <em>authorization_details</em> claim, the client <bcp14>MAY</bcp14> include it in a subsequent OAuth request to obtain a token, which it <bcp14>MAY</bcp14> then use to retry the failing endpoint.</t>
          </li>
          <li>
            <t>Otherwise, the client <bcp14>MAY</bcp14> consult metadata:
            </t>
            <ul spacing="normal">
              <li>
                <t>Fetch resource metadata to discover accepted authorization servers and required <strong>authorization_details types</strong>.</t>
              </li>
              <li>
                <t>Fetch authorization server metadata to discover <tt>authorization_details_types_supported</tt>.</t>
              </li>
              <li>
                <t>Fetch authorization server's <tt>authorization_details_types_metadata_endpoint</tt> to
  obtain authorization details type metadata and schemas.</t>
              </li>
              <li>
                <t>Locate schema or retrieve schema_uri.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Construct authorization details conforming to the schema and include in subsequent OAuth request to obtain a token with which it <bcp14>MAY</bcp14> retry calling the failing endpoint.</t>
          </li>
        </ul>
      </section>
      <section anchor="resource-server-processing-rules">
        <name>Resource Server Processing Rules</name>
        <ul spacing="normal">
          <li>
            <t>Advertise in resource metadata <tt>authorization_details_types_required</tt>, where relevant.</t>
          </li>
          <li>
            <t>Verify access tokens against required authorization details.</t>
          </li>
          <li>
            <t>If insufficient, the resource server <bcp14>MUST</bcp14> return HTTP 403 with WWW-Authenticate: Bearer error="insufficient_authorization_details".</t>
          </li>
          <li>
            <t>OPTIONALLY provide also an HTTP body with an informative actionable <tt>authorization_details</tt> object.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="cacheability-and-intermediaries">
        <name>Cacheability and Intermediaries</name>
        <t>HTTP 403 responses with response bodies may be cached or replayed in unexpected contexts.
Recommended mitigation is resource servers <bcp14>SHALL</bcp14> use <tt>Cache-Control: no-store</tt> response header.</t>
      </section>
      <section anchor="confidentiality-of-resource-server-provided-authorizationdetails">
        <name>Confidentiality of resource server provided authorization_details</name>
        <t>Resource server providing actionable <tt>authorization_details</tt> <bcp14>SHOULD NOT</bcp14> include sensitive data within them. This is consistent with RAR <xref target="RFC9396"/> <tt>authorization_details</tt> OAuth request parameter, representing <strong>request</strong> semantics.</t>
        <t>Confidentiality-preserving <tt>authorization_details</tt> types <bcp14>SHOULD NOT</bcp14> include sensitive data. Instead, end-user <bcp14>SHALL</bcp14> provide such information when interacting with the authorization server.</t>
        <t>Alternatively, <tt>authorization_details</tt> <bcp14>MAY</bcp14> refer to specific end-user resources using opaque reference handles (e.g "account_1a" instead of using explicit IBAN).</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="oauth-20-www-authenticate-error-code-registry">
        <name>OAuth 2.0 WWW-Authenticate Error Code Registry</name>
        <table>
          <thead>
            <tr>
              <th align="left">Error Code</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">insufficient_authorization_details</td>
              <td align="left">The request is missing required authorization details or the provided authorization details are insufficient.</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="oauth-metadata-attribute-registration">
        <name>OAuth Metadata Attribute Registration</name>
        <t>The metadata attribute <tt>authorization_details_types_metadata_endpoint</tt> is defined for OAuth 2.0 authorization server metadata as a URL.
The metadata attribute <tt>authorization_details_types_required</tt> is defined for OAuth 2.0 protected resource metadata <xref target="RFC9728"/>.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC3986">
        <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="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="RFC7662">
        <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="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="RFC9396">
        <front>
          <title>OAuth 2.0 Rich Authorization Requests</title>
          <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
          <author fullname="J. Richer" initials="J." surname="Richer"/>
          <author fullname="B. Campbell" initials="B." surname="Campbell"/>
          <date month="May" year="2023"/>
          <abstract>
            <t>This document specifies a new parameter authorization_details that is used to carry fine-grained authorization data in OAuth messages.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9396"/>
        <seriesInfo name="DOI" value="10.17487/RFC9396"/>
      </reference>
      <reference anchor="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="IANA.oauth-parameters" target="https://www.iana.org/assignments/oauth-parameters">
        <front>
          <title>OAuth Parameters</title>
          <author>
            <organization>IANA</organization>
          </author>
        </front>
      </reference>
      <reference anchor="JSON.Schema" target="https://json-schema.org/draft/2020-12/json-schema-core">
        <front>
          <title>JSON Schema: A Media Type for Describing JSON Documents</title>
          <author initials="A." surname="Wright, Ed">
            <organization/>
          </author>
          <author initials="H." surname="Andrews, Ed">
            <organization/>
          </author>
          <author initials="B." surname="Hutton, Ed Postman">
            <organization/>
          </author>
          <author initials="G." surname="Dennis">
            <organization/>
          </author>
          <date year="2022" month="June"/>
        </front>
      </reference>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
    </references>
    <?line 466?>

<section anchor="examples">
      <name>Examples</name>
      <t>This section provides non-normative examples of how this specification may be used to support specific use cases.</t>
      <section anchor="metadata-examples">
        <name>Authorization Server Metadata Examples</name>
        <section anchor="example-authorizationdetailstypesmetadataendpoint-response-with-payment-initiation">
          <name>Example authorization_details_types_metadata_endpoint response with Payment Initiation</name>
          <artwork><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json

{
    "authorization_details_types_metadata": {
        "payment_initiation": {
            "version": "1.0",
            "description": "Authorization to initiate a single payment from a payer account to a creditor account.",
            "documentation_uri": "https://example.com/docs/payment-initiation",
            "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "title": "Payment Initiation Authorization Detail",
                "type": "object",
                "required": [
                    "type",
                    "instructed_amount",
                    "creditor_account"
                ],
                "properties": {
                    "type": {
                        "const": "payment_initiation",
                        "description": "Authorization details type identifier."
                    },
                    "actions": {
                        "type": "array",
                        "description": "Permitted actions for this authorization.",
                        "items": {
                            "type": "string",
                            "enum": ["initiate"]
                        },
                        "minItems": 1,
                        "uniqueItems": true
                    },
                    "instructed_amount": {
                        "type": "object",
                        "description": "Amount and currency of the payment to be initiated.",
                        "required": ["currency", "amount"],
                        "properties": {
                            "currency": {
                                "type": "string",
                                "description": "ISO 4217 currency code.",
                                "pattern": "^[A-Z]{3}$"
                            },
                            "amount": {
                                "type": "string",
                                "description": "Decimal monetary amount represented as a string.",
                                "pattern": "^[0-9]+(\\.[0-9]{1,2})?$"
                            }
                        },
                        "additionalProperties": false
                    },
                    "creditor_account": {
                        "type": "object",
                        "description": "Account to which the payment will be credited.",
                        "required": ["iban"],
                        "properties": {
                            "iban": {
                                "type": "string",
                                "description": "International Bank Account Number (IBAN).",
                                "pattern": "^[A-Z0-9]{15,34}$"
                            }
                        },
                        "additionalProperties": false
                    },
                    "remittance_information": {
                        "type": "string",
                        "description": "Unstructured remittance information for the payment.",
                        "maxLength": 140
                    }
                },
                "additionalProperties": false
            }
        }
    }
}
]]></artwork>
        </section>
        <section anchor="example-authorizationdetailstypesmetadataendpoint-response-for-the-norwegian-health-sector-helseid">
          <name>Example authorization_details_types_metadata_endpoint response for the Norwegian Health Sector (HelseID)</name>
          <artwork><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json

{
    "authorization_details_types_metadata": {
        "helseid_authorization": {
            "version": "1.0",
            "description": "Allows the OAuth client to pass organization information to HelseID.",
            "documentation_uri": "https://utviklerportal.nhn.no/informasjonstjenester/helseid/bruksmoenstre-og-eksempelkode/bruk-av-helseid/docs/tekniske-mekanismer/organisasjonsnumre_enmd",
            "schema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "title": "Organization numbers for a multi-tenant client",
                "type": "object",
                "properties": {
                    "type": {
                        "type": "string",
                        "const": "helseid_autorization"
                    },
                    "practitioner_role": {
                        "type": "object",
                        "properties": {
                            "organization": {
                                "type": "object",
                                "properties": {
                                    "identifier": {
                                        "type": "object",
                                        "properties": {
                                            "system": {
                                                "type": "string"
                                            },
                                            "type": {
                                                "type": "string"
                                            },
                                            "value": {
                                                "type": "string"
                                            }
                                        },
                                        "required": [
                                            "system",
                                            "type",
                                            "value"
                                        ]
                                    }
                                },
                                "required": [
                                    "identifier"
                                ]
                            }
                        },
                        "required": [
                            "organization"
                        ]
                    }
                },
                "required": [
                    "type",
                    "practitioner_role"
                ]
            }
        },
        "helseid_trust_framework": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "description": "Complete Trust Framework structure",
            "documentation_uri": "https://utviklerportal.nhn.no/informasjonstjenester/helseid/bruksmoenstre-og-eksempelkode/bruk-av-helseid/docs/tillitsrammeverk/profil_for_tillitsrammeverkmd",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "const": "nhn:tillitsrammeverk:parameters"
                },
                "practitioner": {
                    "type": "object",
                    "properties": {
                        "authorization": {
                            "type": "object",
                            "properties": {
                                "code": {
                                    "type": "string"
                                },
                                "system": {
                                    "type": "string"
                                }
                            },
                            "required": [
                                "code",
                                "system"
                            ]
                        },
                        "legal_entity": {
                            "type": "object",
                            "properties": {
                                "id": {
                                    "type": "string"
                                },
                                "system": {
                                    "type": "string"
                                }
                            },
                            "required": [
                                "id",
                                "system"
                            ]
                        },
                        "point_of_care": {
                            "type": "object",
                            "properties": {
                                "id": {
                                    "type": "string"
                                },
                                "system": {
                                    "type": "string"
                                }
                            },
                            "required": [
                                "id",
                                "system"
                            ]
                        },
                        "department": {
                            "type": "object",
                            "properties": {
                                "id": {
                                    "type": "string"
                                },
                                "system": {
                                    "type": "string"
                                }
                            },
                            "required": [
                                "id",
                                "system"
                            ]
                        }
                    },
                    "required": [
                        "authorization",
                        "legal_entity",
                        "point_of_care",
                        "department"
                    ]
                },
                "care_relationship": {
                    "type": "object",
                    "properties": {
                        "healthcare_service": {
                            "type": "object",
                            "properties": {
                                "code": {
                                    "type": "string"
                                },
                                "system": {
                                    "type": "string"
                                }
                            },
                            "required": [
                                "code",
                                "system"
                            ]
                        },
                        "purpose_of_use": {
                            "type": "object",
                            "properties": {
                                "code": {
                                    "type": "string"
                                },
                                "system": {
                                    "type": "string"
                                }
                            },
                            "required": [
                                "code",
                                "system"
                            ]
                        },
                        "purpose_of_use_details": {
                            "type": "object",
                            "properties": {
                                "code": {
                                    "type": "string"
                                },
                                "system": {
                                    "type": "string"
                                }
                            },
                            "required": [
                                "code",
                                "system"
                            ]
                        },
                        "decision_ref": {
                            "type": "object",
                            "properties": {
                                "id": {
                                    "type": "string"
                                },
                                "user_selected": {
                                    "type": "boolean"
                                }
                            },
                            "required": [
                                "id",
                                "user_selected"
                            ]
                        }
                    },
                    "required": [
                        "healthcare_service",
                        "purpose_of_use",
                        "purpose_of_use_details",
                        "decision_ref"
                    ]
                },
                "patients": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "point_of_care": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    },
                                    "system": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id",
                                    "system"
                                ]
                            },
                            "department": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    },
                                    "system": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "id",
                                    "system"
                                ]
                            }
                        },
                        "required": [
                            "point_of_care",
                            "department"
                        ]
                    }
                }
            },
            "required": [
                "type",
                "practitioner",
                "care_relationship",
                "patients"
            ]
        }
    }
}
]]></artwork>
        </section>
      </section>
      <section anchor="protected-resource-metadata-examples">
        <name>Protected Resource Metadata Examples</name>
        <section anchor="example-protected-resource-metadata-response-of-payments-resource">
          <name>Example Protected Resource Metadata response of payments resource</name>
          <artwork><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json

{
    "resource": "https://resource.example.com/payments",
    "authorization_servers":
        ["https://as1.example.com",
        "https://as2.example.net"],
    "bearer_methods_supported": ["header"],
    "scopes_supported": ["payment"],
    "resource_documentation":
        "https://resource.example.com/docs/payments.html",
    "authorization_details_types_required": {
        "oneOf": ["payment_initiation", "payment_approval",
                  "beneficiary_designation"]
    }
}
]]></artwork>
        </section>
        <section anchor="example-protected-resource-metadata-response-from-the-norwegian-health-sector-helseid">
          <name>Example Protected Resource Metadata response from the Norwegian Health Sector (HelseID)</name>
          <artwork><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json

{
    "resource": "https://health-api.nhn.no/health-information",
    "authorization_servers": ["https://helseid-sts.nhn.no"],
    "bearer_methods_supported": ["header"],
    "scopes_supported":
        ["nhn:health-api/read", "nhn:health-api/write"],
    "resource_documentation": "https://utviklerportal.nhn.no",
    "authorization_details_types_required": {
        "allOf": ["helseid_authorization",
                  "nhn:tillitsrammeverk:parameters"]
    }
}
]]></artwork>
        </section>
      </section>
      <section anchor="payment-initiation-with-rar-error-signaling">
        <name>Payment initiation with RAR error signaling</name>
        <section anchor="client-initiates-api-request">
          <name>Client initiates API request</name>
          <t>Client uses access token obtained at login to call payment initiation API</t>
          <artwork><![CDATA[
POST /payments HTTP/1.1
Host: resource.example.com
Content-Type: application/json
Authorization: Bearer eyj... (access token from login)

{
    "type": "payment_initiation",
    "locations": [
        "https://resource.example.com/payments"
    ],
    "instructed_amount": {
        "currency": "EUR",
        "amount": "123.50"
    },
    "creditor_name": "Merchant A",
    "creditor_account": {
        "bic": "ABCIDEFFXXX",
        "iban": "DE02100100109307118603"
    }
}
]]></artwork>
        </section>
        <section anchor="resource-server-signals-insufficientauthorizationdetails-with-actionable-rar-object">
          <name>Resource server signals insufficient_authorization_details with actionable RAR object</name>
          <t>Resource server requires payment approval and responds with:</t>
          <artwork><![CDATA[
HTTP/1.1 403 Forbidden
WWW-Authenticate: Bearer error="insufficient_authorization_details",
    resource_metadata="https://resource.example.com
    /.well-known/oauth-protected-resource/payments"
Content-Type: application/json
Cache-Control: no-store

{
    "authorization_details": [{
      "type": "payment_initiation",
      "locations": [
          "https://example.com/payments"
      ],
      "instructed_amount": {
          "currency": "EUR",
          "amount": "123.50"
      },
      "creditor_name": "Merchant A",
      "creditor_account": {
          "bic": "ABCIDEFFXXX",
          "iban": "DE02100100109307118603"
      },
      "interaction_id": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "risk_profile": "B-71"
}]
}
]]></artwork>
          <t>Note: the resource server has added the ephemeral attributes <tt>interaction_id</tt> and <tt>risk_profile</tt>.</t>
        </section>
        <section anchor="client-initiates-oauth-flow-using-the-provided-authorizationdetails-object">
          <name>Client initiates OAuth flow using the provided authorization_details object</name>
          <t>After user approves the request, client obtains an access token representing the approved payment</t>
        </section>
        <section anchor="client-re-attempts-api-request">
          <name>Client re-attempts API request</name>
          <artwork><![CDATA[
POST /payments HTTP/1.1
Host: resource.example.com
Content-Type: application/json
Authorization: Bearer eyj... (payment approval access token)

{
    "type": "payment_initiation",
    "locations": [
        "https://resource.example.com/payments"
    ],
    "instructed_amount": {
        "currency": "EUR",
        "amount": "123.50"
    },
    "creditor_name": "Merchant A",
    "creditor_account": {
        "bic": "ABCIDEFFXXX",
        "iban": "DE02100100109307118603"
    }
}
]]></artwork>
        </section>
        <section anchor="resource-server-authorizes-the-request">
          <name>Resource server authorizes the request</name>
          <artwork><![CDATA[
HTTP/1.1 201 Accepted
Content-Type: application/json
Cache-Control: no-store

{
    "paymentId": "a81bc81b-dead-4e5d-abff-90865d1e13b1",
    "status": "accepted"
}
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="document-history">
      <name>Document History</name>
      <t>-03</t>
      <ul spacing="normal">
        <li>
          <t>Added authorization_hint to guide client on token selection and updated client processing rules accordingly</t>
        </li>
        <li>
          <t>Added security consideration on confidentiality of RS-provided authorization_details</t>
        </li>
        <li>
          <t>Added authorization server considerations for handling large RAR objects in JWT access tokens</t>
        </li>
      </ul>
      <t>-02</t>
      <ul spacing="normal">
        <li>
          <t>Defined the required types expression</t>
        </li>
        <li>
          <t>Added Protected Resource Metadata examples</t>
        </li>
      </ul>
      <t>-01</t>
      <ul spacing="normal">
        <li>
          <t>Authorization details moved to HTTP body and made <bcp14>OPTIONAL</bcp14></t>
        </li>
        <li>
          <t>Metadata pointer from resource metadata url, full authorization details types metadata on authorization server new endpoint</t>
        </li>
      </ul>
      <t>-00</t>
      <ul spacing="normal">
        <li>
          <t>Document creation</t>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank the following individuals who contributed ideas, feedback, and wording that helped shape the final specification: Rune Grimstad.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
