<?xml version='1.0' encoding='utf-8'?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.22 (Ruby 2.6.10) -->
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?rfc tocindent="yes"?>
<?rfc strict="yes"?>
<?rfc compact="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-gnap-resource-servers-03" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.8.0 -->
  <front>
    <title>Grant Negotiation and Authorization Protocol Resource Server Connections</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-gnap-resource-servers-03"/>
    <author initials="J." surname="Richer" fullname="Justin Richer" role="editor">
      <organization>Bespoke Engineering</organization>
      <address>
        <email>ietf@justin.richer.org</email>
        <uri>https://bspk.io/</uri>
      </address>
    </author>
    <author initials="F." surname="Imbault" fullname="Fabien Imbault">
      <organization>acert.io</organization>
      <address>
        <email>fabien.imbault@acert.io</email>
        <uri>https://acert.io/</uri>
      </address>
    </author>
    <date year="2023" month="March" day="13"/>
    <area>Security</area>
    <workgroup>GNAP</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>GNAP defines a mechanism for delegating authorization to a
piece of software, and conveying that delegation to the software.
This extension defines methods for resource servers (RS) to communicate
with authorization servers (AS) in an interoperable fashion.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>The core GNAP protocol does not define any one specific mechanism
for the resource server (RS) to communicate with the authorization
server (AS), allowing the connection between these components
to be solved orthogonally to the core protocol's concerns. For example,
the RS and AS roles could be fulfilled by the same piece of software with
common storage, obviating the need for any connecting protocol. However,
it is often desirable to have the RS and AS communicate at runtime
for a variety of purposes, including allowing the RS to validate and
understand the rights and privileges associated with a grant of
access represented by an access token issued by the AS, or negotiating
the capabilities of either party. These types of
connections are particularly useful for connecting an AS and RS from
different vendors, allowing interoperable distributed deployments
of GNAP-protected systems.</t>
      <t>This specification defines several means for an RS and AS to
communicate these aspects with each other, including structured
access tokens and RS-facing APIs. This specification also discusses
methods for an RS to derive a downstream token for calling another
chained RS.</t>
      <t>The means of the authorization server issuing
the access token to the client instance and the means of the client instance
presenting the access token to the resource server are the subject of the
GNAP core protocol specification <xref target="GNAP"/>.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP&nbsp;14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <t>This document contains non-normative examples of partial and complete HTTP messages, JSON structures, URLs, query components, keys, and other elements. Some examples use a single trailing backslash <tt>\</tt> to indicate line wrapping for long values, as per <xref target="RFC8792"/>. The <tt>\</tt> character and leading spaces on wrapped lines are not part of the value.</t>
        <t>Terminology specific to GNAP is defined in the terminology section of the core specification <xref target="GNAP"/>, and provides definitions for the protocol roles: Authorization Server (AS), Client, Resource Server (RS), Resource Owner (RO), End-user; as well as the protocol elements: Attribute, Access Token, Grant, Privilege, Protected Resource, Right, Subject, Subject Information. The same definitions are used in this document.</t>
      </section>
    </section>
    <section anchor="structure">
      <name>Access Tokens</name>
      <t>Access tokens are a mechanism for an AS to provide a client instance limited access to an RS.
These access tokens are artifacts representing a particular set of access rights granted to
the client instance to act on behalf of the RO. While the format of access tokens varies in
different systems (see discussion in <xref target="token-format"/>), the concept of an access token is
consistent across all GNAP systems.</t>
      <section anchor="general-purpose-access-token-model">
        <name>General-purpose Access Token Model</name>
        <t>Access tokens represent a common set of aspects across different GNAP deployments. This is not intended to be
a universal or comprehensive list, but instead to provide guidance to implementors when developing
data structures and associated systems across a GNAP deployment. These data structures are communicated
between the AS and RS either by using a structured token or an API-like mechanism like token introspection.
This general-purpose data model does not assume either approach, and in fact both can be used together
to convey different pieces of information. Where possible, mappings to concrete data fields in common standards
understood by the RS are provided for each item in the model.</t>
        <section anchor="value">
          <name>Value</name>
          <t>All access tokens have a unique value. This is the string that is passed on the wire between parties.
The AS chooses the value, which can be structured as in <xref target="token-format"/> or unstructured. When the token is
structured, the token value also has a <em>format</em> known to the AS and RS, and the other items
in this token model are contained within the token's value in some fashion.
When the token is unstructured, the values are usually retrieved by the RS using a service
like token introspection described in <xref target="introspection"/>.</t>
          <t>The access token value is conveyed the <tt>value</tt> field of an <tt>access_token</tt> response from <xref section="3.2" sectionFormat="of" target="GNAP"/>.</t>
          <t>The format and content of the access token value is opaque to the client software.
While the client software needs to be able to carry and present the access token
value, the client software is never expected nor intended to be able to understand
the token value itself.</t>
        </section>
        <section anchor="issuer">
          <name>Issuer</name>
          <t>The access token is issued by the AS in a standard GNAP transaction. The AS will often
need to identify itself in order to recognize tokens that it has issued, particularly
in cases where tokens from multiple different AS's could be presented.</t>
          <t>This information is not usually conveyed directly to the client instance, since the client
instance should know this information based on where it receives the token from.</t>
          <t>In a <xref target="JWT"/> formatted token or a token introspection response, this corresponds to the <tt>iss</tt> claim.</t>
        </section>
        <section anchor="audience">
          <name>Audience</name>
          <t>The access token is intended for use at one or more RS's. The AS can identify those RS's
to allow each RS to ensure that the token is not receiving a token intended for someone else.
The AS and RS have to agree on the nature of any audience identifiers represented by the token,
but the URIs of the RS are a common pattern.</t>
          <t>In a <xref target="JWT"/> formatted token or token introspection response, this corresponds to the <tt>aud</tt> claim.</t>
          <t>In cases where more complex access is required, the <tt>location</tt> field of objects in the <tt>access</tt>
array can also convey audience information.
In such cases, the client instance might need to know the audience information in order to differentiate between
possible RS's to present the token to.</t>
        </section>
        <section anchor="key-binding">
          <name>Key Binding</name>
          <t>Access tokens in GNAP are bound to the client instance's registered or presented key, except in
cases where the access token is a bearer token. For all tokens bound to a key, the AS and RS need to
be able to identify which key the token is bound to, otherwise an attacker could substitute their
own key during presentation of the token. In the case of an asymmetric algorithm, the model for the 
AS and RS need only contain the public key, while the client instance will also need to know the private
key in order to present the token appropriately. In the case of a symmetric algorithm, all parties
will need to either know or be able to derive the shared key.</t>
          <t>The source of this key information can vary depending on circumstance and deployment. For example, an AS
could decide that all tokens issued to a client instance are always bound to that client instance's current key.
When the key needs to be dereferenced, the AS looks up the client instance to which the token was issued
and finds the key information there.
The AS could alternatively bind each token to a specific key that is managed separately from client instance
information. In such a case, the AS determines the key information directly. This approach allows the client
instance to use a different key for each request, or allows the AS to issue a key for the client instance
to use with the particular token.</t>
          <t>In all cases, the key binding also includes a proofing mechanism, along with any parameters needed for that
