<?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-ietf-oauth-rar-metadata-remediation-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="OAuth 2.0 RAR Metadata and Error Remediation">OAuth 2.0 RAR Metadata and Error Remediation</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-rar-metadata-remediation-00"/>
    <author fullname="Yaron Zehavi">
      <organization>Raiffeisen Bank International</organization>
      <address>
        <email>yaron.zehavi@rbinternational.com</email>
      </address>
    </author>
    <date year="2026" month="August" day="23"/>
    <area>Security</area>
    <workgroup>Web Authorization Protocol</workgroup>
    <keyword>RAR</keyword>
    <keyword>Step-up</keyword>
    <keyword>oauth</keyword>
    <abstract>
      <?line 54?>

<t>OAuth 2.0 Rich Authorization Requests (RAR) <xref target="RFC9396"/> standardizes the exchange and processing of authorization details but does not define metadata for describing authorization details types.</t>
      <t>In addition, no interoperable guidance is offered to clients, to remediate failures by resource servers due to insufficient authorization details.</t>
      <t>This document addresses this interoperability challenge, allowing clients to dynamically discover metadata instead of relying on out-of-band agreements, as well as standardizes failure signaling including interoperable remediation when insufficient authorization details are the cause of failure.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://drafts.oauth.net/draft-ietf-oauth-rar-metadata-remediation/draft-ietf-oauth-rar-metadata.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-oauth-rar-metadata-remediation/"/>.
      </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/oauth-wg/draft-ietf-oauth-rar-metadata-remediation"/>.</t>
    </note>
  </front>
  <middle>
    <?line 62?>

