<?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.17 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-brossard-oauth-rar-authzen-03" category="std" consensus="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.22.0 -->
  <front>
    <title abbrev="AuthZEN RAR Profile">AuthZEN Request/Response Profile for OAuth 2.0 Rich Authorization Requests</title>
    <seriesInfo name="Internet-Draft" value="draft-brossard-oauth-rar-authzen-03"/>
    <author fullname="David Brossard">
      <organization>Axiomatics</organization>
      <address>
        <postal>
          <country>Canada</country>
        </postal>
        <email>david.brossard@axiomatics.com</email>
      </address>
    </author>
    <author fullname="Omri Gazitt">
      <organization>Aserto</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>omri@aserto.com</email>
      </address>
    </author>
    <author fullname="Alexandre Babeanu">
      <organization>3Edges</organization>
      <address>
        <postal>
          <country>Canada</country>
        </postal>
        <email>alex@3edges.com</email>
      </address>
    </author>
    <date year="2024" month="July" day="08"/>
    <area>Security</area>
    <workgroup>Web Authorization Protocol</workgroup>
    <keyword>authorization</keyword>
    <keyword>abac</keyword>
    <keyword>authzen</keyword>
    <keyword>openid</keyword>
    <abstract>
      <?line 123?>

<t>This specification defines a profile of OAuth 2.0 Rich Authorization Requests leveraging the OpenID AuthZEN authorization request/response formats within the <tt>authorization_details</tt> JSON object. Authorization servers and resource servers from different vendors can leverage this profile to request and receive relevant authorization decisions from an AuthZEN-compatible PDP in an interoperable manner.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://davidjbrossard.github.io/authzen-rar-profile/draft-brossard-oauth-rar-authzen.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-brossard-oauth-rar-authzen/"/>.
      </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/davidjbrossard/authzen-rar-profile"/>.</t>
    </note>
  </front>
  <middle>
    <?line 127?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>OpenID AuthZEN is a Working Group under the OpenID Foundation which aims to increase interoperability and standardization in the authorization realm. In particular, AuthZEN aims to:</t>
      <ul spacing="normal">
        <li>
          <t>build standards-based authorization APIs</t>
        </li>
        <li>
          <t>define standard design patterns for authorization</t>
        </li>
        <li>
          <t>produce educational material to help raise awareness of externalized authorization.</t>
        </li>
      </ul>
      <t>The aim of this profile is to define an AuthZEN-conformant profile of the OAuth 2.0 Rich Authorization Requests <xref target="RFC9396"/>. <xref target="RFC9396"/> introduces a new parameter <tt>authorization_details</tt> that allows clients to specify their fine-grained authorization requirements using the expressiveness of JSON <xref target="RFC8259"/> data structures.
This specification introduces a more structured format for the <tt>authorization_details</tt> parameter. The new format is also JSON <xref target="RFC8259"/> as a result of which this specification is conformant with <xref target="RFC9396"/> and is merely a stricter profile.</t>
      <t>For example the authorization request for a credit transfer mentioned in <xref target="RFC9396"/> would now be structured as follows</t>
      <figure>
        <name>Source Authorization Request</name>
        <sourcecode type="language-json" markers="false"><![CDATA[
{
    "subject": {
        "type": "user",
        "id": "Alice"
    },
    "resource": {
        "type": "payment_initiation",
        "id": "123",
        "recipient": {
            "creditorName": "Merchant A",
            "creditorAccount": {
                "bic": "ABCIDEFFXXX",
                "iban": "DE02100100109307118603"
            }
        }
    },
    "action": {
        "name": "transfer",
        "instructedAmount": {
            "currency": "EUR",
            "amount": "123.50"
        }
    },
    "context": {
        "remittance": "Ref Number Merchant"
    }
}
]]></sourcecode>
      </figure>
      <t>Using AuthZEN as a format for <tt>authorization_details</tt> will increase the usability and the interoperability of <xref target="RFC9396"/>. In particular, it will be possible for the AS to forward the contents of the <tt>authorization_details</tt> parameter to an AuthZEN-conformant Policy Decision Point (PDP).</t>
    </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?>

<t>This specification uses the terms "access token", "refresh token", "authorization server" (AS), "resource server" (RS), "authorization endpoint", "authorization request", "authorization response", "token endpoint", "grant type", "access token request", "access token response", and "client" defined by "The OAuth 2.0 Authorization Framework" <xref target="RFC6749"/>.
This specification uses the terms "PDP" and "PEP" defined by <xref target="ABAC"/> and <xref target="XACML"/>.</t>
    </section>
    <section anchor="request-parameter-authorizationdetails">
      <name>Request Parameter <tt>authorization_details</tt></name>
      <t>In <xref target="RFC9396"/>, the request parameter <tt>authorization_details</tt> contains, in JSON
