<?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-zehavi-oauth-rar-metadata-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.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-02"/>
    <author fullname="Yaron Zehavi">
      <organization>Raiffeisen Bank International</organization>
      <address>
        <email>yaron.zehavi@rbinternational.com</email>
      </address>
    </author>
    <date year="2026" month="February" day="22"/>
    <area>Security</area>
    <workgroup>Web Authorization Protocol</workgroup>
    <keyword>RAR</keyword>
    <keyword>Step-up</keyword>
    <keyword>oauth</keyword>
    <abstract>
      <?line 49?>

<t>OAuth 2.0 Rich Authorization Requests (RAR), as defined in <xref target="RFC9396"/>, enables fine-grained authorization requests, using structured JSON objects.</t>
      <t>While RAR <xref target="RFC9396"/> standardizes the exchange and processing of authorization details, it does not specify metadata describing authorization details types.</t>
      <t>This document defines a machine-readable metadata format for authorization servers to provide authorization details type documentation including JSON Schema <xref target="JSON.Schema"/> definitions, as well as interoperable discovery via OAuth Resource Server Metadata <xref target="RFC9728"/>.</t>
      <t>It also defines a new WWW-Authenticate normative OAuth error code, <tt>insufficient_authorization_details</tt>, enabling resource servers to indicate inadequate authorization details as the cause of failure, as well as an <bcp14>OPTIONAL</bcp14> response body which <bcp14>MAY</bcp14> be returned alongside the <tt>insufficient_authorization_details</tt> error, providing an informative yet actionable authorization details object, which can be used directly in a subsequent OAuth request.</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 59?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>OAuth 2.0 Rich Authorization Requests (RAR) <xref target="RFC9396"/> allows OAuth clients to request structured, fine-grained authorization, which has enabled advanced authorization models across many domains, such as Banking &amp; Healthcare.</t>
      <t>However, RAR <xref target="RFC9396"/> does not specify how clients obtain metadata describing valid authorization details objects. Clients must therefore rely on out-of-band documentation or static ecosystem profiles.</t>
      <t>This document addresses this gap by:</t>
      <ul spacing="normal">
        <li>
          <t>Defining a new authorization server endpoint: <tt>authorization_details_types_metadata_endpoint</tt>, providing metadata for authorization details types, including human-readable documentation as well as embedded JSON Schema definitions <xref target="JSON.Schema"/>.</t>
        </li>
        <li>
          <t>Adding supported / required authorization details types to OAuth 2.0 Protected Resource Metadata <xref target="RFC9728"/> response.</t>
        </li>
        <li>
          <t>Defining a standardized error signaling mechanism using the WWW-Authenticate response header, allowing resource servers to specify <tt>insufficient_authorization_details</tt> as the cause of error.</t>
        </li>
        <li>
          <t>Defining an <bcp14>OPTIONAL</bcp14> response body, included with an <tt>insufficient_authorization_details</tt> error, providing an informative authorization details object, whose inclusion in a new OAuth request shall result, if approved, in an access token satisfying the endpoint's requirements.</t>
        </li>
      </ul>
      <t>The <bcp14>OPTIONAL</bcp14> providing of actionable authorization details objects by resource servers enables:</t>
      <ul spacing="normal">
        <li>
          <t>Higher interoperability and simplification by relieving clients from having to figure out how to construct valid authorization details objects, instead providing them with ready-to-use authorization_details objects, to be included in a subsequent OAuth request.</t>
        </li>
        <li>
          <t>Support for ephemeral, interaction-specific claims provided by the resource domain in the authorization details object, such as for example a risk score, a risk profile or an internal interaction identifier. Resource servers <bcp14>MAY</bcp14> use this to guide authorization servers as to the required authentication strength and consent flow.</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 obtains <strong>metadata</strong> of required authorization details types.</t>
        </li>
        <li>
          <t>Client obtains an <strong>actionable authorization details object</strong> from resource server's error response.</t>
        </li>
      </ul>
      <section anchor="client-obtains-metadata-of-required-authorization-details-types">
        <name>Client obtains 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 obtains 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 type 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-obtains-authorization-details-object-from-resource-servers-error-response">
        <name>Client obtains authorization details object from resource server's error response</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||                  ||
             |          |        :              |+------------------+|
             |          |        :              |                    |
             |          | (G) Token Request     |+------------------+|
             |          |---------------------->||                  ||
             |          |                       || Token Endpoint   ||
             |          |<----------------------||                  ||
             |          | (H) Access Token      |+------------------+|
             |          |        :              +--------------------+
             |          |        :
             |          |        :
             |          | (I) Retry API Call    +--------------------+
             |          |     with Token        |                    |
             |          |---------------------->|      Resource      |
             |          |                       |       Server       |
             |          |<----------------------|                    |
             |          | (J) 200 OK + Resource +--------------------+
             |          |
             +----------+
]]></artwork>
        <t>Figure: Client obtains authorization details object from resource server's error response</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 <strong>includes the authorization details object requiring approval</strong>.</t>
          </li>
          <li>
            <t>(D) The client uses the obtained authorization details object in a new OAuth + RAR <xref target="RFC9396"/> request.</t>
          </li>
          <li>
            <t>(E) Authorization server returns authorization code.</t>
          </li>
          <li>
            <t>(G-H) The client exchanges authorization code for access token.</t>
          </li>
          <li>
            <t>(I) The client makes an API request with the (RAR) access token.</t>
          </li>
          <li>
            <t>(J) 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_supported</tt>, to be included in the response of OAuth Protected Resource Metadata <xref target="RFC9728"/>.</t>
      <dl>
        <dt>"authorization_details_types_supported":</dt>
        <dd>
          <t><bcp14>OPTIONAL</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 added <tt>authorization_details_types_supported</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_supported": {
        "oneOf": ["payment_initiation", "payment_approval",
                  "beneficiary_designation"]
    }
}
]]></artwork>
      <t>Note: When resource servers accept access tokens <em>from several authorization servers</em>, interoperability is maintained and confusion is prevented, because 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> to declaratively describe permitted combinations of required <em>authorization_details</em> types. This expression allows selection operators (oneOf, allOf, constraints) and boolean composition (and, or) to be combined in a predictable manner.</t>
        <t>A <strong>required types expression</strong> is a JSON object that <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>
          <li>
            <t>constraints</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 authorization_details 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 authorization_details types. When <strong>allOf</strong> is specified, the expression is satisfied if <strong>all</strong> of the listed types are present.</t>
          </dd>
          <dt>"constraints":</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>.  a JSON object defining cardinality and exclusion constraints over a set of authorization_details types. The object <bcp14>MUST</bcp14> contain the <strong>types</strong> attribute and <bcp14>MAY</bcp14> contain the attributes <strong>min</strong>, <strong>max</strong>, <strong>exact</strong>, and <strong>forbidden</strong>. Constraints attributes definition:
</t>
            <dl>
              <dt>"types":</dt>
              <dd>
                <t><bcp14>REQUIRED</bcp14>.  a non-empty JSON array of strings
identifying the authorization_details types
to which the constraints apply.</t>
              </dd>
              <dt>"min":</dt>
              <dd>
                <t><bcp14>OPTIONAL</bcp14>.  a non-negative integer indicating
the minimum number of authorization_details
types from <tt>types</tt> that <bcp14>MUST</bcp14> be present.
This attribute <bcp14>MUST NOT</bcp14> be used together
with the <strong>exact</strong> attribute.</t>
              </dd>
              <dt>"max":</dt>
              <dd>
                <t><bcp14>OPTIONAL</bcp14>.  a non-negative integer indicating
the maximum number of authorization_details
types from <tt>types</tt> that <bcp14>MAY</bcp14> be present.
This attribute <bcp14>MUST NOT</bcp14> be used together
with the <strong>exact</strong> attribute.</t>
              </dd>
              <dt>"exact":</dt>
              <dd>
                <t><bcp14>OPTIONAL</bcp14>.  a non-negative integer indicating
the exact number of authorization_details
types from <tt>types</tt> that <bcp14>MUST</bcp14> be present.
This attribute <bcp14>MUST NOT</bcp14> be used together
with the <strong>min</strong> or <strong>max</strong> attributes.</t>
              </dd>
              <dt>"forbidden":</dt>
              <dd>
                <t><bcp14>OPTIONAL</bcp14>.  a non-empty JSON array, whose each