mechanism such as a signing or digest algorithm. If such information is not stored, an attacker could
present a token with a seemingly-valid key using an insecure and incorrect proofing mechanism.</t>
          <t>This value is conveyed to the client instance in the <tt>key</tt> field of the <tt>access_token</tt> response in <xref section="3.2" sectionFormat="of" target="GNAP"/>.
Since the common case is that the token is bound to the client instance's registered key, this field can be omitted in this case
since the client will be aware of its own key.</t>
          <t>In a <xref target="JWT"/> formatted token, this corresponds to the <tt>cnf</tt> (confirmation) claim. In a token introspection response, this corresponds to the <tt>key</tt> claim.</t>
          <t>In the case of a bearer token, all parties need to know that a token has no key bound to it, and will therefore
reject any attempts to use the bearer token with a key in an undefined way.</t>
        </section>
        <section anchor="flags">
          <name>Flags</name>
          <t>GNAP access tokens can have multiple data flags associated with them that indicate special
processing or considerations for the token. For example, whether the token is a bearer token,
or should be expected to be durable across grant updates.</t>
          <t>The client can request a set of flags in the <tt>access_token</tt> request in <xref target="GNAP"/>.</t>
          <t>These flags are conveyed from the AS to the client in the <tt>flags</tt> field of the <tt>access_token</tt> response in <xref section="3.2" sectionFormat="of" target="GNAP"/>.</t>
          <t>For token introspection, flags are returned in the <tt>flags</tt> field of the response.</t>
        </section>
        <section anchor="access-rights">
          <name>Access Rights</name>
          <t>Access tokens are tied to a limited set of access rights. These rights specify in some detail what the token
can be used for, how, and where. The internal structure of access rights are detailed in <xref section="8" sectionFormat="of" target="GNAP"/>.</t>
          <t>The access rights associated with an access token are calculated from the rights available to the client
instance making the request, the rights available to be approved by the RO, the rights actually approved
by the RO, and the rights corresponding to the RS in question. The rights for a specific access token
are a subset of the overall rights in a grant request.</t>
          <t>These rights are requested by the client instance in the <tt>access</tt> field of the <tt>access_token</tt> request in <xref section="2.1" sectionFormat="of" target="GNAP"/>.</t>
          <t>The rights associated with an issued access token are conveyed to the client instance in the <tt>access</tt> field of the <tt>access_token</tt> response in <xref section="3.2" sectionFormat="of" target="GNAP"/>.</t>
          <t>In token introspection responses, this corresponds to the <tt>access</tt> claim.</t>
        </section>
        <section anchor="time-validity-window">
          <name>Time Validity Window</name>
          <t>The access token can be limited to a certain time window outside of which it is no longer
valid for use at an RS. This window can be explicitly bounded by an expiration time and a
not-before time, or it could be calculated based on the issuance time of the token. For example,
an RS could decide that it will accept tokens for most calls within an hour of a token's
issuance, but only within five minutes of the token's issuance for certain high-value calls.</t>
          <t>Since access tokens could be revoked at any time for any reason outside of a client instance's control,
the client instance often does not know or concern itself with the validity time window of
an access token. However, this information can be made available to it using the <tt>expires_in</tt> field
of an access token response in <xref section="3.2" sectionFormat="of" target="GNAP"/>.</t>
          <t>The issuance time of the token is conveyed in the <tt>iat</tt> claim of a <xref target="JWT"/> formatted token or a token introspection response.</t>
          <t>The expiration time of a token, after which it is to be rejected, is conveyed in the <tt>exp</tt> claim of a <xref target="JWT"/> formatted token or a token introspection response.</t>
          <t>The starting time of a token's validity window, before which it is to be rejected, is conveyed in the <tt>nbf</tt> claim of a <xref target="JWT"/> formatted token or a token introspection response.</t>
        </section>
        <section anchor="token-identifier">
          <name>Token Identifier</name>
          <t>Individual access tokens often need a unique internal identifier to allow the AS to differentiate
between multiple separate tokens. This value of the token can often be used as the
identifier, but in some cases a separate identifier is used.</t>
          <t>This separate identifier can be conveyed in the <tt>jti</tt> claim of a <xref target="JWT"/> formatted token or a token introspection response.</t>
          <t>This identifier is not usually exposed to the client instance using the token, since the client
instance only needs to use the token by value.</t>
        </section>
        <section anchor="authorizing-resource-owner">
          <name>Authorizing Resource Owner</name>
          <t>Access tokens are approved on behalf of a resource owner (RO). The identity of this RO can be used by
the RS to determine exactly which resource to access, or which kinds of access to allow. For example,
an access token used to access identity information can hold a user identifier to allow the RS to
determine which profile information to return. The nature of this information is subject to agreement
by the AS and RS.</t>
          <t>This corresponds to the <tt>sub</tt> claim of a <xref target="JWT"/> formatted token or a token introspection response.</t>
          <t>The RO information is not generally returned to the client instance, and in many cases returning
this information to the client instance would be a privacy violation on the part of the AS. Since the
access token represents a specific delegated access, the client instance needs only to use the token
at its target RS. Following the profile example, the client instance does not need to know
the account identifier to get specific attributes about the account represented by the token.</t>
        </section>
        <section anchor="client-instance">
          <name>Client Instance</name>
          <t>Access tokens are issued to a specific client instance by the AS. The identity of this instance can
be used by the RS to allow specific kinds of access, or other attributes about the access token.
For example, an AS that binds all access tokens issued to a particular client instance to that
client instance's most recent key rotation would need to be able to look up the client instance
in order to find the key binding detail.</t>
          <t>This corresponds to the <tt>client_id</tt> claim of a <xref target="JWT"/> formatted token or the <tt>instance_id</tt> field of a token introspection response.</t>
          <t>The client is not normally informed of this information separately, since a client instance can
usually correctly assume that it is the client instance to which a token that
it receives was issued.</t>
        </section>
        <section anchor="label">
          <name>Label</name>
          <t>When multiple access tokens are requested or a client instance uses token labels, the parties
will need to keep track of which labels were applied to each individual token. Since labels can
be re-used across different grant requests, the token label alone is not sufficient to
uniquely identify a given access token in a system. However, within the context of a grant
request, these labels are required to be unique.</t>
          <t>A client instance can request a specific label using the <tt>label</tt> field of an <tt>access_token</tt> request in <xref section="2.1" sectionFormat="of" target="GNAP"/>.</t>
          <t>The AS can inform the client instance of a token's label using the <tt>label</tt> field of an <tt>access_token</tt> response in <xref section="3.2" sectionFormat="of" target="GNAP"/>.</t>
          <t>This corresponds to the <tt>label</tt> field of a token introspection response.</t>
        </section>
        <section anchor="parent-grant-request">
          <name>Parent Grant Request</name>
          <t>All access tokens are issued in the context of a specific grant request from a client instance. The