<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 authorization details type metadata, including documentation and JSON Schema definitions <xref target="JSON.Schema"/>.</t>
        </li>
        <li>
          <t>A new normative OAuth 2.0 WWW-Authenticate Error Code, for resource servers to indicate <tt>insufficient_authorization</tt> as the cause of the error.</t>
        </li>
        <li>
          <t>A new OAuth 2.0 WWW-Authenticate response parameter, <tt>authorization_remediation</tt>, providing actionable authorization details objects, to be used directly for remediation in a follow-up OAuth request.</t>
        </li>
        <li>
          <t>Authorization server considerations for when RAR authorization details objects should perhaps be omitted from JWT access tokens and provided instead through token instrospection.</t>
        </li>
      </ul>
      <t>Providing clients with actionable authorization details objects enables:</t>
      <ul spacing="normal">
        <li>
          <t>Interoperability benefit as clients can simply and directly proceed to remediate, without first learning how to construct valid authorization details objects.</t>
        </li>
        <li>
          <t>Support for ephemeral, interaction-specific attributes included by the resource server, such as a risk profile or an internal interaction identifier, guiding authorization servers on the 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>Client remediates using actionable authorization details objects provided by resource server:</t>
      <artwork type="ascii-art"><![CDATA[
                                                +--------------------+
             +----------+ (B) API Request       |                    |
             |          |---------------------->|      Resource      |
(A) User +---|          |                       |       Server       |
   Starts|   |          |<----------------------|                    |
   Flow  +-->|  Client  | (C) 401 Unauthorized     +--------------------+
             |          |     WWW-Authenticate: Bearer
             |          |     error="insufficient_authorization",
             |          |     error_description=[human readable message],
             |          |     authorization_remediation=[required
             |          |     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 401 with a WWW-Authenticate header with error code <tt>insufficient_authorization</tt> and in <tt>authorization_remediation</tt> the <strong>required authorization details objects</strong>.</t>
        </li>
        <li>
          <t>(D) The client uses the provided 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 anchor="remediation-of-failures-due-to-insufficient-authorization">
      <name>Remediation of failures due to insufficient authorization</name>
      <t>This document defines:</t>
      <ul spacing="normal">
        <li>
          <t>The authentication error code <tt>insufficient_authorization</tt> for the <tt>WWW-Authenticate</tt> header. Resource servers <bcp14>SHOULD</bcp14> return <tt>insufficient_authorization</tt> when access is denied due to missing or insufficient authorization details.</t>
        </li>
        <li>
          <t>The <tt>authorization_remediation</tt> error parameter, which contains a base64url-encoded JSON object guiding the client on remediating the error. Its attributes are:  </t>
          <ul spacing="normal">
            <li>
              <t><tt>authorization_details</tt>: <bcp14>RECOMMENDED</bcp14>. Array of actionable authorization details objects, matching the format specified in RAR <xref target="RFC9396"/> for the <tt>authorization_details</tt> request parameter, built using the failed resource request. Their inclusion in successful new OAuth grant <bcp14>SHALL</bcp14> satisfy the resource's requirements and remediate the failure.</t>
            </li>
            <li>
              <t><tt>authorization_reference</tt>: <bcp14>RECOMMENDED</bcp14>. An opaque string generated by the resource server to enable the client to select an existing access token associated with equivalent authorization details, without requiring the client to understand the semantics of the authorization details object:      </t>
              <ul spacing="normal">
                <li>
                  <t>Resource server <bcp14>SHOULD</bcp14> generate the <tt>authorization_reference</tt> by canonicalizing and hashing the authorization_details object or an equivalent stable representation, so that the same or semantically equivalent authorization details produce the same authorization_reference value.</t>
                </li>
                <li>
                  <t>The value <bcp14>MUST NOT</bcp14> reveal any sensitive or private information.</t>
                </li>
                <li>
                  <t>Clients <bcp14>MUST</bcp14> treat this value as opaque and <bcp14>MUST NOT</bcp14> attempt to interpret or derive meaning from it.</t>
                </li>
                <li>
                  <t>Returning stable <tt>authorization_reference</tt> values enables clients to reliably match existing tokens to incoming <tt>authorization_remediation</tt> responses, to avoid requesting new tokens when a matching token is already in their possession.</t>
                </li>
                <li>
                  <t>The resource server <bcp14>SHALL NOT</bcp14> include this attribute when tokens issued for the provided <tt>authorization_details</tt> are intended for single-use only.</t>
                </li>
              </ul>
            </li>
          </ul>
        </li>
      </ul>
      <t>Notes:</t>
      <ul spacing="normal">
        <li>
          <t>The <tt>error_description</tt> parameter <bcp14>MAY</bcp14> be included to provide a human-readable description.</t>
        </li>
        <li>
          <t>The provided <tt>authorization_details</tt> are intended to be interoperable with all OAuth specifications and usable in any grant flow supporting RAR.</t>
        </li>
        <li>
          <t>Deployments where resource servers have out-of-band agreements with clients to provide other types of payloads for authorization failure remediation, <bcp14>MAY</bcp14> define and use different attributes of <tt>authorization_remediation</tt> as they see fit.</t>
        </li>
      </ul>
      <t>Example HTTP response from a direct debit resource:</t>
      <artwork><![CDATA[
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer error="insufficient_authorization",
error_description="Additional authorization is required",
authorization_remediation=eyJhdXRob3JpemF0aW9uX2RldGFpbHMiOlt7InR5cGUiOiJkaX...
]]></artwork>
      <t>The decoded <tt>authorization_remediation</tt> contents in this example are:</t>
      <artwork><![CDATA[
{
    "authorization_details": [{
            "type": "direct_debit_mandate",
            "DebtorAccount": {
                "SchemeName": "UK.OBIE.SortCodeAccountNumber",
                "Identification": "08080021325698",
                "Name": "JohnDoe"
            },
            "CreditorAgent": {
                "SchemeName": "UK.OBIE.BICFI",
                "Identification": "NWBKGB22"
            },
            "CreditorAccount": {
                "SchemeName": "UK.OBIE.SortCodeAccountNumber",
                "Identification": "08080021325698",
                "Name": "ACMECorp"
            },
            "MandateStatus": "Active",
            "CreationDateTime": "2026-06-01T09:00:00+00:00"
        }
    ],
    "authorization_reference": "Yb7q3AC5d"
}
]]></artwork>
      <t>Example HTTP response from a payment initiation resource:</t>
      <artwork><![CDATA[
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer error="insufficient_authorization",
error_description="Additional authorization is required",
authorization_remediation=eyJhdXRob3JpemF0aW9uX2RldGFpbHMiOlt7InR5cGUiOiJkaX...
]]></artwork>
      <t>The decoded <tt>authorization_remediation</tt> contents in this example are:</t>
      <artwork><![CDATA[
{
    "authorization_details": [{
           "type": "payment_initiation",
           "instructed_amount": {
              "currency": "EUR",
              "amount": "100.00"
           },
           "creditor_account": {
              "iban": "DE02120300000000202051"
           }
       }
   ]
}
]]></artwork>
    </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 indicate 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>
      <t>The Authorization Details Types Metadata endpoint is called with HTTP GET and responds with Content-Type <tt>application/json</tt> and a JSON object whose members are authorization details type identifiers.</t>
      <t>Each member value is an object describing a single authorization details type.</t>
      <artwork><![CDATA[
{
  "type": {
    "version": "...",
    "description": "...",
    "documentation_uri": "...",
    "schema": { },
    "schema_uri": "...",
    "examples": [ ]
  }
}
]]></artwork>
      <t>Attribute 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 anchor="rar-objects-in-jwt-access-tokens">
      <name>RAR objects in JWT access tokens</name>
      <t>Pursuant with RAR <xref target="RFC9396"/> section 9, 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>There may however be cases, where due to various considerations such as token size or information privacy, including approved RAR objects in JWT access tokens would be advised against.</t>
      <t>It is <bcp14>RECOMMENDED</bcp14> that when an authorization server issues JWT access tokens, it should consider the size, sensitivity, and privacy implications of including the authorization_details attribute. Where appropriate, the authorization server <bcp14>SHOULD</bcp14> omit this attribute from JWT tokens and instead provide the approved RAR objects to resource servers via the token introspection endpoint. This endpoint <bcp14>SHOULD</bcp14> use appropriate client authentication methods to prevent unauthorized access, in case of token leakage.</t>
    </section>
    <section anchor="processing-rules">
      <name>Processing Rules</name>
      <section anchor="client-processing-rules">
        <name>Client Processing Rules</name>
        <t><strong>General</strong>:</t>
        <t>Client <bcp14>MAY</bcp14> attempt calling resource server, either on first attempt or as a remediation step, using any valid tokens which were obtained following a remediation challenge from same resource server origin, which included an authorization_reference, as such tokens are not limited for single-use.</t>
        <t>Existing tokens whose authority is inclusive may permit resource calls requiring lower authority, despite their authorization_reference value differs from value obtained in other remediation challenges. For example, a recurring direct debit token permitting up to 100$ can authorize a 80$ debit, although the remediation challenges returned when attempting 80$ or 100$ debits with insufficient authority, will differ in their authorization_details and authorization_reference values.</t>
        <t>Therefore attempting a 80$ debit with an existing token permitting 100$ debits may succeed.</t>
        <t><strong>Handling an HTTP 401 failure response</strong>:</t>
        <t>When a client receives an HTTP 401 response with WWW-Authenticate error code <tt>insufficient_authorization</tt> and an <tt>authorization_remediation</tt> parameter, it <bcp14>SHOULD</bcp14> process it as follows.</t>
        <section anchor="step-1-parse-the-remediation-response">
          <name>Step 1 - Parse the remediation response</name>
          <t>The client decodes the base64url-encoded <tt>authorization_remediation</tt> JSON object and extracts:</t>
          <ul spacing="normal">
            <li>
              <t><tt>authorization_details</tt> (<bcp14>RECOMMENDED</bcp14>): the actionable RAR objects.</t>
            </li>
            <li>
              <t><tt>authorization_reference</tt> (<bcp14>OPTIONAL</bcp14>): an opaque string for token-bag lookup.</t>
            </li>
          </ul>
        </section>
        <section anchor="step-2-attempt-token-reuse-via-authorizationreference-if-present">
          <name>Step 2 - Attempt token reuse via <tt>authorization_reference</tt> (if present)</name>
          <ol spacing="normal" type="1"><li>
              <t>If the <tt>authorization_remediation</tt> contains an <tt>authorization_reference</tt> attribute, the client <bcp14>SHOULD</bcp14> search its <strong>in-session tokens</strong> for a token previously associated with that reference value <strong>and</strong> the same resource server origin.</t>
            </li>
            <li>
              <t>Matching is a simple string comparison — the client <bcp14>MUST NOT</bcp14> attempt to compute, parse, or derive meaning from the reference value.</t>
            </li>
            <li>
              <t>If a matching, non-expired token is found, the client <bcp14>MAY</bcp14> retry the failing request with that token. If the retry also fails with <tt>insufficient_authorization</tt>, the client <bcp14>MUST NOT</bcp14> retry again with the same token for the same reference and <bcp14>SHOULD</bcp14> proceed to Step 3.</t>
            </li>
            <li>
              <t>If no matching token is found, the client proceeds to Step 3.</t>
            </li>
          </ol>
        </section>
        <section anchor="step-3-obtain-a-new-token-via-oauth-rar">
          <name>Step 3 - Obtain a new token via OAuth + RAR</name>
          <t>The client proceeds to this step if: (a) no <tt>authorization_reference</tt> was present, (b) no matching token in client's possession was found, (c) a matched token was rejected by the resource server (Step 2, item 4), or (d) the client elects to skip an existing token lookup and use <tt>authorization_details</tt> directly.</t>
          <ol spacing="normal" type="1"><li>
              <t>The client uses the <tt>authorization_details</tt> from the <tt>authorization_remediation</tt> response in a new OAuth authorization request per <xref target="RFC9396"/>. The client <bcp14>MAY</bcp14> use any grant type or extension that supports RAR (such as PAR <xref target="RFC9126"/>, JAR <xref target="RFC9101"/>, etc).</t>
            </li>
            <li>
              <t>Upon successful token issuance, if the triggering resource server response included an <tt>authorization_reference</tt>, the client <bcp14>SHOULD</bcp14> persist the newly obtained token associated with that reference value and the resource server origin in its in-session token storage. This token-to-reference association enables future lookups in Step 2 when the same <tt>authorization_reference</tt> is encountered again.</t>
            </li>
            <li>
              <t>The client retries the failing request with the newly obtained token.</t>
            </li>
          </ol>
        </section>
        <section anchor="step-4-handle-continued-failure">
          <name>Step 4 - Handle continued failure</name>
          <t>If after obtaining a new token and retrying, the resource server still returns <tt>insufficient_authorization</tt>:</t>
          <ul spacing="normal">
            <li>
              <t>If the new response contains a <strong>different</strong> <tt>authorization_reference</tt>, the client <bcp14>MAY</bcp14> attempt remediation again (subject to implementation-defined retry limits).</t>
            </li>
            <li>
              <t>If the new response contains the <strong>same</strong> <tt>authorization_reference</tt>, the client <bcp14>MUST NOT</bcp14> loop — it <bcp14>SHOULD</bcp14> treat the failure as non-remediable and report an error to the user or calling application.</t>
            </li>
          </ul>
        </section>
        <section anchor="additional-guidance">
          <name>Additional guidance</name>
          <ul spacing="normal">
            <li>
              <t>Clients <bcp14>MAY</bcp14> ignore <tt>authorization_reference</tt> entirely if they do not implement token caching or reuse. In that case, each <tt>insufficient_authorization</tt> response triggers a fresh authorization request using the provided <tt>authorization_details</tt>.</t>
            </li>
            <li>
              <t>If the client's current authorization server does not support the required authorization details types (as indicated by its metadata), the client <bcp14>MAY</bcp14> use Protected Resource Metadata <xref target="RFC9728"/> to discover alternative authorization servers for the resource.</t>
            </li>
            <li>
              <t>The token storage <bcp14>MUST</bcp14> be scoped per end-user session. Concurrent users operating through the same client instance <bcp14>MUST</bcp14> maintain separate token storage instances.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="resource-server-processing-rules">
        <name>Resource Server Processing Rules</name>
        <t>When a resource server receives a request with an OAuth token:</t>
        <section anchor="step-1-validate-the-access-token">
          <name>Step 1 - Validate the access token</name>
          <t>Verify token validity following <xref target="RFC6750"/> or <xref target="RFC9068"/> if JWT profiled. If the token is invalid for reasons other than insufficient authorization details, return the appropriate existing error code (e.g., <tt>invalid_token</tt>).</t>
        </section>
        <section anchor="step-2-verify-authorization-details-if-present">
          <name>Step 2 - Verify authorization details (if present)</name>
          <t>Determine whether the token carries sufficient authorization details for the requested operation. Authorization details <bcp14>MAY</bcp14> be obtained from the JWT access token payload or via token introspection <xref target="RFC7662"/>.</t>
        </section>
        <section anchor="step-3-if-authorization-details-are-missing-or-insufficient">
          <name>Step 3 - If authorization details are missing or insufficient</name>
          <t>The resource server responds with an error per the bearer token error framework <xref target="RFC6750"/> Section 3. The specific error code depends on the nature of the failure:
- If the token is valid but lacks sufficient <strong>scope</strong>, the resource server returns <tt>insufficient_scope</tt> per <xref target="RFC6750"/> Section 3.1.
- If the token is valid but lacks sufficient <strong>authentication context</strong> (e.g., ACR/AMR level), the resource server returns <tt>insufficient_user_authentication</tt> per <xref target="RFC9470"/>.
- If the token is valid but lacks sufficient <strong>authorization details</strong>, the RS returns <tt>insufficient_authorization</tt> per Section 4 of this document, with an <tt>authorization_remediation</tt> parameter as defined in Section 4.1.
The <tt>authorization_remediation</tt> parameter carries the actionable <tt>authorization_details</tt> and optional <tt>authorization_reference</tt> as specified in Section 4. The resource server constructs these per the rules defined below.</t>
        </section>
      </section>
      <section anchor="limitations-and-considerations-for-authorizationreference">
        <name>Limitations and Considerations for <tt>authorization_reference</tt></name>
        <t>Implementers should be aware of the following limitations:</t>
        <section anchor="token-reuse-is-opportunistic-not-guaranteed">
          <name>Token reuse is opportunistic, not guaranteed</name>
          <t>A matching <tt>authorization_reference</tt> with client's existing tokens does NOT guarantee the token will be accepted by the resource server. The token may have been issued under conditions that no longer apply:</t>
          <ul spacing="normal">
            <li>
              <t>The resource owner may have revoked consent since the token was issued.</t>
            </li>
            <li>
              <t>Contextual risk may have changed (e.g., geolocation, device posture), causing the resource server to require stronger authorization ceremonies.</t>
            </li>
            <li>
              <t>The authorization server may have issued the token with a subset of the requested authorization details (per <xref target="RFC9396"/> Section 7).</t>
            </li>
          </ul>
          <t>Clients <bcp14>MUST</bcp14> handle the case where a reused token is rejected despite matching the <tt>authorization_reference</tt> (see Section 7.1, Step 2, item 4).</t>
        </section>
        <section anchor="authorizationreference-does-not-replace-authorizationdetails">
          <name><tt>authorization_reference</tt> does not replace <tt>authorization_details</tt></name>
          <t>The <tt>authorization_reference</tt> is an optimization for token selection. It is NOT a substitute for <tt>authorization_details</tt>:</t>
          <ul spacing="normal">
            <li>
              <t><tt>authorization_details</tt> is <bcp14>RECOMMENDED</bcp14> in every <tt>authorization_remediation</tt> response providing actionable RAR objects and is what the client uses when initiating a new authorization request.</t>
            </li>
            <li>
              <t><tt>authorization_reference</tt> is <bcp14>RECOMMENDED</bcp14> and enables the client to avoid unnecessary authorization flows when it already possesses a suitable token.</t>
            </li>
          </ul>
          <t>Clients that do not implement token caching <bcp14>MAY</bcp14> safely ignore <tt>authorization_reference</tt> with no loss of interoperability.</t>
        </section>
        <section anchor="loop-prevention">
          <name>Loop prevention</name>
          <t>If the resource server consistently returns the same <tt>authorization_reference</tt> and rejects tokens obtained via the associated <tt>authorization_details</tt>, the client may enter an infinite loop. To prevent this:</t>
          <ul spacing="normal">
            <li>
              <t>Clients <bcp14>MUST</bcp14> implement a maximum retry count (<bcp14>RECOMMENDED</bcp14>: 1 retry with a cached token, then 1 fresh authorization attempt, then fail).</t>
            </li>
            <li>
              <t>If a freshly obtained token (from a new authorization flow using the resource server provided <tt>authorization_details</tt>) is immediately rejected by the same resource server with the same <tt>authorization_reference</tt>, the client <bcp14>MUST</bcp14> stop and report the error.</t>
            </li>
          </ul>
        </section>
        <section anchor="no-cross-resource-server-portability">
          <name>No cross-resource-server portability</name>
          <t>The <tt>authorization_reference</tt> value is scoped to the producing resource server. It <bcp14>MUST NOT</bcp14> be used for token selection when interacting with a different resource server, even if the two servers enforce similar authorization details types.</t>
        </section>
        <section anchor="analogy-to-scope-based-token-selection">
          <name>Analogy to scope-based token selection</name>
          <t>The <tt>authorization_reference</tt> mechanism is analogous to how clients select tokens based on OAuth scopes in traditional deployments. Just as a client maintains a mapping of <tt>{scope → token}</tt> and selects the appropriate token for each resource server call, this mechanism extends that pattern to RAR:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Traditional (scope-based)</th>
                <th align="left">RAR + authorization_reference</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Resource server returns <tt>insufficient_scope</tt> with required <tt>scope</tt> value</td>
                <td align="left">Resource server returns <tt>insufficient_authorization</tt> with <tt>authorization_remediation</tt></td>
              </tr>
              <tr>
                <td align="left">Client checks if it has a token with matching scope</td>
                <td align="left">Client checks if it has a token with matching <tt>authorization_reference</tt></td>
              </tr>
              <tr>
                <td align="left">Simple string comparison on scope values</td>
                <td align="left">Simple string comparison on reference values</td>
              </tr>
              <tr>
                <td align="left">If not found, request new token with required scope</td>
                <td align="left">If not found, request new token with provided <tt>authorization_details</tt></td>
              </tr>
            </tbody>
          </table>
          <t>The key advantage: clients do not need to understand, parse, or compare complex JSON <tt>authorization_details</tt> objects — the resource server has already reduced the comparison to an opaque string.</t>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="confidentiality-of-resource-server-provided-authorizationdetails">
        <name>Confidentiality of resource server provided authorization_details</name>
        <t>Resource servers when providing actionable <tt>authorization_details</tt> <bcp14>SHOULD NOT</bcp14> include sensitive data in those objects. 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, the end-user <bcp14>SHOULD</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">Error Usage Location</th>
              <th align="left">Change Controller</th>
              <th align="left">Specification Document</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">insufficient_authorization</td>
              <td align="left">Resource access error response</td>
              <td align="left">IETF</td>
              <td align="left">RFC XXXX, Section X</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="oauth-authorization-server-metadata-registry">
        <name>OAuth Authorization Server Metadata Registry</name>
        <t>This specification registers the following authorization server metadata parameter in the OAuth Authorization Server Metadata registry:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Metadata Name</th>
              <th align="left">Metadata Description</th>
              <th align="left">Change Controller</th>
              <th align="left">Specification Document</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">authorization_details_types_metadata_endpoint</td>
              <td align="left">URL of the Authorization Details Types Metadata endpoint</td>
              <td align="left">IETF</td>
              <td align="left">RFC XXXX, Section X</td>
            </tr>
          </tbody>
        </table>
      </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="RFC6750">
        <front>
          <title>The OAuth 2.0 Authorization Framework: Bearer Token Usage</title>
          <author fullname="M. Jones" initials="M." surname="Jones"/>
          <author fullname="D. Hardt" initials="D." surname="Hardt"/>
          <date month="October" year="2012"/>
          <abstract>
            <t>This specification describes how to use bearer tokens in HTTP requests to access OAuth 2.0 protected resources. Any party in possession of a bearer token (a "bearer") can use it to get access to the associated resources (without demonstrating possession of a cryptographic key). To prevent misuse, bearer tokens need to be protected from disclosure in storage and in transport. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6750"/>
        <seriesInfo name="DOI" value="10.17487/RFC6750"/>
      </reference>
      <reference anchor="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="RFC9068">
        <front>
          <title>JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens</title>
          <author fullname="V. Bertocci" initials="V." surname="Bertocci"/>
          <date month="October" year="2021"/>
          <abstract>
            <t>This specification defines a profile for issuing OAuth 2.0 access tokens in JSON Web Token (JWT) format. Authorization servers and resource servers from different vendors can leverage this profile to issue and consume access tokens in an interoperable manner.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9068"/>
        <seriesInfo name="DOI" value="10.17487/RFC9068"/>
      </reference>
      <reference anchor="RFC9101">
        <front>
          <title>The OAuth 2.0 Authorization Framework: JWT-Secured Authorization Request (JAR)</title>
          <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
          <author fullname="J. Bradley" initials="J." surname="Bradley"/>
          <author fullname="M. Jones" initials="M." surname="Jones"/>
          <date month="August" year="2021"/>
          <abstract>
            <t>The authorization request in OAuth 2.0 described in RFC 6749 utilizes query parameter serialization, which means that authorization request parameters are encoded in the URI of the request and sent through user agents such as web browsers. While it is easy to implement, it means that a) the communication through the user agents is not integrity protected and thus, the parameters can be tainted, b) the source of the communication is not authenticated, and c) the communication through the user agents can be monitored. Because of these weaknesses, several attacks to the protocol have now been put forward.</t>
            <t>This document introduces the ability to send request parameters in a JSON Web Token (JWT) instead, which allows the request to be signed with JSON Web Signature (JWS) and encrypted with JSON Web Encryption (JWE) so that the integrity, source authentication, and confidentiality properties of the authorization request are attained. The request can be sent by value or by reference.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9101"/>
        <seriesInfo name="DOI" value="10.17487/RFC9101"/>
      </reference>
      <reference anchor="RFC9126">
        <front>
          <title>OAuth 2.0 Pushed Authorization Requests</title>
          <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
          <author fullname="B. Campbell" initials="B." surname="Campbell"/>
          <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
          <author fullname="D. Tonge" initials="D." surname="Tonge"/>
          <author fullname="F. Skokan" initials="F." surname="Skokan"/>
          <date month="September" year="2021"/>
          <abstract>
            <t>This document defines the pushed authorization request (PAR) endpoint, which allows clients to push the payload of an OAuth 2.0 authorization request to the authorization server via a direct request and provides them with a request URI that is used as reference to the data in a subsequent call to the authorization endpoint.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9126"/>
        <seriesInfo name="DOI" value="10.17487/RFC9126"/>
      </reference>
      <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="RFC9470">
        <front>
          <title>OAuth 2.0 Step Up Authentication Challenge Protocol</title>
          <author fullname="V. Bertocci" initials="V." surname="Bertocci"/>
          <author fullname="B. Campbell" initials="B." surname="Campbell"/>
          <date month="September" year="2023"/>
          <abstract>
            <t>It is not uncommon for resource servers to require different authentication strengths or recentness according to the characteristics of a request. This document introduces a mechanism that resource servers can use to signal to a client that the authentication event associated with the access token of the current request does not meet its authentication requirements and, further, how to meet them. This document also codifies a mechanism for a client to request that an authorization server achieve a specific authentication strength or recentness when processing an authorization request.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9470"/>
        <seriesInfo name="DOI" value="10.17487/RFC9470"/>
      </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">
            <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 435?>