element is an array of authorization_details
types identifiers, representing a combination
that <bcp14>MUST NOT</bcp14> be present together.</t>
              </dd>
            </dl>
          </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[
{
  "required_types": {
    "and": [
      { "allOf": ["a", "b"] },
      { "oneOf": ["c", "d"] }
    ]
  }
}
]]></artwork>
          <t>Specifies that the selection <bcp14>MUST</bcp14> include one of a or b, <strong>and</strong> exactly two of [c,d,e], but the combination of d and e together is forbidden.</t>
          <artwork><![CDATA[
{
  "required_types": {
    "and": [
      { "oneOf": ["a", "b"] },
      {
        "constraints": {
          "types": ["c", "d", "e"],
          "exact": 2,
          "forbidden": [["d", "e"]]
        }
      }
    ]
  }
}
]]></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[
{
  "required_types": {
    "or": [
      { "allOf": ["c", "d"] },
      { "oneOf": ["a", "b"] }
    ]
  }
}
]]></artwork>
        </section>
        <section anchor="example-expression-using-constraints-operator">
          <name>Example expression using "constraints" operator</name>
          <t>Specifies that at least two of {a,b,c} <bcp14>MUST</bcp14> be present, but the combination of a and c together is forbidden.</t>
          <artwork><![CDATA[
{
  "required_types": {
    "constraints": {
      "types": ["a","b","c"],
      "min": 2,
      "forbidden": [ ["a","c"] ]
    }
  }
}
]]></artwork>
          <t>Specifies that exactly two of {a,b,c} <bcp14>MUST</bcp14> be present.</t>
          <artwork><![CDATA[
{
  "required_types": {
    "constraints": {
      "types": ["a","b","c"],
      "exact": 2
    }
  }
}
]]></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 human-readable 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 human-readable documentation describing the authorization details type.</t>
          </dd>
          <dt>"schema":</dt>
          <dd>
            <t>The <tt>schema</tt> attribute is a JSON Schema document <xref target="JSON.Schema"/> describing a single authorization detail object. The schema <bcp14>MUST</bcp14> validate a single authorization detail object and <bcp14>MUST</bcp14> constrain the <tt>type</tt> attribute to the authorization detail type identifier. This attribute is <bcp14>REQUIRED</bcp14> unless <tt>schema_uri</tt> is specified. If this attribute is present, <tt>schema_uri</tt> <bcp14>MUST NOT</bcp14> be present.</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-inadequate-authorizationdetails">
      <name>Resource Server Error Signaling of Inadequate authorization_details</name>
      <t>This document defines a new normative OAuth error code, <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> provide alongside the <tt>insufficient_authorization_details</tt> error, an informative HTTP response body of content type application/json, containing required authorization details objects to satisfy the currently 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 are its trusted authorization servers, as advertised by the Resource Server’s metadata endpoint.</t>
          </li>
          <li>
            <t>Resource servers <bcp14>SHALL</bcp14> provide authorization_details 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>
        </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> authorization_details:</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",
    "instructedAmount": {
      "currency": "EUR",
      "amount": "100.00"
    },
    "creditorAccount": {
      "iban": "DE02120300000000202051"
    }
  }]
}
]]></artwork>
      </section>
    </section>
    <section anchor="processing-rules">
      <name>Processing Rules</name>
      <section anchor="client-processing-rules">
        <name>Client Processing Rules</name>
        <ul spacing="normal">
          <li>
            <t>If encountering error <tt>insufficient_authorization_details</tt>, check if body.authorization_details exists and if provided <bcp14>MAY</bcp14> include in subsequent OAuth request.</t>
          </li>
          <li>
            <t>Otherwise consult metadata:
            </t>
            <ul spacing="normal">
              <li>
                <t>Fetch resource metadata to discover accepted authorization servers and supported <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 metadata and schema</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.</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_supported</tt>, where relevant.</t>
          </li>
          <li>
            <t>Verify access tokens against required authorization details.</t>
          </li>
          <li>
            <t>If insufficient, 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 authorization_details 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>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="oauth-20-bearer-token-error-registry">
        <name>OAuth 2.0 Bearer Token Error 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_supported</tt> is defined for OAuth 2.0 protected resource metadata.</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="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 528?>