notation, an array of objects.  Each JSON object contains the data to
specify the authorization requirements for a certain type of
resource. This specification defines the format for each one of these objects
such that it conforms to <xref target="AUTHZEN"/> and <xref target="RFC9396"/>.</t>
      <t><xref target="AUTHZEN"/> groups JSON datastructures into 4 JSON objects:</t>
      <ul spacing="normal">
        <li>
          <t>subject: A Subject is the user or robotic principal about whom the Authorization API is being invoked. The Subject may be requesting access at the time the Authorization API is invoked.</t>
        </li>
        <li>
          <t>resource: A Resource is the target of an access request. It is a JSON (<xref target="RFC8259"/>) object that is constructed similar to a Subject entity.</t>
        </li>
        <li>
          <t>action: An Action is the type of access that the requester intends to perform. Action is a JSON (<xref target="RFC8259"/>) object that contains at least a name field.</t>
        </li>
        <li>
          <t>context: The Context object is a set of attributes that represent environmental or contextual data about the request such as time of day. It is a JSON (<xref target="RFC8259"/>) object.</t>
        </li>
      </ul>
      <t>Note: the aforementioned is indicative only. Always refer to <xref target="AUTHZEN"/> for the formal definition of each element.</t>
      <section anchor="authorizationdetails-structure">
        <name><tt>authorization_details</tt> Structure</name>
        <t>Because <strong>type</strong> is <bcp14>REQUIRED</bcp14>, the new <em>authorization_details</em> structure is as follows:</t>
        <ul spacing="normal">
          <li>
            <t>type:
An identifier for the authorization details type as a string. The value for this profile is "authzen_evaluation" or "authzen_evaluations", corresponding to the AuthZEN API being invoked. The value is case-insensitive. This field is <bcp14>REQUIRED</bcp14>.</t>
          </li>
          <li>
            <t>request:
this field contains the entire AuthZEN-conformant authorization request. This field is <bcp14>REQUIRED</bcp14>.</t>
          </li>
        </ul>
      </section>
      <section anchor="authorization-details-types">
        <name>Authorization Details Types</name>
        <t>This profile declares a new value for the <em>type</em> field as stated in the previous section. The value for this profile is "authzen_evaluation" or "authzen_evaluations". This indicates there will be another field called <tt>request</tt> and its value will be an AuthZEN-conformant authorization request.</t>
        <t>The "authzen_evaluation" or "authzen_evaluations" types also indicate that the authorization response should contain a <em>response</em> field containing the authorization response matching the request or requests. The <em>response</em> field will be an AuthZEN-conformant authorization response (see below).</t>
        <t>AuthZEN also defines a <em>type</em> field in the Subject and Resource categories. This field is meant to describe the type of user and/or resource required.</t>
      </section>
      <section anchor="common-data-fields">
        <name>Common Data Fields</name>
        <t>No field other than <tt>type</tt> and <tt>request</tt> shall be allowed in <tt>authorization_details</tt> when the type is <tt>authzen_evaluation</tt> or <tt>authzen_evaluations</tt>. All other fields such as the ones mentioned in <xref target="RFC9396"/> shall be inserted inside the AuthZEN request in the relevant object (Subject, Resource, Action, or Context).</t>
      </section>
    </section>
    <section anchor="authorization-request">
      <name>Authorization Request</name>
      <t>Conformant to <xref target="RFC9396"/>, the <tt>authorization_details</tt> authorization request parameter can be used to specify authorization requirements in all places where the scope parameter is used for the same purpose, examples include:</t>
      <ul spacing="normal">
        <li>
          <t>authorization requests as specified in <xref target="RFC6749"/></t>
        </li>
        <li>
          <t>device authorization requests as specified in <xref target="RFC8628"/></t>
        </li>
        <li>
          <t>backchannel authentication requests as defined in <xref target="OID-CIBA"/></t>
        </li>
      </ul>
      <t>Parameter encoding follows the exact same rules as <xref target="RFC9396"/>.</t>
      <section anchor="example-non-normative">
        <name>Example (non-normative)</name>
        <figure>
          <name>Source Authorization Request</name>
          <sourcecode type="language-json" markers="false"><![CDATA[
{
  "type": "authzen_evaluation",
  "request":
    {
        "subject": {
            "type": "user",
            "id": "Alice"
        },
        "resource": {
            "type": "payment_initiation",
            "id": "123",
            "recipient": {
                "creditorName": "Merchant A",
                "creditorAccount": {
                    "bic": "ABCIDEFFXXX",
                    "iban": "DE02100100109307118603"
                }
            }
        },
        "action": {
            "name": "transfer",
            "instructedAmount": {
                "currency": "EUR",
                "amount": "123.50"
            }
        },
        "context": {
            "remittance": "Ref Number Merchant"
        }
    }
}
]]></sourcecode>
        </figure>
      </section>
    </section>
    <section anchor="support-for-multiple-authorization-requests">
      <name>Support for Multiple Authorization Requests</name>
      <t><xref target="AUTHZEN"/> supports a profile that allows the expression of multiple authorization requests in a single JSON object. As a result, this