grant request itself represents a unique tuple of:</t>
          <ul spacing="normal">
            <li>The AS processing the grant request</li>
            <li>The client instance making the grant request</li>
            <li>The RO (or set of RO's) approving the grant request (or needing to approve it)</li>
            <li>The access rights granted by the RO</li>
            <li>The current state of the grant request, as defined in <xref section="1.5" sectionFormat="of" target="GNAP"/></li>
          </ul>
          <t>The AS can use this information to tie common information to a specific token. For instance,
instead of specifying a client instance for every issued access token for a grant, the AS
can store the client information in the grant itself and look it up by reference from the
access token.</t>
          <t>The AS can also use this information when a grant request is updated. For example, if the client
instance asks for a new access token from an existing grant, the AS can use this link to revoke
older non-durable access tokens that had been previously issued under the grant.</t>
          <t>A client instance will have its own model of an ongoing grant request, especially if that
grant request can be continued using the API defined in <xref section="5" sectionFormat="of" target="GNAP"/> where several
pieces of statefulness need to be kept in hand. The client instance might need to keep an
association with the grant request that issued the token in case the access token expires or
does not have sufficient access rights, so that the client instance can get a new access
token without having to restart the grant request process from scratch.</t>
          <t>Since the grant itself does not need to be identified in any of the protocol messages, GNAP
does not define a specific grant identifier to be conveyed between any parties in the protocol.
Only the AS needs to keep an explicit connection between an issued access token and the
parent grant that issued it.</t>
        </section>
        <section anchor="continuation-access-token">
          <name>Continuation Access Token</name>
          <t>When an access token is used for the grant continuation API defined in <xref section="5" sectionFormat="of" target="GNAP"/>,
the AS needs to be able to separate this access token from others usable at RS's. The AS can
do this through the use of a flag on the access token data structure, by using a special internal
access right, or any other means at its disposal.</t>
          <t>A client instance will need to store continuation access tokens separately from access tokens
used at the RS in order to keep them from being confused with each other and used at the
wrong endpoints.</t>
          <t>The client instance is given continuation access tokens only as part of the <tt>continue</tt> field
of the grant response in <xref section="3.1" sectionFormat="of" target="GNAP"/>.</t>
          <t>An RS should never see a continuation access token, so any attempts to process one should
fail.</t>
        </section>
      </section>
      <section anchor="token-format">
        <name>Access Token Formats</name>
        <t>When the AS issues an access token for use at an RS, the RS
needs to have some means of understanding what the access token is for
in order to determine how to respond to the request. The core GNAP
protocol makes neither assumptions nor demands on the format or contents
of the access token, and in fact, the token format and contents are opaque
to the client instance. However, such token formats can be the topic of agreements
between the AS and RS.</t>
        <t>Self-contained structured token formats allow for the conveyance
of information between the AS and RS without requiring the RS to
call the AS at runtime as described in <xref target="introspection"/>. Structured tokens
can also be used in combination with introspection, allowing the token itself
to carry one class of information and the introspection response to carry
another.</t>
        <t>Some token formats, such as Macaroons and Biscuits, allow for
the RS to derive sub-tokens without having to call the AS
as described in <xref target="token-chaining"/>.</t>
        <t>The supported token formats can be communicated dynamically at runtime
between the AS and RS in several places.</t>
        <ul spacing="normal">
          <li>The AS can declare its supported token formats as part of RS-facing discovery <xref target="discovery"/></li>
          <li>The RS can require a specific token format be used to access a registered resource set <xref target="rs-register-resource-handle"/></li>
          <li>The AS can return the token's format in an introspection response <xref target="introspection"/></li>
        </ul>
        <t>In all places where the token format is listed explicitly, it <bcp14>MUST</bcp14> be one of the registered
values in the GNAP Token Formats Registry <xref target="IANA-token-format"/>.</t>
      </section>
    </section>
    <section anchor="resource-server-facing-api">
      <name>Resource-Server-Facing API</name>
      <t>To facilitate runtime and dynamic connections, the AS can offer an
RS-Facing API consisting of one or more of the following optional
pieces.</t>
      <ul spacing="normal">
        <li>Discovery</li>
        <li>Introspection</li>
        <li>Token chaining</li>
        <li>Resource reference registration</li>
      </ul>
      <section anchor="discovery">
        <name>RS-facing AS Discovery</name>
        <t>A GNAP AS offering RS-facing services can publish its features on
a well-known discovery document using the URL <tt>.well-known/gnap-as-rs</tt> appended
to the grant request endpoint URL.</t>
        <t>The discovery response is a JSON document <xref target="RFC8259"/> consisting of a single JSON
object with the following fields:</t>
        <dl>
          <dt>introspection_endpoint (string):</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>. The URL of the endpoint offering introspection.
  The location <bcp14>MUST</bcp14> be a URL <xref target="RFC3986"/>
  with a scheme component that <bcp14>MUST</bcp14> be https, a host component, and optionally,
  port, path and query components and no fragment components.
  <xref target="introspection"/></t>
          </dd>
          <dt>token_formats_supported (array of strings):</dt>
          <dd>
            <t>A list of token formats supported by this AS. The values in this list
  <bcp14>MUST</bcp14> be registered in the GNAP Token Format Registry. <xref target="IANA-token-format"/></t>
          </dd>
          <dt>resource_registration_endpoint (string):</dt>
          <dd>
            <t>The URL of the endpoint offering resource registration.
  The location <bcp14>MUST</bcp14> be a URL <xref target="RFC3986"/>
  with a scheme component that <bcp14>MUST</bcp14> be https, a host component, and optionally,
  port, path and query components and no fragment components.
  <xref target="rs-register-resource-handle"/></t>
          </dd>
          <dt>grant_request_endpoint (string):</dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14>. The location of the AS's grant request endpoint, used by the RS
  to derive downstream access tokens.
  The location <bcp14>MUST</bcp14> be a URL <xref target="RFC3986"/>
  with a scheme component that <bcp14>MUST</bcp14> be https, a host component, and optionally,
  port, path and query components and no fragment components. This URL <bcp14>MUST</bcp14>
  be the same URL used by client instances in support of GNAP requests.
  <xref target="token-chaining"/></t>
          </dd>
          <dt>key_proofs_supported (array of strings)</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>. A list of the AS's supported key
  proofing mechanisms. The values of this list correspond to possible
  values of the <tt>proof</tt> field of the key section of the request.</t>
          </dd>
        </dl>
      </section>
      <section anchor="authentication">
        <name>Protecting RS requests to the AS</name>
        <t>Unless otherwise specified, the RS <bcp14>MUST</bcp14> protect its calls to the AS using any of the signature
methods defined by GNAP. This signing method <bcp14>MUST</bcp14> cover all of the appropriate
portions of the HTTP request message, including any body elements, tokens, or
headers required for functionality.</t>
        <t>The RS <bcp14>MAY</bcp14> present its keys by reference or by value in
a similar fashion to a client instance calling the AS in the core protocol
of GNAP, described in <xref target="GNAP"/>. In the protocols defined here,
this takes the form of the resource server identifying itself using a <tt>key</tt> field or
by passing an instance identifier directly.</t>
        <artwork><![CDATA[
"resource_server": {
    "key": {
        "proof": "httpsig",
        "jwk": {
            "kty": "EC",
            "crv": "secp256k1",
            "kid": "2021-07-06T20:22:03Z",
            "x": "-J9OJIZj4nmopZbQN7T8xv3sbeS5-f_vBNSy_EHnBZc",
            "y": "sjrS51pLtu3P4LUTVvyAIxRfDV_be2RYpI5_f-Yjivw"
        }
    }
}
]]></artwork>
        <t>or by reference:</t>
        <artwork><![CDATA[
"resource_server": "7C7C4AZ9KHRS6X63AJAO"
]]></artwork>
        <t>The AS <bcp14>MAY</bcp14> require an RS to pre-register its keys
or could allow calls from arbitrary keys in a trust-on-first-use
model.</t>
      </section>
      <section anchor="introspection">
        <name>Token Introspection</name>
        <t>The AS issues access tokens representing a set of delegated access rights
to be used at one or more RSs. The AS can offer an introspection service
to allow an RS to validate that a given access token:</t>
        <ul spacing="normal">
          <li>has been issued by the AS</li>
          <li>has not expired</li>
          <li>has not been revoked</li>
          <li>is appropriate for the RS identified in the call</li>
        </ul>
        <t>When the RS receives an access token, it can call the introspection
endpoint at the AS to get token information.</t>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="160" width="328" viewBox="0 0 328 160" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
              <path d="M 8,32 L 8,144" fill="none" stroke="black"/>
              <path d="M 80,32 L 80,144" fill="none" stroke="black"/>
              <path d="M 144,32 L 144,144" fill="none" stroke="black"/>
              <path d="M 200,32 L 200,144" fill="none" stroke="black"/>
              <path d="M 264,32 L 264,112" fill="none" stroke="black"/>
              <path d="M 320,32 L 320,112" fill="none" stroke="black"/>
              <path d="M 8,32 L 80,32" fill="none" stroke="black"/>
              <path d="M 144,32 L 200,32" fill="none" stroke="black"/>
              <path d="M 264,32 L 320,32" fill="none" stroke="black"/>
              <path d="M 80,48 L 104,48" fill="none" stroke="black"/>
              <path d="M 120,48 L 136,48" fill="none" stroke="black"/>
              <path d="M 200,64 L 224,64" fill="none" stroke="black"/>
              <path d="M 240,64 L 256,64" fill="none" stroke="black"/>
              <path d="M 208,96 L 224,96" fill="none" stroke="black"/>
              <path d="M 240,96 L 264,96" fill="none" stroke="black"/>
              <path d="M 264,112 L 320,112" fill="none" stroke="black"/>
              <path d="M 88,128 L 104,128" fill="none" stroke="black"/>
              <path d="M 120,128 L 144,128" fill="none" stroke="black"/>
              <path d="M 8,144 L 80,144" fill="none" stroke="black"/>
              <path d="M 144,144 L 200,144" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="264,64 252,58.4 252,69.6 " fill="black" transform="rotate(0,256,64)"/>
              <polygon class="arrowhead" points="216,96 204,90.4 204,101.6 " fill="black" transform="rotate(180,208,96)"/>
              <polygon class="arrowhead" points="144,48 132,42.4 132,53.6 " fill="black" transform="rotate(0,136,48)"/>
              <polygon class="arrowhead" points="96,128 84,122.4 84,133.6 " fill="black" transform="rotate(180,88,128)"/>
              <g class="text">
                <text x="44" y="52">Client</text>
                <text x="112" y="52">1</text>
                <text x="172" y="52">RS</text>
                <text x="292" y="52">AS</text>
                <text x="44" y="68">Instance</text>
                <text x="232" y="68">2</text>
                <text x="232" y="100">3</text>
                <text x="112" y="132">4</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
+--------+       +------+       +------+
| Client +--(1)->|  RS  |       |  AS  |
|Instance|       |      +--(2)->|      |
|        |       |      |       |      |
|        |       |      |<-(3)--+      |
|        |       |      |       +------+
|        |<-(4)--+      |
+--------+       +------+
]]></artwork>
        </artset>
        <ol spacing="normal" type="1"><li>The client instance calls the RS with its access token.</li>
          <li>The RS introspects the access token value at the AS.
 The RS signs the request with its own key (not the client instance's
 key or the token's key).</li>
          <li>The AS validates the access token value and the Resource Server's request
 and returns the introspection response for the token.</li>
          <li>The RS fulfills the request from the client instance.</li>
        </ol>
        <t>The RS signs the request with its own key and sends the value of the access
token as the body of the request as a JSON object with the following members:</t>
        <dl>
          <dt>access_token (string):</dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14>. The access token value presented to the RS by the client instance.</t>
          </dd>
          <dt>proof (string):</dt>
          <dd>
            <t><bcp14>RECOMMENDED</bcp14>. The proofing method used by the client instance to bind the token to the RS request.</t>
          </dd>
          <dt>resource_server (string or object):</dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14>. The identification used to authenticate the resource server making this call, either
  by value or by reference as described in <xref target="authentication"/>.</t>
          </dd>
          <dt>access (array of strings/objects):</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>. The minimum access rights required to fulfill the request. This <bcp14>MUST</bcp14> be in the
  format described in the Resource Access Rights section of <xref target="GNAP"/>.</t>
          </dd>
        </dl>
        <artwork><![CDATA[
POST /introspect HTTP/1.1
Host: server.example.com
Content-Type: application/json
Signature-Input: sig1=...
Signature: sig1=...
Digest: sha256=...

{
    "access_token": "OS9M2PMHKUR64TB8N6BW7OZB8CDFONP219RP1LT0",
    "proof": "httpsig",
    "resource_server": "7C7C4AZ9KHRS6X63AJAO"
}
]]></artwork>
        <t>The AS <bcp14>MUST</bcp14> validate the access token value and determine if the token is active. An
active access token is defined as a token that</t>
        <ul spacing="normal">
          <li>was issued by the processing AS,</li>
          <li>has not been revoked,</li>
          <li>has not expired, and</li>
          <li>is appropriate for presentation at the identified RS.</li>
        </ul>
        <t>The AS responds with a data structure describing the token's
current state and any information the RS would need to validate the
token's presentation, such as its intended proofing mechanism and key
material.</t>
        <dl>
          <dt>active (boolean):</dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14>. If <tt>true</tt>, the access token presented is active,
  as defined above. If any of the criteria for an active token
  are not true, or if the AS is unable to make a
  determination (such as the token is not found), the value is
  set to <tt>false</tt> and other fields are omitted.</t>
          </dd>
        </dl>
        <t>If the access token is active, additional fields from the single access token
response structure defined in <xref target="GNAP"/> are included. In
particular, these include the following:</t>
        <dl>
          <dt>access (array of strings/objects):</dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14>. The access rights associated with this access token. This <bcp14>MUST</bcp14> be in the
  format described in the Resource Access Rights section of <xref target="GNAP"/>.
  This array <bcp14>MAY</bcp14> be filtered or otherwise limited for consumption by the identified RS, including
  being an empty array.</t>
          </dd>
          <dt>key (object/string):</dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14> if the token is bound. The key bound to the access token, to allow the RS
  to validate the signature of the request from the client instance. If the access
  token is a bearer token, this <bcp14>MUST NOT</bcp14> be included.</t>
          </dd>
          <dt>flags (array of strings):</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>. The set of flags associated with the access token.</t>
          </dd>
          <dt>exp (integer):</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>. The timestamp after which this token is no longer valid.
  Expressed as a integer seconds from UNIX Epoch.</t>
          </dd>
          <dt>iat (integer):</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>. The timestamp at which this token was issued by the AS.
  Expressed as a integer seconds from UNIX Epoch.</t>
          </dd>
          <dt>nbf (integer):</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>. The timestamp before which this token is not valid.
  Expressed as a integer seconds from UNIX Epoch.</t>
          </dd>
          <dt>aud (string or array of strings):</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>. Identifiers for the resource servers this token can be accepted at.</t>
          </dd>
          <dt>sub (string):</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>. Identifier of the resource owner who authorized this token.</t>
          </dd>
          <dt>iss (string):</dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14>. Grant endpoint URL of the AS that issued this token.</t>
          </dd>
          <dt>instance_id (string):</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>. The instance identifier of the client instance that the token was issued to.</t>
          </dd>
        </dl>
        <t>The response <bcp14>MAY</bcp14> include any additional fields defined in an access
token response and <bcp14>MUST NOT</bcp14> include the access token <tt>value</tt> itself.</t>
        <artwork><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store

{
    "active": true,
    "access": [
        "dolphin-metadata", "some other thing"
    ],
    "key": {
        "proof": "httpsig",
        "jwk": {
                "kty": "RSA",
                "e": "AQAB",
                "kid": "xyz-1",
                "alg": "RS256",
                "n": "kOB5rR4Jv0GMeL...."
        }
    }
}
]]></artwork>
      </section>
      <section anchor="rs-register-resource-handle">
        <name>Registering a Resource Set</name>
        <t>If the RS needs to, it can post a set of resources as described in the Resource Access Rights section of