<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 detail 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_supported": {
        "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_supported": {
        "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"
    ],
    "instructedAmount": {
        "currency": "EUR",
        "amount": "123.50"
    },
    "creditorName": "Merchant A",
    "creditorAccount": {
        "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"
      ],
      "instructedAmount": {
          "currency": "EUR",
          "amount": "123.50"
      },
      "creditorName": "Merchant A",
      "creditorAccount": {
          "bic": "ABCIDEFFXXX",
          "iban": "DE02100100109307118603"
      },
      "interactionId": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
      "riskProfile": "B-71"
}]
}
]]></artwork>
          <t>Note: the resource server has added the ephemeral attributes <tt>interactionId</tt> and <tt>riskProfile</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 single-use 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"
    ],
    "instructedAmount": {
        "currency": "EUR",
        "amount": "123.50"
    },
    "creditorName": "Merchant A",
    "creditorAccount": {
        "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>-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 shaped and formed the final specification: Rune Grimstad.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
sX1yx7tb9TRLB7PsKt+ya+lKjvyi1822RthWZ3/6Ng3u0DkqoERvXYpcQ13m
yC/a/QaigodXG//Q22Pnh+IEwJtshtuczdu0+Z4H9lXnv4NeOu6pEDBPnOMK
MKQg4a7rat8tTcjMveJyg5PQ/11l38t4XJ2aRbRETcXekDKo2h+cpwU49UZ9
XQW5MVSm4GeF+gZmpHrt0CeSRPKS+4+VJp5XmYBQhGE4RWc/okWPSGT0ZpqF
y51AS/Hcyrf0s7iFNuQV2pBTaEM+oQ25hKoeIWO4d/EI/WM5hFaNltYTioxQ
ey2iftvn81QkXaRQYr3pqTZTZ6MsVzIOl9hwrV0J9G+NCVczqg1p8msq8huz
37qYb0dtzbcNWW+bMt5W+Vja2W6/6ISX7bZNGW7LJ/xJW7ttU2bbZ1ptLYqg
r+eEp8kiN+/WBYaUHQsxP/e6vXLc5Y7V3+q6Xd9M53W7ARrUUFvaexs39zah
Av79G4AqxKIYRTkYqLAPsTL+QlnSBB1F7LjhYCANwQJiMqEak9PTaAWqVktR
QsvNoMpi1M4M+sF58plm0PHnm0E/btIM6h4DVw5JVBE6Jk7YxE4ZxdRN0ySY
ZKg4L7WRTQjfeV0oUYHm4qkCvCXQMNR+q677+z1aavQoRgyGZQWzAxgumekY
zGYidsQiSt33rBCn8uGDfAqUR5TABsaDJP0W/P0cYzkBmIEKO5vGOugvIGzG
kZMHWetAJYMDQycuhUy2RK01Gz2Skig+dsajsZK69OxRHKUwt84rOpADXBqq
GCQ6FSHrfTAytq+lYj9fO82ZGP1upODH0yM7c3chz2Xklk9pelRUVL+4Gr81
zbpibLdYMqGsYnumWMTT/jurwwkZcWhTXcZ+gQSwHxKShfLCi0ukAuXUSAoF
jblWiHMtDWU5gqCmMFiSp34aUdVIydYUUbU44i+mNtRnFCAmoRsy81RL5bJd
mrc04RHHlcJNFtA9hbpSI+9MhU89+W/veYx8/waWn2pMJAqreVqQWYINaKEV
GMLthvWxcoNhNXYyEBSdpFcKGSE3VQGkGDfIMToOg0MnXIbC6mhKDLLXLkcV
oL7M3cjdSgElhRXqhXQvnTRxu5YWH24pAVFmfhI3RqToMxiDJfJjgILI517o
JiQswoWRRQxwNAtSlJBAWJNAzpQoeLQHtQQ1UIFZjOS9Bb86DCB4yGUMJM1D
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

-->

</rfc>