<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

{
    "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})?$"
                        }
                    }
                },
                "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}$"
                        }
                    }
                },
                "remittance_information": {
                    "type": "string",
                    "description": "Unstructured remittance information for the payment.",
                    "maxLength": 140
                }
            }
        }
    }
}
]]></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

{

    "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": {
        "version": "1.0",
        "description": "HelseID Trust Framework Information",
        "documentation_uri": "https://utviklerportal.nhn.no/informasjonstjenester/helseid/bruksmoenstre-og-eksempelkode/bruk-av-helseid/docs/tekniske-mekanismer/trust-framework",
        "schema": {
            "$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>
    <section anchor="document-history">
      <name>Document History</name>
      <t>-06</t>
      <ul spacing="normal">
        <li>
          <t>Expanded processing rules to be more explicit, using Jeff Lombardo's feedback.</t>
        </li>
        <li>
          <t>Explained how potential reuse of existing tokens is possible despite authorization_reference mismatches.</t>
        </li>
      </ul>
      <t>-05</t>
      <ul spacing="normal">
        <li>
          <t>Removed required authorization details types.</t>
        </li>
        <li>
          <t>Changed from HTTP 403 to 401.</t>
        </li>
        <li>
          <t>Moved resource servers response from body to WWW-Authenticate header.</t>
        </li>
        <li>
          <t>Renamed authorization_hint to authorization_reference and clarified its usage.</t>
        </li>
        <li>
          <t>Clarified authorization server broader considerations on omitting RAR from JWT access tokens.</t>
        </li>
        <li>
          <t>Clarified document's interoperability with any OAuth rfc and any grant that supports RAR.</t>
        </li>
      </ul>
      <t>-04</t>
      <ul spacing="normal">
        <li>
          <t>Moved required authorization details types from resource metadata to resource server's response.</t>
        </li>
        <li>
          <t>Adapted resource server processing rules to reflect error signaling and handling of large RAR payloads.</t>
        </li>
      </ul>
      <t>-03</t>
      <ul spacing="normal">
        <li>
          <t>Added authorization_reference 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, Justin Richer, Jeff Lombardo, Judith Kahrer, Pieter Kasselman.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
AAA=

-->

</rfc>