<xref target="GNAP"/> to the AS's resource registration endpoint along with information about
what the RS will need to validate the request.</t>
        <dl>
          <dt>access (array of objects/strings):</dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14>. The list of access rights associated with the request in the format described
  in the "Resource Access Rights" section of <xref target="GNAP"/>.</t>
          </dd>
          <dt>resource_server (string or object):</dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14>. The identification used to authenticate the resource server making this call, either
  by value or by reference as described in <xref target="authentication"/>.</t>
          </dd>
          <dt>token_format_required (string):</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>. The token format required to access the identified resource. If the field is omitted,
  the token format is at the discretion of the AS. If the AS does not support the requested
  token format, the AS <bcp14>MUST</bcp14> return an error to the RS.</t>
          </dd>
          <dt>token_introspection_required (boolean):</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>. If present and set to <tt>true</tt>, the RS expects to make a token introspection request as
  described in <xref target="introspection"/>. If absent or set to <tt>false</tt>, the RS does not anticipate needing
  to make an introspection request for tokens relating to this resource set.</t>
          </dd>
        </dl>
        <t>The RS <bcp14>MUST</bcp14> identify itself with its own key and sign the
request.</t>
        <artwork><![CDATA[
POST /resource HTTP/1.1
Host: server.example.com
Content-Type: application/json
Signature-Input: sig1=...
Signature: sig1=...
Digest: ...

{
    "access": [
        {
            "actions": [
                "read",
                "write",
                "dolphin"
            ],
            "locations": [
                "https://server.example.net/",
                "https://resource.local/other"
            ],
            "datatypes": [
                "metadata",
                "images"
            ]
        },
        "dolphin-metadata"
    ],
    "resource_server": "7C7C4AZ9KHRS6X63AJAO"

}
]]></artwork>
        <t>The AS responds with a reference appropriate to represent the
