<?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.29 (Ruby 3.3.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ace-workflow-and-params-07" category="std" consensus="true" submissionType="IETF" updates="9200, 9201, 9202, 9203, 9431" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="New ACE Workflow and Parameters">Short Distribution Chain (SDC) Workflow and New OAuth Parameters for the Authentication and Authorization for Constrained Environments (ACE) Framework</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ace-workflow-and-params-07"/>
    <author initials="M." surname="Tiloca" fullname="Marco Tiloca">
      <organization>RISE AB</organization>
      <address>
        <postal>
          <street>Isafjordsgatan 22</street>
          <city>Kista</city>
          <code>16440</code>
          <country>Sweden</country>
        </postal>
        <email>marco.tiloca@ri.se</email>
      </address>
    </author>
    <author initials="G." surname="Selander" fullname="Göran Selander">
      <organization>Ericsson AB</organization>
      <address>
        <postal>
          <street>Torshamnsgatan 23</street>
          <city>Kista</city>
          <code>16440 Stockholm</code>
          <country>Sweden</country>
        </postal>
        <email>goran.selander@ericsson.com</email>
      </address>
    </author>
    <date year="2026" month="March" day="02"/>
    <area>Security</area>
    <workgroup>ACE Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 98?>

<t>This document updates the Authentication and Authorization for Constrained Environments framework (ACE, RFC 9200) as follows. (1) It defines the Short Distribution Chain (SDC) workflow that the authorization server (AS) can use for uploading an access token to a resource server on behalf of the client. (2) For the OAuth 2.0 token endpoint, it defines new parameters and encodings and it extends the semantics of the "ace_profile" parameter. (3) For the OAuth 2.0 authz-info endpoint, it defines a new parameter and its encoding. (4) It defines how the client and the AS can coordinate on the exchange of the client's and resource server's public authentication credentials, when those can be transported by value or identified by reference; this extends the semantics of the "rs_cnf" parameter for the OAuth 2.0 token endpoint, thus updating RFC 9201. (5) It extends the error handling at the AS, for which it defines a new error code. (6) It deprecates the original payload format of error responses conveying an error code, when CBOR is used to encode message payloads. For those responses, it defines a new payload format aligned with RFC 9290, thus updating in this respect also the profiles defined in RFC 9202, RFC 9203, and RFC 9431. (7) It amends two of the requirements on profiles of the framework.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-ace-workflow-and-params/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Authentication and Authorization for Constrained Environments (ace) Working Group mailing list (<eref target="mailto:ace@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ace/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/ace/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ace-wg/ace-workflow-and-params"/>.</t>
    </note>
  </front>
  <middle>
    <?line 102?>

<section anchor="intro">
      <name>Introduction</name>
      <t>The Authentication and Authorization for Constrained Environments (ACE) framework <xref target="RFC9200"/> defines an architecture to enforce access control for constrained devices. A client (C) requests an assertion of granted permissions from an authorization server (AS) in the form of an access token, then uploads the access token to the target resource server (RS), and finally accesses protected resources at the RS according to the permissions specified in the access token.</t>
      <t>The framework has as main building blocks the OAuth 2.0 framework <xref target="RFC6749"/>, the Constrained Application Protocol (CoAP) <xref target="RFC7252"/> for message transfer, Concise Binary Object Representation (CBOR) <xref target="RFC8949"/> for compact encoding, and CBOR Object Signing and Encryption (COSE) <xref target="RFC9052"/><xref target="RFC9053"/> for self-contained protection of access tokens. In addition, separate profile documents define in detail how the participants in the ACE architecture communicate, especially as to the security protocols that they use.</t>
      <t>The present document updates <xref target="RFC9200"/> as follows.</t>
      <ul spacing="normal">
        <li>
          <t>It defines the Short Distribution Chain (SDC) workflow for the ACE framework (see <xref target="sec-workflow"/> of the present document), according to which the AS uploads the access token to the RS on behalf of C and then informs C about the outcome. The SDC workflow is especially convenient in deployments where the communication leg between C and the RS is constrained, but the communication leg between the AS and the RS is not.  </t>
          <t>
The SDC workflow has no ambition to replace the original workflow defined in <xref target="RFC9200"/>. The AS can use one workflow or the other, depending, for example, on the specific RS for which an access token has been issued and the nature of the communication leg with that RS.</t>
        </li>
        <li>
          <t>It defines new parameters and encodings for the OAuth 2.0 token endpoint at the AS (see <xref target="sec-parameters"/> of the present document). These include:  </t>
          <ul spacing="normal">
            <li>
              <t>"token_upload", used by C to inform the AS that it opts in to use the SDC workflow and by the AS to inform C about the outcome of the token uploading to the RS per the SDC workflow.</t>
            </li>
            <li>
              <t>"token_hash", used by the AS to provide C with a token hash, which corresponds to an access token that the AS has issued for C and has successfully uploaded to the RS on behalf of C per the SDC workflow.</t>
            </li>
            <li>
              <t>"to_rs", used by C to provide the AS with information to relay to the RS, upon asking the AS to upload the access token to the RS per the SDC workflow. Its specific use with the OSCORE profile <xref target="RFC9203"/> is also described, as effectively enabling the use of the SDC workflow for that profile.</t>
            </li>
            <li>
              <t>"from_rs", used by the AS to provide C with information to relay from the RS, after the AS has successfully uploaded the access token to the RS per the SDC workflow. Its specific use with the OSCORE profile <xref target="RFC9203"/> is also described, as effectively enabling the use of the SDC workflow for that profile.</t>
            </li>
            <li>
              <t>"rs_cnf2", used by the AS to provide C with the public keys of the RSs in the group-audience for which the access token is issued (see <xref section="6.9" sectionFormat="of" target="RFC9200"/>).</t>
            </li>
            <li>
              <t>"audience2", used by the AS to provide C with the identifiers of the RSs in the group-audience for which the access token is issued.</t>
            </li>
            <li>
              <t>"anchor_cnf", used by the AS to provide C with the public keys of trust anchors, which C can use to validate the public key of an RS (e.g., as provided in the "rs_cnf" parameter defined in <xref target="RFC9201"/> or in the "rs_cnf2" parameter defined in the present document).</t>
            </li>
            <li>
              <t>"token_series_id", used by the AS to provide C with the binary identifier of a token series and by C to ask the AS for a new access token in the same token series that dynamically updates access rights. A corresponding access token claim, namely "token_series_id", is also defined.</t>
            </li>
            <li>
              <t>"updated_rights", used by the AS to provide the RS with an indication that an access token uploaded per the SDC workflow is not the first one of a new token series, i.e., that the AS has issued the access token for dynamically updating the access rights of C.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>It extends the semantics of the "ace_profile" parameter for the OAuth 2.0 token endpoint at the authorization server defined in <xref target="RFC9200"/> (see <xref target="sec-updated-ace-profile-parameter"/> of the present document).</t>
        </li>
        <li>
          <t>It defines how C and the AS can coordinate on the exchange of the client's and resource server's public authentication credentials, when those can be transported by value or identified by reference in the access token request and response (see <xref target="sec-coord-exchanged-cred"/> of the present document).  </t>
          <t>
This extends the semantics of the "rs_cnf" parameter for the OAuth 2.0 token endpoint defined in <xref section="3.2" sectionFormat="of" target="RFC9201"/>. Therefore, it updates <xref target="RFC9201"/>.</t>
        </li>
        <li>
          <t>It extends the error handling at the AS, for which it defines a new error code that the AS can use for error responses sent to the client, after failing to verify the proof of possession of the client's private key when processing an access token request (see <xref target="sec-error-failed-pop"/> of the present document).</t>
        </li>
        <li>
          <t>It deprecates the original payload format of error responses that convey an error code, when CBOR is used to encode message payloads in the ACE framework. For such error responses, it defines a new payload format according to the problem-details format specified in <xref target="RFC9290"/> (see <xref target="sec-updated-error-responses"/> of the present document).  </t>
          <t>
In this respect, it also updates the profiles of the ACE framework defined in <xref target="RFC9202"/>, <xref target="RFC9203"/>, and <xref target="RFC9431"/>.</t>
        </li>
        <li>
          <t>It amends two of the requirements on profiles of the ACE framework originally compiled in <xref section="C" sectionFormat="of" target="RFC9200"/> (see <xref target="sec-updated-requirements"/> of the present document).</t>
        </li>
      </ul>
      <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 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

<t>Readers are expected to be familiar with the terms and concepts related to the ACE framework for Authentication and Authorization <xref target="RFC9200"/><xref target="RFC9201"/>, as well as with terms and concepts related to CBOR Web Tokens (CWTs) <xref target="RFC8392"/> and CWT Confirmation Methods <xref target="RFC8747"/>.</t>
        <t>The terminology for entities in the considered architecture is defined in OAuth 2.0 <xref target="RFC6749"/>. In particular, this includes client (C), resource server (RS), and authorization server (AS).</t>
        <t>Readers are also expected to be familiar with the terms and concepts related to CoAP <xref target="RFC7252"/>, Concise Data Definition Language (CDDL) <xref target="RFC8610"/>, CBOR <xref target="RFC8949"/>, JavaScript Object Notation (JSON) <xref target="RFC8259"/>, and COSE <xref target="RFC9052"/><xref target="RFC9053"/>.</t>
        <t>Note that the term "endpoint" is used here following its OAuth definition <xref target="RFC6749"/>, aimed at denoting resources such as /token and /introspect at the AS, and /authz-info at the RS. The CoAP definition, which is "[a]n entity participating in the CoAP protocol" <xref target="RFC7252"/>, is not used in this document.</t>
        <t>Furthermore, this document uses the following terms.</t>
        <ul spacing="normal">
          <li>
            <t>Token series: a set of access tokens, all of which are bound to the same proof-of-possession (PoP) key and are sequentially issued by the same AS for the same pair (client, audience) per the same profile of ACE. A token series ends when the latest access token of that token series becomes invalid (e.g., when it expires or gets revoked).  </t>
            <t>
Profiles of ACE can provide their extended and specialized definition, e.g., by further taking into account the public authentication credentials of C and the RS.</t>
          </li>
          <li>
            <t>Token hash: identifier of an access token, in binary format encoding. The token hash has no relation with other access token identifiers possibly used, such as the 'cti' (CWT ID) claim of CWTs <xref target="RFC8392"/>.</t>
          </li>
        </ul>
        <t>CBOR <xref target="RFC8949"/> and CDDL <xref target="RFC8610"/> are used in this document. CDDL predefined type names, especially bstr for CBOR byte strings and tstr for CBOR text strings, are used extensively in this document.</t>
        <t>Examples throughout this document are expressed in CBOR diagnostic notation as defined in <xref section="8" sectionFormat="of" target="RFC8949"/> and <xref section="G" sectionFormat="of" target="RFC8610"/>. Diagnostic notation comments are often used to provide a textual representation of the parameters' keys and values.</t>
        <t>In the CBOR diagnostic notation used in this document, constructs of the form e'SOME_NAME' are replaced by the value assigned to SOME_NAME in the CDDL model shown in <xref target="fig-cddl-model"/> of <xref target="sec-cddl-model"/>. For example, {e'audience2' : ["rs1", "rs2"]} stands for {54 : ["rs1", "rs2"]}.</t>
        <t>Note to RFC Editor: Please delete the paragraph immediately preceding this note. Also, in the CBOR diagnostic notation used in this document, please replace the constructs of the form e'SOME_NAME' with the value assigned to SOME_NAME in the CDDL model shown in <xref target="fig-cddl-model"/> of <xref target="sec-cddl-model"/>. Finally, please delete this note.</t>
      </section>
    </section>
    <section anchor="sec-workflow">
      <name>The Short Distribution Chain (SDC) Workflow</name>
      <t>As defined in <xref section="4" sectionFormat="of" target="RFC9200"/>, the ACE framework relies on its basic protocol workflow shown in <xref target="fig-old-workflow"/>.</t>
      <t>That is, the client first sends an access token request to the token endpoint at the AS (Step A), specifying permissions that it seeks to obtain for accessing protected resources at the RS, possibly together with information on its own public authentication credential.</t>
      <t>Then, if the request is successfully verified, authenticated, and authorized, the AS replies to the client with an access token response (Step B), providing an access token and possibly additional parameters as access information including the actually granted permissions.</t>
      <t>Finally, the client uploads the access token to the RS and, consistently with the permissions granted according to the access token, accesses a resource at the RS (Step C), which replies with the result of the resource access (Step F). Details about what protocol the client and the RS use to establish a secure association, mutually authenticate, and secure their communications are defined in the specific profile of ACE used, e.g., <xref target="RFC9202"/><xref target="RFC9203"/><xref target="RFC9431"/><xref target="I-D.ietf-ace-edhoc-oscore-profile"/><xref target="I-D.ietf-ace-group-oscore-profile"/>.</t>
      <t>Further interactions are possible between the AS and the RS, i.e., the exchange of an introspection request and response where the AS validates a previously issued access token for the RS (Steps D and E).</t>
      <figure anchor="fig-old-workflow">
        <name>ACE Basic Protocol Workflow.</name>
        <artwork><![CDATA[
+--------+                               +---------------+
|        |---(A)-- Token Request ------->|               |
|        |                               | Authorization |
|        |<--(B)-- Access Token ---------|    Server     |
|        |    + Access Information       |               |
|        |    + Refresh Token (optional) +---------------+
|        |                                      ^ |
|        |            Introspection Request  (D)| |
| Client |                         Response     | |(E)
|        |            (optional exchange)       | |
|        |                                      | v
|        |                               +--------------+
|        |---(C)-- Token + Request ----->|              |
|        |                               |   Resource   |
|        |<--(F)-- Protected Resource ---|    Server    |
|        |                               |              |
+--------+                               +--------------+
]]></artwork>
      </figure>
      <t>This section defines the alternative Short Distribution Chain (SDC) workflow shown in <xref target="fig-new-workflow"/>, which <bcp14>MAY</bcp14> be supported by the AS. Unlike in the original workflow defined in <xref target="RFC9200"/>, the AS uploads the access token to the RS on behalf of the client and then informs the client about the outcome.</t>
      <t>If the token uploading has been successfully completed, the client typically does not need to obtain the access token from the AS altogether. That is, the client simply establishes a secure association with the RS (if that has not happened already) and then accesses protected resources at the RS, according to the permissions granted per the access token and specified by the AS as access information.</t>
      <figure anchor="fig-new-workflow">
        <name>ACE Short Distribution Chain (SDC) Workflow.</name>
        <artwork><![CDATA[
+--------+                               +----------------------------+
|        |---(A)-- Token Request ------->|                            |
|        |                               |       Authorization        |
|        |<--(B)-- Token Response -------|           Server           |
|        |    + Access Information       |                            |
|        |    + Access Token (optional)  +----------------------------+
|        |    + Refresh Token (optional)   ^ |         | ^
|        |                                 | |         | | Token-Upload
|        |        Introspection Request (D)| |     (A1)| |      Request
| Client |                     Response    | |(E)      | |(A2) Response
|        |        (optional exchange)      | |         | |
|        |                                 | v         v |
|        |                               +----------------------------+
|        |---(C1)-- Token (Optional) --->|                            |
|        |                               |                            |
|        |---(C2)-- Protected Request -->|          Resource          |
|        |                               |           Server           |
|        |<--(F)--- Protected Resource --|                            |
|        |                               |                            |
+--------+                               +----------------------------+
]]></artwork>
      </figure>
      <t>More specifically, the SDC workflow consists of the following steps.</t>
      <ul spacing="normal">
        <li>
          <t>Step A - Like in the original workflow, the client sends an access token request to the token endpoint at the AS, with the additional indication that it opts in to use the SDC workflow.  </t>
          <t>
As defined in <xref target="sec-token_upload"/>, this indication is provided to the AS by means of the "token_upload" parameter included in the access token request. The parameter also specifies what the AS has to return in the access token response at Step B, following a successful uploading of the access token from the AS to the RS.</t>
        </li>
        <li>
          <t>Step A1 - This new step consists of the AS uploading the access token to the RS, typically at the authz-info endpoint, just like the client does in the original workflow.</t>
        </li>
        <li>
          <t>Step A2 - This new step consists of the RS replying to the AS, following the uploading of the access token at Step A1.</t>
        </li>
        <li>
          <t>Step B - In the access token response, the AS informs the client that it has attempted to upload the access token to the RS, specifying the outcome of the token uploading based on the reply received from the RS at Step A2.  </t>
          <t>
As defined in <xref target="sec-token_upload"/>, this information is provided to the client by means of the "token_upload" parameter included in the access token response. If the token uploading has failed, the access token response also includes the access token. Otherwise, the access token response includes information consistent with what was specified by the "token_upload" parameter of the access token request at Step A.</t>
        </li>
        <li>
          <t>Step C1 - This step occurs only if the token uploading from the AS has failed, and the AS has provided the client with the access token at Step B. In such a case, the client uploads the access token to the RS just like at Step C of the original workflow.</t>
        </li>
        <li>
          <t>Step C2 - The client attempts to access a protected resource at the RS, according to the permissions granted per the access token and specified by the AS as access information at Step B.</t>
        </li>
        <li>
          <t>Steps D, E, and F are like in the original workflow.</t>
        </li>
      </ul>
      <t>The SDC workflow has no ambition to replace the original workflow defined in <xref target="RFC9200"/>. The AS can use one workflow or the other, depending, for example, on the specific RS for which the access token has been issued and the nature of the communication leg with that RS.</t>
      <t>When using the SDC workflow, all the communications between the AS and the RS <bcp14>MUST</bcp14> be protected, consistent with Sections <xref target="RFC9200" section="5.8.4.3" sectionFormat="bare"/> and <xref target="RFC9200" section="6.5" sectionFormat="bare"/> of <xref target="RFC9200"/>. Unlike in the original workflow, this results in protecting also the uploading of the first access token in a token series, i.e., in addition to the uploading of the following access tokens in the token series for dynamically updating the access rights of the client.</t>
      <t>The SDC workflow is also suitable for deployments where clients are not aware of details such as the need for access tokens to be issued by the AS and uploaded at the RS. Consistent with the intended access policies, the AS can be configured to automatically issue access tokens for such clients and upload those access tokens to the RS. This means that such clients do not have to request for an access token to be issued in the first place. That is, they can immediately send requests to the RS for accessing its protected resources, in accordance with the access tokens already issued and uploaded by the AS.</t>
      <section anchor="sec-as-token-upload">
        <name>Token Upload</name>
        <t>When using the original workflow defined in <xref target="RFC9200"/>, there are two typical cases concerning the upload of the access token to the RS from C.</t>
        <ul spacing="normal">
          <li>
            <t>The first case consists in the upload of the first access token in a token series. While details depend on the specific profile of ACE used, such an access token is typically uploaded through an unprotected POST request to the authz-info endpoint.</t>
          </li>
          <li>
            <t>The second case consists in the upload of an access token that is not the first in its token series, i.e., the AS has issued the access token for dynamically updating the access rights of C.  </t>
            <t>
The intent is also for C and the RS to preserve the same secure communication association that they currently share and that is associated with the token series in question.  </t>
            <t>
Such an access token is uploaded through a POST request to the authz-info endpoint, which is protected by means of the secure communication association that is shared between C and the RS. If the new access token is accepted by the RS, the new access token supersedes the one currently stored for the token series in question, and it becomes associated with the corresponding secure communication association that is shared between C and the RS.</t>
          </li>
        </ul>
        <t>However, if the AS uploads the access token to the RS on behalf of C as per the SDC workflow, the upload of the access token always rely on a protected POST request from the AS to the authz-info endpoint. In particular, the request is protected with the secure communication association shared between the AS and the RS.</t>
        <t>When receiving a POST request to the authz-info endpoint that is specifically protected through the secure communication association shared with the AS, the RS proceeds as follows. In particular, the RS leverages the explicit indication provided by the AS through the "updated_rights" parameter defined in <xref target="sec-updated_rights"/>, which is included in the request in the case of dynamic update of access rights.</t>
        <ul spacing="normal">
          <li>
            <t>If the POST request does not include the "updated_rights" parameter, the access token in question is the first one in a token series. Consequently, the RS processes the request and the access token therein like it would when receiving the request from C and according to the specific profile of ACE used.</t>
          </li>
          <li>
            <t>If the POST request includes the "updated_rights" parameter encoding a specific value, the access token in question is not the first one in a token series, i.e., it is meant to dynamically update the access rights of C, while preserving the same secure communication association that is shared between C and the RS. The processing of the POST request at the RS in this case is defined in <xref target="sec-updated_rights"/>.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="sec-parameters">
      <name>New Parameters</name>
      <t>The rest of this section defines a number of additional parameters and encodings for the OAuth 2.0 token endpoint at the AS (see <xref section="5.8" sectionFormat="of" target="RFC9200"/>) and for the OAuth 2.0 authz-info endpoint at the RS (see <xref section="5.10.1" sectionFormat="of" target="RFC9200"/>).</t>
      <section anchor="sec-token_upload">
        <name>token_upload</name>
        <t>This section defines the additional "token_upload" parameter. The parameter can be used in an access token request sent by C to the token endpoint at the AS (see <xref section="5.8.1" sectionFormat="of" target="RFC9200"/>), as well as in the access token response sent as a reply by the AS (see <xref section="5.8.2" sectionFormat="of" target="RFC9200"/>).</t>
        <ul spacing="normal">
          <li>
            <t>The "token_upload" parameter is <bcp14>OPTIONAL</bcp14> to include in an access token request. The presence of this parameter indicates that C opts in to use the SDC workflow defined in <xref target="sec-workflow"/>, whose actual use for uploading the issued access token to the RS is an exclusive prerogative of the AS.  </t>
            <t>
This parameter can take one of the following integer values. When the access token request is encoded in CBOR, those values are encoded as CBOR unsigned integers. The value of the parameter determines whether the follow-up access token response will have to include certain information, in case the AS has successfully uploaded the access token to the RS.  </t>
            <ul spacing="normal">
              <li>
                <t>0: The access token response will have to include neither the access token nor its corresponding token hash.</t>
              </li>
              <li>
                <t>1: The access token response will have to include the token hash corresponding to the access token, but not the access token.</t>
              </li>
              <li>
                <t>2: The access token response will have to include the access token, but not the corresponding token hash.</t>
              </li>
            </ul>
            <t>
If the AS supports the SDC workflow and the access token request includes the "token_upload" parameter with value 0, 1, or 2, then the AS <bcp14>MAY</bcp14> use the SDC workflow to upload the access token to the RS on behalf of C. Otherwise, following that access token request, the AS <bcp14>MUST NOT</bcp14> use the SDC workflow.</t>
          </li>
          <li>
            <t>The "token_upload" parameter <bcp14>MUST</bcp14> be included in an access token response, if both the following conditions apply. Otherwise, the "token_upload" parameter <bcp14>MUST NOT</bcp14> be included.  </t>
            <ul spacing="normal">
              <li>
                <t>The corresponding access token request included the "token_upload" parameter, with value 0, 1, or 2.</t>
              </li>
              <li>
                <t>The AS has attempted to upload the issued access token to the RS as per the SDC workflow, irrespective of the result of the token upload.</t>
              </li>
            </ul>
            <t>
When the "token_upload" parameter is included in the access token response, it can take one of the following integer values. When the access token response is encoded in CBOR, those values are encoded as CBOR unsigned integers.  </t>
            <ul spacing="normal">
              <li>
                <t>If the token upload to the RS was not successful, then the "token_upload" parameter <bcp14>MUST</bcp14> encode the value 1.      </t>
                <t>
In this case, the access token response <bcp14>MUST</bcp14> include the "access_token" parameter specifying the issued access token.</t>
              </li>
              <li>
                <t>If the token upload at the RS was successful, then the "token_upload" parameter <bcp14>MUST</bcp14> encode the value 0.      </t>
                <t>
In this case, the access token response can include additional parameters as defined below, depending on the value of the "token_upload" parameter in the corresponding access token request.      </t>
                <ul spacing="normal">
                  <li>
                    <t>If the "token_upload" parameter in the access token request specified the value 0, then the access token response <bcp14>MUST NOT</bcp14> include the "access_token" parameter and <bcp14>MUST NOT</bcp14> include the "token_hash" parameter defined in <xref target="sec-token_hash"/>.</t>
                  </li>
                  <li>
                    <t>If the "token_upload" parameter in the access token request specified the value 1, then the access token response <bcp14>MUST NOT</bcp14> include the "access_token" parameter and <bcp14>MUST</bcp14> include the "token_hash" parameter defined in <xref target="sec-token_hash"/>, specifying the hash corresponding to the issued access token and computed as defined in <xref target="sec-token_hash"/>.</t>
                  </li>
                  <li>
                    <t>If the "token_upload" parameter in the access token request specified the value 2, then the access token response <bcp14>MUST</bcp14> include the "access_token" parameter specifying the issued access token and <bcp14>MUST NOT</bcp14> include the "token_hash" parameter defined in <xref target="sec-token_hash"/>.</t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
        <section anchor="examples">
          <name>Examples</name>
          <t><xref target="fig-example-AS-to-C-token-upload"/> shows an example, with first an access token request from C to the AS and then an access token response from the AS to C, following the issue of an access token bound to a symmetric PoP key.</t>
          <t>The access token request specifies the "token_upload" parameter with value 0. That is, C indicates that it requires neither the access token nor the corresponding token hash from the AS, in case the AS successfully uploads the access token to the RS.</t>
          <t>The access token response specifies the "token_upload" parameter with value 0, which indicates that the AS has successfully uploaded the access token to the RS on behalf of C.</t>
          <t>Consistent with the value of the "token_upload" parameter in the access token request, the access token response includes neither the access token nor its corresponding token hash. The access token response also includes the "cnf" parameter specifying the symmetric PoP key bound to the access token.</t>
          <figure anchor="fig-example-AS-to-C-token-upload">
            <name>Example of Access Token Request-Response Exchange. Following a successful uploading of the access token from the AS to the RS, the access token response includes the "token_upload" parameter but not the access token, which is bound to a symmetric key and was uploaded to the RS by the AS.</name>
            <artwork><![CDATA[
   Access token request

   Header: POST (Code=0.02)
   Uri-Host: "as.example.com"
   Uri-Path: "token"
   Content-Format: 19 (application/ace+cbor)
   Payload:
   {
     / audience /  5 : "tempSensor4711",
     / scope /     9 : "read",
     e'token_upload' : 0
   }


   Access token response

   Header: Created (Code=2.01)
   Content-Format: 19 (application/ace+cbor)
   Max-Age: 3560
   Payload:
   {
      e'token_upload' : 0,
     / expires_in / 2 : 3600,
     / cnf /        8 : {
       / COSE_Key / 1 : {
         / kty / 1 : 4 / Symmetric /,
         / kid / 2 : h'3d027833fc6267ce',
         / k /  -1 : h'73657373696f6e6b6579'
       }
     }
   }
]]></artwork>
          </figure>
          <t><xref target="fig-example-AS-to-C-token-upload-success-ret-token"/> shows another example, with first an access token request from C to the AS and then an access token response from the AS to C, also following the issue of an access token bound to a symmetric PoP key.</t>
          <t>The access token request specifies the "token_upload" parameter with value 2. That is, C indicates that it requires the access token from the AS, even in case the AS successfully uploads the access token to the RS.</t>
          <t>The access token response specifies the "token_upload" parameter with value 0, which indicates that the AS has successfully uploaded the access token to the RS on behalf of C.</t>
          <t>Consistent with the value of the "token_upload" parameter in the access token request, the access token response includes the "access_token" parameter specifying the issued access token. The access token response also includes the "cnf" parameter specifying the symmetric PoP key bound to the access token.</t>
          <figure anchor="fig-example-AS-to-C-token-upload-success-ret-token">
            <name>Example of Access Token Request-Response Exchange. Following a successful uploading of the access token from the AS to the RS, the access token response includes the "token_upload" parameter as well as the "access_token" parameter conveying the access token, which is bound to a symmetric key and was uploaded to the RS by the AS.</name>
            <artwork><![CDATA[
   Access token request

   Header: POST (Code=0.02)
   Uri-Host: "as.example.com"
   Uri-Path: "token"
   Content-Format: 19 (application/ace+cbor)
   Payload:
   {
     / audience /  5 : "tempSensor4711",
     / scope /     9 : "read",
     e'token_upload' : 2
   }


   Access token response

   Header: Created (Code=2.01)
   Content-Format: 19 (application/ace+cbor)
   Max-Age: 3560
   Payload:
   {
        e'token_upload' : 0,
     / access_token / 1 : h'd08343a1...4819',
       / (full CWT elided for brevity;
          CWT contains the symmetric PoP key in the "cnf" claim) /
     / expires_in /   2 : 3600,
     / cnf /          8 : {
       / COSE_Key / 1 : {
         / kty / 1 : 4 / Symmetric /,
         / kid / 2 : h'3d027833fc6267ce',
         / k /  -1 : h'73657373696f6e6b6579'
       }
     }
   }
]]></artwork>
          </figure>
          <t><xref target="fig-example-AS-to-C-token-upload-failed"/> shows another example, with first an access token request from C to the AS and then an access token response from the AS to C, also following the issue of an access token bound to a symmetric PoP key.</t>
          <t>The access token request specifies the "token_upload" parameter with value 0. That is, C indicates that it requires neither the access token nor the corresponding token hash from the AS, in case the AS successfully uploads the access token to the RS.</t>
          <t>In this example, the access token response includes the "token_upload" parameter with value 1, which indicates that the AS has attempted and failed to upload the access token to the RS on behalf of C. The access token response also includes the "access_token" parameter specifying the issued access token, together with the "cnf" parameter specifying the symmetric PoP key bound to the access token.</t>
          <t>Note that, even though the AS has failed to upload the access token to the RS, the response code 2.01 (Created) is used when replying to C, since the access token request as such has been successfully processed at the AS, with the following issue of the access token.</t>
          <figure anchor="fig-example-AS-to-C-token-upload-failed">
            <name>Example of Access Token Request-Response Exchange. Following a failed uploading of the access token from the AS to the RS, the access token response includes the "token_upload" parameter with value 1 as well the "access_token" parameter conveying the access token bound to a symmetric key.</name>
            <artwork><![CDATA[
   Access token request

   Header: POST (Code=0.02)
   Uri-Host: "as.example.com"
   Uri-Path: "token"
   Content-Format: 19 (application/ace+cbor)
   Payload:
   {
     / audience /  5 : "tempSensor4711",
     / scope /     9 : "read",
     e'token_upload' : 0
   }


   Access token response

   Header: Created (Code=2.01)
   Content-Format: 19 (application/ace+cbor)
   Max-Age: 3560
   Payload:
   {
        e'token_upload' : 1,
     / access_token / 1 : h'd08343a1...4819',
       / (full CWT elided for brevity;
          CWT contains the symmetric PoP key in the "cnf" claim) /
     / expires_in /   2 : 3600,
     / cnf /          8 : {
       / COSE_Key / 1 : {
         / kty / 1 : 4 / Symmetric /,
         / kid / 2 : h'3d027833fc6267ce',
         / k /  -1 : h'73657373696f6e6b6579'
       }
     }
   }
]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="sec-token_hash">
        <name>token_hash</name>
        <t>This section defines the additional "token_hash" parameter. The parameter can be used in an access token response sent by the AS (see <xref section="5.8.2" sectionFormat="of" target="RFC9200"/>), in reply to an access token request sent to the token endpoint by C.</t>
        <t>The following refers to the base64url encoding without padding (see <xref section="5" sectionFormat="of" target="RFC4648"/>) and denotes as "binary representation" of a text string the corresponding UTF-8 encoding <xref target="RFC3629"/>, which is the implied charset used in JSON (see <xref section="8.1" sectionFormat="of" target="RFC8259"/>).</t>
        <t>The "token_hash" parameter <bcp14>MUST</bcp14> be included in an access token response, if both the following conditions apply. Otherwise, it <bcp14>MUST NOT</bcp14> be included.</t>
        <ul spacing="normal">
          <li>
            <t>The corresponding access token request included the "token_upload" parameter with value 1 (see <xref target="sec-token_upload"/>).</t>
          </li>
          <li>
            <t>The access token response includes the "token_upload" parameter with value 0. That is, the AS has successfully uploaded the issued access token to the RS, as per the SDC workflow.</t>
          </li>
        </ul>
        <t>This parameter specifies the token hash corresponding to the access token issued by the AS and successfully uploaded to the RS on behalf of C. In particular:</t>
        <ul spacing="normal">
          <li>
            <t>If the access token response is encoded in CBOR, then the "token_hash" parameter is a CBOR byte string, with value the token hash.</t>
          </li>
          <li>
            <t>If the access token response is encoded in JSON, then the "token_hash" parameter has as value the base64url-encoded text string that encodes the token hash.</t>
          </li>
        </ul>
        <t>The AS computes the token hash as defined in <xref target="sec-token-hash-output"/>.</t>
        <section anchor="sec-token-hash-output">
          <name>Computing the Token Hash</name>
          <t>The AS computes the token hash over the value that the "access_token" parameter would have had in the same access token response, if it was included therein and specifying the access token.</t>
          <t>In particular, the input HASH_INPUT over which the token hash is computed is determined as follows.</t>
          <ul spacing="normal">
            <li>
              <t>If the access token response is encoded in CBOR, then:  </t>
              <ul spacing="normal">
                <li>
                  <t>BYTES denotes the value of the CBOR byte string that would be conveyed by the "access_token" parameter, if this was included in the access token response.</t>
                </li>
                <li>
                  <t>HASH_INPUT_TEXT is the base64url-encoded text string that encodes BYTES.</t>
                </li>
                <li>
                  <t>HASH_INPUT is the binary representation of HASH_INPUT_TEXT.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>If the access token response is encoded in JSON, then HASH_INPUT is the binary representation of the text string conveyed by the "access_token" parameter, if this was included in the access token response.</t>
            </li>
          </ul>
          <t>Once determined HASH_INPUT as defined above, a hash value of HASH_INPUT is generated as per <xref section="6" sectionFormat="of" target="RFC6920"/>. The resulting output in binary format is used as the token hash. Note that the used binary format embeds the identifier of the used hash function in the first byte of the computed token hash.</t>
          <t>The specific hash function used <bcp14>MUST</bcp14> be collision resistant on byte strings and <bcp14>MUST</bcp14> be selected from the "Named Information Hash Algorithm Registry" <xref target="IANA.Hash.Algorithms"/>. Consistent with the compliance requirements in <xref section="2" sectionFormat="of" target="RFC6920"/>, the hash function sha-256 as specified in <xref target="SHA-256"/> is mandatory to implement.</t>
          <t>The computation of token hashes defined above is aligned with that specified for the computation of token hashes in <xref section="4" sectionFormat="of" target="RFC9770"/>, where they are used as identifiers of revoked access tokens. Therefore, given a hash algorithm and an access token, the AS computes the same corresponding token hash in either case.</t>
          <t>If the AS supports the method specified in <xref target="RFC9770"/>, then the AS <bcp14>MUST</bcp14> use the same hash algorithm for computing both the token hashes to include in the "token_hash" parameter and the token hashes computed per that method to identify revoked access tokens.</t>
        </section>
        <section anchor="example">
          <name>Example</name>
          <t><xref target="fig-example-AS-to-C-token-hash"/> shows an example, with first an access token request from C to the AS and then an access token response from the AS to C, following the issue of an access token bound to a symmetric PoP key.</t>
          <t>The access token request specifies the "token_upload" parameter with value 1. That is, C indicates that it requires the token hash corresponding to the access token from the AS, in case the AS successfully uploads the access token to the RS.</t>
          <t>The access token response specifies the "token_upload" parameter with value 0, which indicates that the AS has successfully uploaded the access token to the RS on behalf of C.</t>
          <t>Consistent with the value of the "token_upload" parameter in the access token request, the access token response includes the "token_hash" parameter, which specifies the token hash corresponding to the issued access token. The access token response also includes the "cnf" parameter specifying the symmetric PoP key bound to the access token.</t>
          <figure anchor="fig-example-AS-to-C-token-hash">
            <name>Example of Access Token Request-Response Exchange. Following a successful uploading of the access token from the AS to the RS, the access token response includes the "token_upload" parameter as well as the "token_hash" parameter. The "token_hash" parameter conveys the token hash corresponding to the issued access token, which is bound to a symmetric key and was uploaded to the RS by the AS.</name>
            <artwork><![CDATA[
   Access token request

   Header: POST (Code=0.02)
   Uri-Host: "as.example.com"
   Uri-Path: "token"
   Content-Format: 19 (application/ace+cbor)
   Payload:
   {
     / audience /  5 : "tempSensor4711",
     / scope /     9 : "read",
     e'token_upload' : 1
   }


   Access token response

   Header: Created (Code=2.01)
   Content-Format: 19 (application/ace+cbor)
   Max-Age: 3560
   Payload:
   {
      e'token_upload' : 0,
        e'token_hash' : h'0153269057e12fe2b74ba07c892560a2d7
                          53877eb62ff44d5a19002530ed97ffe4',
     / expires_in / 2 : 3600,
     / cnf /        8 : {
       / COSE_Key / 1 : {
         / kty / 1 : 4 / Symmetric /,
         / kid / 2 : h'3d027833fc6267ce',
         / k /  -1 : h'73657373696f6e6b6579'
       }
     }
   }
]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="sec-to_rs-from_rs">
        <name>to_rs and from_rs</name>
        <t>The rest of this section defines the additional parameters "to_rs" (see <xref target="sec-to_rs"/>) and "from_rs" (see <xref target="sec-from_rs"/>).</t>
        <t>The "to_rs" parameter can be used in an access token request sent by C to the token endpoint at the AS (see <xref section="5.8.1" sectionFormat="of" target="RFC9200"/>). The "from_rs" parameter can be used in an access token response sent by the AS (see <xref section="5.8.2" sectionFormat="of" target="RFC9200"/>), in reply to an access token request sent to the token endpoint by C.</t>
        <t>The semantics and encoding of the information specified in the two parameters depend on the specific profile of ACE and application used.</t>
        <t>For instance, when using the OSCORE profile <xref target="RFC9203"/>, C and RS can use the two parameters to exchange the expected nonces and identifiers via the AS. <xref target="sec-to_rs-from_rs-oscore-profile"/> describes how the two parameters are used when the OSCORE profile is used, thereby effectively enabling the use of the SDC workflow for that profile.</t>
        <section anchor="sec-to_rs">
          <name>to_rs</name>
          <t>The "to_rs" parameter is <bcp14>OPTIONAL</bcp14> to include in an access token request. The presence of this parameter indicates that:</t>
          <ul spacing="normal">
            <li>
              <t>C wishes the AS to relay the information specified therein to the RS, when the AS uploads the issued access token to the RS per the SDC workflow defined in <xref target="sec-workflow"/>; and</t>
            </li>
            <li>
              <t>C wishes the AS to relay information received from the RS to C, after having successfully uploaded the access token to the RS per the SDC workflow defined in <xref target="sec-workflow"/>.</t>
            </li>
          </ul>
          <t>The "to_rs" parameter <bcp14>MUST NOT</bcp14> be included if the "token_upload" parameter defined in <xref target="sec-token_upload"/> is not included in the access token request. Also, this parameter <bcp14>MUST NOT</bcp14> be included if the requested access token is not the first one of a new token series, i.e., if C is asking the AS for a new access token in the same token series that dynamically updates access rights.</t>
          <t>If C wishes that the AS relays information from the RS after successfully uploading the access token, but C does not have any information to be relayed to the RS, then the following applies:</t>
          <ul spacing="normal">
            <li>
              <t>When the access token request is encoded in CBOR, then the "to_rs" parameter <bcp14>MUST</bcp14> encode the CBOR simple value <tt>null</tt> (0xf6).</t>
            </li>
            <li>
              <t>When the access token request is encoded in JSON, then the "to_rs" parameter <bcp14>MUST</bcp14> have value <tt>null</tt>.</t>
            </li>
          </ul>
          <t>Otherwise, this parameter specifies the information that C wishes the AS to relay to the RS, when uploading the access token to the RS on behalf of C.</t>
          <t>Such information consists in what C would provide to the RS in addition to the access token, if the original workflow was used and a POST request encoded in CBOR was sent to the authz-info endpoint at the RS.</t>
          <t>When composing the parameter "to_rs", C considers the same information and <bcp14>MUST</bcp14> wrap it in a data structure STRUCT, by using the same method that it employs when using the original workflow. For example, with reference to the OSCORE profile of ACE <xref target="RFC9203"/>, such a method composes STRUCT as a CBOR map, which has to be sent as payload of a request with Content-Format "application/ace+cbor".</t>
          <t>After that, C builds a CBOR byte string STR, whose value is the binary representation of STRUCT.</t>
          <t>If and only if the request to the authz-info endpoint has to be sent with a Content-Format ct different from the one employed in the profile of ACE used, then C <bcp14>MUST</bcp14> tag the CBOR byte string STR (see <xref section="3.4" sectionFormat="of" target="RFC8949"/>). The tag number TN <bcp14>MUST</bcp14> be the one associated with the Content-Format ct and is determined according to the technique described in <xref section="B" sectionFormat="of" target="RFC9277"/>. For example, the Content-Format "application/ace+cbor" has Content-Format ID 19 and therefore has 1668546836 as its associated tag number.</t>
          <t>When the access token request is encoded in CBOR, the value of the "to_rs" parameter is the (tagged) CBOR byte string STR.</t>
          <t>When the access token request is encoded in JSON, the value of the "to_rs" parameter is a text string, which encodes the binary representation of the (tagged) CBOR byte string STR in base64url without padding (see <xref section="5" sectionFormat="of" target="RFC4648"/>).</t>
          <t>If the "to_rs" parameter is included, and it specifies a value different from the CBOR simple value <tt>null</tt> (0xf6) when the access token request is encoded in CBOR or from <tt>null</tt> when the access token request is encoded in JSON, then the AS proceeds as follows when composing the POST request to send to the authz-info endpoint on behalf of C:</t>
          <ol spacing="normal" type="1"><li>
              <t>The AS sets the Content-Format of the request to be either:  </t>
              <ul spacing="normal">
                <li>
                  <t>the one employed in the profile of ACE used, if the CBOR byte string STR conveyed by the "to_rs" parameter is not tagged; or, otherwise,</t>
                </li>
                <li>
                  <t>the one associated with the tag number TN of the tagged CBOR byte string STR conveyed by the "to_rs" parameter.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>The AS retrieves the structure STRUCT from STR and extends STRUCT by adding the issued access token, consistently with the profile of ACE used and the Content-Format determined at the previous step.  </t>
              <t>
For example, when using the OSCORE profile of ACE <xref target="RFC9203"/> and thus the Content-Format to use is "application/ace+cbor", STRUCT is a CBOR map and the access token is included therein as an entry that has: as map key, 1 encoded as a CBOR integer; as map value, a CBOR byte string whose value is the binary representation of the access token.</t>
            </li>
          </ol>
          <t>Clearly, performing the two steps above requires the AS to understand the structure STRUCT and its semantics. In turn, such an understanding builds on the AS supporting the profile of ACE used and the Content-Format to use as determined at Step 1. In the expected cases, the AS is realistically able to perform the two steps. If the AS finds itself unable to perform the two steps, then the AS would simply not upload the access token to the RS on behalf of C. In such a case, the AS replies to C with an access token response, which includes the "access_token" parameter specifying the issued access token and does not include the "token_upload" parameter (see <xref target="sec-token_upload"/>).</t>
          <t>Tagging the CBOR byte string as defined above ensures that the AS can relay the information specified in the "to_rs" parameter as intended by C, i.e., by sending to the authz-info endpoint a POST request that has the correct Content-Format and conveys the correct payload.</t>
          <t>As a case in point, using the DTLS profile of ACE <xref target="RFC9202"/> typically results in a POST request to the authz-info endpoint with Content-Format "application/cwt", as per <xref section="5.10" sectionFormat="of" target="RFC9200"/>. However, the DTLS profile of ACE can be combined with application profiles of <xref target="RFC9594"/>. In such a case, the POST request might convey both the access token and additional parameters from C (e.g., "sign_info" defined in <xref section="3.3" sectionFormat="of" target="RFC9594"/>), which requires the request to have Content-Format "application/ace+cbor" (see <xref section="3.3" sectionFormat="of" target="RFC9594"/>).</t>
        </section>
        <section anchor="sec-from_rs">
          <name>from_rs</name>
          <t>The "from_rs" parameter is <bcp14>OPTIONAL</bcp14> to include in an access token response. The presence of this parameter indicates that the AS is relaying the information specified therein to C, which the AS has received from the RS after having successfully uploaded the access token to the RS per the SDC workflow defined in <xref target="sec-workflow"/>.</t>
          <t>The "from_rs" parameter <bcp14>MUST</bcp14> be included in an access token response if both the following conditions apply. Otherwise, it <bcp14>MUST NOT</bcp14> be included.</t>
          <ul spacing="normal">
            <li>
              <t>The corresponding access token request included the "to_rs" parameter (see <xref target="sec-to_rs"/>).</t>
            </li>
            <li>
              <t>The access token response includes the "token_upload" parameter with value 0 (see <xref target="sec-token_upload"/>). That is, the AS has successfully uploaded the issued access token to the RS, as per the SDC workflow.</t>
            </li>
          </ul>
          <t>This parameter specifies the information that the AS is relaying to C from the RS, following the successful upload of the access token to the RS on behalf of C.</t>
          <t>Such information consists in what C would receive from the RS, if the original workflow was used and the RS sent a successful response encoded in CBOR, in reply to a POST request to the authz-info endpoint.</t>
          <t>When composing the parameter "from_rs", the AS builds a CBOR byte string STR as follows:</t>
          <ul spacing="normal">
            <li>
              <t>If the successful response from the authz-info endpoint does not include a payload, then STR is the empty CBOR byte string (0x40); otherwise,</t>
            </li>
            <li>
              <t>The value of STR is the payload of the successful response from the authz-info endpoint.  </t>
              <t>
If and only if the response specifies a given Content-Format ct (i.e., by means of the CoAP Content-Format Option), then the AS <bcp14>MUST</bcp14> tag the CBOR byte string STR (see <xref section="3.4" sectionFormat="of" target="RFC8949"/>). The tag number TN <bcp14>MUST</bcp14> be the one associated with the Content-Format ct and is determined according to the technique described in <xref section="B" sectionFormat="of" target="RFC9277"/>.</t>
            </li>
          </ul>
          <t>When the access token response is encoded in CBOR, the value of the "from_rs" parameter is the (tagged) CBOR byte string STR.</t>
          <t>When the access token response is encoded in JSON, the value of the "from_rs" parameter is a text string, which encodes the binary representation of the (tagged) CBOR byte string STR in base64url without padding (see <xref section="5" sectionFormat="of" target="RFC4648"/>).</t>
          <t>When C receives from the AS the access token response specifying the "token_upload" parameter with value 0, C retrieves from the "from_rs" parameter the information relayed by the AS, just like when retrieving that information from a successful response with Content-Format ct that C receives from the RS when using the original workflow.</t>
          <t>In particular, if the CBOR byte string STR is not the empty CBOR byte string (0x40), C considers as the Content-Format ct either:</t>
          <ul spacing="normal">
            <li>
              <t>the one employed in the profile of ACE used, if the CBOR byte string STR conveyed by the "from_rs" parameter is not tagged; or, otherwise,</t>
            </li>
            <li>
              <t>the one associated with the tag number TN of the tagged CBOR byte string STR conveyed by the "from_rs" parameter.</t>
            </li>
          </ul>
        </section>
        <section anchor="sec-to_rs-from_rs-oscore-profile">
          <name>Use with the OSCORE Profile</name>
          <t>This section describes how to use the parameters "to_rs" and "from_rs" when the OSCORE profile of ACE <xref target="RFC9203"/> is used.</t>
          <t>Within the access token request from C to the AS, the value of the "to_rs" parameter is a CBOR byte string, whose value is the binary representation of a CBOR map C_MAP composed of two fields:</t>
          <ul spacing="normal">
            <li>
              <t>A field with the CBOR integer 40 as map key and with value the nonce N1 generated by C, encoded a CBOR byte string (see <xref section="4.1" sectionFormat="of" target="RFC9203"/>).</t>
            </li>
            <li>
              <t>A field with the CBOR integer 43 as map key and with value the Recipient ID ID1 generated by C, encoded as a CBOR byte string (see <xref section="4.1" sectionFormat="of" target="RFC9203"/>).</t>
            </li>
          </ul>
          <t>When building the POST request for uploading the access token to the authz-info endpoint at the RS, the AS sets the Content-Format of the request to "application/ace+cbor" and composes the request payload as specified in <xref section="4.1" sectionFormat="of" target="RFC9203"/>. In particular, the CBOR map specified as payload includes:</t>
          <ul spacing="normal">
            <li>
              <t>The "access_token" field, with value the access token to upload encoded as a CBOR byte string and with the CBOR integer 1 as map key.</t>
            </li>
            <li>
              <t>The "nonce1" field, with value the same CBOR byte string specified by the field of C_MAP that has the CBOR integer 40 as map key.</t>
            </li>
            <li>
              <t>The "ace_client_recipientid" field, with value the same CBOR byte string specified by the field of C_MAP that has the CBOR integer 43 as map key.</t>
            </li>
          </ul>
          <t>If the upload of the access token to the RS from the AS is successful, the RS replies to the AS with a 2.01 (Created) response, which has Content-Format "application/ace+cbor" and whose payload is a CBOR map RS_MAP that includes:</t>
          <ul spacing="normal">
            <li>
              <t>The "nonce2" field, with value the nonce N2 generated by the RS, encoded as a CBOR byte string (see <xref section="4.2" sectionFormat="of" target="RFC9203"/>).</t>
            </li>
            <li>
              <t>The "ace_server_recipientid" field, with value the Recipient ID ID2 generated by the RS, encoded as a CBOR byte string (see <xref section="4.2" sectionFormat="of" target="RFC9203"/>).</t>
            </li>
          </ul>
          <t>Within the access token response from the AS to C, the value of the "from_rs" parameter is a CBOR byte string, whose value is the binary representation of a CBOR map composed of two elements:</t>
          <ul spacing="normal">
            <li>
              <t>A field with the CBOR integer 42 as map key and with value the same CBOR byte string specified by the "nonce2" field of RS_MAP.</t>
            </li>
            <li>
              <t>A field with the CBOR integer 44 as map key and with value the same CBOR byte string specified by the "ace_server_recipientid" field of RS_MAP.</t>
            </li>
          </ul>
          <t>When C receives from the AS the access token response specifying the "token_upload" parameter with value 0, C retrieves the nonce N2 and the Recipient ID ID2 from the "from_rs" parameter, just like when retrieving those from a 2.01 (Created) response received from the RS when using the original workflow.</t>
          <t><xref target="fig-example-AS-to-C-token-upload-oscore-profile"/> shows an example where the OSCORE profile is used, with first an access token request from C to the AS and then an access token response from the AS to C, following the issue of an access token bound to a symmetric PoP key.</t>
          <t>The access token request specifies the "token_upload" parameter with value 0. That is, C indicates that it requires neither the access token nor the corresponding token hash from the AS, in case the AS successfully uploads the access token to the RS. Also, the access token request includes the "to_rs" parameter, specifying the values of N1 = 0x018a278f7faab55a and ID1 = 0x1645 intended to the RS.</t>
          <t>The access token response specifies the "token_upload" parameter with value 0, which indicates that the AS has successfully uploaded the access token to the RS on behalf of C.</t>
          <t>Consistent with the value of the "token_upload" parameter in the access token request, the access token response includes neither the access token nor its corresponding token hash. The access token response also includes the "cnf" parameter specifying the symmetric PoP key bound to the access token, as an OSCORE_Input_Material object (see <xref section="3.2.1" sectionFormat="of" target="RFC9203"/>). Also, the access token response includes the "from_rs" parameter, specifying the values of N2 = 0x25a8991cd700ac01 and ID2 = 0x0000 received from the RS and intended to C.</t>
          <figure anchor="fig-example-AS-to-C-token-upload-oscore-profile">
            <name>Example of Access Token Request-Response Exchange where the OSCORE Profile is Used. Following a successful uploading of the access token from the AS to the RS, the access token response includes the "token_upload" parameter but not the access token, which is bound to a symmetric key and was uploaded to the RS by the AS. C and the RS exchange N1, ID1, N2, and ID2 via the AS by means of the parameters "to_rs" and "from_rs".</name>
            <artwork><![CDATA[
   Access token request

   Header: POST (Code=0.02)
   Uri-Host: "as.example.com"
   Uri-Path: "token"
   Content-Format: 19 (application/ace+cbor)
   Payload:
   {
     / audience /  5 : "tempSensor4711",
     / scope /     9 : "read",
     e'token_upload' : 0,
            e'to_rs' : h'a2182848018a278f7faab55a182b421645'
   }


   Access token response

   Header: Created (Code=2.01)
   Content-Format: 19 (application/ace+cbor)
   Max-Age: 3560
   Payload:
   {
        e'token_upload' : 0,
             e'from_rs' : h'a2182a4825a8991cd700ac01182c420000',
     / ace_profile / 38 : 2 / coap_oscore /,
       / expires_in / 2 : 3600,
       / cnf /        8 : {
         / osc / 4 : {
           / id / 0 : h'01',
           / ms / 2 : h'f9af838368e353e78888e1426bd94e6f'
         }
       }
   }
]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="sec-rs_cnf2-audience2">
        <name>rs_cnf2 and audience2</name>
        <t>This section defines the additional parameters "rs_cnf2" and "audience2". The two parameters can be used in an access token response sent by the AS (see <xref section="5.8.2" sectionFormat="of" target="RFC9200"/>), in reply to an access token request sent to the token endpoint by C.</t>
        <ul spacing="normal">
          <li>
            <t>The "rs_cnf2" parameter is <bcp14>OPTIONAL</bcp14> to include in an access token response, if the token type is "pop", asymmetric keys are used, and the access token is issued for an audience that includes multiple RSs (i.e., a group-audience, see <xref section="6.9" sectionFormat="of" target="RFC9200"/>). Otherwise, the "rs_cnf2" parameter <bcp14>MUST NOT</bcp14> be included.  </t>
            <t>
Also, the "rs_cnf2" parameter <bcp14>MUST NOT</bcp14> be included if the issued access token is not the first one of a new token series.  </t>
            <t>
This parameter specifies information about the public keys used by the RSs of the group-audience for authenticating themselves to C. It is used in case the binding between the public keys and the corresponding RS identities are not established through other means. If this parameter is absent, either the RSs in the group-audience do not use a public key, or the AS knows that the RSs can authenticate themselves to C without additional information.  </t>
            <t>
If included, this parameter <bcp14>MUST</bcp14> encode a non-empty array of N elements, where N is the number of RSs in the group-audience for which the access token is issued. The array is encoded as a CBOR array or a JSON array, depending on whether the access token response is encoded in CBOR or JSON, respectively.  </t>
            <t>
Each element of the array specifies the public key of an RS in the group-audience, and <bcp14>MUST</bcp14> follow the syntax and semantics of the "cnf" claim either from <xref section="3.1" sectionFormat="of" target="RFC8747"/> for CBOR-based interactions, or from <xref section="3.1" sectionFormat="of" target="RFC7800"/> for JSON-based interactions. It is not required that all the elements of the array rely on the same confirmation method.  </t>
            <t>
Any of the public keys may be provided together with information such as the public key algorithm and use (e.g., specified by means of the parameters "alg" and "key_ops" in a COSE_Key structure). If such information is specified, a client <bcp14>MUST NOT</bcp14> use a public key that is incompatible with the profile of ACE used or with the PoP algorithm according to that information. An RS <bcp14>MUST</bcp14> reject a proof of possession that relies on such a key and <bcp14>MUST</bcp14> reply with a response code equivalent to the CoAP code 4.00 (Bad Request).</t>
          </li>
          <li>
            <t>The "audience2" parameter is <bcp14>OPTIONAL</bcp14> to include in an access token response, and it specifies the identifiers of the RSs in the group-audience for which the access token is issued.  </t>
            <t>
The "audience2" parameter <bcp14>MUST NOT</bcp14> be included if the issued access token is not the first one of a new token series.  </t>
            <t>
If included, this parameter <bcp14>MUST</bcp14> encode a non-empty array of N elements, where N is the number of RSs in the group-audience for which the access token is issued. The array is encoded as a CBOR array or a JSON array, depending on whether the access token response is encoded in CBOR or JSON, respectively.  </t>
            <t>
Each element of the array in the "audience2" parameter specifies the identifier of an RS in the group-audience. The value of each element of the array is encoded as a CBOR text string or a JSON string, depending on whether the access token response is encoded in CBOR or JSON, respectively.  </t>
            <t>
The element of the array referring to an RS in the group-audience <bcp14>SHOULD</bcp14> have the same value that would be used to identify that RS through the "audience" parameter of an access token request to the AS (see <xref section="5.8.1" sectionFormat="of" target="RFC9200"/>) and of an access token response from the AS (see <xref section="5.8.2" sectionFormat="of" target="RFC9200"/>), when requesting and issuing an access token for that individual RS.  </t>
            <t>
The "audience2" parameter <bcp14>MUST</bcp14> be included if the "rs_cnf2" parameter is included. In such a case, the i-th element of the array in the "audience2" parameter <bcp14>MUST</bcp14> be the identifier of the RS whose public key is specified by the i-th element of the array in the "rs_cnf2" parameter.</t>
          </li>
        </ul>
        <section anchor="example-1">
          <name>Example</name>
          <t><xref target="fig-example-AS-to-C-rs_cnf2"/> shows an example of access token response from the AS to C, following the issue of an access token for a group-audience composed of two RSs, namely "rs1" and "rs2", and bound to C's public key as an asymmetric PoP key. The access token response includes the access token as well as the parameters "audience2" and "rs_cnf2". These parameters specify the public key of the two RSs as the intended recipients of the access token and the identifiers of those two RSs, respectively.</t>
          <figure anchor="fig-example-AS-to-C-rs_cnf2">
            <name>Example of access token response with an access token bound to an asymmetric key, using the parameters "audience2" and "rs_cnf2".</name>
            <artwork><![CDATA[
   Access token response

   Header: Created (Code=2.01)
   Content-Format: 19 (application/ace+cbor)
   Max-Age: 3600
   Payload:
   {
     / access_token / 1 : b64'SlAV32hk...12',
       / (full CWT elided for brevity;
          CWT contains the client's RPK in the "cnf" claim) /
     / expires_in /   2 : 3600,
           e'audience2' : ["rs1", "rs2"],
             e'rs_cnf2' : [
               {
                 / COSE_Key / 1 : {
                   / kty /  1 : 2 / EC2 /,
                   / crv / -1 : 1 / P-256 /,
                   / x /   -2 : h'bbc34960526ea4d32e940cad2a234148
                                  ddc21791a12afbcbac93622046dd44f0',
                   / y /   -3 : h'4519e257236b2a0ce2023f0931f1f386
                                  ca7afda64fcde0108c224c51eabf6072'
                 }
               },
               {
                 / COSE_Key / 1 : {
                   / kty /  1 : 2 / EC2 /,
                   / crv / -1 : 1 / P-256 /,
                   / x /   -2 : h'ac75e9ece3e50bfc8ed6039988952240
                                  5c47bf16df96660a41298cb4307f7eb6',
                   / y /   -3 : h'6e5de611388a4b8a8211334ac7d37ecb
                                  52a387d257e6db3c2a93df21ff3affc8'
                 }
               }
             ]
   }
]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="sec-anchor_cnf">
        <name>anchor_cnf</name>
        <t>This section defines the additional "anchor_cnf" parameter. The parameter can be used in an access token response sent by the AS (see <xref section="5.8.2" sectionFormat="of" target="RFC9200"/>), in reply to an access token request sent to the token endpoint by C.</t>
        <t>The "anchor_cnf" parameter is <bcp14>OPTIONAL</bcp14> to include in an access token response, if the token type is "pop" and asymmetric keys are used. Otherwise, the "anchor_cnf" parameter <bcp14>MUST NOT</bcp14> be included.</t>
        <t>Also, the "anchor_cnf" parameter <bcp14>MUST NOT</bcp14> be included if the issued access token is not the first one of a new token series.</t>
        <t>This parameter specifies information about the public keys of trust anchors, which C can use to validate the public key of the RS/RSs included in the audience for which the access token is issued. This parameter can be used when the access token is issued for an audience including one RS or multiple RSs.</t>
        <t>If this parameter is absent, either the RS/RSs in the audience do not use a public key, or the AS knows that C can validate the public key of such RS/RSs without additional information (e.g., C has already obtained the required public keys of the involved trust anchors from the AS or through other means).</t>
        <t>If included, this parameter <bcp14>MUST</bcp14> encode a non-empty array that <bcp14>MUST</bcp14> be treated as a set, i.e., the order of its elements has no meaning. Each element of the array specifies the public key of one trust anchor, which can be used to validate the public key of at least one RS included in the audience for which the access token is issued. The array is encoded as a CBOR array or a JSON array, depending on whether the access token response is encoded in CBOR or JSON, respectively.</t>
        <t>Each element of the array <bcp14>MUST</bcp14> follow the syntax and semantics of the "cnf" claim either from <xref section="3.1" sectionFormat="of" target="RFC8747"/> for CBOR-based interactions, or from <xref section="3.1" sectionFormat="of" target="RFC7800"/> for JSON-based interactions. It is not required that all the elements of the array rely on the same confirmation method.</t>
        <t>Any of the public keys conveyed in the "anchor_cnf" parameter may be provided together with information such as the public key algorithm and use (e.g., specified by means of the parameters "alg" and "key_ops" in a COSE_Key structure). If such information is specified, a client <bcp14>MUST NOT</bcp14> use a public key that is incompatible with the profile of ACE used or with the public keys to validate and the way to validate those.</t>
        <t>The presence of this parameter does not require that the access token response also includes the "rs_cnf" parameter defined in <xref target="RFC9201"/> or the "rs_cnf2" parameter defined in <xref target="sec-rs_cnf2-audience2"/> of the present document. That is, C may be able to obtain the public keys of the RS/RSs for which the access token is issued through other means.</t>
        <t>When the access token response includes both the "anchor_cnf" parameter and the "audience2" parameter defined in <xref target="sec-rs_cnf2-audience2"/>, then C <bcp14>MUST</bcp14> make sure that a public key PK_RS is associated with an RS identified by an element of "audience2", before using any of the public keys specified in "anchor_cnf" to validate PK_RS.</t>
        <t>When the access token response includes the "anchor_cnf" parameter but not the "audience2" parameter, then C can use any of the public keys specified in "anchor_cnf" to validate the public key PK_RS of any RS in the targeted audience. This allows C to use the access token with an RS that is deployed later on as part of the same audience, which is particularly useful in the case of a group-audience.</t>
        <section anchor="example-2">
          <name>Example</name>
          <t><xref target="fig-example-AS-to-C-anchor_cnf"/> shows an example of access token response from the AS to C, following the issue of an access token for a group-audience and bound to C's public key as an asymmetric PoP key.</t>
          <t>The identifier of the group-audience was specified by the "audience" parameter of the access token request to the AS, is specified by the "aud" claim of the issued access token, and is not repeated in the access token response from the AS.</t>
          <t>The access token response includes the "anchor_cnf" parameter. This specifies the public key of a trust anchor that C can use to validate the public keys of any RS with which the access token is going to be used. By means of the CWT confirmation method "x5chain" defined in <xref target="I-D.ietf-ace-edhoc-oscore-profile"/>, the public key of the trust anchor is here conveyed within an X.509 certificate <xref target="RFC5280"/> used as the public authentication credential for that trust anchor.</t>
          <figure anchor="fig-example-AS-to-C-anchor_cnf">
            <name>Example of Access Token Response with an access token bound to an asymmetric key, using the "anchor_cnf" parameter.</name>
            <artwork><![CDATA[
   Access token response

   Header: Created (Code=2.01)
   Content-Format: 19 (application/ace+cbor)
   Max-Age: 3600
   Payload:
   {
     / access_token / 1 : b64'SlAV32hk...12',
       / (full CWT elided for brevity;
          CWT contains the client's RPK in the "cnf" claim) /
     / expires_in /   2 : 3600,
          e'anchor_cnf' : [
            {
              e'x5chain' : h'308201363081dea003020102020301f50d30
                             0a06082a8648ce3d04030230163114301206
                             035504030c0b524643207465737420434130
                             1e170d3230303130313030303030305a170d
                             3231303230323030303030305a3022312030
                             1e06035504030c1730312d32332d34352d46
                             462d46452d36372d38392d41423059301306
                             072a8648ce3d020106082a8648ce3d030107
                             03420004b1216ab96e5b3b3340f5bdf02e69
                             3f16213a04525ed44450b1019c2dfd3838ab
                             ac4e14d86c0983ed5e9eef2448c6861cc406
                             547177e6026030d051f7792ac206a30f300d
                             300b0603551d0f040403020780300a06082a
                             8648ce3d04030203470030440220445d798c
                             90e7f500dc747a654cec6cfa6f037276e14e
                             52ed07fc16294c84660d02205a33985dfbd4
                             bfdd6d4acf3804c3d46ebf3b7fa62640674f
                             c0354fa056dbaea6'
            }
          ]
   }
]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="sec-token_series_id">
        <name>token_series_id</name>
        <t>This section defines the additional "token_series_id" parameter. The parameter can be used in an access token request sent by C to the token endpoint at the AS (see <xref section="5.8.1" sectionFormat="of" target="RFC9200"/>), as well as in the access token response sent as a reply by the AS (see <xref section="5.8.2" sectionFormat="of" target="RFC9200"/>).</t>
        <t>The following refers to the base64url encoding without padding (see <xref section="5" sectionFormat="of" target="RFC4648"/>).</t>
        <ul spacing="normal">
          <li>
            <t>The "token_series_id" parameter is <bcp14>OPTIONAL</bcp14> to include in an access token request. The presence of this parameter indicates that C wishes to obtain a new access token for dynamically updating its access rights. That is, the new access token is intended to be the next one in an active token series and to supersede the latest access token in that token series.  </t>
            <t>
The "token_series_id" parameter <bcp14>MUST NOT</bcp14> be included in an access token request, if the requested access token is the first one of a new token series.  </t>
            <t>
If included, this parameter specifies the binary identifier of the token series that the new access token is intended to extend. The identifier does not change throughout the lifetime of the token series and was provided to C in the access token response that the AS sent when issuing the first access token in that token series.  </t>
            <t>
When the access token request is encoded in CBOR, this parameter is a CBOR byte string, with value the identifier of the token series. When the access token request is encoded in JSON, this parameter has as value the base64url-encoded text string that encodes the identifier of the token series.</t>
          </li>
          <li>
            <t>The "token_series_id" parameter is <bcp14>OPTIONAL</bcp14> to include in an access token response.  </t>
            <t>
The "token_series_id" parameter <bcp14>MUST NOT</bcp14> be included in an access token response, if the issued access token is not the first one of a new token series.  </t>
            <t>
If included, this parameter specifies the binary identifier of the token series to which the issued access token belongs.  </t>
            <t>
When the access token response is encoded in CBOR, this parameter is a CBOR byte string, with value the identifier of the token series. When the access token request is encoded in JSON, this parameter has as value the base64url-encoded text string that encodes the identifier of the token series.</t>
          </li>
        </ul>
        <t>If the AS relies on the "token_series_id" parameter to exchange the identifier of token series with clients, then the following applies.</t>
        <ul spacing="normal">
          <li>
            <t>The value assigned to the identifier of a token series <bcp14>MUST</bcp14> be associated with all the access tokens issued by the AS for that token series and <bcp14>MUST</bcp14> be selected from a pool that the AS exclusively controls.  </t>
            <t>
In particular, the triple (TS_ID, C, AUD) <bcp14>MUST</bcp14> uniquely identify a token series and its corresponding access tokens, where TS_ID is the identifier of the token series, while C and AUD are the client and the audience for which the access token is issued, respectively. The AS <bcp14>MUST</bcp14> take into account both ongoing and ended token series for selecting a new TS_ID that complies with the above requirements.  </t>
            <t>
Note that the ACE profile is not part of the triple, hence the requirement spans across all the ACE profiles that the AS and its registered clients/RSs support.</t>
          </li>
          <li>
            <t>An issued access token that belongs to a token series <bcp14>MUST</bcp14> include the identifier of that token series. This allows the RS to identify the latest access token in the token series to be superseded by the issued access token.  </t>
            <t>
In particular, each of such access tokens <bcp14>MUST</bcp14> include a claim specifying the identifier of the token series to which the access token belongs.  </t>
            <t>
When CWTs are used as access tokens, this information <bcp14>MUST</bcp14> be transported in the "token_series_id" claim registered in <xref target="iana-token-cwt-claims"/>, which has the same semantics as the "token_series_id" parameter of an access token response encoded in CBOR.  </t>
            <t>
When JWTs are used as access tokens, this information <bcp14>MUST</bcp14> be transported in the "token_series_id" claim registered in <xref target="iana-token-json-claims"/>, which has the same semantics as the "token_series_id" parameter of an access token response encoded in JSON.</t>
          </li>
        </ul>
        <t>If a profile of ACE relies on a construct that uses different parameters/claims to transport the identifier of a token series, then the new "token_series_id" parameter and "token_series_id" claim <bcp14>MUST NOT</bcp14> be used when using that profile.</t>
        <t>For example, a number of parameters/claims are already used to transport information that acts as de facto identifier of token series, in the PSK mode of the DTLS profile <xref target="RFC9202"/>, in the OSCORE profile <xref target="RFC9203"/>, and in the EDHOC and OSCORE profile <xref target="I-D.ietf-ace-edhoc-oscore-profile"/>.</t>
      </section>
      <section anchor="sec-updated_rights">
        <name>updated_rights</name>
        <t>This section defines the additional "updated_rights" parameter. The parameter can be used in a POST request sent by the AS to the authz-info endpoint at the RS (see <xref section="5.10.1" sectionFormat="of" target="RFC9200"/>), when the AS uploads an access token to the RS per the SDC workflow defined in <xref target="sec-workflow"/> of the present document. The "updated_rights" parameter <bcp14>MUST NOT</bcp14> be included in the POST request to the authz-info endpoint sent by C per the original workflow defined in <xref target="RFC9200"/>.</t>
        <t>The "updated_rights" parameter <bcp14>MUST</bcp14> be included in the POST request sent by the AS to the authz-info endpoint at the RS, if the uploaded access token is not the first one of a new token series, i.e., if the AS has issued the access token for dynamically updating the access rights of C. Otherwise, the "updated_rights" parameter <bcp14>MUST NOT</bcp14> be included.</t>
        <t>When including the "updated_rights" parameter, the following applies:</t>
        <ul spacing="normal">
          <li>
            <t>If the POST request is encoded in CBOR, the request <bcp14>MUST</bcp14> have media type "application/ace+cbor" and its payload <bcp14>MUST</bcp14> be formatted as a CBOR map. In particular, the CBOR map <bcp14>MUST</bcp14> include the "updated_rights" parameter encoding the CBOR simple value <tt>true</tt> (0xf5), together with the "access_token" parameter specifying the access token. The CBOR map <bcp14>MAY</bcp14> include additional parameters, according to the specific profile of ACE used.</t>
          </li>
          <li>
            <t>If the POST request is encoded in JSON, the request <bcp14>MUST</bcp14> have media type "application/ace+json" and its payload <bcp14>MUST</bcp14> be formatted as a JSON object. In particular, the JSON object <bcp14>MUST</bcp14> include the "updated_rights" parameter with value <tt>true</tt>, together with the "access_token" parameter specifying the access token. The JSON object <bcp14>MAY</bcp14> include additional parameters, according to the specific profile of ACE used.</t>
          </li>
        </ul>
        <t>Note that this request deviates from the POST request defined in <xref target="RFC9200"/>, although such a deviation can already occur in some profiles of ACE (e.g., see <xref section="4.1" sectionFormat="of" target="RFC9203"/>) or in application profiles of <xref target="RFC9594"/>.</t>
        <t>The rest of this section focuses on interactions with the authz-info endpoint at the RS where messages are encoded in CBOR. The same as described below holds in case such messages are encoded in JSON and have media type "application/ace+json", with the difference that the "updated_rights" parameter with value <tt>true</tt> can be present within a JSON object conveyed by a POST request to the  authz-info endpoint.</t>
        <t>When the RS receives a protected POST request to the authz-info endpoint from the AS and the request does not convey the "updated_rights" parameter, the RS is ensured that the access token conveyed in the request is the first one of a new token series, and processes it accordingly (see <xref target="sec-as-token-upload"/>).</t>
        <t>When the RS receives a protected POST request to the authz-info endpoint from the AS and the request conveys the "updated_rights" parameter encoding the CBOR simple value <tt>true</tt> (0xf5), the RS is ensured that the access token conveyed in the request is not the first one of a new token series.</t>
        <t>Taking advantage of such explicit indication requires the RS to support the Content-Format "application/ace+cbor" and the "updated_rights" parameter.</t>
        <t>If the RS does not support the Content-Format "application/ace+cbor", the RS rejects the POST request from the AS and replies with an error response that has a response code equivalent to the CoAP code 4.15 (Unsupported Content-Format). Note that, irrespective of the profile of ACE used, the RS supports the Content-Format "application/ace+cbor" if it implements token introspection as defined in <xref section="5.9" sectionFormat="of" target="RFC9200"/>.</t>
        <t>If the RS supports the Content-Format "application/ace+cbor" but does not support the "updated_rights" parameter, the RS rejects the POST request from the AS and replies with an error response that has a response code equivalent to the CoAP code 4.00 (Bad Request).</t>
        <t>In case a POST request to the authz-info endpoint includes the "updated_rights" parameter, the RS supports the parameter, and any of the following conditions applies, the RS <bcp14>MUST</bcp14> reject the request and <bcp14>MUST</bcp14> reply with an error response that has a response code equivalent to the CoAP code 4.00 (Bad Request):</t>
        <ul spacing="normal">
          <li>
            <t>The request is not protected.</t>
          </li>
          <li>
            <t>The AS is not successfully verified as the originator of the request.</t>
          </li>
          <li>
            <t>The "updated_rights" parameter does not encode the CBOR simple value <tt>true</tt> (0xf5).</t>
          </li>
        </ul>
        <t>If none of the error conditions above applies and the request is valid, then the RS leverages the "updated_rights" parameter encoding the CBOR simple value <tt>true</tt> (0xf5) as an indication from the AS that the access token conveyed in the POST request, namely T_NEW, is not the first one in its token series. That is, the access token is meant to dynamically update the access rights of C, while preserving the same secure communication association that is shared between C and the RS.</t>
        <t>In this case, the RS uses lookup information specified within T_NEW to determine whether it stores an access token T_OLD associated with C and belonging to the same token series of T_NEW. Such lookup information includes an identifier of the token series to which both T_NEW and T_OLD belong, and it can further comprise additional information elements pertaining to the specific profile of ACE used (e.g., the authentication credential of C that is bound to the access tokens of the token series).</t>
        <t>By leveraging such lookup information, the RS checks whether it stores an access token T_OLD that belongs to the same token series of T_NEW, like it would when receiving the request from C and according to the specific profile of ACE used.</t>
        <t>If the RS is currently storing such an old access token T_OLD and successfully validates the access token T_NEW, then the RS <bcp14>MUST</bcp14> supersede T_OLD by replacing the corresponding authorization information with the one specified in the new access token T_NEW. After that, the RS <bcp14>MUST</bcp14> associate T_NEW with the same secure communication association with which T_OLD was associated.</t>
        <t>If the RS is not currently storing such an old access token T_OLD, then the RS <bcp14>MUST</bcp14> reject the POST request from the AS and <bcp14>MUST</bcp14> reply with an error response that has a response code equivalent to the CoAP code 5.00 (Internal Server Error).</t>
        <t>The explicit indication provided by the "updated_rights" parameter prevents possible ambiguous situations, where the RS might erroneously believe that the access token conveyed in the POST request is the first one in a new token series (e.g., following the deletion of stored access tokens due to memory limitations). --- Editor's note: elaborate more in the "Security Considerations" section.</t>
        <t>If the AS receives an error response from the RS, the AS replies to C with an access token response, which includes the "access_token" parameter specifying the access token T_NEW and the "token_upload" parameter encoding the value 1 (see <xref target="sec-token_upload"/>).</t>
        <t>In case the RS replied to the AS with an error response and could not find the old access token T_OLD to supersede with T_NEW, the RS does not have anymore the secure communication association that was previously shared with C and associated with T_OLD. After receiving from the AS the access token response including the access token T_NEW, C will send a protected POST request including T_NEW to the authz-info endpoint at the RS, according to the original workflow. Since the RS does not store T_OLD and does not have the corresponding secure communication association used by C to protect the POST request, the RS replies to C with an unprotected error response. After that, C can send a new access token request to the token endpoint at the AS, asking for a new access token in a new token series.</t>
      </section>
    </section>
    <section anchor="sec-updated-ace-profile-parameter">
      <name>Updated "ace_profile" Parameter</name>
      <t>This section extends the semantics of the "ace_profile" parameter defined in <xref target="RFC9200"/> for the OAuth 2.0 token endpoint at the AS.</t>
      <t>In addition to what is specified in Sections <xref target="RFC9200" section="5.8.1" sectionFormat="bare"/>, <xref target="RFC9200" section="5.8.2" sectionFormat="bare"/>, and <xref target="RFC9200" section="5.8.4.3" sectionFormat="bare"/> of <xref target="RFC9200"/>, the following applies.</t>
      <ul spacing="normal">
        <li>
          <t>When sending an access token request to the token endpoint at the AS (see <xref section="5.8.1" sectionFormat="of" target="RFC9200"/>), C <bcp14>MAY</bcp14> include the "ace_profile" parameter, specifying the identifier of the profile that C wishes to use towards the RS.  </t>
          <t>
The "ace_profile" parameter <bcp14>MUST NOT</bcp14> be included in an access token request, if the requested access token is not the first one of a new token series.</t>
        </li>
        <li>
          <t>If the AS receives an access token request for requesting the first access token in a new token series and the request includes the "ace_profile" parameter specifying the identifier of a profile, then the AS proceeds as follows.  </t>
          <t>
In case the AS does not issue access tokens per the profile specified in the access token request, or C and the RS do not share that profile, then the AS <bcp14>MUST</bcp14> reject the request and <bcp14>MUST</bcp14> reply with an error response (see <xref section="5.8.3" sectionFormat="of" target="RFC9200"/>). The error response <bcp14>MUST</bcp14> have a response code equivalent to the CoAP code 4.00 (Bad Request) and <bcp14>MUST</bcp14> include the error code "incompatible_ace_profiles".  </t>
          <t>
In case the AS issues an access token to C, the access token <bcp14>MUST</bcp14> be per the profile whose identifier was specified by the "ace_profile" parameter in the access token request.  </t>
          <t>
In case the AS replies to C with an access token response (see <xref section="5.8.2" sectionFormat="of" target="RFC9200"/>), then the response <bcp14>MAY</bcp14> include the "ace_profile" parameter. If it is included in the access token response, the "ace_profile" parameter <bcp14>MUST</bcp14> encode the same profile identifier that was specified by the "ace_profile" parameter of the corresponding access token request.  </t>
          <t>
The "ace_profile" parameter <bcp14>MUST NOT</bcp14> be included in the access token response, if the issued access token is not the first one of a new token series.</t>
        </li>
      </ul>
    </section>
    <section anchor="sec-coord-exchanged-cred">
      <name>Coordinating on the Exchange of Public Authentication Credentials</name>
      <t>In some profiles of ACE, it is possible for C and the RS to use public authentication credentials. Depending on the specific profile, the access token request and response exchanged between C and the AS can specify those authentication credentials as transported by value or instead identified by reference. For instance, this is the case in the EDHOC and OSCORE profile <xref target="I-D.ietf-ace-edhoc-oscore-profile"/> and in the DTLS profile <xref target="RFC9202"/> as extended in <xref target="I-D.ietf-ace-authcred-dtls-profile"/>.</t>
      <t>At some point, the AS (C) might become unable to use a credential identifier as a reference for accessing the authentication credential of C (of the RS) obtained earlier, e.g., due to having deleted the credential from its local storage. This can prevent the AS (C) from successfully processing an incoming access token request (response) that specifies the authentication credential of C (of the RS) as identified by reference. Ultimately, this can prevent the AS from issuing an access token and C from securely accessing protected resources at the RS.</t>
      <t>Conversely, unbeknown to the AS, C might already be storing the authentication credential of the RS when sending the access token request. In such a situation, the AS would specify the authentication credential of the RS by value in the access token response. However, it would be sufficient for C that the response specified the credential of the RS as identified by reference, or even that the response omitted the credential altogether.</t>
      <t>In order to allow C and the AS to coordinate on the exchange of the authentication credentials of C and the RS, the rest of this section defines:</t>
      <ul spacing="normal">
        <li>
          <t>How the AS can instruct C to specify its public authentication credential by value in the "req_cnf" parameter of an access token request (see <xref target="sec-cred-c-value"/>).</t>
        </li>
        <li>
          <t>How C can instruct the AS to specify the public authentication credential(s) of the RS(s) by value or by reference in the "rs_cnf" or "rs_cnf2" parameter of an access token response (see <xref target="sec-cred-rs-value"/>), or instead to omit the credential(s) from the access token response.</t>
        </li>
      </ul>
      <section anchor="sec-cred-c-value">
        <name>Instructing C on How to Provide its Authentication Credential</name>
        <t>When the AS receives an access token request and this includes the "req_cnf" parameter identifying the public authentication credential of C by reference, it might happen that the AS is not able to access the credential by using the specified reference.</t>
        <t>In such a case, the AS <bcp14>MUST</bcp14> reject the request and <bcp14>MUST</bcp14> reply with an error response (see <xref section="5.8.3" sectionFormat="of" target="RFC9200"/>). The error response <bcp14>MUST</bcp14> have a response code equivalent to the CoAP code 5.00 (Internal Server Error) and <bcp14>MUST</bcp14> include the error code "unknown_credential_referenced". The error code and its CBOR abbreviation are registered in <xref target="iana-oauth-extensions-errors"/> and <xref target="iana-oauth-error-code-cbor-mappings"/>, respectively.</t>
        <t>After receiving such an error response, C can send a new access token request, where the "req_cnf" parameter specifies the authentication credential of C by value.</t>
      </section>
      <section anchor="sec-cred-rs-value">
        <name>Instructing the AS on How to Provide the RS's Authentication Credential</name>
        <t>When C receives an access token response and this includes the "req_cnf" or "req_cnf2" parameter identifying the authentication credential(s) of the RS(s) by reference, it might happen that C is not able to access the authentication credential(s) by using the specified reference(s).</t>
        <t>Conversely, if the response includes the "rs_cnf" or "rs_cnf2" parameter specifying the authentication credential(s) of the RS(s) by value, it might happen that C has already been storing those credential(s), unbeknown to the AS. In fact, it would have been sufficient that the "rs_cnf" or "rs_cnf2" parameter identified the credential(s) by reference, or that neither parameter was included in the response.</t>
        <t>The following extends the semantics of the "rs_cnf" parameter defined in <xref section="3.2" sectionFormat="of" target="RFC9201"/>, so that C can include the "rs_cnf" parameter in an access token request. When doing so, C instructs the AS about whether and how the access token response should specify the authentication credential(s) of the RS(s) belonging to the targeted audience.</t>
        <t>Per its extended semantics, the "rs_cnf" parameter is also <bcp14>OPTIONAL</bcp14> to include in an access token request when requesting the first access token in a token series, if the token type is "pop" and asymmetric keys are used. In any other case, the parameter <bcp14>MUST NOT</bcp14> be included in an access token request.</t>
        <t>When C includes the "rs_cnf" parameter in an access token request encoded in CBOR, the parameter <bcp14>MUST</bcp14> have one of the following encodings.</t>
        <ul spacing="normal">
          <li>
            <t>If the parameter specifies the CBOR simple value <tt>true</tt> (0xf5), then it instructs the AS to include in the access token response the "rs_cnf" or "rs_cnf2" parameter, specifying the authentication credential(s) of the RS(s) by value.  </t>
            <t>
In the access token response, each pertaining authentication credential <bcp14>MUST</bcp14> be specified by value.</t>
          </li>
          <li>
            <t>If the parameter specifies the CBOR simple value <tt>false</tt> (0xf4), then it instructs the AS to include in the access token response the "rs_cnf" or "rs_cnf2" parameter, specifying the authentication credential(s) of the RS(s) by reference.  </t>
            <t>
In the access token response, each pertaining authentication credential <bcp14>MUST</bcp14> be specified by reference, or alternatively by value only in case that was not possible for the AS to attain.</t>
          </li>
          <li>
            <t>If the parameter specifies the CBOR simple value <tt>null</tt> (0xf6), then it instructs the AS to omit the "rs_cnf" and "rs_cnf2" parameters from the access token response.  </t>
            <t>
In the access token response, the "rs_cnf" and "rs_cnf2" parameters <bcp14>MUST NOT</bcp14> be included.</t>
          </li>
        </ul>
        <t>If the access token request is encoded in JSON, the same as above applies, with the difference that the "rs_cnf" parameter specifies as appropriate the corresponding JSON values <tt>true</tt>, <tt>false</tt>, or <tt>null</tt>.</t>
        <t>If the AS is not able to comply in the first two cases above, then the AS <bcp14>MUST</bcp14> reject the request and <bcp14>MUST</bcp14> reply with an error response. The error response <bcp14>MUST</bcp14> have a response code equivalent to the CoAP code 5.00 (Internal Server Error).</t>
        <t>Irrespective of what "rs_cnf" specifies in the access token request, C <bcp14>MUST</bcp14> rely on the authentication credential(s) specified by the parameter "rs_cnf" or "rs_cnf2" in the access token response, as those that are used by the RS(s) to authenticate.</t>
        <t>If C does not currently store the authentication credential(s) of the RS(s), then the following applies:</t>
        <ul spacing="normal">
          <li>
            <t>C <bcp14>MUST NOT</bcp14> include the "rs_cnf" parameter specifying the CBOR simple value <tt>null</tt> (0xf6) in an access token request encoded in CBOR, or the value <tt>null</tt> in an access token request encoded in JSON.</t>
          </li>
          <li>
            <t>C <bcp14>SHOULD NOT</bcp14> include the "rs_cnf" parameter specifying the CBOR simple value <tt>false</tt> (0xf4) in an access token request encoded in CBOR, or the value <tt>false</tt> in an access token request encoded in JSON. Exceptions apply if C is confident that it can later acquire and validate the authentication credential(s) of the RS(s) by other means, e.g., by using the references provided by the AS for retrieval from a trusted repository.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="sec-error-failed-pop">
      <name>Failed Verification of Proof of Possession at the AS</name>
      <t>When sending an access token request to the AS (see <xref section="5.8.1" sectionFormat="of" target="RFC9200"/>), a client can include the "req_cnf" parameter defined in <xref section="3.1" sectionFormat="of" target="RFC9201"/> in order to provide the AS with a specific PoP key to bind to the requested access token.</t>
      <t>Typically, the PoP key in question is the client's public key. In such a case, as per <xref section="3.1" sectionFormat="of" target="RFC9201"/>, the AS has to verify proof of possession of the client's private key, i.e., that the client is indeed in possession of the private key corresponding to the public key conveyed in the "req_cnf" parameter.</t>
      <t>The AS might have previously achieved proof of possession of the private key in question, e.g., from previous interactions with the client or through out-of-band means. Alternatively, a profile of ACE might define how the AS verifies a PoP evidence that the client computes and provides to the AS by means of a parameter included in the access token request (e.g., see <xref target="I-D.ietf-ace-group-oscore-profile"/>).</t>
      <t>Irrespective of the method used, if the AS fails to verify the proof of possession of the client's private key, then the AS <bcp14>MUST</bcp14> reject the access token request and <bcp14>MUST</bcp14> reply with an error response (see <xref section="5.8.3" sectionFormat="of" target="RFC9200"/>). The error response <bcp14>MUST</bcp14> have a response code equivalent to the CoAP code 4.00 (Bad Request) and <bcp14>MUST</bcp14> include the error code "failed_pop_verification". The error code and its CBOR abbreviation are registered in <xref target="iana-oauth-extensions-errors"/> and <xref target="iana-oauth-error-code-cbor-mappings"/>, respectively.</t>
    </section>
    <section anchor="sec-updated-error-responses">
      <name>Updated Payload Format of Error Responses</name>
      <t>This section deprecates the original payload format of error responses conveying an error code, when CBOR is used to encode message payloads in the ACE framework. That format is referred to, e.g., when defining the error responses of Sections <xref target="RFC9200" section="5.8.3" sectionFormat="bare"/> and <xref target="RFC9200" section="5.9.3" sectionFormat="bare"/> of <xref target="RFC9200"/>.</t>
      <t>Also, this section defines a new payload format that allows such error responses to convey an error code together with further error-specific information, according to the problem-details format specified in <xref target="RFC9290"/>.</t>
      <t>Such error responses <bcp14>MUST</bcp14> have Content-Format set to "application/concise-problem-details+cbor". The payload of these error responses <bcp14>MUST</bcp14> be a CBOR map specifying a Concise Problem Details data item (see <xref section="2" sectionFormat="of" target="RFC9290"/>). The CBOR map is formatted as follows:</t>
      <ul spacing="normal">
        <li>
          <t>It <bcp14>MUST</bcp14> include the Custom Problem Detail entry "ace-error" registered in <xref target="iana-problem-details"/> of this document.  </t>
          <t>
This entry is formatted as a CBOR map including only one field, namely "error-code". The map key for the "error-code" field is the CBOR integer with value 0. The value of the "error-code" field is a CBOR integer specifying the error code associated with the occurred error. This value is taken from the "CBOR Value" column of the "OAuth Error Code CBOR Mappings" registry <xref target="ACE.OAuth.Error.Code.CBOR.Mappings"/>.  </t>
          <t>
The "error-code" field conveys the same information that the original payload format conveys through the "error" parameter (see, e.g., Sections <xref target="RFC9200" section="5.8.3" sectionFormat="bare"/> and <xref target="RFC9200" section="5.9.3" sectionFormat="bare"/> of <xref target="RFC9200"/>).  </t>
          <t>
The CDDL notation <xref target="RFC8610"/> of the "ace-error" entry is given below.</t>
        </li>
      </ul>
      <sourcecode type="cddl"><![CDATA[
   ace-error = {
     &(error-code: 0) => int
   }
]]></sourcecode>
      <ul spacing="normal">
        <li>
          <t>It <bcp14>MAY</bcp14> include further Standard Problem Detail entries or Custom Problem Detail entries (see <xref target="RFC9290"/>). The following Standard Problem Detail entries are of particular relevance for the ACE framework.  </t>
          <ul spacing="normal">
            <li>
              <t>"detail" (map key -2): its value is a CBOR text string that specifies a human-readable diagnostic description of the occurred error (see <xref section="2" sectionFormat="of" target="RFC9290"/>).      </t>
              <t>
The diagnostic text is intended for software engineers as well as for device and network operators in order to aid in debugging and provide context for possible intervention. The diagnostic message <bcp14>SHOULD</bcp14> be logged by the sender of the error response. The "detail" entry is unlikely to be relevant in an unattended setup where human intervention is not expected.      </t>
              <t>
When the Standard Problem Detail entry "detail" is included, it conveys the same information that the original payload format conveys through the "error_description" parameter (see, e.g., Sections <xref target="RFC9200" section="5.8.3" sectionFormat="bare"/> and <xref target="RFC9200" section="5.9.3" sectionFormat="bare"/> of <xref target="RFC9200"/>).</t>
            </li>
            <li>
              <t>"instance" (map key -3): its value is a URI reference identifying the specific occurrence of the error (see <xref section="2" sectionFormat="of" target="RFC9290"/>).      </t>
              <t>
When the Standard Problem Detail entry "instance" is included, it conveys the same information that the original payload format conveys through the "error_uri" parameter (see, e.g., Sections <xref target="RFC9200" section="5.8.3" sectionFormat="bare"/> and <xref target="RFC9200" section="5.9.3" sectionFormat="bare"/> of <xref target="RFC9200"/>).</t>
            </li>
          </ul>
        </li>
      </ul>
      <t>An example of an error response using the problem-details format is shown in <xref target="fig-example-error-response"/>.</t>
      <figure anchor="fig-example-error-response">
        <name>Example of Error Response with Problem Details.</name>
        <artwork><![CDATA[
Header: Bad Request (Code=4.00)
Content-Format: 257 (application/concise-problem-details+cbor)
Payload:
{
  / title /  -1 : "Incompatible ACE profile",
  / detail / -2 : "The RS supports only the OSCORE profile",
    e'ace-error': {
      / error_code / 0: 8 / incompatible_ace_profiles /
    }
}
]]></artwork>
      </figure>
      <t>When the ACE framework is used with CBOR for encoding message payloads, the following applies.</t>
      <ul spacing="normal">
        <li>
          <t>It is <bcp14>RECOMMENDED</bcp14> that authorization servers, clients, and resource servers support the payload format defined in this section.</t>
        </li>
        <li>
          <t>Authorization servers, clients, and resource servers that support the payload format defined in this section <bcp14>MUST</bcp14> use it when composing an outgoing error response that conveys an error code.</t>
        </li>
      </ul>
    </section>
    <section anchor="sec-updated-requirements">
      <name>Updated Requirements on Profiles of ACE</name>
      <t><xref section="C" sectionFormat="of" target="RFC9200"/> compiles a list of requirements on the profiles of ACE. This document amends two of those requirements as follows.</t>
      <t>The text of the fifth requirement</t>
      <blockquote>
        <t>Specify the security protocol the client and RS must use to protect their communication (e.g., OSCORE or DTLS). This must provide encryption and integrity and replay protection (Section 5.8.4.3).</t>
      </blockquote>
      <t>is replaced by the following text:</t>
      <blockquote>
        <t>Specify the security protocol the client and RS must use to protect their communication (e.g., OSCORE or DTLS). In combination with the used communication protocol, this must provide encryption, integrity and replay protection, and a binding between requests and responses (Section 5.8.4.3 and Section 6.5).</t>
      </blockquote>
      <t>The text of the tenth requirement</t>
      <blockquote>
        <t>Specify the communication and security protocol for interactions between the client and AS. This must provide encryption, integrity protection, replay protection, and a binding between requests and responses (Sections 5 and 5.8).</t>
      </blockquote>
      <t>is replaced by the following text:</t>
      <blockquote>
        <t>Specify the communication and security protocol for interactions between the client and AS. The combined use of those protocols must provide encryption, integrity protection, replay protection, and a binding between requests and responses (Sections 5 and 5.8).</t>
      </blockquote>
      <t>At the time of writing, all the profiles of ACE that are published as RFC (i.e., <xref target="RFC9202"/><xref target="RFC9203"/><xref target="RFC9431"/>) already comply with the two updated requirements as formulated above.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The same security considerations from the ACE framework for Authentication and Authorization <xref target="RFC9200"/> apply to this document, together with those from the specific profile of ACE used, e.g., <xref target="RFC9202"/><xref target="RFC9203"/><xref target="RFC9431"/><xref target="I-D.ietf-ace-edhoc-oscore-profile"/><xref target="I-D.ietf-ace-group-oscore-profile"/><xref target="RFC9431"/>.</t>
      <t>When using the problem-details format defined in <xref target="RFC9290"/> for error responses, then the privacy and security considerations from Sections <xref target="RFC9290" section="4" sectionFormat="bare"/> and <xref target="RFC9290" section="5" sectionFormat="bare"/> of <xref target="RFC9290"/> also apply.</t>
      <t>Editor's note: add more security considerations.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has the following actions for IANA.</t>
      <t>Note to RFC Editor: Please replace all occurrences of "[RFC-XXXX]" with the RFC number of this specification and delete this paragraph.</t>
      <section anchor="iana-oauth-params">
        <name>OAuth Parameters Registry</name>
        <t>IANA is asked to add the following entries to the "OAuth Parameters" registry within the "OAuth Parameters" registry group.</t>
        <ul spacing="normal">
          <li>
            <t>Name: token_upload</t>
          </li>
          <li>
            <t>Parameter Usage Location: token request, token response</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: token_hash</t>
          </li>
          <li>
            <t>Parameter Usage Location: token response</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: to_rs</t>
          </li>
          <li>
            <t>Parameter Usage Location: token request</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: from_rs</t>
          </li>
          <li>
            <t>Parameter Usage Location: token response</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: rs_cnf2</t>
          </li>
          <li>
            <t>Parameter Usage Location: token response</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: audience2</t>
          </li>
          <li>
            <t>Parameter Usage Location: token response</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: anchor_cnf</t>
          </li>
          <li>
            <t>Parameter Usage Location: token response</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: token_series_id</t>
          </li>
          <li>
            <t>Parameter Usage Location: token request, token response</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: updated_rights</t>
          </li>
          <li>
            <t>Parameter Usage Location: as-rs request</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <t>In the same registry, IANA is asked to update the entries for the following OAuth parameters identified by their name, so that the content of the "Parameter Usage Location" column and of the "Reference" column is as below:</t>
        <ul spacing="normal">
          <li>
            <t>access_token  </t>
            <ul spacing="normal">
              <li>
                <t>Parameter Usage Location: authorization response, token response, as-rs request</t>
              </li>
              <li>
                <t>Reference: [RFC6749][RFC-XXXX]</t>
              </li>
            </ul>
          </li>
          <li>
            <t>rs_cnf  </t>
            <ul spacing="normal">
              <li>
                <t>Parameter Usage Location: token request, token response</t>
              </li>
              <li>
                <t>Reference: [RFC9201, Section 5][RFC-XXXX, <xref target="sec-cred-rs-value"/>]</t>
              </li>
            </ul>
          </li>
          <li>
            <t>nonce1  </t>
            <ul spacing="normal">
              <li>
                <t>Parameter Usage Location: client-rs request, as-rs request</t>
              </li>
              <li>
                <t>Reference: [RFC9203][RFC-XXXX]</t>
              </li>
            </ul>
          </li>
          <li>
            <t>nonce2  </t>
            <ul spacing="normal">
              <li>
                <t>Parameter Usage Location: rs-client response, rs-as response</t>
              </li>
              <li>
                <t>Reference: [RFC9203][RFC-XXXX]</t>
              </li>
            </ul>
          </li>
          <li>
            <t>ace_client_recipientid  </t>
            <ul spacing="normal">
              <li>
                <t>Parameter Usage Location: client-rs request, as-rs request</t>
              </li>
              <li>
                <t>Reference: [RFC9203][RFC-XXXX]</t>
              </li>
            </ul>
          </li>
          <li>
            <t>ace_server_recipientid  </t>
            <ul spacing="normal">
              <li>
                <t>Parameter Usage Location: rs-client response, rs-as response</t>
              </li>
              <li>
                <t>Reference: [RFC9203][RFC-XXXX]</t>
              </li>
            </ul>
          </li>
          <li>
            <t>sign_info  </t>
            <ul spacing="normal">
              <li>
                <t>Parameter Usage Location: client-rs request, rs-client response, as-rs request, rs-as response</t>
              </li>
              <li>
                <t>Reference: [RFC9594][RFC-XXXX]</t>
              </li>
            </ul>
          </li>
          <li>
            <t>kdcchallenge  </t>
            <ul spacing="normal">
              <li>
                <t>Parameter Usage Location: rs-client response, rs-as response</t>
              </li>
              <li>
                <t>Reference: [RFC9594][RFC-XXXX]</t>
              </li>
            </ul>
          </li>
        </ul>
      </section>
      <section anchor="iana-oauth-cbor-mappings">
        <name>OAuth Parameters CBOR Mappings Registry</name>
        <t>IANA is asked to add the following entries to the "OAuth Parameters CBOR Mappings" registry within the "Authentication and Authorization for Constrained Environments (ACE)" registry group, following the procedure specified in <xref target="RFC9200"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Name: token_upload</t>
          </li>
          <li>
            <t>CBOR Key: TBD (value between 1 and 255)</t>
          </li>
          <li>
            <t>Value Type: unsigned integer</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Original Specification: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: token_hash</t>
          </li>
          <li>
            <t>CBOR Key: TBD (value between 1 and 255)</t>
          </li>
          <li>
            <t>Value Type: unsigned integer</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Original Specification: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: to_rs</t>
          </li>
          <li>
            <t>CBOR Key: TBD (value between 1 and 255)</t>
          </li>
          <li>
            <t>Value Type: Null or byte string or #6.&lt;uint&gt;(bstr)</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Original Specification: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: from_rs</t>
          </li>
          <li>
            <t>CBOR Key: TBD (value between 1 and 255)</t>
          </li>
          <li>
            <t>Value Type: byte string or #6.&lt;uint&gt;(bstr)</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Original Specification: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: rs_cnf2</t>
          </li>
          <li>
            <t>CBOR Key: TBD (value between 1 and 255)</t>
          </li>
          <li>
            <t>Value Type: array</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Original Specification: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: audience2</t>
          </li>
          <li>
            <t>CBOR Key: TBD (value between 1 and 255)</t>
          </li>
          <li>
            <t>Value Type: array</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Original Specification: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: anchor_cnf</t>
          </li>
          <li>
            <t>CBOR Key: TBD (value between 1 and 255)</t>
          </li>
          <li>
            <t>Value Type: array</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Original Specification: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: token_series_id</t>
          </li>
          <li>
            <t>CBOR Key: TBD (value between 1 and 255)</t>
          </li>
          <li>
            <t>Value Type: byte string</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Original Specification: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: updated_rights</t>
          </li>
          <li>
            <t>CBOR Key: TBD (value between 1 and 255)</t>
          </li>
          <li>
            <t>Value Type: True</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Original Specification: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <t>In the same registry, IANA is asked to update the entry for the OAuth parameter with name "rs_cnf", so that the content of the "Value Type" column and of the "Reference" column is as below:</t>
        <ul spacing="normal">
          <li>
            <t>Value Type: True or False or Null or map</t>
          </li>
          <li>
            <t>Reference: [RFC9201, Section 3.2][RFC-XXXX, <xref target="sec-cred-rs-value"/>]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-token-json-claims">
        <name>JSON Web Token Claims Registry</name>
        <t>IANA is asked to add the following entry to the "JSON Web Token Claims" registry within the "JSON Web Token (JWT)" registry group, following the procedure specified in <xref target="RFC7519"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Claim Name: token_series_id</t>
          </li>
          <li>
            <t>Claim Description: The identifier of a token series</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-token-cwt-claims">
        <name>CBOR Web Token (CWT) Claims Registry</name>
        <t>IANA is asked to add the following entry to the "CBOR Web Token (CWT) Claims" registry within the "CBOR Web Token (CWT) Claims" registry group, following the procedure specified in <xref target="RFC8392"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Claim Name: token_series_id</t>
          </li>
          <li>
            <t>Claim Description: The identifier of a token series</t>
          </li>
          <li>
            <t>JWT Claim Name: token_series_id</t>
          </li>
          <li>
            <t>Claim Key: TBD (value between 1 and 255)</t>
          </li>
          <li>
            <t>Claim Value Type: byte string</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX, <xref target="sec-token_series_id"/>]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-oauth-extensions-errors">
        <name>OAuth Extensions Error Registry</name>
        <t>IANA is asked to add the following entries to the "OAuth Extensions Error Registry" within the "OAuth Parameters" registry group.</t>
        <ul spacing="normal">
          <li>
            <t>Name: unknown_credential_referenced</t>
          </li>
          <li>
            <t>Usage Location: token error response</t>
          </li>
          <li>
            <t>Protocol Extension: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX, <xref target="sec-coord-exchanged-cred"/>]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: failed_pop_verification</t>
          </li>
          <li>
            <t>Usage Location: token error response</t>
          </li>
          <li>
            <t>Protocol Extension: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX, <xref target="sec-error-failed-pop"/>]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-oauth-error-code-cbor-mappings">
        <name>OAuth Error Code CBOR Mappings Registry</name>
        <t>IANA is asked to add the following entries to the "OAuth Error Code CBOR Mappings" registry within the "Authentication and Authorization for Constrained Environments (ACE)" registry group.</t>
        <ul spacing="normal">
          <li>
            <t>Name: unknown_credential_referenced</t>
          </li>
          <li>
            <t>CBOR Value: TBD (value between 1 and 255)</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Original Specification: [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: failed_pop_verification</t>
          </li>
          <li>
            <t>CBOR Value: TBD (value between 1 and 255)</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Original Specification: [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-problem-details">
        <name>Custom Problem Detail Keys Registry</name>
        <t>IANA is asked to register the following entry in the "Custom Problem Detail Keys" registry within the "Constrained RESTful Environments (CoRE) Parameters" registry group.</t>
        <ul spacing="normal">
          <li>
            <t>Key Value: TBD (value between 0 and 23)</t>
          </li>
          <li>
            <t>Name: ace-error</t>
          </li>
          <li>
            <t>Brief Description: Carry ACE <xref target="RFC9200"/> problem details in a Concise Problem Details data item.</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX, <xref target="sec-updated-error-responses"/>]</t>
          </li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC3629">
          <front>
            <title>UTF-8, a transformation format of ISO 10646</title>
            <author fullname="F. Yergeau" initials="F." surname="Yergeau"/>
            <date month="November" year="2003"/>
            <abstract>
              <t>ISO/IEC 10646-1 defines a large character set called the Universal Character Set (UCS) which encompasses most of the world's writing systems. The originally proposed encodings of the UCS, however, were not compatible with many current applications and protocols, and this has led to the development of UTF-8, the object of this memo. UTF-8 has the characteristic of preserving the full US-ASCII range, providing compatibility with file systems, parsers and other software that rely on US-ASCII values but are transparent to other values. This memo obsoletes and replaces RFC 2279.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="63"/>
          <seriesInfo name="RFC" value="3629"/>
          <seriesInfo name="DOI" value="10.17487/RFC3629"/>
        </reference>
        <reference anchor="RFC4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </reference>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC6749">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
        <reference anchor="RFC6920">
          <front>
            <title>Naming Things with Hashes</title>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="D. Kutscher" initials="D." surname="Kutscher"/>
            <author fullname="C. Dannewitz" initials="C." surname="Dannewitz"/>
            <author fullname="B. Ohlman" initials="B." surname="Ohlman"/>
            <author fullname="A. Keranen" initials="A." surname="Keranen"/>
            <author fullname="P. Hallam-Baker" initials="P." surname="Hallam-Baker"/>
            <date month="April" year="2013"/>
            <abstract>
              <t>This document defines a set of ways to identify a thing (a digital object in this case) using the output from a hash function. It specifies a new URI scheme for this purpose, a way to map these to HTTP URLs, and binary and human-speakable formats for these names. The various formats are designed to support, but not require, a strong link to the referenced object, such that the referenced object may be authenticated to the same degree as the reference to it. The reason for this work is to standardise current uses of hash outputs in URLs and to support new information-centric applications and other uses of hash outputs in protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6920"/>
          <seriesInfo name="DOI" value="10.17487/RFC6920"/>
        </reference>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <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="RFC7800">
          <front>
            <title>Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="April" year="2016"/>
            <abstract>
              <t>This specification describes how to declare in a JSON Web Token (JWT) that the presenter of the JWT possesses a particular proof-of- possession key and how the recipient can cryptographically confirm proof of possession of the key by the presenter. Being able to prove possession of a key is also sometimes described as the presenter being a holder-of-key.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7800"/>
          <seriesInfo name="DOI" value="10.17487/RFC7800"/>
        </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"/>
            <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="RFC8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="RFC8747">
          <front>
            <title>Proof-of-Possession Key Semantics for CBOR Web Tokens (CWTs)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="March" year="2020"/>
            <abstract>
              <t>This specification describes how to declare in a CBOR Web Token (CWT) (which is defined by RFC 8392) that the presenter of the CWT possesses a particular proof-of-possession key. Being able to prove possession of a key is also sometimes described as being the holder-of-key. This specification provides equivalent functionality to "Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)" (RFC 7800) but using Concise Binary Object Representation (CBOR) and CWTs rather than JavaScript Object Notation (JSON) and JSON Web Tokens (JWTs).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8747"/>
          <seriesInfo name="DOI" value="10.17487/RFC8747"/>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="RFC9053">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
              <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9053"/>
          <seriesInfo name="DOI" value="10.17487/RFC9053"/>
        </reference>
        <reference anchor="RFC9200">
          <front>
            <title>Authentication and Authorization for Constrained Environments Using the OAuth 2.0 Framework (ACE-OAuth)</title>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This specification defines a framework for authentication and authorization in Internet of Things (IoT) environments called ACE-OAuth. The framework is based on a set of building blocks including OAuth 2.0 and the Constrained Application Protocol (CoAP), thus transforming a well-known and widely used authorization solution into a form suitable for IoT devices. Existing specifications are used where possible, but extensions are added and profiles are defined to better serve the IoT use cases.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9200"/>
          <seriesInfo name="DOI" value="10.17487/RFC9200"/>
        </reference>
        <reference anchor="RFC9201">
          <front>
            <title>Additional OAuth Parameters for Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This specification defines new parameters and encodings for the OAuth 2.0 token and introspection endpoints when used with the framework for Authentication and Authorization for Constrained Environments (ACE). These are used to express the proof-of-possession (PoP) key the client wishes to use, the PoP key that the authorization server has selected, and the PoP key the resource server uses to authenticate to the client.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9201"/>
          <seriesInfo name="DOI" value="10.17487/RFC9201"/>
        </reference>
        <reference anchor="RFC9202">
          <front>
            <title>Datagram Transport Layer Security (DTLS) Profile for Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="S. Gerdes" initials="S." surname="Gerdes"/>
            <author fullname="O. Bergmann" initials="O." surname="Bergmann"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This specification defines a profile of the Authentication and Authorization for Constrained Environments (ACE) framework that allows constrained servers to delegate client authentication and authorization. The protocol relies on DTLS version 1.2 or later for communication security between entities in a constrained network using either raw public keys or pre-shared keys. A resource-constrained server can use this protocol to delegate management of authorization information to a trusted host with less-severe limitations regarding processing power and memory.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9202"/>
          <seriesInfo name="DOI" value="10.17487/RFC9202"/>
        </reference>
        <reference anchor="RFC9203">
          <front>
            <title>The Object Security for Constrained RESTful Environments (OSCORE) Profile of the Authentication and Authorization for Constrained Environments (ACE) Framework</title>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="M. Gunnarsson" initials="M." surname="Gunnarsson"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework. It utilizes Object Security for Constrained RESTful Environments (OSCORE) to provide communication security and proof-of-possession for a key owned by the client and bound to an OAuth 2.0 access token.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9203"/>
          <seriesInfo name="DOI" value="10.17487/RFC9203"/>
        </reference>
        <reference anchor="RFC9277">
          <front>
            <title>On Stable Storage for Items in Concise Binary Object Representation (CBOR)</title>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document defines a stored ("file") format for Concise Binary Object Representation (CBOR) data items that is friendly to common systems that recognize file types, such as the Unix file(1) command.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9277"/>
          <seriesInfo name="DOI" value="10.17487/RFC9277"/>
        </reference>
        <reference anchor="RFC9290">
          <front>
            <title>Concise Problem Details for Constrained Application Protocol (CoAP) APIs</title>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="October" year="2022"/>
            <abstract>
              <t>This document defines a concise "problem detail" as a way to carry machine-readable details of errors in a Representational State Transfer (REST) response to avoid the need to define new error response formats for REST APIs for constrained environments. The format is inspired by, but intended to be more concise than, the problem details for HTTP APIs defined in RFC 7807.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9290"/>
          <seriesInfo name="DOI" value="10.17487/RFC9290"/>
        </reference>
        <reference anchor="RFC9430">
          <front>
            <title>Extension of the Datagram Transport Layer Security (DTLS) Profile for Authentication and Authorization for Constrained Environments (ACE) to Transport Layer Security (TLS)</title>
            <author fullname="O. Bergmann" initials="O." surname="Bergmann"/>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>This document updates "Datagram Transport Layer Security (DTLS) Profile for Authentication and Authorization for Constrained Environments (ACE)" (RFC 9202) by specifying that the profile applies to TLS as well as DTLS.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9430"/>
          <seriesInfo name="DOI" value="10.17487/RFC9430"/>
        </reference>
        <reference anchor="RFC9431">
          <front>
            <title>Message Queuing Telemetry Transport (MQTT) and Transport Layer Security (TLS) Profile of Authentication and Authorization for Constrained Environments (ACE) Framework</title>
            <author fullname="C. Sengul" initials="C." surname="Sengul"/>
            <author fullname="A. Kirby" initials="A." surname="Kirby"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework to enable authorization in a publish-subscribe messaging system based on Message Queuing Telemetry Transport (MQTT). Proof-of-Possession keys, bound to OAuth 2.0 access tokens, are used to authenticate and authorize MQTT Clients. The protocol relies on TLS for confidentiality and MQTT server (Broker) authentication.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9431"/>
          <seriesInfo name="DOI" value="10.17487/RFC9431"/>
        </reference>
        <reference anchor="RFC9770">
          <front>
            <title>Notification of Revoked Access Tokens in the Authentication and Authorization for Constrained Environments (ACE) Framework</title>
            <author fullname="M. Tiloca" initials="M." surname="Tiloca"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="S. Echeverria" initials="S." surname="Echeverria"/>
            <author fullname="G. Lewis" initials="G." surname="Lewis"/>
            <date month="June" year="2025"/>
            <abstract>
              <t>This document specifies a method of the Authentication and Authorization for Constrained Environments (ACE) framework, which allows an authorization server to notify clients and resource servers (i.e., registered devices) about revoked access tokens. As specified in this document, the method allows clients and resource servers (RSs) to access a Token Revocation List (TRL) on the authorization server by using the Constrained Application Protocol (CoAP), with the possible additional use of resource observation. Resulting (unsolicited) notifications of revoked access tokens complement alternative approaches such as token introspection, while not requiring additional endpoints on clients and RSs.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9770"/>
          <seriesInfo name="DOI" value="10.17487/RFC9770"/>
        </reference>
        <reference anchor="I-D.ietf-ace-edhoc-oscore-profile">
          <front>
            <title>Ephemeral Diffie-Hellman Over COSE (EDHOC) and Object Security for Constrained Environments (OSCORE) Profile for Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE</organization>
            </author>
            <date day="1" month="March" year="2026"/>
            <abstract>
              <t>   This document specifies a profile for the Authentication and
   Authorization for Constrained Environments (ACE) framework.  It
   utilizes Ephemeral Diffie-Hellman Over COSE (EDHOC) for achieving
   mutual authentication between an ACE-OAuth client and resource
   server, and it binds an authentication credential of the client to an
   ACE-OAuth access token.  EDHOC also establishes an Object Security
   for Constrained RESTful Environments (OSCORE) Security Context, which
   is used to secure communications between the client and resource
   server when accessing protected resources according to the
   authorization information indicated in the access token.  This
   profile can be used to delegate management of authorization
   information from a resource-constrained server to a trusted host with
   less severe limitations regarding processing power and memory.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-edhoc-oscore-profile-10"/>
        </reference>
        <reference anchor="ACE.OAuth.Error.Code.CBOR.Mappings" target="https://www.iana.org/assignments/ace/ace.xhtml#oauth-error-code-cbor-mappings">
          <front>
            <title>OAuth Error Code CBOR Mappings</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="IANA.Hash.Algorithms" target="https://www.iana.org/assignments/named-information/named-information.xhtml">
          <front>
            <title>Named Information Hash Algorithm Registry</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="SHA-256" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf">
          <front>
            <title>Secure Hash Standard</title>
            <author>
              <organization>NIST</organization>
            </author>
            <date year="2015" month="August"/>
          </front>
          <seriesInfo name="NIST FIPS PUB 180-4, DOI 10.6028/NIST.FIPS.180-4" value=""/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9594">
          <front>
            <title>Key Provisioning for Group Communication Using Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="M. Tiloca" initials="M." surname="Tiloca"/>
            <date month="September" year="2024"/>
            <abstract>
              <t>This document defines how to use the Authentication and Authorization for Constrained Environments (ACE) framework to distribute keying material and configuration parameters for secure group communication. Candidate group members that act as Clients and are authorized to join a group can do so by interacting with a Key Distribution Center (KDC) acting as the Resource Server, from which they obtain the keying material to communicate with other group members. While defining general message formats as well as the interface and operations available at the KDC, this document supports different approaches and protocols for secure group communication. Therefore, details are delegated to separate application profiles of this document as specialized instances that target a particular group communication approach and define how communications in the group are protected. Compliance requirements for such application profiles are also specified.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9594"/>
          <seriesInfo name="DOI" value="10.17487/RFC9594"/>
        </reference>
        <reference anchor="I-D.ietf-ace-group-oscore-profile">
          <front>
            <title>The Group Object Security for Constrained RESTful Environments (Group OSCORE) Profile of the Authentication and Authorization for Constrained Environments (ACE) Framework</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <date day="3" month="September" year="2025"/>
            <abstract>
              <t>   This document specifies a profile for the Authentication and
   Authorization for Constrained Environments (ACE) framework.  The
   profile uses Group Object Security for Constrained RESTful
   Environments (Group OSCORE) to provide communication security between
   a client and one or multiple resource servers that are members of an
   OSCORE group.  The profile securely binds an OAuth 2.0 access token
   to the public key of the client associated with the private key used
   by that client in the OSCORE group.  The profile uses Group OSCORE to
   achieve server authentication and proof of possession of the client's
   private key.  Also, it provides proof of the client's membership to
   the OSCORE group by binding the access token to information from the
   Group OSCORE Security Context, thus allowing the resource server(s)
   to verify the client's membership upon receiving a message protected
   with Group OSCORE from the client.  Effectively, the profile enables
   fine-grained access control paired with secure group communication,
   in accordance with the Zero Trust principles.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-group-oscore-profile-05"/>
        </reference>
        <reference anchor="I-D.ietf-ace-authcred-dtls-profile">
          <front>
            <title>Additional Formats of Authentication Credentials for the Datagram Transport Layer Security (DTLS) Profile for Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <date day="7" month="January" year="2026"/>
            <abstract>
              <t>   This document updates the Datagram Transport Layer Security (DTLS)
   profile for Authentication and Authorization for Constrained
   Environments (ACE).  In particular, it specifies the use of
   additional formats of authentication credentials for establishing a
   DTLS session, when peer authentication is based on asymmetric
   cryptography.  Therefore, this document updates RFC 9202.  What is
   defined in this document is seamlessly applicable also if the profile
   uses Transport Layer Security (TLS) instead, as defined in RFC 9430.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-authcred-dtls-profile-03"/>
        </reference>
      </references>
    </references>
    <?line 1423?>

<section anchor="sec-benefits-for-profiles">
      <name>Benefits for ACE Profiles</name>
      <t>For any profile of ACE, the following holds.</t>
      <ul spacing="normal">
        <li>
          <t>The SDC workflow defined in <xref target="sec-workflow"/> is effectively possible to use. This is beneficial for deployments where the communication leg between C and the RS is constrained, but the communication leg between the AS and RS is not.</t>
        </li>
        <li>
          <t>When the SDC workflow is used, the "token_upload" parameter defined in <xref target="sec-token_upload"/> is used:  </t>
          <ul spacing="normal">
            <li>
              <t>To inform the AS about C opting in to use the SDC workflow.</t>
            </li>
            <li>
              <t>To request the AS that the follow-up access token response includes certain information, if the AS has successfully uploaded the access token to the RS.</t>
            </li>
            <li>
              <t>To inform C that the AS has attempted to upload the issued access token to the RS, specifying whether the uploading has succeeded or failed.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>When the SDC workflow is used, it remains possible for C to always obtain the issued access token from the AS.  </t>
          <t>
That is, by specifying the value 2 for the "token_upload" parameter in the access token request, C will ensure to receive the access token from the AS, even if the AS successfully uploads the access token to the RS on behalf of C.  </t>
          <t>
This is useful in profiles of ACE where C can re-upload the same access token to the RS by itself, e.g., in order to perform a key update like defined for the OSCORE profile <xref target="RFC9203"/>.</t>
        </li>
      </ul>
      <section anchor="dtls-profile">
        <name>DTLS Profile</name>
        <t>When the RPK mode of the DTLS profile is used (see <xref section="3.2" sectionFormat="of" target="RFC9202"/>), it becomes possible for the AS to effectively issue an access token intended to an audience that includes multiple RSs.</t>
        <t>This is enabled by the parameters "rs_cnf2" and "audience2" defined in <xref target="sec-rs_cnf2-audience2"/>, as well as by the "anchor_cnf" parameter defined in <xref target="sec-anchor_cnf"/>. This seamlessly applies also if the profile uses Transport Layer Security (TLS) <xref target="RFC8446"/> as defined in <xref target="RFC9430"/>.</t>
      </section>
      <section anchor="edhoc-and-oscore-profile">
        <name>EDHOC and OSCORE Profile</name>
        <t>When the EDHOC and OSCORE profile is used <xref target="I-D.ietf-ace-edhoc-oscore-profile"/>, it becomes possible for the AS to effectively issue an access token intended to an audience that includes multiple RSs.</t>
        <t>This is enabled by the parameters "rs_cnf2" and "audience2" defined in <xref target="sec-rs_cnf2-audience2"/>, as well as by the "anchor_cnf" parameter defined in <xref target="sec-anchor_cnf"/>.</t>
      </section>
    </section>
    <section anchor="sec-cddl-model" removeInRFC="true">
      <name>CDDL Model</name>
      <figure anchor="fig-cddl-model">
        <name>CDDL model</name>
        <artwork type="CDDL" align="left"><![CDATA[
; OAuth Parameters CBOR Mappings
token_upload = 49
token_hash = 50
to_rs = 51
from_rs = 52
rs_cnf2 = 53
audience2 = 54
anchor_cnf = 55
token_series_id_param = 56

; CBOR Web Token (CWT) Claims
token_series_id_claim = 42

; CWT Confirmation Methods
x5chain = 24

; Custom Problem Detail Keys Registry
ace-error = 2
]]></artwork>
      </figure>
    </section>
    <section anchor="sec-document-updates" removeInRFC="true">
      <name>Document Updates</name>
      <section anchor="sec-06-07">
        <name>Version -06 to -07</name>
        <ul spacing="normal">
          <li>
            <t>Updated requirements for using "rs_cnf" in an access token request.</t>
          </li>
          <li>
            <t>More precise requirements on including/omitting parameters in access token request and response.</t>
          </li>
          <li>
            <t>Specified parameter encoding when messages are encoded in JSON.</t>
          </li>
          <li>
            <t>Moved content on dynamic update of access rights to the section about the "updated_rights" parameter.</t>
          </li>
          <li>
            <t>Clarifications:  </t>
            <ul spacing="normal">
              <li>
                <t>Access token responses are successful by definition.</t>
              </li>
              <li>
                <t>Successful response in general vs. response with 2.01 code.</t>
              </li>
              <li>
                <t>Explained the case where the RS has forgotten the access token to supersede.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>IANA considerations: update entry for "access_token" in the "OAuth Parameters" registry.</t>
          </li>
          <li>
            <t>Editorial fixes and improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-05-06">
        <name>Version -05 to -06</name>
        <ul spacing="normal">
          <li>
            <t>Defined dynamic update of access rights in the SDC workflow.</t>
          </li>
          <li>
            <t>Defined the new "updated_rights" parameter.</t>
          </li>
          <li>
            <t>Clarified practical requirements at the AS for processing the "to_rs" parameter.</t>
          </li>
          <li>
            <t>IANA considerations: update in the "Parameter Usage Location" column for some entries of the "OAuth Parameters" registry.</t>
          </li>
          <li>
            <t>Adjusted abbreviations in the CDDL model to avoid collisions.</t>
          </li>
          <li>
            <t>Removed appendix with placeholder ideas.</t>
          </li>
          <li>
            <t>Editorial fixes and improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-04-05">
        <name>Version -04 to -05</name>
        <ul spacing="normal">
          <li>
            <t>Error handling and error code for failed PoP verification at the AS.</t>
          </li>
          <li>
            <t>Extended definition of the parameters "to_rs" and "from_rs".</t>
          </li>
          <li>
            <t>Fixes and presentation improvements in the IANA considerations.</t>
          </li>
          <li>
            <t>Updated references.</t>
          </li>
          <li>
            <t>Revised order of some sections.</t>
          </li>
          <li>
            <t>Editorial fixes and improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-03-04">
        <name>Version -03 to -04</name>
        <ul spacing="normal">
          <li>
            <t>Updated document title.</t>
          </li>
          <li>
            <t>Defined name for the new workflow.</t>
          </li>
          <li>
            <t>Improved definition of "token series".</t>
          </li>
          <li>
            <t>Revised note on the new workflow suitable for "unaware" clients.</t>
          </li>
          <li>
            <t>Revised criterion for the AS to choose a token series identifier.</t>
          </li>
          <li>
            <t>Extended semantics of the "ace_profile" parameter.</t>
          </li>
          <li>
            <t>Specified means for C and the AS to coordinate on the exchange of public authentication credentials.</t>
          </li>
          <li>
            <t>Removed content on bidirectional access control.</t>
          </li>
          <li>
            <t>Suggested value ranges for codepoints to register.</t>
          </li>
          <li>
            <t>Editorial fixes and improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-02-03">
        <name>Version -02 to -03</name>
        <ul spacing="normal">
          <li>
            <t>Defined parameter and claim "token_series_id".</t>
          </li>
          <li>
            <t>Defined parameters "to_rs" and "from_rs".</t>
          </li>
          <li>
            <t>Defined use of "to_rs" and "from_rs" in the OSCORE profile.</t>
          </li>
          <li>
            <t>Lowercase use of "client", "resource server", and "authorization server".</t>
          </li>
          <li>
            <t>Fixed naming of parameters/claims for audience.</t>
          </li>
          <li>
            <t>Split elision and comments in the examples in CBOR Diagnostic Notation.</t>
          </li>
          <li>
            <t>SHA-256 is mandatory to implement for computing token hashes.</t>
          </li>
          <li>
            <t>Fixes in the IANA considerations.</t>
          </li>
          <li>
            <t>Removed (parts of) appendices that are not needed anymore.</t>
          </li>
          <li>
            <t>Clarifications and editorial improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-01-02">
        <name>Version -01 to -02</name>
        <ul spacing="normal">
          <li>
            <t>CBOR diagnostic notation uses placeholders from a CDDL model.</t>
          </li>
          <li>
            <t>Note on the new workflow supporting also non-ACE clients.</t>
          </li>
          <li>
            <t>Revised semantics of the "token_upload" parameter.</t>
          </li>
          <li>
            <t>Defined the new "token_hash" parameter.</t>
          </li>
          <li>
            <t>First definition of bidirectional access control through a single access token.</t>
          </li>
          <li>
            <t>Revised and extended considerations and next steps in appendices.</t>
          </li>
          <li>
            <t>Clarifications and editorial improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-00-01">
        <name>Version -00 to -01</name>
        <ul spacing="normal">
          <li>
            <t>Definition of the "token series" moved to the "Terminology" section.</t>
          </li>
          <li>
            <t>Clarifications and fixes on using parameters in messages.</t>
          </li>
          <li>
            <t>Amended two of the requirements on profiles of the framework.</t>
          </li>
          <li>
            <t>The client has to opt-in for using the new workflow.</t>
          </li>
          <li>
            <t>Parameter "token_uploaded" renamed to "token_upload".</t>
          </li>
          <li>
            <t>Updated format of error response payload to use RFC 9290.</t>
          </li>
          <li>
            <t>Security considerations inherited from other documents.</t>
          </li>
          <li>
            <t>Editorial fixes and improvements.</t>
          </li>
        </ul>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors sincerely thank <contact fullname="Christian Amsüss"/>, <contact fullname="Rikard Höglund"/>, and <contact fullname="Dave Robin"/> for their comments and feedback.</t>
      <t>This work was supported by the Sweden's Innovation Agency VINNOVA within the EUREKA CELTIC-NEXT project CYPRESS; and by the H2020 project SIFIS-Home (Grant agreement 952652).</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+292XbbWLYg+M6vQDPWKkuRJM1ZQw51ZVpO60Z4aEnOyFwZ
WSoQACWkSYIFkJJ1Ha5v6a+op37q+2O9hzMCByAoyxGOvOHMsCUSOMM+++x5
aLfbjdtjb9BorOP1PDr2Lm6SdO09j7N1Gk836zhZepMbP156exfPJ/veD0n6
fjZP7jx/GXqvozvvzclmfeO99VN/Ea2jNPNmSeqtbyIPP4+W6zjwaRB8Hj9K
0vg/+BN8cJIsYSIYPgq90+VtnCbLBbyUeXsnk9N97wWOegdTNvzpNI1goTgl
fGWvQ8/eCJNgCT8fe2Hqz9btOFrP2n4Qte/E8214vr3C57P23F9H2brRiFfp
sbdON9m63+0edfsNP418gEQUbNJ4fd+4uz5Wc8bLa+/PabJZNd7fHXtnS5h0
Ga3bz3G2Bmz12MvWYSPbTBdxlsEu1/crWMzZ6eWLxmYV4oTH3hFM08K/e/R3
n/4ewN/DQa/RuI2Wm+i44XnXOM3x58IRNr8Pgy38eH7swS//hiDpJOk1zhCv
bzZT+rh9d/20BE6NRpCEsO9jbwPAPGw0fJoel4h/2uJfz4uXsLlXHe8ynieB
rz7m83jlp0GS/wqWceydn12ceifP1IewkSgCQJ5l/uyfSRpm1/7aX3r9vnoi
gFM59r4DHNVDwRoRe0/bvfFw2DU+3izXKTx9cReF0VJ9HjFAFriqzppW9W9p
3Mki967+3AF0mANMojS3rz//5/9JYXWFb2lrp2kcZBmckWN7l0ma3fiLpdze
YIfteRfrJHh/k8wXdTd6ncAqYXu8yn+LxMI6QbJoNJZJugBcuiW0O38xGYz7
R+LH4Xh4KH4c9Q+74sfxwVA+MAbcFT8e9Ed9+eOoJx84OOzKBw77I/np4eBI
Pns4HI7lj+OeevZgeCB/PFKzHXXVFPDjQP7YV1PgrdI/9vWP+tmDA/XjkXpt
ODB+VCMcHNCnZ+3nHUVJovAmCdpJFiRp1F6lySyeE9yAQnSIGHZO0zRJOxM4
sc7k2Zvzzit/tYL7k/GNsW8PocnZyesT+h0JxLE38+cCDwVNZhpLw3o4rIfD
enJYftJPrxGrbtbrVXb89Ond3V0n9pc+3vSnPpCiayYIeMnxv86Hm/Vi/k2C
q2lHOHIbUawdTOGnhR4Zl9Z56Wc3nZM54BAQjMXD9/EabkwIRHPG+Ab3Akf2
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

-->

</rfc>