profile recommends the use of a single <tt>authorization_details</tt> object containing <em>boxcarred</em> requests as described in <xref target="BOXCAR"/> when
possible and the use of the <tt>authorization_details</tt> array otherwise.</t>
      <section anchor="example-non-normative-1">
        <name>Example (non-normative)</name>
        <t>This example is based on the one in <xref target="RFC9396"/> under section 3.  Authorization Request.</t>
        <sourcecode type="language-json"><![CDATA[
[
  {
    "type": "authzen_evaluations",
    "request":
    {
      "subject": {
        "id": "alice@acmecorp.com",
        "type": "user"
      },
      "resource":{
        "id": "123",
        "type": "account_information",
        "location": "https://example.com/accounts"
      },
      "evaluations": {
        "eval-1": {
          "action": {
            "name": "list_accounts"
          }
        },
        "eval-2": {
          "action": {
            "name": "read_balances"
          }
        },
        "eval-3": {
          "action": {
            "name": "read_transactions"
          }
        }
      }
    }
  },
  {
    "type": "authzen_evaluations",
    "request":
    {
      "subject": {
        "id": "alice@acmecorp.com",
        "type": "user"
      },
      "resource":{
        "id": "123",
        "type": "payment_initiation",
        "location": "https://example.com/payments",
        "recipient": {
            "creditorName": "Merchant A",
            "creditorAccount": {
                "bic": "ABCIDEFFXXX",
                "iban": "NL02RABO2228161411"
            }
        }
      },
      "context":{
        "remittance": "Ref Number Merchant"
      },
      "evaluations": {
        "eval-1": {
          "action": {
            "name": "initiate",
            "instructedAmount": {
            "currency": "EUR",
            "amount": "123.50"
            }
          }
        },
        "eval-2": {
          "action": {
            "name": "status"
          }
        },
        "eval-3": {
          "action": {
            "name": "cancel"
          }
        }
      }
    }
  }
]
]]></sourcecode>
      </section>
    </section>
    <section anchor="authorization-responses">
      <name>Authorization Responses</name>
      <t>Whereas <xref target="RFC9396"/> doesn't specify any extensions for <tt>authorization_details</tt> responses, <xref target="AUTHZEN"/> standardizes the responses expected from the PDP. An AuthZEN response is therefore expected for all AuthZEN requests. This response can be used by authorization clients directly or by the AS during token creation. In particular, authorization response can be used in conjunction with any user-consent flow.</t>
      <t>The new <em>authorization_details</em> response structure is as follows:</t>
      <ul spacing="normal">
        <li>
          <t>type:
The value of this field is expected to be "authzen_evaluation" for a single authorization request, or "authzen_evaluations" for multiple (Boxcarred) evalution requests. This field is <strong><bcp14>REQUIRED</bcp14></strong>.</t>
        </li>
        <li>
          <t>response:
This field contains the entire AuthZEN-conformant authorization response. This field is <strong><bcp14>REQUIRED</bcp14></strong>.</t>
        </li>
      </ul>
      <section anchor="single-response-example-non-normative">
        <name>Single-response Example (non-normative)</name>
        <figure>
          <name>Source Authorization Response</name>
          <sourcecode type="language-json" markers="false"><![CDATA[
[
  {
    "type": "authzen_evaluation",
    "response": {
        "decision": true
    }
  }
]
]]></sourcecode>
        </figure>
      </section>
      <section anchor="boxcarred-response-example-non-normative">
        <name>Boxcarred-response Example (non-normative)</name>
        <t>Using responses as described in <xref target="BOXCAR"/>, a response to the boxcarred example of the multi-authorization requests section above could be:</t>
        <figure>
          <name>Source Authorization Response</name>
          <sourcecode type="language-json" markers="false"><![CDATA[
[
  {
    "type": "authzen_evaluations",
    "response": {
      "evaluations": {
        "eval-1": {
          "decision": true
        },
        "eval-2": {
          "decision": false,
          "context": {
            "reason": "resource not found"
          }
        },
        "eval-3": {
          "decision": false,
          "context": {
            "reason": "Subject is a viewer of the resource"
          }
        }
      }
    }
  },
  {
    "type": "authzen_evaluations",
    "response": {
      "evaluations": {
        "eval-1": {
          "decision": true
        },
        "eval-2": {
          "decision": false,
        },
        "eval-3": {
          "decision": false,
            "context": {
              "error": {
                "status": 404,
                "message": "Resource not found"
            }
          }
        }
      }
    }
  }
]
]]></sourcecode>
        </figure>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The Security Considerations of <xref target="RFC9396"/>, <xref target="RFC6749"/>, <xref target="RFC7662"/>, and <xref target="RFC8414"/> all apply.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/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="RFC6749" target="https://www.rfc-editor.org/info/rfc6749">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
        <reference anchor="RFC7662" target="https://www.rfc-editor.org/info/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="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8259" target="https://www.rfc-editor.org/info/rfc8259">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <reference anchor="RFC8414" target="https://www.rfc-editor.org/info/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="RFC8628" target="https://www.rfc-editor.org/info/rfc8628">
          <front>
            <title>OAuth 2.0 Device Authorization Grant</title>
            <author fullname="W. Denniss" initials="W." surname="Denniss"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="August" year="2019"/>
            <abstract>
              <t>The OAuth 2.0 device authorization grant is designed for Internet- connected devices that either lack a browser to perform a user-agent- based authorization or are input constrained to the extent that requiring the user to input text in order to authenticate during the authorization flow is impractical. It enables OAuth clients on such devices (like smart TVs, media consoles, digital picture frames, and printers) to obtain user authorization to access protected resources by using a user agent on a separate device.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8628"/>
          <seriesInfo name="DOI" value="10.17487/RFC8628"/>
        </reference>
        <reference anchor="RFC9396" target="https://www.rfc-editor.org/info/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 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="AUTHZEN" target="https://openid.github.io/authzen/">
          <front>
            <title>OpenID AuthZEN Authorization API</title>
            <author initials="O." surname="Gazitt" fullname="Omri Gazitt">
              <organization>Aserto</organization>
            </author>
            <author initials="D." surname="Brossard" fullname="David Brossard">
              <organization>Axiomatics</organization>
            </author>
            <author initials="A." surname="Tulshibagwale" fullname="Atul Tulshibagwale">
              <organization>SGNL</organization>
            </author>
            <date year="2024" month="July"/>
          </front>
        </reference>
        <reference anchor="BOXCAR" target="https://openid.github.io/authzen/authorization-api-1_1#name-access-evaluations-api">
          <front>
            <title>OpenID AuthZEN Authorization API</title>
            <author initials="O." surname="Gazitt" fullname="Omri Gazitt">
              <organization>Aserto</organization>
            </author>
            <author initials="D." surname="Brossard" fullname="David Brossard">
              <organization>Axiomatics</organization>
            </author>
            <author initials="A." surname="Tulshibagwale" fullname="Atul Tulshibagwale">
              <organization>SGNL</organization>
            </author>
            <date year="2024" month="July"/>
          </front>
        </reference>
        <reference anchor="OID-CIBA" target="https://openid.net/specs/openid-client-initiated-backchannel-authentication-core-1_0.html">
          <front>
            <title>OpenID Connect Client-Initiated Backchannel Authentication Flow - Core 1.0</title>
            <author initials="G." surname="Fernandez" fullname="G. Fernandez">
              <organization/>
            </author>
            <author initials="F." surname="Walter" fullname="F. Walter">
              <organization/>
            </author>
            <author initials="A." surname="Nennker" fullname="A. Nennker">
              <organization/>
            </author>
            <author initials="D." surname="Tonge" fullname="D. Tonge">
              <organization/>
            </author>
            <author initials="B." surname="Campbell" fullname="B. Campbell">
              <organization/>
            </author>
            <date year="2021" month="September"/>
          </front>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="XACML" target="https://docs.oasis-open.org/xacml/3.0/xacml-3.0-core-spec-os-en.html">
          <front>
            <title>eXtensible Access Control Markup Language (XACML) Version 3.0, OASIS Standard</title>
            <author initials="E." surname="Rissanen" fullname="Erik Rissanen">
              <organization>Axiomatics AB</organization>
            </author>
            <date year="2013" month="January"/>
          </front>
        </reference>
        <reference anchor="ABAC" target="https://doi.org/10.6028/NIST.SP.800-162">
          <front>
            <title>Guide to Attribute Based Access Control (ABAC) Definition and Considerations - NIST Special Publication 800-162</title>
            <author initials="V." surname="Hu" fullname="Vincent Hu">
              <organization>NIST</organization>
            </author>
            <author initials="D." surname="Ferraiolo" fullname="David Ferraiolo">
              <organization>NIST</organization>
            </author>
            <date year="2014" month="January"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 469?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>We would like to thank members of the OpenID AuthZEN Working Group for their
   valuable feedback during the preparation of this specification. In particular
   our thanks go to Gerry Gebel and Allan Foster.</t>
      <t>We would also like to thank Justin Richer and Pieter Kasselman for their
   guidance on this spec and the overall IETF process.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