resources list that the RS presented in its request as well as
any additional information the RS might need in future requests.</t>
        <dl>
          <dt>resource_reference (string):</dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14>. A single string representing the list of resources registered in the request.
  The RS <bcp14>MAY</bcp14> make this handle available to a client instance as part of a
  discovery response as described in <xref target="GNAP"/> or as
  documentation to client software developers.</t>
          </dd>
          <dt>instance_id (string):</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>. An instance identifier that the RS can use to refer to itself in future calls to
  the AS, in lieu of sending its key by value.</t>
          </dd>
          <dt>introspection_endpoint (string):</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>. The introspection endpoint of this AS, used to allow the RS to perform
  token introspection. <xref target="introspection"/></t>
          </dd>
        </dl>
        <artwork><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store

{
    "resource_reference": "FWWIKYBQ6U56NL1"
}
]]></artwork>
      </section>
    </section>
    <section anchor="token-chaining">
      <name>Deriving a downstream token</name>
      <t>Some architectures require an RS to act as a client instance and use a derived access
token for a secondary RS. Since the RS is not the same entity that made the initial grant
request, the RS is not capable of referencing or modifying the existing grant. As such,
the RS needs to request or generate a new token access token for its use at the secondary RS.
This internal secondary token is issued in the context of the incoming access token.</t>
      <t>While it is possible to use a <xref target="structure">token format</xref> that allows for the
RS to generate its own secondary token,
the AS can allow the RS to request this secondary access token using the same
process used by the original client instance to request the primary access token. Since the
RS is acting as its own client instance from the perspective of GNAP, this process
uses the same grant endpoint, request structure, and response structure as a client
instance's request.</t>
      <artset>
        <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192" width="464" viewBox="0 0 464 192" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
            <path d="M 8,32 L 8,176" fill="none" stroke="black"/>
            <path d="M 80,32 L 80,176" fill="none" stroke="black"/>
            <path d="M 144,32 L 144,176" fill="none" stroke="black"/>
            <path d="M 208,32 L 208,176" fill="none" stroke="black"/>
            <path d="M 272,32 L 272,96" fill="none" stroke="black"/>
            <path d="M 328,32 L 328,96" fill="none" stroke="black"/>
            <path d="M 392,32 L 392,176" fill="none" stroke="black"/>
            <path d="M 456,32 L 456,176" fill="none" stroke="black"/>
            <path d="M 8,32 L 80,32" fill="none" stroke="black"/>
            <path d="M 144,32 L 208,32" fill="none" stroke="black"/>
            <path d="M 272,32 L 328,32" fill="none" stroke="black"/>
            <path d="M 392,32 L 456,32" fill="none" stroke="black"/>
            <path d="M 80,48 L 104,48" fill="none" stroke="black"/>
            <path d="M 120,48 L 136,48" fill="none" stroke="black"/>
            <path d="M 208,64 L 232,64" fill="none" stroke="black"/>
            <path d="M 248,64 L 264,64" fill="none" stroke="black"/>
            <path d="M 216,80 L 232,80" fill="none" stroke="black"/>
            <path d="M 248,80 L 272,80" fill="none" stroke="black"/>
            <path d="M 272,96 L 328,96" fill="none" stroke="black"/>
            <path d="M 208,128 L 304,128" fill="none" stroke="black"/>
            <path d="M 320,128 L 384,128" fill="none" stroke="black"/>
            <path d="M 216,144 L 304,144" fill="none" stroke="black"/>
            <path d="M 320,144 L 392,144" fill="none" stroke="black"/>
            <path d="M 88,160 L 104,160" fill="none" stroke="black"/>
            <path d="M 120,160 L 144,160" fill="none" stroke="black"/>
            <path d="M 8,176 L 80,176" fill="none" stroke="black"/>
            <path d="M 144,176 L 208,176" fill="none" stroke="black"/>
            <path d="M 392,176 L 456,176" fill="none" stroke="black"/>
            <polygon class="arrowhead" points="392,128 380,122.4 380,133.6 " fill="black" transform="rotate(0,384,128)"/>
            <polygon class="arrowhead" points="272,64 260,58.4 260,69.6 " fill="black" transform="rotate(0,264,64)"/>
            <polygon class="arrowhead" points="224,144 212,138.4 212,149.6 " fill="black" transform="rotate(180,216,144)"/>
            <polygon class="arrowhead" points="224,80 212,74.4 212,85.6 " fill="black" transform="rotate(180,216,80)"/>
            <polygon class="arrowhead" points="144,48 132,42.4 132,53.6 " fill="black" transform="rotate(0,136,48)"/>
            <polygon class="arrowhead" points="96,160 84,154.4 84,165.6 " fill="black" transform="rotate(180,88,160)"/>
            <g class="text">
              <text x="44" y="52">Client</text>
              <text x="112" y="52">1</text>
              <text x="176" y="52">RS1</text>
              <text x="300" y="52">AS</text>
              <text x="424" y="52">RS2</text>
              <text x="44" y="68">Instance</text>
              <text x="240" y="68">2</text>
              <text x="240" y="84">3</text>
              <text x="312" y="132">4</text>
              <text x="312" y="148">5</text>
              <text x="112" y="164">6</text>
            </g>
          </svg>
        </artwork>
        <artwork type="ascii-art"><![CDATA[
+--------+       +-------+       +------+       +-------+
| Client +--(1)->|  RS1  |       |  AS  |       |  RS2  |
|Instance|       |       +--(2)->|      |       |       |
|        |       |       |<-(3)--+      |       |       |
|        |       |       |       +------+       |       |
|        |       |       |                      |       |
|        |       |       +-----------(4)------->|       |
|        |       |       |<----------(5)--------+       |
|        |<-(6)--+       |                      |       |
+--------+       +-------+                      +-------+
]]></artwork>
      </artset>
      <ol spacing="normal" type="1"><li>The client instance calls RS1 with an access token.</li>
        <li>RS1 presents that token to the AS to get a derived token
 for use at RS2. RS1 indicates that it has no ability
 to interact with the RO. Note that
 RS1 signs its request with its own key, not the token's
 key or the client instance's key.</li>
        <li>The AS returns a derived token to RS1 for use at RS2.</li>
        <li>RS1 calls RS2 with the token from (3).</li>
        <li>RS2 fulfills the call from RS1.</li>
        <li>RS1 fulfills the call from the original client instance.</li>
      </ol>
      <t>If the RS needs to derive a token from one presented to it, it can
request one from the AS by making a token request as described in
<xref target="GNAP"/> and presenting the existing access token's
value in the "existing_access_token" field.</t>
      <t>Since the RS is acting as a client instance,
the RS <bcp14>MUST</bcp14> identify itself with its own key in the <tt>client</tt> field and sign the
request just as any client instance would, as described in <xref target="authentication"/>.</t>
      <artwork><![CDATA[
POST /tx HTTP/1.1
Host: server.example.com
Content-Type: application/json
Detached-JWS: ejy0...

{
    "access_token": {
        "access": [
            {
                "actions": [
                    "read",
                    "write",
                    "dolphin"
                ],
                "locations": [
                    "https://server.example.net/",
                    "https://resource.local/other"
                ],
                "datatypes": [
                    "metadata",
                    "images"
                ]
            },
            "dolphin-metadata"
        ]
    },
    "client": "7C7C4AZ9KHRS6X63AJAO",
    "existing_access_token": "OS9M2PMHKUR64TB8N6BW7OZB8CDFONP219RP1LT0"
}
]]></artwork>
      <t>The AS responds with a token for the downstream RS2 as described in
<xref target="GNAP"/>. The downstream RS2 could
repeat this process as necessary for calling further RS's.</t>
    </section>
    <section anchor="Acknowledgements">
      <name>Acknowledgements</name>
      <t>(TODO: the ACK section should probably be split between the documents)</t>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <t>IANA is requested to create the following registries.</t>
      <section anchor="IANA-token-format">
        <name>Token Formats Registry</name>
        <t>This document defines a GNAP token format, for which IANA is asked to create and maintain a new registry titled "GNAP Token Formats". Initial values for this registry are given in <xref target="IANA-token-format-contents"/>. Future assignments and modifications to existing assignment are to be made through the Expert Review registration policy <xref target="RFC8126"/>.</t>
        <t>The Designated Expert (DE) is expected to ensure that all registrations follow the template presented in <xref target="IANA-token-format-template"/>.
The DE is expected to ensure that the format's definition is sufficiently unique from other formats provided by existing parameters.
The DE is expected to ensure that the format's definition specifies the format of the access token in sufficient detail to allow for the AS and RS to be able to communicate the token information.</t>
        <section anchor="IANA-token-format-template">
          <name>Registry Template</name>
          <dl>
            <dt>Name</dt>
            <dd>
              <t>The name of the format.</t>
            </dd>
            <dt>Status</dt>
            <dd>
              <t>Whether or not the format is in active use. Possible values are Active and Deprecated.</t>
            </dd>
            <dt>Description</dt>
            <dd>
              <t>Human-readable description of the access token format.</t>
            </dd>
            <dt>Reference</dt>
            <dd>
              <t>The specification that defines the token.</t>
            </dd>
          </dl>
        </section>
        <section anchor="IANA-token-format-contents">
          <name>Initial Registry Contents</name>
          <table>
            <thead>
              <tr>
                <th align="left">Name</th>
                <th align="left">Status</th>
                <th align="left">Description</th>
                <th align="left">Reference</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>jwt-signed</tt></td>
                <td align="left">Active</td>
                <td align="left">JSON Web Token, signed with JWS</td>
                <td align="left">
                  <xref target="JWT"/></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>jwt-encrypted</tt></td>
                <td align="left">Active</td>
                <td align="left">JSON Web Token, encrypted with JWE</td>
                <td align="left">
                  <xref target="JWT"/></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>macaroon</tt></td>
                <td align="left">Active</td>
                <td align="left">Macaroon</td>
                <td align="left">&nbsp;</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>biscuit</tt></td>
                <td align="left">Active</td>
                <td align="left">Biscuit</td>
                <td align="left">&nbsp;</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>zcap</tt></td>
                <td align="left">Active</td>
                <td align="left">ZCAP</td>
                <td align="left">&nbsp;</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="IANA-token-introspection">
        <name>Token Introspection Registry</name>
        <t>This document defines GNAP token introspection, for which IANA is asked to create and maintain a new registry titled "GNAP Token Introspection". Initial values for this registry are given in <xref target="IANA-token-introspection-contents"/>. Future assignments and modifications to existing assignment are to be made through the Expert Review registration policy <xref target="RFC8126"/>.</t>
        <t>The Designated Expert (DE) is expected to ensure that all registrations follow the template presented in <xref target="IANA-token-introspection-template"/>.