VHqzqqdqW3tLfdVyL8513pr6qxXS63uspY1qfVZHf2Wv1fYDH91vrUxf23Ol
mY/ru1run9J7JQmubseWZdvUi6UX6/qxlqMHe7JWGuv7spaJ1b3Zdbw39mnp
zWN7tSXqf0DbFqPuIJvNlLYV99ssTiW6ZPNNV7WINnZh+fK5fINVvnqylcTU
U18RsAiqYCMZplRvjYtroC3CgBstvyN4BuRiWxLaSpyqM09mVXKodjowet0O
1eeQgyVEt7UIWOpsfrTffN1QVgYmfIvZN6vd9mvTkm3AYEaeSyMeEQsJvfi7
KewX0DWsSnwGr6Zte5vs8DPbDVizLoMVUfYj2pq/gFodbE27uFpqjrcrbq9s
jOMYTF/xcAra0zP8mrJymVIJx368cKxSuF0mXb+mys9gY91t/qFR7ZIrVjb9
tUuf5TqhI3/bbr1p4qcsl+px8U2nV/f/h2NaLE16u7TlulBDO+08fScteHQ7
5DGGoifstPsbd6Jgbaeu3i0XcR74PAv/Fy3zgdvXhwzTLTf/ay5nz990d676
hxc7Ozsvevu9vV7vwYvZiozzpPpb7j7/YL/134r+BizyLffDNan9/lEC2zTZ
HxseQlRe/LSYsNG68YioqYC0rQVAC++xViuXICxSwiTfp0XZlyzos6LEfRO2
5tbatyzMVqmFWnx85e4x8lkIggS1xelDM3x3eXwZUPM7r6JdE0S6phQ2c0vr
8EoljutFt29s5KvLFe2wXsn6D4oiKGfDNF5g/T1c+IvxKNO2a4k3a3gfb7tv
tdv1Fa2b8r6ARcA/f8kSiz/oUxyULQZM7AJRi3wEADFvh61tAhctrcd0g4tm
of/0K2/65MK019eNPTh7deWQYyNG3Vrdp8PFOcB9dujB5HNGsypAt96Q2tz0
7dbNzbzBa8994ODfN3V4LakHdyUcOqDTd3K5P61GfyR6LKVod4dbjb7+28w2
/f2ZWOHxD9ZAlvZjiqDvWK6wRxzdfuxSOPiqKmHLVi2WmrsQyKuMHNG7eoFs
p7OiMvJwng/VPX62gt3doe0c/T4YflkNT0+OjVp7bAYqLSbVVJLf2jqaG4uN
8mZtorCYhTroW9LVt/NTuiPm7F6KOd4Rj3xusCjxjwbA/5PV+s1aWKcHJKm1
0isQq4MzB2yvu9cEVafCGPAnCyXXmtUa3PUQYvm94hcEbffnuLW/p/AZdsXr
ypd0W0Vn2T7iHyfebOVfUeDfId4QCuGzWbxwHfuz/nm/cdPyR2MTiI+JsnNd
5efyDX47j41oh97Cu0TNYxGNqZ5BASWE4UVUOS/I8r1wX9fG8s6FVp7csSn9
PVT+OV/t0/vqV/euOS/tnzCRU9DHgkJEyFKOiOytJDb3/YX48vfHNaBEFEFn
livDxgpZfA0GuYD/DrHjDlLtxxC22anCzxqC+rno1qt6uJ8y/AKEPkS3N1Ts
UlID/u/cGBFD5q+daZzJCDG1bRU5nvNWlcI/oQB1np1cn2L/Dj+4ADb+G0+/
X+urPgAA

-->

</rfc>