The DE is expected to ensure that the claim's definition is sufficiently orthogonal to other claims defined in the registry so as avoid overlapping functionality.
The DE is expected to ensure that the claim's definition specifies the syntax and semantics of the claim in sufficient detail to allow for the AS and RS to be able to communicate the token values.</t>
        <section anchor="IANA-token-introspection-template">
          <name>Registry Template</name>
          <dl>
            <dt>Name</dt>
            <dd>
              <t>The name of the claim.</t>
            </dd>
            <dt>Type</dt>
            <dd>
              <t>The JSON data type of the claim value.</t>
            </dd>
            <dt>Reference</dt>
            <dd>
              <t>The specification that defines the token.</t>
            </dd>
          </dl>
        </section>
        <section anchor="IANA-token-introspection-contents">
          <name>Initial Registry Contents</name>
          <t>The table below contains the initial contents of the GNAP Token Introspection Registry.</t>
          <table>
            <thead>
              <tr>
                <th align="left">Name</th>
                <th align="left">Type</th>
                <th align="left">Reference</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">active</td>
                <td align="left">boolean</td>
                <td align="left">
                  <xref target="introspection"/> of This document</td>
              </tr>
              <tr>
                <td align="left">access</td>
                <td align="left">array of strings/objects</td>
                <td align="left">
                  <xref target="introspection"/> of This document</td>
              </tr>
              <tr>
                <td align="left">key</td>
                <td align="left">object/string</td>
                <td align="left">
                  <xref target="introspection"/> of This document</td>
              </tr>
              <tr>
                <td align="left">flags</td>
                <td align="left">array of strings</td>
                <td align="left">
                  <xref target="introspection"/> of This document</td>
              </tr>
              <tr>
                <td align="left">exp</td>
                <td align="left">integer</td>
                <td align="left">
                  <xref target="introspection"/> of This document</td>
              </tr>
              <tr>
                <td align="left">iat</td>
                <td align="left">integer</td>
                <td align="left">
                  <xref target="introspection"/> of This document</td>
              </tr>
              <tr>
                <td align="left">nbf</td>
                <td align="left">integer</td>
                <td align="left">
                  <xref target="introspection"/> of This document</td>
              </tr>
              <tr>
                <td align="left">aud</td>
                <td align="left">string or array of strings</td>
                <td align="left">
                  <xref target="introspection"/> of This document</td>
              </tr>
              <tr>
                <td align="left">sub</td>
                <td align="left">string</td>
                <td align="left">
                  <xref target="introspection"/> of This document</td>
              </tr>
              <tr>
                <td align="left">iss</td>
                <td align="left">string</td>
                <td align="left">
                  <xref target="introspection"/> of This document</td>
              </tr>
              <tr>
                <td align="left">instance_id</td>
                <td align="left">string</td>
                <td align="left">
                  <xref target="introspection"/> of This document</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="IANA-resource-registration-request">
        <name>Resource Set Registration Request Parameters</name>
        <t>This document defines a means to register a resource set for a GNAP AS, for which IANA is asked to create and maintain a new registry titled "GNAP Resource Set Registration Request Parameters". Initial values for this registry are given in <xref target="IANA-resource-registration-request-contents"/>. Future assignments and modifications to existing assignment are to be made through the Expert Review registration policy <xref target="RFC8126"/>.</t>
        <t>The Designated Expert (DE) is expected to ensure that all registrations follow the template presented in <xref target="IANA-resource-registration-request-template"/>.
The DE is expected to ensure that the parameter's definition is sufficiently orthogonal to other claims defined in the registry so as avoid overlapping functionality.
The DE is expected to ensure that the parameter's definition specifies the syntax and semantics of the claim in sufficient detail to allow for the AS and RS to be able to communicate the resource set.</t>
        <section anchor="IANA-resource-registration-request-template">
          <name>Registry Template</name>
          <dl>
            <dt>Name</dt>
            <dd>
              <t>The name of the parameter.</t>
            </dd>
            <dt>Type</dt>
            <dd>
              <t>The JSON data type of the parameter value.</t>
            </dd>
            <dt>Reference</dt>
            <dd>
              <t>The specification that defines the token.</t>
            </dd>
          </dl>
        </section>
        <section anchor="IANA-resource-registration-request-contents">
          <name>Initial Registry Contents</name>
          <t>The table below contains the initial contents of the GNAP Resource Set Registration Request Parameters Registry.</t>
          <table>
            <thead>
              <tr>
                <th align="left">Name</th>
                <th align="left">Type</th>
                <th align="left">Reference</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">access</td>
                <td align="left">array of strings/objects</td>
                <td align="left">
                  <xref target="rs-register-resource-handle"/> of This document</td>
              </tr>
              <tr>
                <td align="left">resource_server</td>
                <td align="left">string or object</td>
                <td align="left">
                  <xref target="rs-register-resource-handle"/> of This document</td>
              </tr>
              <tr>
                <td align="left">token_format_required</td>
                <td align="left">string</td>
                <td align="left">
                  <xref target="rs-register-resource-handle"/> of This document</td>
              </tr>
              <tr>
                <td align="left">token_introspection_required</td>
                <td align="left">boolean</td>
                <td align="left">
                  <xref target="rs-register-resource-handle"/> of This document</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="IANA-resource-registration-response">
        <name>Resource Set Registration Response Parameters</name>
        <t>This document defines a means to register a resource set for a GNAP AS, for which IANA is asked to create and maintain a new registry titled "GNAP Resource Set Registration Response Parameters". Initial values for this registry are given in <xref target="IANA-resource-registration-response-contents"/>. Future assignments and modifications to existing assignment are to be made through the Expert Review registration policy <xref target="RFC8126"/>.</t>
        <t>The Designated Expert (DE) is expected to ensure that all registrations follow the template presented in <xref target="IANA-resource-registration-response-template"/>.
The DE is expected to ensure that the parameter's definition is sufficiently orthogonal to other claims defined in the registry so as avoid overlapping functionality.
The DE is expected to ensure that the parameter's definition specifies the syntax and semantics of the claim in sufficient detail to allow for the AS and RS to be able to communicate the resource set.</t>
        <section anchor="IANA-resource-registration-response-template">
          <name>Registry Template</name>
          <dl>
            <dt>Name</dt>
            <dd>
              <t>The name of the parameter.</t>
            </dd>
            <dt>Type</dt>
            <dd>
              <t>The JSON data type of the parameter value.</t>
            </dd>
            <dt>Reference</dt>
            <dd>
              <t>The specification that defines the token.</t>
            </dd>
          </dl>
        </section>
        <section anchor="IANA-resource-registration-response-contents">
          <name>Initial Registry Contents</name>
          <t>The table below contains the initial contents of the GNAP Resource Set Registration Response Parameters Registry.</t>
          <table>
            <thead>
              <tr>
                <th align="left">Name</th>
                <th align="left">Type</th>
                <th align="left">Reference</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">resource_reference</td>
                <td align="left">string</td>
                <td align="left">
                  <xref target="rs-register-resource-handle"/> of This document</td>
              </tr>
              <tr>
                <td align="left">instance_id</td>
                <td align="left">string</td>
                <td align="left">
                  <xref target="rs-register-resource-handle"/> of This document</td>
              </tr>
              <tr>
                <td align="left">introspection_endpoint</td>
                <td align="left">string</td>
                <td align="left">
                  <xref target="rs-register-resource-handle"/> of This document</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="IANA-rs-discovery">
        <name>RS-Facing Discovery</name>
        <t>This document defines a means to for a GNAP AS to be discovered by a GNAP RS, for which IANA is asked to create and maintain a new registry titled "GNAP RS-Facing Discovery". Initial values for this registry are given in <xref target="IANA-rs-discovery-contents"/>. Future assignments and modifications to existing assignment are to be made through the Expert Review registration policy <xref target="RFC8126"/>.</t>
        <t>The Designated Expert (DE) is expected to ensure that all registrations follow the template presented in <xref target="IANA-rs-discovery-template"/>.
The DE is expected to ensure that the claim's definition is sufficiently orthogonal to other claims defined in the registry so as avoid overlapping functionality.
The DE is expected to ensure that the claim's definition specifies the syntax and semantics of the claim in sufficient detail to allow for RS to be able to communicate with the AS.</t>
        <section anchor="IANA-rs-discovery-template">
          <name>Registry Template</name>
          <dl>
            <dt>Name</dt>
            <dd>
              <t>The name of the parameter.</t>
            </dd>
            <dt>Type</dt>
            <dd>
              <t>The JSON data type of the parameter value.</t>
            </dd>
            <dt>Reference</dt>
            <dd>
              <t>The specification that defines the token.</t>
            </dd>
          </dl>
        </section>
        <section anchor="IANA-rs-discovery-contents">
          <name>Initial Registry Contents</name>
          <t>The table below contains the initial contents of the GNAP RS-Facing Discovery Registry.</t>
          <table>
            <thead>
              <tr>
                <th align="left">Name</th>
                <th align="left">Type</th>
                <th align="left">Reference</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">introspection_endpoint</td>
                <td align="left">string</td>
                <td align="left">
                  <xref target="discovery"/> of This document</td>
              </tr>
              <tr>
                <td align="left">token_formats_supported</td>
                <td align="left">array of strings</td>
                <td align="left">
                  <xref target="discovery"/> of This document</td>
              </tr>
              <tr>
                <td align="left">resource_registration_endpoint</td>
                <td align="left">string</td>
                <td align="left">
                  <xref target="discovery"/> of This document</td>
              </tr>
              <tr>
                <td align="left">grant_request_endpoint</td>
                <td align="left">string</td>
                <td align="left">
                  <xref target="discovery"/> of This document</td>
              </tr>
              <tr>
                <td align="left">key_proofs_supported</td>
                <td align="left">array of strings</td>
                <td align="left">
                  <xref target="discovery"/> of This document</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
    </section>
    <section anchor="Security">
      <name>Security Considerations</name>
      <t>[[ TBD: There are a lot of security considerations to add. ]]</t>
      <t>All requests have to be over TLS or equivalent as per <xref target="BCP195"/>. Many handles act as
shared secrets, though they can be combined with a requirement to
provide proof of a key as well.</t>
    </section>
    <section anchor="Privacy">
      <name>Privacy Considerations</name>
      <t>[[ TBD: There are a lot of privacy considerations to add. ]]</t>
      <t>When introspection is used, the AS is made aware of a particular token being used at a particular AS, and the
AS would not otherwise have insight into this.</t>
      <t>When the client instance receives information about the protecting AS from an RS, this can be used to
derive information about the resources being protected without releasing the resources themselves.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="BCP195" target="https://www.rfc-editor.org/info/bcp195">
          <front>
            <title>Recommendations for Secure Use of Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
            <author initials="Y." surname="Sheffer">
              <organization/>
            </author>
            <author initials="R." surname="Holz">
              <organization/>
            </author>
            <author initials="P." surname="Saint-Andre">
              <organization/>
            </author>
            <date year="2015" month="May"/>
          </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">
              <organization/>
            </author>
            <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="RFC3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee">
              <organization/>
            </author>
            <author fullname="R. Fielding" initials="R." surname="Fielding">
              <organization/>
            </author>
            <author fullname="L. Masinter" initials="L." surname="Masinter">
              <organization/>
            </author>
            <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="JWT">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones">
              <organization/>
            </author>
            <author fullname="J. Bradley" initials="J." surname="Bradley">
              <organization/>
            </author>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura">
              <organization/>
            </author>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties.  The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7519"/>
          <seriesInfo name="DOI" value="10.17487/RFC7519"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <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">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray">
              <organization/>
            </author>
            <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="GNAP">
          <front>
            <title>Grant Negotiation and Authorization Protocol</title>
            <author fullname="Justin Richer" initials="J." surname="Richer">
              <organization>Bespoke Engineering</organization>
            </author>
            <author fullname="Fabien Imbault" initials="F." surname="Imbault">
              <organization>acert.io</organization>
            </author>
            <date day="27" month="February" year="2023"/>
            <abstract>
              <t>   GNAP defines a mechanism for delegating authorization to a piece of
   software, and conveying the results and artifacts of that delegation
   to the software.  This delegation can include access to a set of APIs
   as well as subject information passed directly to the software.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-gnap-core-protocol-13"/>
        </reference>
        <reference anchor="RFC8792">
          <front>
            <title>Handling Long Lines in Content of Internet-Drafts and RFCs</title>
            <author fullname="K. Watsen" initials="K." surname="Watsen">
              <organization/>
            </author>
            <author fullname="E. Auerswald" initials="E." surname="Auerswald">
              <organization/>
            </author>
            <author fullname="A. Farrel" initials="A." surname="Farrel">
              <organization/>
            </author>
            <author fullname="Q. Wu" initials="Q." surname="Wu">
              <organization/>
            </author>
            <date month="June" year="2020"/>
            <abstract>
              <t>This document defines two strategies for handling long lines in width-bounded text content.  One strategy, called the "single backslash" strategy, is based on the historical use of a single backslash ('\') character to indicate where line-folding has occurred, with the continuation occurring with the first character that is not a space character (' ') on the next line.  The second strategy, called the "double backslash" strategy, extends the first strategy by adding a second backslash character to identify where the continuation begins and is thereby able to handle cases not supported by the first strategy.  Both strategies use a self-describing header enabling automated reconstitution of the original content.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8792"/>
          <seriesInfo name="DOI" value="10.17487/RFC8792"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton">
              <organization/>
            </author>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <author fullname="T. Narten" initials="T." surname="Narten">
              <organization/>
            </author>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters.  To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper.  For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed.  This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
      </references>
    </references>
    <section anchor="history">
      <name>Document History</name>
      <ul spacing="normal">
        <li>
          <t>-03
          </t>
          <ul spacing="normal">
            <li>Added token model.</li>
            <li>Added IANA sections.</li>
          </ul>
        </li>
        <li>
          <t>-02
          </t>
          <ul spacing="normal">
            <li>Editorial and formatting fixes.</li>
          </ul>
        </li>
        <li>
          <t>-01
          </t>
          <ul spacing="normal">
            <li>Better described RS authentication.</li>
            <li>Added access token format registry.</li>
            <li>Filled out introspection protocol.</li>
            <li>Filled out resource registration protocol.</li>
            <li>Expanded RS-facing discovery mechanisms.</li>
            <li>Moved client-facing RS response back to GNAP core document.</li>
          </ul>
        </li>
        <li>
          <t>-00
          </t>
          <ul spacing="normal">
            <li>Extracted resource server section.</li>
          </ul>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
