<?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.6.14 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ace-oscore-gm-admin-07" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.12.2 -->
  <front>
    <title abbrev="Admin Interface for the OSCORE GM">Admin Interface for the OSCORE Group Manager</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ace-oscore-gm-admin-07"/>
    <author initials="M." surname="Tiloca" fullname="Marco Tiloca">
      <organization>RISE AB</organization>
      <address>
        <postal>
          <street>Isafjordsgatan 22</street>
          <city>Kista</city>
          <code>16440 Stockholm</code>
          <country>Sweden</country>
        </postal>
        <email>marco.tiloca@ri.se</email>
      </address>
    </author>
    <author initials="R." surname="Höglund" fullname="Rikard Höglund">
      <organization>RISE AB</organization>
      <address>
        <postal>
          <street>Isafjordsgatan 22</street>
          <city>Kista</city>
          <code>16440 Stockholm</code>
          <country>Sweden</country>
        </postal>
        <email>rikard.hoglund@ri.se</email>
      </address>
    </author>
    <author initials="P." surname="van der Stok" fullname="Peter van der Stok">
      <organization>Consultant</organization>
      <address>
        <phone>+31-492474673 (Netherlands), +33-966015248 (France)</phone>
        <email>stokcons@bbhmail.nl</email>
      </address>
    </author>
    <author initials="F." surname="Palombini" fullname="Francesca Palombini">
      <organization>Ericsson AB</organization>
      <address>
        <postal>
          <street>Torshamnsgatan 23</street>
          <city>Kista</city>
          <code>16440 Stockholm</code>
          <country>Sweden</country>
        </postal>
        <email>francesca.palombini@ericsson.com</email>
      </address>
    </author>
    <date year="2022" month="October" day="24"/>
    <area>Internet</area>
    <workgroup>ACE Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>Group communication for CoAP can be secured using Group Object Security for Constrained RESTful Environments (Group OSCORE). A Group Manager is responsible to handle the joining of new group members, as well as to manage and distribute the group keying material. This document defines a RESTful admin interface at the Group Manager, that allows an Administrator entity to create and delete OSCORE groups, as well as to retrieve and update their configuration. The ACE framework for Authentication and Authorization is used to enforce authentication and authorization of the Administrator at the Group Manager. Protocol-specific transport profiles of ACE are used to achieve communication security, proof-of-possession and server authentication.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Authentication and Authorization for Constrained Environments Working Group mailing list (ace@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ace/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/ace-wg/ace-oscore-gm-admin"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="intro">
      <name>Introduction</name>
      <t>The Constrained Application Protocol (CoAP) <xref target="RFC7252"/> can be used in group communication environments where messages are also exchanged over IP multicast <xref target="I-D.ietf-core-groupcomm-bis"/>. Applications relying on CoAP can achieve end-to-end security at the application layer by using Object Security for Constrained RESTful Environments (OSCORE) <xref target="RFC8613"/>, and especially Group OSCORE <xref target="I-D.ietf-core-oscore-groupcomm"/> in group communication scenarios.</t>
      <t>When group communication for CoAP is protected with Group OSCORE, nodes are required to explicitly join the correct OSCORE group. To this end, a joining node interacts with a Group Manager (GM) entity responsible for that group, and retrieves the required keying material to securely communicate with other group members using Group OSCORE.</t>
      <t>The method in <xref target="I-D.ietf-ace-key-groupcomm-oscore"/> specifies how nodes can join an OSCORE group through the respective Group Manager. Such a method builds on the ACE framework for Authentication and Authorization <xref target="RFC9200"/>, so ensuring a secure joining process as well as authentication and authorization of joining nodes (clients) at the Group Manager (resource server).</t>
      <t>In some deployments, the application running on the Group Manager may know when a new OSCORE group has to be created, as well as how it should be configured and later on updated or deleted, e.g., based on the current application state or on pre-installed policies. In this case, the Group Manager application can create and configure OSCORE groups when needed, by using a local application interface. However, this requires the Group Manager to be application-specific, which in turn leads to error prone deployments and is poorly flexible.</t>
      <t>In other deployments, a separate Administrator entity, such as a Commissioning Tool, is directly responsible for creating and configuring the OSCORE groups at a Group Manager, as well as for maintaining them during their whole lifetime until their deletion. This allows the Group Manager to be agnostic of the specific applications using secure group communication.</t>
      <t>This document specifies a RESTful admin interface at the Group Manager, intended for an Administrator as a separate entity external to the Group Manager and its application. The interface allows the Administrator to create and delete OSCORE groups, as well as to configure and update their configuration.</t>
      <t>Interaction examples are provided, in Link Format <xref target="RFC6690"/> and CBOR <xref target="RFC8949"/>, as well as in CoRAL <xref target="I-D.ietf-core-coral"/>. While all the CoRAL examples show the CoRAL textual serialization format, its binary serialization format is used on the wire.</t>
      <t>[ NOTE:</t>
      <t>The reported CoRAL examples are based on the textual representation used until  version -03 of <xref target="I-D.ietf-core-coral"/>. These will be revised to use the CBOR diagnostic notation instead.</t>
      <t>]</t>
      <t>The ACE framework is used to ensure authentication and authorization of the Administrator (client) at the Group Manager (resource server). In order to achieve communication security, proof-of-possession and server authentication, the Administrator and the Group Manager leverage protocol-specific transport profiles of ACE, such as <xref target="RFC9202"/><xref target="RFC9203"/>. These include also possible forthcoming transport profiles that comply with the requirements in Appendix C of <xref target="RFC9200"/>.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" 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>
        <t>Readers are expected to be familiar with the terms and concepts from the following specifications:</t>
        <ul spacing="normal">
          <li>CBOR <xref target="RFC8949"/> and COSE <xref target="RFC9052"/><xref target="RFC9053"/>.</li>
          <li>
            <t>The CoAP protocol <xref target="RFC7252"/>, also in group communication scenarios <xref target="I-D.ietf-core-groupcomm-bis"/>. These include the concepts of:  </t>
            <ul spacing="normal">
              <li>"application group", as a set of CoAP nodes that share a common set of resources; and of</li>
              <li>"security group", as a set of CoAP nodes that share the same security material, and use it to protect and verify exchanged messages.</li>
            </ul>
          </li>
          <li>
            <t>The OSCORE <xref target="RFC8613"/> and Group OSCORE <xref target="I-D.ietf-core-oscore-groupcomm"/> security protocols. These especially include the concepts of:  </t>
            <ul spacing="normal">
              <li>Group Manager, as the entity responsible for a set of OSCORE groups where communications among members are secured using Group OSCORE. An OSCORE group is used as security group for one or many application groups.</li>
              <li>Authentication credential, as the set of information associated with an entity, including that entity's public key and parameters associated with the public key. Examples of authentication credentials are CBOR Web Tokens (CWTs) and CWT Claims Sets (CCSs) <xref target="RFC8392"/>, X.509 certificates <xref target="RFC7925"/> and C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.</li>
            </ul>
          </li>
          <li>The ACE framework for authentication and authorization <xref target="RFC9200"/>. 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).</li>
          <li>The management of keying material for groups in ACE <xref target="I-D.ietf-ace-key-groupcomm"/> and specifically for OSCORE groups <xref target="I-D.ietf-ace-key-groupcomm-oscore"/>. These include the concept of group-membership resource hosted by the Group Manager, that new members access to join the OSCORE group, while current members can access to retrieve updated keying material.</li>
        </ul>
        <t>Note that, unless otherwise indicated, the term "endpoint" is used here following its OAuth definition, aimed at denoting resources such as /token and /introspect at the AS, and /authz-info at the RS. This document does not use the CoAP definition of "endpoint", which is "An entity participating in the CoAP protocol".</t>
        <t>This document also refers to the following terminology.</t>
        <ul spacing="normal">
          <li>Administrator: entity responsible to create, configure and delete OSCORE groups at a Group Manager.</li>
          <li>Group name: stable and invariant name of an OSCORE group. The group name MUST be unique under the same Group Manager, and MUST include only characters that are valid for a URI path segment.</li>
          <li>
            <t>Group-collection resource: a single-instance resource hosted by the Group Manager. An Administrator accesses a group-collection resource to retrieve the list of existing OSCORE groups, or to create a new OSCORE group, under that Group Manager.  </t>
            <t>
As an example, this document uses /manage as the url-path of the group-collection resource; implementations are not required to use this name, and can define their own instead.</t>
          </li>
          <li>
            <t>Group-configuration resource: a resource hosted by the Group Manager, associated with an OSCORE group under that Group Manager. A group-configuration resource is identifiable with the invariant group name of the respective OSCORE group. An Administrator accesses a group-configuration resource to retrieve or change the configuration of the respective OSCORE group, or to delete that group.  </t>
            <t>
The url-path to a group-configuration resource has GROUPNAME as last segment, with GROUPNAME the invariant group name assigned upon its creation. Building on the considered url-path of the group-collection resource, this document uses /manage/GROUPNAME as the url-path of a group-configuration resource; implementations are not required to use this name, and can define their own instead.</t>
          </li>
          <li>Admin endpoint: an endpoint at the Group Manager associated with the group-collection resource or to a group-configuration resource hosted by that Group Manager.</li>
        </ul>
      </section>
    </section>
    <section anchor="overview">
      <name>Group Administration</name>
      <t>With reference to the ACE framework and the terminology defined in OAuth 2.0 <xref target="RFC6749"/>:</t>
      <ul spacing="normal">
        <li>The Group Manager acts as Resource Server (RS). It provides one single group-collection resource, and one group-configuration resource per existing OSCORE group. Each of those is exported by a distinct admin endpoint.</li>
        <li>The Administrator acts as Client (C), and requests to access the group-collection resource and group-configuration resources, by accessing the respective admin endpoint at the Group Manager.</li>
        <li>
          <t>The Authorization Server (AS) authorizes the Administrator to access the group-collection resource and group-configuration resources at a Group Manager. Multiple Group Managers can be associated with the same AS.  </t>
          <t>
The authorized access for an Administrator can be limited to performing only a subset of operations, according to what is allowed by the authorization information in the Access Token issued to that Administrator (see <xref target="scope-format"/> and <xref target="getting-access"/>). The AS can authorize multiple Administrators to access the group-collection resource and the (same) group-configuration resources at the Group Manager.  </t>
          <t>
The AS MAY release Access Tokens to the Administrator for other purposes than accessing admin endpoints of registered Group Managers.</t>
        </li>
      </ul>
      <section anchor="managing-groups">
        <name>Managing OSCORE Groups</name>
        <t><xref target="fig-api"/> shows the resources of a Group Manager available to an Administrator.</t>
        <figure anchor="fig-api">
          <name>Resources of a Group Manager</name>
          <artwork align="center"><![CDATA[
             ___
   Group    /   \
Collection  \___/
                 \
                  \____________________
                   \___    \___        \___
                   /   \   /   \  ...  /   \        Group
                   \___/   \___/       \___/   Configurations
]]></artwork>
        </figure>
        <t>The Group Manager exports a single group-collection resource, with resource type "core.osc.gcoll" defined in <xref target="iana-rt"/> of this document. The interface for the group-collection resource defined in <xref target="interactions"/> allows the Administrator to:</t>
        <ul spacing="normal">
          <li>Retrieve the list of existing OSCORE groups.</li>
          <li>Retrieve the list of existing OSCORE groups matching with specified filter criteria.</li>
          <li>Create a new OSCORE group, specifying its invariant group name and, optionally, its configuration.</li>
        </ul>
        <t>The Group Manager exports one group-configuration resource for each of its OSCORE groups. Each group-configuration resource has resource type "core.osc.gconf" defined in <xref target="iana-rt"/> of this document, and is identified by the group name specified upon creating the OSCORE group. The interface for a group-configuration resource defined in <xref target="interactions"/> allows the Administrator to:</t>
        <ul spacing="normal">
          <li>Retrieve the complete current configuration of the OSCORE group.</li>
          <li>Retrieve part of the current configuration of the OSCORE group, by applying filter criteria.</li>
          <li>Overwrite the current configuration of the OSCORE group.</li>
          <li>Selectively update only part of the current configuration of the OSCORE group.</li>
          <li>Delete the OSCORE group.</li>
        </ul>
      </section>
      <section anchor="collection-representation">
        <name>Collection Representation</name>
        <t>A list of group configurations is represented as a document containing the corresponding group-configuration resources in the list. Each group-configuration is represented as a link, where the link target is the URI of the group-configuration resource.</t>
        <t>The list can be represented as a Link Format document <xref target="RFC6690"/> or a CoRAL document <xref target="I-D.ietf-core-coral"/>.</t>
        <t>In the former case, the link to each group-configuration resource specifies the link target attribute 'rt' (Resource Type), with value "core.osc.gconf" defined in <xref target="iana-rt"/> of this document.</t>
        <t>In the latter case, the CoRAL document specifies the group-configuration resources in the list as top-level elements. In particular, the link to each group-configuration resource has http://coreapps.org/core.osc.gcoll#item as relation type.</t>
      </section>
      <section anchor="discovery">
        <name>Discovery</name>
        <t>The Administrator can discover the group-collection resource from a Resource Directory, for instance <xref target="RFC9176"/> and <xref target="I-D.hartke-t2trg-coral-reef"/>, or from .well-known/core, by using the resource type "core.osc.gcoll" defined in <xref target="iana-rt"/> of this document.</t>
        <t>The Administrator can discover group-configuration resources for the group-collection resource as specified in <xref target="collection-resource-get"/> and <xref target="collection-resource-fetch"/>.</t>
      </section>
    </section>
    <section anchor="scope-format">
      <name>Format of Scope</name>
      <t>This section defines the exact format and encoding of scope to use, in order to express authorization information for the Administrator (see <xref target="getting-access"/>).</t>
      <t>To this end, this document uses the Authorization Information Format (AIF) <xref target="RFC9237"/>. In particular, it uses and extends the AIF specific data model AIF-OSCORE-GROUPCOMM defined in <xref section="3" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>.</t>
      <t>The original definition of the data model AIF-OSCORE-GROUPCOMM specifies a scope as structured in scope entries, which express authorization information for users of an OSCORE group, i.e., actual group members or external signature verifiers. In the rest of this section, these are referred to as "user scope entries".</t>
      <t>This document extends the same AIF specific data model AIF-OSCORE-GROUPCOMM as defined below. In particular, it defines how the same scope can (also) include scope entries that express authorization information for Administrators of OSCORE groups. In the rest of this section, these are referred to as "admin scope entries".</t>
      <t>Like in the original definition of the data model AIF-OSCORE-GROUPCOMM, and with reference to the generic AIF model</t>
      <artwork><![CDATA[
   AIF-Generic<Toid, Tperm> = [* [Toid, Tperm]]
]]></artwork>
      <t>the value of the CBOR byte string used as scope encodes the CBOR array [* [Toid, Tperm]], where each [Toid, Tperm] element corresponds to one scope entry.</t>
      <t>Then, the following applies for each admin scope entry intended to express authorization information for an Administrator, as defined in this document.</t>
      <ul spacing="normal">
        <li>
          <t>The object identifier ("Toid") is specialized as either of the following, and specifies a group name pattern P for the admin scope entry.  </t>
          <ul spacing="normal">
            <li>Wildcard pattern: "Toid" is specialized as the CBOR simple value "true" (0xf5), specifying the wildcard pattern. That is, any group name expressed as a literal text string matches with this group name pattern.</li>
            <li>Literal pattern: "Toid" is specialized as a CBOR text string, whose value specifies an exact group name as a literal string. That is, only one specific group name expressed as a literal text string matches with this group name pattern.</li>
            <li>
              <t>Complex pattern: "Toid" is specialized as a tagged CBOR data item, specifying a more complex group name pattern with the semantics signaled by the CBOR tag. That is, multiple group names expressed as a literal text string match with this group name pattern.      </t>
              <t>
For example, and as typically expected, the data item can be a CBOR text string marked with the CBOR tag 35. This indicates that the group name pattern specified as value of the CBOR text string is a regular expression (see <xref section="3.4.5.3" sectionFormat="of" target="RFC8949"/>).      </t>
              <t>
In case the AIF specific data model AIF-OSCORE-GROUPCOMM is used in a JSON payload, the semantics information conveyed by the CBOR tag can be equivalently conveyed, for example, in a nested JSON object.      </t>
              <t>
The AS and the Group Manager are expected to have agreed on commonly supported semantics for group name patterns. This can happen, for instance, as part of the registration process of the Group Manager at the AS.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>The permission set ("Tperm") is specialized as a CBOR unsigned integer with value Q. This specifies the permissions that the Administrator has to perform operations on the admin endpoints at the Group Manager, as pertaining to any OSCORE group whose name matches with the pattern P. The value Q is computed as follows.  </t>
          <ul spacing="normal">
            <li>Each permission in the permission set is converted into the corresponding numeric identifier X from the "Value" column of the "Group OSCORE Admin Permissions" registry, for which this document defines the entries in <xref target="fig-permission-values"/>.</li>
            <li>The set of N numbers is converted into the single value Q, by taking two to the power of each numeric identifier X_1, X_2, ..., X_N, and then computing the inclusive OR of the binary representations of all the power values.</li>
          </ul>
          <t>
In general, a single permission can be associated with multiple different operations that are possible to be performed when interacting with the Group Manager. For example, the "List" permission allows the Administrator to retrieve a list of group configurations (see <xref target="collection-resource-get"/>) or only a subset of that according to specified filter criteria (see <xref target="collection-resource-fetch"/>), by issuing a GET or FETCH request to the group-collection resource, respectively.</t>
        </li>
      </ul>
      <figure anchor="fig-permission-values">
        <name>Numeric identifier of permissions on the admin endpoints at a Group Manager</name>
        <artwork align="center"><![CDATA[
+--------+-------+----------------------------------------+
| Name   | Value | Description                            |
+========+=======+========================================+
| List   | 0     | Retrieve list of group configurations  |
+--------+-------+----------------------------------------+
| Create | 1     | Create new group configurations        |
+--------+-------+----------------------------------------+
| Read   | 2     | Retrieve group configurations          |
+--------+-------+----------------------------------------+
| Write  | 3     | Change group configurations            |
+--------+-------+----------------------------------------+
| Delete | 4     | Delete group configurations            |
+--------+-------+----------------------------------------+
]]></artwork>
      </figure>
      <t>The following CDDL <xref target="RFC8610"/> notation defines an admin scope entry that uses the data model AIF-OSCORE-GROUPCOMM and expresses a set of permissions from those in <xref target="fig-permission-values"/>.</t>
      <sourcecode type="CDDL"><![CDATA[
   AIF-OSCORE-GROUPCOMM = AIF-Generic<oscore-gname, oscore-gperm>

   oscore-gname = true / tstr / #6.nnn(any) ; Group name pattern
   oscore-gperm = uint . bits admin-permissions
   admin-permissions = &(
      List: 0,
      Create: 1,
      Read: 2,
      Write: 3,
      Delete: 4
   )

   scope_entry = [oscore-gname, oscore-gperm]
]]></sourcecode>
      <t>Future specifications that define new permissions on the admin endpoints at the Group Manager MUST register a corresponding numeric identifier in the "Group OSCORE Admin Permissions" registry defined in <xref target="ssec-iana-group-oscore-admin-permissions-registry"/> of this document.</t>
      <t>When using the scope format as defined in this section, the permission set ("Tperm") of each admin scope entry MUST include the "List" permission. It follows that, when expressing permissions for Administrators of OSCORE groups as defined in this document, an admin scope entry has the least significant bit of "Tperm" always set to 1.</t>
      <t>Therefore, an Administrator is always allowed to retrieve a list of existing group configurations. The exact elements included in the returned list are determined by the Group Manager, based on the group name patterns specified in the admin scope entries of the Administrator's Access Token, as well as on possible filter criteria specified in the request from the Administrator (see <xref target="collection-resource-get"/> and <xref target="collection-resource-fetch"/>).</t>
      <t>Building on the above, the same single scope can include user scope entries as well as admin scope entries, whose specific format is defined in <xref section="3" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/> and earlier in this section, respectively. The two types of scope entries can be unambiguously distinguished by means of the least significant bit of their permission set "Tperm", which has value 0 for the user scope entries and 1 for the admin scope entries.</t>
      <t>The coexistence of user scope entries and admin scope entries within the same scope makes it possible to issue a single Access Token, in case the requesting Client wishes to be a user for some OSCORE groups and at the same time Administrator for some (other) OSCORE groups under the same Group Manager.</t>
      <t>Throughout the rest of this document, the term "scope entry" is used as referred to "admin scope entry", unless otherwise indicated.</t>
      <section anchor="on-enforcing-different-classes-of-administrators">
        <name>On Enforcing Different Classes of Administrators</name>
        <t>By relying on the scope format defined in this document and given an OSCORE group G1 created by a "main" Administrator, then a second "assistant" Administrator can be effectively authorized to perform some operations on G1, in spite of not being the group creator.</t>
        <t>Furthermore, having the object identifier ("Toid") specialized as a pattern displays a number of advantages.</t>
        <ul spacing="normal">
          <li>The encoded scope can be compact in size, while allowing the Administrator to operate on large pools of group names.</li>
          <li>The Administrator and the AS do not need to know exact group names when requesting and issuing an Access Token, respectively (see <xref target="getting-access"/>). In turn, the Group Manager can effectively take the final decision about the name to assign to an OSCORE group, upon its creation (see <xref target="collection-resource-post"/>).</li>
          <li>The Administrator may have established a secure communication association with the Group Manager based on a first Access Token T1, and then created an OSCORE group G. Following the invalidation of T1 (e.g., due to expiration) and the establishment of a new secure communication association with the Group Manager based on a new Access Token T2, the Administrator can seamlessly perform authorized operations on the previously created group G.</li>
        </ul>
      </section>
    </section>
    <section anchor="getting-access">
      <name>Getting Access to the Group Manager</name>
      <t>All communications between the involved entities rely on the CoAP protocol and MUST be secured.</t>
      <t>In particular, communications between the Administrator and the Group Manager leverage protocol-specific transport profiles of ACE to achieve communication security, proof-of-possession and server authentication. To this end, the AS may explicitly signal the specific transport profile to use, consistently with requirements and assumptions defined in the ACE framework <xref target="RFC9200"/>.</t>
      <t>With reference to the AS, communications between the Administrator and the AS (/token endpoint) as well as between the Group Manager and the AS (/introspect endpoint) can be secured by different means, for instance using DTLS <xref target="RFC9147"/> or OSCORE <xref target="RFC8613"/>. Further details on how the AS secures communications (with the Administrator and the Group Manager) depend on the specifically used transport profile of ACE, and are out of the scope of this document.</t>
      <t>In order to specify authorization information for Administrators, the format and encoding of scope defined in <xref target="scope-format"/> of this document MUST be used, for both the 'scope' claim in the Access Token, as well as for the 'scope' parameter in the Authorization Request and Authorization Response exchanged with the AS (see Sections <xref target="RFC9200" section="5.8.1" sectionFormat="bare"/> and <xref target="RFC9200" section="5.8.2" sectionFormat="bare"/> of <xref target="RFC9200"/>).</t>
      <t>Furthermore, the AS MAY use the extended format of scope defined in <xref section="7" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm"/> for the 'scope' claim of the Access Token. In such a case, the AS MUST use the CBOR tag with tag number TAG_NUMBER, associated with the CoAP Content-Format CF_ID for the media type application/aif+cbor registered in <xref section="16.9" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>.</t>
      <t>Note to RFC Editor: In the previous paragraph, please replace "TAG_NUMBER" with the CBOR tag number computed as TN(ct) in <xref section="4.3" sectionFormat="of" target="RFC9277"/>, where ct is the ID assigned to the CoAP Content-Format CF_ID registered in <xref section="16.9" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>. Then, please replace "CF_ID" with the ID assigned to that CoAP Content-Format. Finally, please delete this paragraph.</t>
      <t>This indicates that the binary encoded scope, as conveying the actual access control information, follows the scope semantics of the AIF specific data model AIF-OSCORE-GROUPCOMM defined in <xref section="3" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/> and extended as per <xref target="scope-format"/> of this document.</t>
      <t>In order to get access to the Group Manager for managing OSCORE groups, an Administrator performs the following steps.</t>
      <ol spacing="normal" type="1"><li>
          <t>The Administrator requests an Access Token from the AS, in order to access the group-collection and group-configuration resources on the Group Manager. To this end, the Administrator sends to the AS an Authorization Request as defined in <xref section="5.8.1" sectionFormat="of" target="RFC9200"/>.  </t>
          <t>
If the 'scope' parameter in the Authorization Request includes scope entries whose "Toid" specifies a complex pattern (see <xref target="scope-format"/>), then all such scope entries MUST adhere to the same pattern semantics.  </t>
          <t>
The Administrator will start or continue using a secure communication association with the Group Manager, according to the response from the AS and the specifically used transport profile of ACE.</t>
        </li>
        <li>
          <t>The AS processes the Authorization Request as defined in <xref section="5.8.2" sectionFormat="of" target="RFC9200"/>, especially verifying that the Administrator is authorized to obtain the requested permissions, or possibly a subset of those.  </t>
          <t>
The AS specifies the information on the authorization granted to the Administrator as the value of the 'scope' claim to include in the Access Token, in accordance with the scope format specified in <xref target="scope-format"/>. It is implementation specific which particular approach the AS takes to evaluate the requested permissions against the access policies pertaining to the Administrator for the Group Manager in question. <xref target="sec-as-scope-processing"/> provides an example of such an approach that the AS can use.  </t>
          <t>
If the 'scope' claim in the Authorization Request includes scope entries whose "Toid" specifies a complex pattern, then all such scope entries MUST adhere to the same pattern semantics.  </t>
          <t>
If the 'scope' parameter in the Authorization Request includes scope entries whose "Toid" specifies a complex pattern adhering to a certain pattern semantics, then that semantics MUST be used for all the scope entries in the 'scope' claim that specify a complex pattern.  </t>
          <t>
The AS MUST include the 'scope' parameter in the Authorization Response defined in <xref section="5.8.2" sectionFormat="of" target="RFC9200"/>, when the value included in the Access Token differs from the one specified by the Administrator in the Authorization Request. In such a case, scope specifies the set of permissions that the Administrator actually has to perform operations at the Group Manager, encoded as specified in <xref target="scope-format"/>.  </t>
          <t>
If the 'scope' parameter in the Authorization Request includes scope entries whose "Toid" specifies a complex pattern and any of the following conditions holds, then the AS MUST reply with a 4.00 (Bad Request) error response (see <xref section="5.8.3" sectionFormat="of" target="RFC9200"/>). The 'error_description' parameter carried out in the response payload MUST specify the CBOR value 1 (invalid_scope).  </t>
          <ul spacing="normal">
            <li>The "Toid" of the different scope entries that specify a complex pattern do not all adhere to the same pattern semantics.</li>
            <li>The "Toid" of the different scope entries that specify a complex pattern adhere to the same pattern semantics, but this is not supported by the AS or by the Group Manager.</li>
          </ul>
          <t>
Finally, as discussed in <xref target="scope-format"/>, the authorization information included in the Authorization Request or specified by the AS might also include permissions for the same Client as a user of an OSCORE group, i.e., as an actual group member or an external signature verifier. As per <xref target="scope-format"/>, such authorization information is expressed by "user scope entries", whose format and processing is specified in <xref target="I-D.ietf-ace-key-groupcomm-oscore"/>.</t>
        </li>
        <li>The Administrator transfers authentication and authorization information to the Group Manager by posting the obtained Access Token, according to the used profile of ACE, such as <xref target="RFC9202"/> and <xref target="RFC9203"/>. After that, the Administrator must have a secure communication association established with the Group Manager, before performing any administrative operation on that Group Manager. Possible ways to provide secure communication are DTLS <xref target="RFC9147"/> and OSCORE <xref target="RFC8613"/>. The Administrator and the Group Manager maintain the secure association, to support possible future communications.</li>
        <li>
          <t>Consistently with what is allowed by the authorization information in the Access Token, the Administrator performs administrative operations at the Group Manager, as described in <xref target="interactions"/>. These include retrieving a list of existing OSCORE groups, creating new OSCORE groups, retrieving and changing OSCORE group configurations, and removing OSCORE groups. Messages exchanged among the Administrator and the Group Manager are specified in <xref target="interactions"/>.  </t>
          <t>
Upon receiving a request from the Administrator targeting the group-configuration resource or a group-collection resource, the Group Manager MUST check that it is storing a valid Access Token for that Administrator. If this is not the case, the Group Manager MUST reply with a 4.01 (Unauthorized) error response.  </t>
          <t>
If the request targets the group-configuration resource associated with a group with name GROUPNAME, the Group Manager MUST check that it is storing a valid Access Token from that Administrator, such that the 'scope' claim specified in the Access Token: i) expresses authorization information through scope entries as defined in <xref target="scope-format"/>; and ii) specifically includes a scope entry where:  </t>
          <ul spacing="normal">
            <li>The group name GROUPNAME matches with the pattern specified by the "Toid" of the scope entry; and</li>
            <li>The permission set specified by the "Tperm" of the scope entry allows the Administrator to perform the requested administrative operation on the targeted group-configuration resource.</li>
          </ul>
          <t>
Note that the checks defined above only consider scope entries expressing permissions for administrative operations, namely "admin scope entries" as defined in <xref target="scope-format"/>, while the alternative "user scope entries" defined in <xref target="I-D.ietf-ace-key-groupcomm-oscore"/> are not considered.  </t>
          <t>
Further detailed checks to perform are defined separately for each operation at the Group Manager, when specified in <xref target="interactions"/>.  </t>
          <t>
In case the Group Manager stores a valid Access Token but the verifications above fail, the Group Manager MUST reply with a 4.03 (Forbidden) error response. This response MAY be an AS Request Creation Hints, as defined in <xref section="5.3" sectionFormat="of" target="RFC9200"/>, in which case the Content-Format MUST be set to application/ace+cbor.  </t>
          <t>
If the request is not formatted correctly (e.g., required fields are not present or are not encoded as expected), the Group Manager MUST reply with a 4.00 (Bad Request) error response.</t>
        </li>
      </ol>
    </section>
    <section anchor="group-configurations">
      <name>Group Configurations</name>
      <t>A group configuration consists of a set of parameters.</t>
      <section anchor="config-repr">
        <name>Group Configuration Representation</name>
        <t>The group configuration representation is a CBOR map, which includes configuration properties and status properties.</t>
        <section anchor="config-repr-config-properties">
          <name>Configuration Properties</name>
          <t>The CBOR map includes the following configuration parameters, whose CBOR abbreviations are defined in <xref target="groupcomm-parameters"/> of this document.</t>
          <ul spacing="normal">
            <li>'hkdf', which specifies the HKDF Algorithm used in the OSCORE group, encoded as a CBOR text string or a CBOR integer. Possible values are the same ones admitted for the 'hkdf' parameter of the Group_OSCORE_Input_Material object, defined in <xref section="6.3" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>.</li>
            <li>'cred_fmt', which specifies the format of authentication credentials used in the OSCORE group, encoded as a CBOR integer. Possible values are the same ones admitted for the 'cred_fmt' parameter of the Group_OSCORE_Input_Material object, defined in <xref section="6.3" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>.</li>
            <li>'group_mode', encoded as a CBOR simple value. Its value is "true" (0xf5) if the OSCORE group uses the group mode of Group OSCORE <xref target="I-D.ietf-core-oscore-groupcomm"/>, or "false" (0xf4) otherwise.</li>
            <li>'sign_enc_alg', which is formatted as follows. If the configuration parameter 'group_mode' has value "false" (0xf4), this parameter has as value the CBOR simple value "null" (0xf6). Otherwise, this parameter specifies the Signature Encryption Algorithm used in the OSCORE group to encrypt messages protected with the group mode, encoded as a CBOR text string or a CBOR integer. Possible values are the same ones admitted for the 'sign_enc_alg' parameter of the Group_OSCORE_Input_Material object, defined in <xref section="6.3" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>.</li>
            <li>'sign_alg', which is formatted as follows. If the configuration parameter 'group_mode' has value "false" (0xf4), this parameter has as value the CBOR simple value "null" (0xf6). Otherwise, this parameter specifies the Signature Algorithm used in the OSCORE group, encoded as a CBOR text string or a CBOR integer. Possible values are the same ones admitted for the 'sign_alg' parameter of the Group_OSCORE_Input_Material object, defined in <xref section="6.3" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>.</li>
            <li>'sign_params', which is formatted as follows. If the configuration parameter 'group_mode' has value "false" (0xf4), this parameter has as value the CBOR simple value "null" (0xf6). Otherwise, this parameter specifies the additional parameters for the Signature Algorithm used in the OSCORE group, encoded as a CBOR array. Possible formats and values are the same ones admitted for the 'sign_params' parameter of the Group_OSCORE_Input_Material object, defined in <xref section="6.3" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>.</li>
            <li>'pairwise_mode', encoded as a CBOR simple value. Its value is "true" (0xf5) if the OSCORE group uses the pairwise mode of Group OSCORE <xref target="I-D.ietf-core-oscore-groupcomm"/>, or "false" (0xf4) otherwise.</li>
            <li>'alg', which is formatted as follows. If the configuration parameter 'pairwise_mode' has value "false" (0xf4), this parameter has as value the CBOR simple value "null" (0xf6). Otherwise, this parameter specifies the AEAD Algorithm used in the OSCORE group to encrypt messages protected with the pairwise mode, encoded as a CBOR text string or a CBOR integer. Possible values are the same ones admitted for the 'alg' parameter of the Group_OSCORE_Input_Material object, defined in <xref section="6.3" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>.</li>
            <li>'ecdh_alg', which is formatted as follows. If the configuration parameter 'pairwise_mode' has value "false" (0xf4), this parameter has as value the CBOR simple value "null" (0xf6). Otherwise, this parameter specifies the Pairwise Key Agreement Algorithm used in the OSCORE group, encoded as a CBOR text string or a CBOR integer. Possible values are the same ones admitted for the 'ecdh_alg' parameter of the Group_OSCORE_Input_Material object, defined in <xref section="6.3" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>.</li>
            <li>'ecdh_params', which is formatted as follows. If the configuration parameter 'pairwise_mode' has value "false" (0xf4), this parameter has as value the CBOR simple value "null" (0xf6). Otherwise, this parameter specifies the parameters for the Pairwise Key Agreement Algorithm used in the OSCORE group, encoded as a CBOR array. Possible formats and values are the same ones admitted for the 'ecdh_params' parameter of the Group_OSCORE_Input_Material object, defined in <xref section="6.3" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>.</li>
            <li>'det_req', encoded as a CBOR simple value. Its value is "true" (0xf5) if the OSCORE group uses deterministic requests as defined in <xref target="I-D.amsuess-core-cachable-oscore"/>, or "false" (0xf4) otherwise. This parameter MUST NOT be present if the configuration parameter 'group_mode' has value "false" (0xf4).</li>
            <li>
              <t>'det_hash_alg', encoded as a CBOR integer or text string. If present, this parameter specifies the Hash Algorithm used in the OSCORE group when producing deterministic requests, as defined in <xref target="I-D.amsuess-core-cachable-oscore"/>. This parameter takes values from the "Value" column of the "COSE Algorithms" Registry <xref target="COSE.Algorithms"/>.  </t>
              <t>
This parameter MUST NOT be present if the configuration parameter 'det_req' is not present or if it is present with value "false" (0xf4). If the configuration parameter 'det_req' is present with value "true" (0xf5) and 'det_hash_alg' is not present, the choice of the Hash Algorithm to use when producing deterministic requests is left to the Group Manager.</t>
            </li>
          </ul>
        </section>
        <section anchor="config-repr-status-properties">
          <name>Status Properties</name>
          <t>The CBOR map includes the following status parameters. Unless specified otherwise, these are defined in this document and their CBOR abbreviations are defined in <xref target="groupcomm-parameters"/>.</t>
          <ul spacing="normal">
            <li>'rt', with value the resource type "core.osc.gconf" associated with group-configuration resources, encoded as a CBOR text string.</li>
            <li>'active', encoding the CBOR simple value "true" (0xf5) if the OSCORE group is currently active, or the CBOR simple value "false" (0xf4) otherwise.</li>
            <li>'group_name', with value the group name of the OSCORE group encoded as a CBOR text string.</li>
            <li>'group_title', with value either a human-readable description of the OSCORE group encoded as a CBOR text string, or the CBOR simple value "null" (0xf6) if no description is specified.</li>
            <li>'ace-groupcomm-profile', defined in <xref section="4.3.1" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm"/>, with value "coap_group_oscore_app" defined in <xref section="16.5" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/> encoded as a CBOR integer.</li>
            <li>'max_stale_sets', encoding a CBOR unsigned integer with value strictly greater than 1. With reference to <xref section="7.1" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>, this parameter specifies N, i.e., the maximum number of sets of stale OSCORE Sender IDs that the Group Manager stores in the collection associated with the group.</li>
            <li>'exp', defined in <xref section="4.3.1" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm"/>.</li>
            <li>'gid_reuse', encoding the CBOR simple value "true" (0xf5) if, upon rekeying the OSCORE group, the Group Manager can reassign the values of the OSCORE Group ID used as OSCORE ID Context, as per <xref section="3.2.1.1" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/> and <xref section="11" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>. Otherwise, this parameter encodes the CBOR simple value "false" (0xf4).</li>
            <li>'app_groups', with value a list of names of application groups, encoded as a CBOR array. Each element of the array is a CBOR text string, specifying the name of an application group using the OSCORE group as security group (see <xref section="2.1" sectionFormat="of" target="I-D.ietf-core-groupcomm-bis"/>).</li>
            <li>'joining_uri', with value the URI of the group-membership resource for joining the newly created OSCORE group as per <xref section="6.2" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>, encoded as a CBOR text string.</li>
            <li>'group_policies', defined in <xref section="4.3.1" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm"/>, and consistent with the format and content defined in <xref section="6.3" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>.</li>
            <li>'as_uri', with value the URI of the Authorization Server associated with the Group Manager for the OSCORE group, encoded as a CBOR text string. Candidate group members will have to obtain an Access Token from that Authorization Server, before starting the joining process with the Group Manager to join the OSCORE group (see Sections <xref target="I-D.ietf-ace-key-groupcomm-oscore" section="5" sectionFormat="bare"/> and <xref target="I-D.ietf-ace-key-groupcomm-oscore" section="6" sectionFormat="bare"/> of <xref target="I-D.ietf-ace-key-groupcomm-oscore"/>).</li>
          </ul>
        </section>
      </section>
      <section anchor="default-values">
        <name>Default Values</name>
        <t>This section defines the default values that the Group Manager refers to for configuration and status parameters.</t>
        <section anchor="default-values-conf">
          <name>Configuration Parameters</name>
          <t>For each of the configuration parameters listed below, the Group Manager refers to the following pre-configured default value, if none is specified by the Administrator.</t>
          <ul spacing="normal">
            <li>For 'group_mode', the Group Manager SHOULD use the CBOR simple value "true" (0xf5).</li>
            <li>If 'group_mode' has value "true" (0xf5), the Group Manager SHOULD use the same default values defined in <xref section="14.2" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/> for the parameters 'sign_enc_alg', 'sign_alg' and 'sign_params'.</li>
            <li>If 'group_mode' has value "true" (0xf5), the Group Manager SHOULD use the CBOR simple value "false" (0xf4) for the parameter 'det_req'.</li>
            <li>If 'det_req' has value "true" (0xf5), the Group Manager SHOULD use SHA-256 (COSE algorithm encoding: -16) as default value for the parameter 'det_hash_alg'.</li>
            <li>For 'pairwise_mode', the Group Manager SHOULD use the CBOR simple value "false" (0xf4).</li>
            <li>If 'pairwise_mode' has value "true" (0xf5), the Group Manager SHOULD use the same default values defined in <xref section="14.3" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/> for the parameters 'alg', 'ecdh_alg' and 'ecdh_params'.</li>
            <li>For any other configuration parameter, the Group Manager SHOULD use the same default values defined in <xref section="14.1" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>.</li>
          </ul>
        </section>
        <section anchor="status-parameters">
          <name>Status Parameters</name>
          <t>For each of the status parameters listed below, the Group Manager refers to the following pre-configured default value, if none is specified by the Administrator.</t>
          <ul spacing="normal">
            <li>For 'active', the Group Manager SHOULD use the CBOR simple value "false" (0xf4).</li>
            <li>For 'group_title', the Group Manager SHOULD use the CBOR simple value "null" (0xf6).</li>
            <li>For 'max_stale_sets', the Group Manager SHOULD use the CBOR unsigned integer value 3.</li>
            <li>For 'gid_reuse', the Group Manager SHOULD use the CBOR simple value "false" (0xf4).</li>
            <li>For 'app_groups', the Group Manager SHOULD use the empty CBOR array.</li>
            <li>For 'group_policies', the Group Manager SHOULD use the default values defined in <xref section="6.3" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>.</li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="interactions">
      <name>Interactions with the Group Manager</name>
      <t>This section describes the operations that are possible to perform on the group-collection resource and the group-configuration resources at the Group Manager.</t>
      <t>For each operation, it is defined whether that operation is required or optional to support for the Group Manager and an Administrator. If the Group Manager supports an operation, then the Group Manager must be able to correctly handle authorized and valid requests sent by the Administrator to carry out that operation. If the Group Manager receives an authorized and valid request to perform an operation that it does not support, then the Group Manager MUST respond with a 5.01 (Not Implemented) response.</t>
      <t>When checking the scope claim of a stored access token to verify that any of the requests defined in the following is authorized, the Group Manager only considers scope entries expressing permissions for administrative operations, namely "admin scope entries" as defined in <xref target="scope-format"/>. Instead, the alternative "user scope entries" defined in <xref target="I-D.ietf-ace-key-groupcomm-oscore"/> are not considered. That is, when handling any of the requests for administrative operations defined in the following, the Group Manager ignores possible "user scope entries" specified in the scope of a stored access token.</t>
      <t>When custom CBOR is used, the Content-Format in messages containing a payload is set to application/ace-groupcomm+cbor, defined in <xref section="11.2" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm"/>. Furthermore, the entry labels defined in <xref target="groupcomm-parameters"/> of this document MUST be used, when specifying the corresponding configuration and status parameters.</t>
      <section anchor="collection-resource-get">
        <name>Retrieve the Full List of Group Configurations</name>
        <t>This operation MUST be supported by the Group Manager and an Administrator.</t>
        <t>The Administrator can send a GET request to the group-collection resource, in order to retrieve a list of the existing OSCORE groups at the Group Manager. This is returned as a list of links to the corresponding group-configuration resources.</t>
        <t>The Group Manager MUST prepare the list L to include in the response as follows. For each group-configuration resource R:</t>
        <ol spacing="normal" type="1"><li>The Group Manager considers the group name GROUPNAME of the OSCORE group associated with R.</li>
          <li>The Group Manager retrieves the stored Access Token for the Administrator. Then, it checks whether GROUPNAME matches with the group name pattern specified in any scope entry of the 'scope' claim in the Access Token.</li>
          <li>The link to the group-configuration resource R is added to the list L only in case of a positive match.</li>
        </ol>
        <t>Example in Link Format:</t>
        <artwork><![CDATA[
=> 0.01 GET
   Uri-Path: manage

<= 2.05 Content
   Content-Format: 40 (application/link-format)

   <coap://[2001:db8::ab]/manage/gp1>;rt="core.osc.gconf",
   <coap://[2001:db8::ab]/manage/gp2>;rt="core.osc.gconf",
   <coap://[2001:db8::ab]/manage/gp3>;rt="core.osc.gconf"
]]></artwork>
        <t>Example in CoRAL:</t>
        <artwork><![CDATA[
=> 0.01 GET
   Uri-Path: manage

<= 2.05 Content
   Content-Format: TBD1 (application/coral+cbor)

   #using <http://coreapps.org/core.osc.gcoll#>
   #base </manage/>
   item <gp1>
   item <gp2>
   item <gp3>
]]></artwork>
      </section>
      <section anchor="collection-resource-fetch">
        <name>Retrieve a List of Group Configurations by Filters</name>
        <t>This operation MUST be supported by the Group Manager and MAY be supported by an Administrator.</t>
        <t>The Administrator can send a FETCH request to the group-collection resource, in order to retrieve a list of the existing OSCORE groups that fully match a set of specified filter criteria. This is returned as a list of links to the corresponding group-configuration resources.</t>
        <t>When custom CBOR is used, the set of filter criteria is specified in the request payload as a CBOR map, whose possible entries are specified in <xref target="config-repr"/> and use the same abbreviations defined in <xref target="groupcomm-parameters"/>. Entry values are the ones admitted for the corresponding labels in the POST request for creating a group configuration (see <xref target="collection-resource-post"/>). A valid request MUST NOT include the same entry multiple times.</t>
        <t>When CoRAL is used, the filter criteria are specified in the request payload with top-level elements, each of which corresponds to an entry specified in <xref target="config-repr"/>, with the exception of the 'app_groups' status parameter. If names of application groups are used as filter criteria, each element of the 'app_groups' array from the status properties is included as a separate element with name 'app_group'. With the exception of the 'app_group' element, a valid request MUST NOT include the same element multiple times. Element values are the ones admitted for the corresponding labels in the POST request for creating a group configuration (see <xref target="collection-resource-post"/>).</t>
        <t>The Group Manager MUST prepare the list L to include in the response as follows.</t>
        <ol spacing="normal" type="1"><li>The Group Manager prepares a preliminary version of the list L, as specified in <xref target="collection-resource-get"/> for the processing of a GET request to the group-collection resource.</li>
          <li>The Group Manager applies the filter criteria specified in the FETCH request to the list L from the previous step. The result is the list L to include in the response.</li>
        </ol>
        <t>Example in custom CBOR and Link Format:</t>
        <artwork><![CDATA[
=> 0.05 FETCH
   Uri-Path: manage
   Content-Format: TBD2 (application/ace-groupcomm+cbor)

   {
       "group_mode" : true,
       "sign_enc_alg" : 10,
       "hkdf" : 5
   }

<= 2.05 Content
   Content-Format: 40 (application/link-format)

   <coap://[2001:db8::ab]/manage/gp1>;rt="core.osc.gconf",
   <coap://[2001:db8::ab]/manage/gp2>;rt="core.osc.gconf",
   <coap://[2001:db8::ab]/manage/gp3>;rt="core.osc.gconf"
]]></artwork>
        <t>Example in CoRAL:</t>
        <artwork><![CDATA[
=> 0.05 FETCH
   Uri-Path: manage
   Content-Format: TBD1 (application/coral+cbor)

   group_mode true
   sign_enc_alg 10
   hkdf 5

<= 2.05 Content
   Content-Format: TBD1 (application/coral+cbor)

   #using <http://coreapps.org/core.osc.gcoll#>
   #base </manage/>
   item <gp1>
   item <gp2>
   item <gp3>
]]></artwork>
      </section>
      <section anchor="collection-resource-post">
        <name>Create a New Group Configuration</name>
        <t>This operation MUST be supported by the Group Manager and an Administrator.</t>
        <t>The Administrator can send a POST request to the group-collection resource, in order to create a new OSCORE group at the Group Manager. The request MUST specify the intended group name GROUPNAME, and MAY specify the intended group title together with pieces of information concerning the group configuration.</t>
        <t>When custom CBOR is used, the request payload is a CBOR map, whose possible entries are specified in <xref target="config-repr"/> and use the same abbreviations defined in <xref target="groupcomm-parameters"/>.</t>
        <t>When CoRAL is used, each element of the request payload corresponds to an entry specified in <xref target="config-repr"/>, with the exception of the 'app_groups' status parameter (see below).</t>
        <t>In particular:</t>
        <ul spacing="normal">
          <li>The payload MAY include any of the configuration parameters defined in <xref target="config-repr-config-properties"/>.</li>
          <li>The payload MUST include the status parameter 'group_name' defined in <xref target="config-repr-status-properties"/> and specifying the intended group name.</li>
          <li>
            <t>The payload MAY include any of the status parameters 'active', 'group_title', 'max_stale_sets', 'exp', 'gid_reuse', 'app_groups, 'group_policies' and 'as_uri' defined in <xref target="config-repr-status-properties"/>.  </t>
            <t>
When CoRAL is used, each element of the 'app_groups' array from the status properties is included as a separate element with name 'app_group'.</t>
          </li>
          <li>The payload MUST NOT include any of the status parameters 'rt', 'ace-groupcomm-profile' and 'joining_uri' defined in <xref target="config-repr-status-properties"/>.</li>
        </ul>
        <t>Consistently with what is defined at step 4 of <xref target="getting-access"/>, the Group Manager MUST check whether the group name specified in the 'group_name' parameter matches with the group name pattern specified in any scope entry of the 'scope' claim in the stored Access Token for the Administrator. In case of a positive match, the Group Manager MUST check whether the permission set in the found scope entry specifies the permission "Create".</t>
        <t>If the verification above fails (i.e., there are no matching scope entries specifying the "Create" permission), the Group Manager MUST reply with a 4.03 (Forbidden) error response. The response MUST have Content-Format set to application/ace-groupcomm+cbor and is formatted as defined in <xref section="4.1.2" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm"/>.</t>
        <t>Otherwise, if any of the following occurs, the Group Manager MUST respond with a 4.00 (Bad Request) response.</t>
        <ul spacing="normal">
          <li>Any of the received parameters is specified multiple times, with the exception of the 'app_group' element when using CoRAL.</li>
          <li>Any of the received parameters is not recognized, or not valid, or not consistent with respect to other related parameters.</li>
          <li>The Group Manager does not trust the Authorization Server with URI specified in the 'as_uri' parameter, and has no alternative Authorization Server to consider for the OSCORE group to create.</li>
        </ul>
        <t>After a successful processing of the POST request, the Group Manager performs the following actions.</t>
        <t>If the 'group_name' parameter specifies the group name of an already existing OSCORE group, the Group Manager MUST find an alternative name for the new OSCORE group to create.</t>
        <t>In addition to that, the final decision about the name assigned to the new OSCORE group is always of the Group Manager, which may have more constraints than the Administrator can be aware of, possibly beyond the availability of suggested names. For example, the Group Manager may specifically want to use a randomized character string as the name of a newly created group.</t>
        <t>If the Group Manager has selected a name GROUPNAME different from the name GROUPNAME* indicated in the parameter 'group_name' of the request, then the following conditions MUST hold.</t>
        <ul spacing="normal">
          <li>The chosen name GROUPNAME is available to assign; and</li>
          <li>If GROUPNAME* matches with the group name pattern of certain scope entries from the 'scope' claim in the stored Access Token for the Administrator, then the chosen group name GROUPNAME also matches with each of those group name patterns.</li>
        </ul>
        <t>If the Group Manager does not find any group name for which both the above conditions hold, the Group Manager MUST respond with a 5.03 (Service Unavailable) response. The response MUST have Content-Format set to application/ace-groupcomm+cbor and is formatted as defined in <xref section="4.1.2" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm"/>. The value of the 'error' field MUST be set to 11 ("No available group names").</t>
        <t>Otherwise, the Group Manager creates a new group-configuration resource, accessible to the Administrator at /manage/GROUPNAME, where GROUPNAME is the name of the OSCORE group as either indicated in the parameter 'group_name' of the request or uniquely assigned by the Group Manager.</t>
        <t>The value of the status parameter 'rt' is set to "core.osc.gconf". The values of other parameters specified in the request are used as group configuration information for the newly created OSCORE group.</t>
        <t>If the request specifies the parameter 'gid_reuse' encoding the CBOR simple value "true" (0xf5) and the Group Manager does not support the reassignment of OSCORE Group ID values (see <xref section="3.2.1.1" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/> and <xref section="11" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>), then the Group Manager sets the value of the 'gid_reuse' status parameter in the group-configuration resource to the CBOR simple value "false" (0xf4).</t>
        <t>For each parameter not specified in the request, the Group Manager refers to the default values specified in <xref target="default-values"/>.</t>
        <t>After that, the Group Manager creates a new group-membership resource accessible at ace-group/GROUPNAME to nodes that want to join the OSCORE group, as specified in <xref section="6.1" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>. Note that such group membership-resource comprises a number of sub-resources intended to current group members, as defined in <xref section="4.1" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm"/> and <xref section="8" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>.</t>
        <t>From then on, the Group Manager will rely on the current group configuration to build the Join Response message defined in <xref section="6.3" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>, when handling the joining of a new group member. Furthermore, the Group Manager generates the following pieces of information, and assigns them to the newly created OSCORE group.</t>
        <ul spacing="normal">
          <li>The OSCORE Master Secret.</li>
          <li>The OSCORE Master Salt (optionally).</li>
          <li>The Group ID, used as OSCORE ID Context, which MUST be unique within the set of OSCORE groups under the Group Manager.</li>
        </ul>
        <t>Finally, the Group Manager replies to the Administrator with a 2.01 (Created) response. The Location-Path option MUST be included in the response, indicating the location of the just created group-configuration resource. The response MUST NOT include a Location-Query option.</t>
        <t>The response payload specifies the parameters 'group_name', 'joining_uri' and 'as_uri', from the status properties of the newly created OSCORE group (see <xref target="config-repr"/>), as detailed below.</t>
        <t>When custom CBOR is used, the response payload is a CBOR map, where entries use the same abbreviations defined in <xref target="groupcomm-parameters"/>. When CoRAL is used, the response payload includes one element for each specified parameter.</t>
        <ul spacing="normal">
          <li>'group_name', with value the group name of the OSCORE group. This value can be different from the group name possibly specified by the Administrator in the POST request, and reflects the final choice of the Group Manager as 'group_name' status property for the OSCORE group. This parameter MUST be included.</li>
          <li>'joining_uri', with value the URI of the group-membership resource for joining the newly created OSCORE group. This parameter MUST be included.</li>
          <li>'as_uri', with value the URI of the Authorization Server associated with the Group Manager for the newly created OSCORE group. This parameter MUST be included. Its value can be different from the URI possibly specified by the Administrator in the POST request, and reflects the final choice of the Group Manager as 'as_uri' status property for the OSCORE group.</li>
        </ul>
        <t>If the POST request specified the parameter 'gid_reuse' encoding the CBOR simple value "true" (0xf5) but the Group Manager has set the value of the 'gid_reuse' status parameter in the group-configuration resource to the CBOR simple value "false" (0xf4), then the response payload MUST include also the parameter 'gid_reuse' encoding the CBOR simple value "false" (0xf4).</t>
        <t>If the POST request did not specify certain parameters and the Group Manager used default values different from the ones recommended in <xref target="default-values"/>, then the response payload MUST include also those parameters, specifying the values chosen by the Group Manager for the current group configuration.</t>
        <t>The Group Manager can register the link to the group-membership resource with URI specified in 'joining_uri' to a Resource Directory <xref target="RFC9176"/><xref target="I-D.hartke-t2trg-coral-reef"/>, as defined in <xref section="2" sectionFormat="of" target="I-D.tiloca-core-oscore-discovery"/>. The Group Manager considers the current group configuration when specifying additional information for the link to register.</t>
        <t>Alternatively, the Administrator can perform the registration in the Resource Directory on behalf of the Group Manager, acting as Commissioning Tool. The Administrator considers the following when specifying additional information for the link to register.</t>
        <ul spacing="normal">
          <li>The name of the OSCORE group MUST take the value specified in 'group_name' from the 2.01 (Created) response.</li>
          <li>The names of the application groups using the OSCORE group MUST take the values possibly specified by the elements of the 'app_groups' parameter (when custom CBOR is used) or by the different 'app_group' elements (when CoRAL is used) in the POST request.</li>
          <li>If also registering a related link to the Authorization Server associated with the OSCORE group, the related link MUST have as link target the URI in 'as_uri' from the 2.01 (Created) response.</li>
          <li>
            <t>As to every other information element describing the current group configuration, the following applies.  </t>
            <ul spacing="normal">
              <li>If a certain parameter was specified in the POST request, the Administrator MUST use either the value specified in the 2.01 (Created) response, if the Group Manager specified one, or the value specified in the POST request otherwise.</li>
              <li>If a certain parameter was not specified in the POST request, the Administrator MUST use either the value specified in the 2.01 (Created) response, if the Group Manager specified one, or the corresponding default value recommended in <xref target="default-values-conf"/> otherwise.</li>
            </ul>
          </li>
        </ul>
        <t>Note that, compared to the Group Manager, the Administrator is less likely to remain closely aligned with possible changes and updates that would require a prompt update to the registration in the Resource Directory. This applies especially to the address of the Group Manager, as well as the URI of the group-membership resource or of the Authorization Server associated with the Group Manager.</t>
        <t>Therefore, it is RECOMMENDED that registrations of links to group-membership resources in the Resource Directory are made (and possibly updated) directly by the Group Manager, rather than by the Administrator.</t>
        <t>Example in custom CBOR:</t>
        <artwork><![CDATA[
=> 0.02 POST
   Uri-Path: manage
   Content-Format: TBD2 (application/ace-groupcomm+cbor)

   {
     "sign_enc_alg" : 10,
     "hkdf" : 5,
     "pairwise_mode" : true,
     "active" : true,
     "group_name" : "gp4",
     "group_title" : "rooms 1 and 2",
     "app_groups": : ["room1", "room2"],
     "as_uri" : "coap://as.example.com/token"
   }

<= 2.01 Created
   Location-Path: manage
   Location-Path: gp4
   Content-Format: TBD2 (application/ace-groupcomm+cbor)

   {
     "group_name" : "gp4",
     "joining_uri" : "coap://[2001:db8::ab]/ace-group/gp4/",
     "as_uri" : "coap://as.example.com/token"
   }
]]></artwork>
        <t>Example in CoRAL:</t>
        <artwork><![CDATA[
=> 0.02 POST
   Uri-Path: manage
   Content-Format: TBD1 (application/coral+cbor)

   #using <http://coreapps.org/core.osc.gconf#>
   sign_enc_alg 10
   hkdf 5
   pairwise_mode true
   active true
   group_name "gp4"
   group_title "rooms 1 and 2"
   app_group "room1"
   app_group "room2"
   as_uri <coap://as.example.com/token>

<= 2.01 Created
   Location-Path: manage
   Location-Path: gp4
   Content-Format: TBD1 (application/coral+cbor)

   #using <http://coreapps.org/core.osc.gconf#>
   group_name "gp4"
   joining_uri <coap://[2001:db8::ab]/ace-group/gp4/>
   as_uri <coap://as.example.com/token>
]]></artwork>
      </section>
      <section anchor="configuration-resource-get">
        <name>Retrieve a Group Configuration</name>
        <t>This operation MUST be supported by the Group Manager and an Administrator.</t>
        <t>The Administrator can send a GET request to the group-configuration resource manage/GROUPNAME associated with an OSCORE group with group name GROUPNAME, in order to retrieve the complete current configuration of that group.</t>
        <t>Consistently with what is defined at step 4 of <xref target="getting-access"/>, the Group Manager MUST check whether GROUPNAME matches with the group name pattern specified in any scope entry of the 'scope' claim in the stored Access Token for the Administrator. In case of a positive match, the Group Manager MUST check whether the permission set in the found scope entry specifies the permission "Read".</t>
        <t>If the verification above fails (i.e., there are no matching scope entries specifying the "Read" permission), the Group Manager MUST reply with a 4.03 (Forbidden) error response. The response MUST have Content-Format set to application/ace-groupcomm+cbor and is formatted as defined in <xref section="4.1.2" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm"/>.</t>
        <t>Otherwise, after a successful processing of the GET request, the Group Manager replies to the Administrator with a 2.05 (Content) response. The response has as payload the representation of the group configuration as specified in <xref target="config-repr"/>. The exact content of the payload reflects the current configuration of the OSCORE group. This includes both configuration properties and status properties.</t>
        <t>When custom CBOR is used, the response payload is a CBOR map, whose possible entries are specified in <xref target="config-repr"/> and use the same abbreviations defined in <xref target="groupcomm-parameters"/>.</t>
        <t>When CoRAL is used, the response payload includes one element for each entry specified in <xref target="config-repr"/>, with the exception of the 'app_groups' status parameter. That is, each element of the 'app_groups' array from the status properties is included as a separate element with name 'app_group'.</t>
        <t>Example in custom CBOR:</t>
        <artwork><![CDATA[
=> 0.01 GET
   Uri-Path: manage
   Uri-Path: gp4

<= 2.05 Content
   Content-Format: TBD2 (application/ace-groupcomm+cbor)

   {
     "hkdf" : 5,
     "cred_fmt" : 33,
     "group_mode" : true,
     "sign_enc_alg" : 10,
     "sign_alg" : -8,
     "sign_params" : [[1], [1, 6]],
     "pairwise_mode" : true,
     "alg" : 10,
     "ecdh_alg" : -27,
     "ecdh_params" : [[1], [1, 6]],
     "det_req" : false,
     "rt" : "core.osc.gconf",
     "active" : true,
     "group_name" : "gp4",
     "group_title" : "rooms 1 and 2",
     "ace-groupcomm-profile" : "coap_group_oscore_app",
     "max_stale_sets" : 3,
     "gid_reuse" : false,
     "exp" : 1360289224,
     "app_groups": : ["room1", "room2"],
     "joining_uri" : "coap://[2001:db8::ab]/ace-group/gp4/",
     "as_uri" : "coap://as.example.com/token"
   }
]]></artwork>
        <t>Example in CoRAL:</t>
        <artwork><![CDATA[
=> 0.01 GET
   Uri-Path: manage
   Uri-Path: gp4

<= 2.05 Content
   Content-Format: TBD1 (application/coral+cbor)

   #using <http://coreapps.org/core.osc.gconf#>
   hkdf 5
   cred_fmt 33
   group_mode true
   sign_enc_alg 10
   sign_alg -8
   sign_params.alg_capab.key_type 1
   sign_params.key_type_capab.key_type 1
   sign_params.key_type_capab.curve 6
   pairwise_mode true
   alg 10
   ecdh_alg -27
   ecdh_params.alg_capab.key_type 1
   ecdh_params.key_type_capab.key_type 1
   ecdh_params.key_type_capab.curve 6
   det_req false
   rt "core.osc.gconf"
   active true
   group_name "gp4"
   group_title "rooms 1 and 2"
   ace-groupcomm-profile "coap_group_oscore_app"
   max_stale_sets 3
   gid_reuse false
   exp 1360289224
   app_group "room1"
   app_group "room2"
   joining_uri <coap://[2001:db8::ab]/ace-group/gp4/>
   as_uri <coap://as.example.com/token>
]]></artwork>
      </section>
      <section anchor="configuration-resource-fetch">
        <name>Retrieve Part of a Group Configuration by Filters</name>
        <t>This operation MUST be supported by the Group Manager and MAY be supported by an Administrator.</t>
        <t>The Administrator can send a FETCH request to the group-configuration resource manage/GROUPNAME associated with an OSCORE group with group name GROUPNAME, in order to retrieve part of the current configuration of that group.</t>
        <t>When custom CBOR is used, the request payload is a CBOR map, which contains the following fields:</t>
        <ul spacing="normal">
          <li>'conf_filter', encoded as a CBOR array and with CBOR abbreviation defined in <xref target="groupcomm-parameters"/>. Each element of the array specifies one requested configuration parameter or status parameter of the current group configuration (see <xref target="config-repr"/>).</li>
        </ul>
        <t>When CoRAL is used, the request payload includes one element for each requested configuration parameter or status parameter of the current group configuration (see <xref target="config-repr"/>). All the specified elements have no value.</t>
        <t>The Group Manager MUST perform the same authorization checks defined for the processing of a GET request to a group-configuration resource in <xref target="configuration-resource-get"/>. That is, the Group Manager MUST verify that the Administrator has been granted a "Read" permission applicable to the targeted group-configuration resource.</t>
        <t>After a successful processing of the FETCH request, the Group Manager replies to the Administrator with a 2.05 (Content) response. The response has as payload a partial representation of the group configuration (see <xref target="config-repr"/>). The exact content of the payload reflects the current configuration of the OSCORE group, and is limited to the configuration properties and status properties requested by the Administrator in the FETCH request.</t>
        <t>The response payload includes the requested configuration parameters and status parameters, and is formatted as in the response payload of a GET request to a group-configuration resource (see <xref target="configuration-resource-get"/>).</t>
        <t>Example in custom CBOR:</t>
        <artwork><![CDATA[
=> 0.05 FETCH
   Uri-Path: manage
   Uri-Path: gp4
   Content-Format: TBD2 (application/ace-groupcomm+cbor)

   {
     "conf_filter" : ["sign_enc_alg",
                      "hkdf",
                      "pairwise_mode",
                      "active",
                      "group_title",
                      "app_groups"]
   }

<= 2.05 Content
   Content-Format: TBD2 (application/ace-groupcomm+cbor)

   {
     "sign_enc_alg" : 10,
     "hkdf" : 5,
     "pairwise_mode" : true,
     "active" : true,
     "group_title" : "rooms 1 and 2",
     "app_groups": : ["room1", "room2"]
   }

]]></artwork>
        <t>Example in CoRAL:</t>
        <artwork><![CDATA[
=> 0.05 FETCH
   Uri-Path: manage
   Uri-Path: gp4
   Content-Format: TBD1 (application/coral+cbor)

   #using <http://coreapps.org/core.osc.gconf#>
   sign_enc_alg
   hkdf
   pairwise_mode
   active
   group_title
   app_groups

<= 2.05 Content
   Content-Format: TBD1 (application/coral+cbor)

   #using <http://coreapps.org/core.osc.gconf#>
   sign_enc_alg 10
   hkdf 5
   pairwise_mode true
   active true
   group_title "rooms 1 and 2"
   app_group "room1"
   app_group "room2"
]]></artwork>
      </section>
      <section anchor="configuration-resource-put">
        <name>Overwrite a Group Configuration</name>
        <t>This operation MAY be supported by the Group Manager and an Administrator.</t>
        <t>The Administrator can send a PUT request to the group-configuration resource associated with an OSCORE group, in order to overwrite the current configuration of that group with a new one. The payload of the request has the same format of the POST request defined in <xref target="collection-resource-post"/>, with the exception that the configuration parameters 'group_mode' and 'pairwise_mode' as well as the status parameters 'group_name' and 'gid_reuse' MUST NOT be included.</t>
        <t>The error handling for the PUT request is the same as for the POST request defined in <xref target="collection-resource-post"/>, with the following difference in terms of authorization checks.</t>
        <t>Consistently with what is defined at step 4 of <xref target="getting-access"/>, the Group Manager MUST check whether GROUPNAME matches with the group name pattern specified in any scope entry of the 'scope' claim in the stored Access Token for the Administrator. In case of a positive match, the Group Manager MUST check whether the permission set in the found scope entry specifies the permission "Write".</t>
        <t>If the verification above fails (i.e., there are no matching scope entries specifying the "Write" permission), the Group Manager MUST reply with a 4.03 (Forbidden) error response. The response MUST have Content-Format set to application/ace-groupcomm+cbor and is formatted as defined in <xref section="4.1.2" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm"/>.</t>
        <t>If no error occurs and the PUT request is successfully processed, the Group Manager performs the following actions.</t>
        <t>First, the Group Manager updates the group-configuration resource, consistently with the values indicated in the PUT request from the Administrator. For each parameter not specified in the PUT request, the Group Manager MUST use default values as specified in <xref target="default-values"/>.</t>
        <t>If a new value N' is specified for the 'max_stale_sets' status parameter and N' is smaller than the current value N, the Group Manager preserves the (up to) N' most recent sets in the collection of sets of stale OSCORE Sender IDs associated with the group, and deletes any possible older set from the collection (see <xref section="7.1" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>).</t>
        <t>From then on, the Group Manager relies on the latest updated configuration to build the Join Response message defined in <xref section="6.3" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>, when handling the joining of a new group member. Similarly, the Group Manager relies on the new group configuration when building responses specifying (part of) the group configuration to a current group member. For instance, this applies when a group member retrieves from the Group Manager the updated group keying material (see <xref section="9.1" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>) or the current group status (see <xref section="9.9" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>).</t>
        <t>Then, the Group Manager replies to the Administrator with a 2.04 (Changed) response. The payload of the response has the same format of the 2.01 (Created) response defined in <xref target="collection-resource-post"/>.</t>
        <t>If the PUT request did not specify certain parameters and the Group Manager used default values different from the ones recommended in <xref target="default-values"/>, then the response payload MUST include also those parameters, specifying the values chosen by the Group Manager for the current group configuration.</t>
        <t>If the link to the group-membership resource was registered in the Resource Directory <xref target="RFC9176"/>, the Group Manager is responsible to refresh the registration, as defined in <xref section="3" sectionFormat="of" target="I-D.tiloca-core-oscore-discovery"/>.</t>
        <t>Alternatively, the Administrator can update the registration in the Resource Directory on behalf of the Group Manager, acting as Commissioning Tool. The Administrator considers the following when specifying additional information for the link to update.</t>
        <ul spacing="normal">
          <li>The name of the OSCORE group MUST take the value specified in 'group_name' from the 2.04 (Changed) response.</li>
          <li>The names of the application groups using the OSCORE group MUST take the values possibly specified by the elements of the 'app_groups' parameter (when custom CBOR is used) or by the different 'app_group' elements (when CoRAL is used) in the PUT request.</li>
          <li>If also registering a related link to the Authorization Server associated with the OSCORE group, the related link MUST have as link target the URI in 'as_uri' from the 2.04 (Changed) response.</li>
          <li>
            <t>As to every other information element describing the current group configuration, the following applies.  </t>
            <ul spacing="normal">
              <li>If a certain parameter was specified in the PUT request, the Administrator MUST use either the value specified in the 2.04 (Changed) response, if the Group Manager specified one, or the value specified in the PUT request otherwise.</li>
              <li>If a certain parameter was not specified in the PUT request, the Administrator MUST use either the value specified in the 2.04 (Changed) response, if the Group Manager specified one, or the corresponding default value recommended in <xref target="default-values-conf"/> otherwise.</li>
            </ul>
          </li>
        </ul>
        <t>As discussed in <xref target="collection-resource-post"/>, it is RECOMMENDED that registrations of links to group-membership resources in the Resource Directory are made (and possibly updated) directly by the Group Manager, rather than by the Administrator.</t>
        <t>Example in custom CBOR:</t>
        <artwork><![CDATA[
=> 0.03 PUT
   Uri-Path: manage
   Uri-Path: gp4
   Content-Format: TBD2 (application/ace-groupcomm+cbor)

   {
     "sign_enc_alg" : 11,
     "hkdf" : 5
   }

<= 2.04 Changed
   Content-Format: TBD2 (application/ace-groupcomm+cbor)

   {
     "group_name" : "gp4",
     "joining_uri" : "coap://[2001:db8::ab]/ace-group/gp4/",
     "as_uri" : "coap://as.example.com/token"
   }
]]></artwork>
        <t>Example in CoRAL:</t>
        <artwork><![CDATA[
=> 0.03 PUT
   Uri-Path: manage
   Uri-Path: gp4
   Content-Format: TBD1 (application/coral+cbor)

   #using <http://coreapps.org/core.osc.gconf#>
   sign_enc_alg 11
   hkdf 5

<= 2.04 Changed
   Content-Format: TBD1 (application/coral+cbor)

   #using <http://coreapps.org/core.osc.gconf#>
   group_name "gp4"
   joining_uri <coap://[2001:db8::ab]/ace-group/gp4/>
   as_uri <coap://as.example.com/token>
]]></artwork>
        <section anchor="sssec-effects-overwrite-joining-nodes">
          <name>Effects on Joining Nodes</name>
          <t>After having overwritten a group configuration, if the value of the status parameter 'active' is changed from "true" (0xf5) to "false" (0xf4), the Group Manager MUST stop admitting new members in the OSCORE group. In particular, until the status parameter 'active' is changed back to "true" (0xf5), the Group Manager MUST respond to a Join Request with a 5.03 (Service Unavailable) response, as defined in <xref section="6.2" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>.</t>
          <t>If the value of the status parameter 'active' is changed from "false" (0xf4) to "true" (0xf5), the Group Manager resumes admitting new members in the OSCORE group, by processing their Join Requests (see <xref section="6.2" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>).</t>
        </section>
        <section anchor="sssec-effects-overwrite-group-members">
          <name>Effects on the Group Members</name>
          <t>After having overwritten a group configuration, the Group Manager informs the members of the OSCORE group, over the pairwise secure communication channels established when joining the group (see <xref section="6" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>).</t>
          <t>To this end, the Group Manager can individually target the 'control_uri' URI of each group member (see <xref section="4.3.1" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm"/>), if provided by the intended recipient upon joining the OSCORE group (see <xref section="6.1" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>). To this end, messages sent by the Group Manager to each group member MUST have Content-Format set to application/ace-groupcomm+cbor, and MUST be formatted as the Join Response defined in <xref section="6.3" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>, with the following differences.</t>
          <ul spacing="normal">
            <li>Only the parameters 'gkty', 'key', 'num', 'exp' and 'ace-groupcomm-profile' are present.</li>
            <li>The 'key' parameter includes only the parameters 'hkdf', 'cred_fmt', 'sign_enc_alg', 'sign_alg', 'sign_params', 'alg', 'ecdh_alg' and 'ecdh_params', with values reflecting the new configuration of the OSCORE group.</li>
          </ul>
          <t>Alternatively, group members can subscribe for updates to the group-membership resource of the OSCORE group, e.g., by using CoAP Observe <xref target="RFC7641"/>.</t>
          <t>If the value of the status parameter 'active' is changed from "true" (0xf5) to "false" (0xf4):</t>
          <ul spacing="normal">
            <li>The Group Manager MUST stop accepting requests for new individual keying material from current group members (see <xref section="9.2" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>). In particular, until the status parameter 'active' is changed back to "true" (0xf5), the Group Manager MUST respond to a Key Renewal Request with a 5.03 (Service Unavailable) response, as defined in <xref section="9.2" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>.</li>
            <li>The Group Manager MUST stop accepting updated authentication credentials uploaded by current group members (see <xref section="9.4" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>). In particular, until the status parameter 'active' is changed back to "true" (0xf5), the Group Manager MUST respond to an Authentication Credential Update Request with a 5.03 (Service Unavailable) response, as defined in <xref section="9.4" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>.</li>
          </ul>
          <t>Every group member, upon learning that the OSCORE group has been deactivated (i.e., 'active' has value "false" (0xf4)), SHOULD stop communicating in the group.</t>
          <t>Every group member, upon learning that the OSCORE group has been reactivated (i.e., 'active' has value "true" (0xf5) again), can resume communicating in the group.</t>
          <t>Every group member, upon receiving updated values for 'hkdf', 'sign_enc_alg' and 'alg', MUST either:</t>
          <ul spacing="normal">
            <li>Leave the OSCORE group (see <xref section="9.11" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>), e.g., if not supporting the indicated new algorithms; or</li>
            <li>Use the new parameter values, and accordingly re-derive the OSCORE Security Context for the OSCORE group (see <xref section="2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>).</li>
          </ul>
          <t>Every group member, upon receiving updated values for 'cred_fmt', 'sign_alg', 'sign_params', 'ecdh_alg' and 'ecdh_params' MUST either:</t>
          <ul spacing="normal">
            <li>Leave the OSCORE group, e.g., if not supporting the indicated new format, algorithms, parameters and encoding; or</li>
            <li>Leave the OSCORE group and rejoin it (see <xref section="6" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>). When rejoining the group, a new authentication credential in the indicated format used in the OSCORE group MUST be provided to the Group Manager. The authentication credential as well as the included public key MUST be compatible with the indicated algorithms and parameters.</li>
            <li>
              <t>Use the new parameter values, and, if required, perform the following actions.  </t>
              <ul spacing="normal">
                <li>Provide the Group Manager with a new authentication credential to use in the OSCORE group (see <xref section="9.4" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>). The new authentication credential MUST be in the indicated format used in the OSCORE group. The new authentication credential as well as the included public key MUST be compatible with the indicated algorithms and parameters.</li>
                <li>Retrieve from the Group Manager the new Group Manager's authentication credential (see <xref section="9.5" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>). The new Group Manager's authentication credential is in the indicated format used in the OSCORE group. The new authentication credential as well as the included public key are compatible with the indicated algorithms and parameters.</li>
              </ul>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="configuration-resource-patch">
        <name>Selective Update of a Group Configuration</name>
        <t>This operation MAY be supported by the Group Manager and an Administrator.</t>
        <t>The Administrator can send a PATCH/iPATCH request <xref target="RFC8132"/> to the group-configuration resource associated with an OSCORE group, in order to update the value of only part of the group configuration.</t>
        <t>The request payload has the same format of the PUT request defined in <xref target="configuration-resource-put"/>, with the difference that it MAY also specify names of application groups to be removed from or added to the 'app_groups' status parameter. The names of such application groups are provided as defined below.</t>
        <ul spacing="normal">
          <li>
            <t>When custom CBOR is used, the CBOR map in the request payload includes the field 'app_groups_diff', whose CBOR abbreviation is defined in <xref target="groupcomm-parameters"/>. This field is encoded as a CBOR array including the following two elements.  </t>
            <ul spacing="normal">
              <li>The first element is a CBOR array, namely 'app_groups_del'. Each of its elements is a CBOR text string, with value the name of an application group to remove from the 'app_groups' status parameter.</li>
              <li>The second element is a CBOR array, namely 'app_groups_add'. Each of its elements is a CBOR text string, with value the name of an application group to add to the 'app_groups' status parameter.</li>
            </ul>
            <t>
The CDDL definition <xref target="RFC8610"/> of the CBOR array 'app_groups_diff' formatted as in the response from the Group Manager is provided below.</t>
          </li>
        </ul>
        <figure anchor="cddl-diff">
          <name>CDDL definition of the 'app_groups_diff' field</name>
          <artwork type="CDDL" align="left"><![CDATA[
   app-group-name = tstr
   name-patch = [* app-group-name]
   app_groups_diff = [app_groups_del: name-patch,
                      app_groups_add: name-patch]
]]></artwork>
        </figure>
        <t>The Group Manager MUST respond with a 4.00 (Bad Request) response in case: both the inner CBOR arrays 'app_groups_del' and 'app_groups_add' are empty; or the CBOR map in the request payload includes both the 'app_groups' field and the 'app_groups_diff' field.</t>
        <ul spacing="normal">
          <li>
            <t>When CoRAL is used, the request payload includes the following top-level elements.  </t>
            <ul spacing="normal">
              <li>'app_group_del', with value a text string specifying the name of an application group to remove from the 'app_groups' status parameter. This element can be included multiple times.</li>
              <li>'app_group_add', with value a text string specifying the name of an application group to add to the 'app_groups' status parameter. This element can be included multiple times.</li>
            </ul>
            <t>
The Group Manager MUST respond with a 4.00 (Bad Request) response, in case the request payload includes both any 'app_group' element as well as any 'app_group_del' and/or 'app_group_add' element.</t>
          </li>
        </ul>
        <t>The error handling for the PATCH/iPATCH request is the same as for the PUT request defined in <xref target="configuration-resource-put"/>, with the following additions.</t>
        <ul spacing="normal">
          <li>The set of group configuration parameters to update MUST NOT be empty. That is, the Group Manager MUST respond with a 4.00 (Bad Request) response, if the request payload includes an empty CBOR map (when custom CBOR is used) or no elements (when CoRAL is used).</li>
          <li>If the Request-URI does not point to an existing group-configuration resource, the Group Manager MUST NOT create a new resource, and MUST respond with a 4.04 (Not Found) response.</li>
          <li>
            <t>When applying the specified updated values would yield an inconsistent group configuration, the Group Manager MUST respond with a 4.09 (Conflict) response.  </t>
            <t>
The response, MAY include the current representation of the group configuration resource, like when responding to a GET request as defined in <xref target="configuration-resource-get"/>. Otherwise, the response SHOULD include a diagnostic payload with additional information for the Administrator to recognize the source of the conflict.</t>
          </li>
          <li>
            <t>When the request uses specifically the iPATCH method, the Group Manager MUST respond with a 4.00 (Bad Request) response, in case:  </t>
            <ul spacing="normal">
              <li>When custom CBOR is used, the CBOR map includes the parameter 'app_groups_diff'; or</li>
              <li>When CoRAL is used, any element 'app_group_del' and/or 'app_group_add' is included.</li>
            </ul>
          </li>
        </ul>
        <t>Furthermore, the Group Manager MUST perform the same authorization checks defined for the processing of a PUT request to a group-configuration resource in <xref target="configuration-resource-put"/>. That is, the Group Manager MUST verify that the Administrator has been granted a "Write" permission applicable to the targeted group-configuration resource.</t>
        <t>If no error occurs and the PATCH/iPATCH request is successfully processed, the Group Manager performs the following actions.</t>
        <t>First, the Group Manager updates the group-configuration resource, consistently with the values indicated in the PATCH/iPATCH request from the Administrator.</t>
        <t>Unlike for the PUT request defined in <xref target="configuration-resource-put"/>, the Group Manager does not alter the value of configuration parameters and status parameters for which updated values are not specified in the request payload. In particular, the Group Manager does not assign possible default values to those parameters.</t>
        <t>Special processing occurs when updating the 'app_groups' status parameter by difference, as defined below. The Administrator should not expect the Group Manager to add or delete names of application group names according to any particular order.</t>
        <ul spacing="normal">
          <li>If the name of an application group to add (delete) is specified multiple times, the Group Manager considers it only once for addition to (deletion from) the 'app_groups' status parameter.</li>
          <li>If the name of an application group to delete is not present in the 'app_groups' status parameter before any change is applied, the Group Manager ignores that name.</li>
          <li>If the name of an application group to add is already present in the 'app_groups' status parameter before any change is applied, the Group Manager ignores that name.</li>
          <li>
            <t>When custom CBOR is used, the Group Manager:  </t>
            <ul spacing="normal">
              <li>Deletes from the 'app_groups' status parameter the names of the application groups specified in the inner 'app_groups_del' CBOR array of the 'app_groups_diff' field.</li>
              <li>Adds to the 'app_groups' status parameter the names of the application groups specified in the inner 'app_groups_add' CBOR array of the 'app_groups_diff' field.</li>
            </ul>
          </li>
          <li>
            <t>When CoRAL is used, the Group Manager:  </t>
            <ul spacing="normal">
              <li>Deletes from the 'app_groups' status parameter the names of the application groups specified in the different 'app_group_del' elements.</li>
              <li>Adds to the 'app_groups' status parameter the names of the application groups specified in the different 'app_group_add' elements.</li>
            </ul>
          </li>
        </ul>
        <t>After having updated the group-configuration resource, from then on the Group Manager relies on the new group configuration to build the Join Response message defined in <xref section="6.3" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>, when handling the joining of a new group member. Similarly, the Group Manager relies on the new group configuration when building responses specifying (part of) the group configuration to a current group member. For instance, this applies when a group member retrieves from the Group Manager the updated group keying material (see <xref section="9.1" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>) or the current group status (see <xref section="9.9" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>).</t>
        <t>Finally, the Group Manager replies to the Administrator with a 2.04 (Changed) response. The payload of the response has the same format of the 2.01 (Created) response defined in <xref target="collection-resource-post"/>.</t>
        <t>The same considerations as for the PUT request defined in <xref target="configuration-resource-put"/> hold also in this case, with respect to refreshing a possible registration of the link to the group-membership resource in the Resource Directory <xref target="RFC9176"/>.</t>
        <t>Example in custom CBOR:</t>
        <artwork><![CDATA[
=> 0.06 PATCH
   Uri-Path: manage
   Uri-Path: gp4
   Content-Format: TBD2 (application/ace-groupcomm+cbor)

   {
     "sign_enc_alg" : 10,
     "app_groups_diff" : [["room1"],
                          ["room3", "room4"]]
   }

<= 2.04 Changed
   Content-Format: TBD2 (application/ace-groupcomm+cbor)

   {
     "group_name" : "gp4",
     "joining_uri" : "coap://[2001:db8::ab]/ace-group/gp4/",
     "as_uri" : "coap://as.example.com/token"
   }
]]></artwork>
        <t>Example in CoRAL:</t>
        <artwork><![CDATA[
=> 0.06 PATCH
   Uri-Path: manage
   Uri-Path: gp4
   Content-Format: TBD1 (application/coral+cbor)

   #using <http://coreapps.org/core.osc.gconf#>
   sign_enc_alg 10
   app_group_del "room1"
   app_group_add "room3"
   app_group_add "room4"

<= 2.04 Changed
   Content-Format: TBD1 (application/coral+cbor)

   #using <http://coreapps.org/core.osc.gconf#>
   group_name "gp4"
   joining_uri <coap://[2001:db8::ab]/ace-group/gp4/>
   as_uri <coap://as.example.com/token>
]]></artwork>
        <section anchor="effects-on-joining-nodes">
          <name>Effects on Joining Nodes</name>
          <t>After having selectively updated part of a group configuration, the effects on candidate joining nodes are the same as defined in <xref target="sssec-effects-overwrite-joining-nodes"/> for the case of group configuration overwriting.</t>
        </section>
        <section anchor="effects-on-the-group-members">
          <name>Effects on the Group Members</name>
          <t>After having selectively updated part of a group configuration, the effects on the current group members are the same as defined in <xref target="sssec-effects-overwrite-group-members"/> for the case of group configuration overwriting.</t>
        </section>
      </section>
      <section anchor="configuration-resource-delete">
        <name>Delete a Group Configuration</name>
        <t>This operation MUST be supported by the Group Manager and an Administrator.</t>
        <t>The Administrator can send a DELETE request to the group-configuration resource, in order to delete that OSCORE group.</t>
        <t>Consistently with what is defined at step 4 of <xref target="getting-access"/>, the Group Manager MUST check whether GROUPNAME matches with the group name pattern specified in any scope entry of the 'scope' claim in the stored Access Token for the Administrator. In case of a positive match, the Group Manager MUST check whether the permission set in the found scope entry specifies the permission "Delete".</t>
        <t>If the verification above fails (i.e., there are no matching scope entries specifying the "Delete" permission), the Group Manager MUST reply with a 4.03 (Forbidden) error response. The response MUST have Content-Format set to application/ace-groupcomm+cbor and is formatted as defined in <xref section="4.1.2" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm"/>.</t>
        <t>Otherwise, the Group Manager continues processing the request, which would be successful only on an inactive OSCORE group. That is, the DELETE request actually yields a successful deletion of the OSCORE group, only if the corresponding status parameter 'active' has current value "false" (0xf4). The Administrator can ensure that, by first performing an update of the group-configuration resource associated with the OSCORE group (see <xref target="configuration-resource-put"/>), and setting the corresponding status parameter 'active' to "false" (0xf4).</t>
        <t>If, upon receiving the DELETE request, the current value of the status parameter 'active' is "true" (0xf5), the Group Manager MUST respond with a 4.09 (Conflict) response. The response MUST have Content-Format set to application/ace-groupcomm+cbor and is formatted as defined in <xref section="4.1.2" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm"/>. The value of the 'error' field MUST be set to 10 ("Group currently active").</t>
        <t>After a successful processing of the DELETE request, the Group Manager performs the following actions.</t>
        <t>First, the Group Manager deletes the OSCORE group and deallocates both the group-configuration resource as well as the group-membership resource associated with that group.</t>
        <t>Then, the Group Manager replies to the Administrator with a 2.02 (Deleted) response.</t>
        <t>Example:</t>
        <artwork><![CDATA[
=> 0.04 DELETE
   Uri-Path: manage
   Uri-Path: gp4

<= 2.02 Deleted
]]></artwork>
        <section anchor="effects-on-the-group-members-1">
          <name>Effects on the Group Members</name>
          <t>After having deleted an OSCORE group, the Group Manager can inform the group members by means of the following two methods. When contacting a group member, the Group Manager uses the pairwise secure communication association established with that member during its joining process (see <xref section="6" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>).</t>
          <ul spacing="normal">
            <li>The Group Manager sends an individual request message to each group member, targeting the respective resource used to perform the group rekeying process (see <xref section="11.1" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>). The Group Manager uses the same format of the Join Response message in <xref section="6.3" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>, where only the parameters 'gkty', 'key' and 'ace-groupcomm-profile' are present, and the 'key' parameter is the empty CBOR map.</li>
            <li>A group member may subscribe for updates to the group-membership resource associated with the OSCORE group. In particular, if this relies on CoAP Observe <xref target="RFC7641"/>, a group member would receive a 4.04 (Not Found) notification response from the Group Manager, since the group-configuration resource has been deallocated upon deleting the OSCORE group (see <xref section="6.1" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm"/>). The response MUST have Content-Format set to application/ace-groupcomm+cbor and is formatted as defined in <xref section="4.1.2" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm"/>. The value of the 'error' field MUST be set to 5 ("Group deleted").</li>
          </ul>
          <t>When being informed about the deletion of the OSCORE group, a group member deletes the OSCORE Security Context that it stores as associated with that group, and possibly deallocates any dedicated control resource intended for the Group Manager that it has for that group.</t>
        </section>
      </section>
    </section>
    <section anchor="groupcomm-parameters">
      <name>ACE Groupcomm Parameters</name>
      <t>In addition to what is defined in <xref section="8" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm"/>, this document defines additional parameters used in the messages exchanged between the Administrator and the Group Manager (see <xref target="interactions"/>). The table below summarizes them and specifies the CBOR key to use instead of the full descriptive name.</t>
      <t>Note that the media type application/ace-groupcomm+cbor MUST be used when these parameters are transported in the respective message fields.</t>
      <figure anchor="fig-ACE-Groupcomm-Parameters">
        <name>ACE Groupcomm Parameters</name>
        <artwork align="center"><![CDATA[
+-----------------+----------+--------------+------------+
| Name            | CBOR Key | CBOR Type    | Reference  |
+-----------------+----------+--------------+------------+
| hkdf            | TBD      | tstr / int   | [RFC-XXXX] |
+-----------------+----------+--------------+------------+
| cred_fmt        | TBD      | int          | [RFC-XXXX] |
+-----------------+----------+--------------+------------+
| group_mode      | TBD      | simple value | [RFC-XXXX] |
+-----------------+----------+--------------+------------+
| sign_enc_alg    | TBD      | tstr / int / | [RFC-XXXX] |
|                 |          | simple value |            |
+-----------------+----------+--------------+------------+
| sign_alg        | TBD      | tstr / int / | [RFC-XXXX] |
|                 |          | simple value |            |
+-----------------+----------+--------------+------------+
| sign_params     | TBD      | array /      | [RFC-XXXX] |
|                 |          | simple value |            |
+-----------------+----------+--------------+------------+
| pairwise_mode   | TBD      | simple value | [RFC-XXXX] |
+-----------------+----------+--------------+------------+
| alg             | TBD      | tstr / int / | [RFC-XXXX] |
|                 |          | simple value |            |
+-----------------+----------+--------------+------------+
| ecdh_alg        | TBD      | tstr / int / | [RFC-XXXX] |
|                 |          | simple value |            |
+-----------------+----------+--------------+------------+
| ecdh_params     | TBD      | array /      | [RFC-XXXX] |
|                 |          | simple value |            |
+-----------------+----------+--------------+------------+
| det_req         | TBD      | simple value | [RFC-XXXX] |
+-----------------+----------+--------------+------------+
| det_hash_alg    | TBD      | tstr / int   | [RFC-XXXX] |
+-----------------+----------+--------------+------------+
| rt              | TBD      | tstr         | [RFC-XXXX] |
+-----------------+----------+--------------+------------+
| active          | TBD      | simple value | [RFC-XXXX] |
+-----------------+----------+--------------+------------+
| group_name      | TBD      | tstr         | [RFC-XXXX] |
+-----------------+----------+--------------+------------+
| group_title     | TBD      | tstr /       | [RFC-XXXX] |
|                 |          | simple value |            |
+-----------------+----------+--------------+------------+
| max_stale_sets  | TBD      | uint         | [RFC-XXXX] |
+-----------------+----------+--------------+------------+
| gid_reuse       | TBD      | simple value | [RFC-XXXX] |
+-----------------+----------+--------------+------------+
| app_groups      | TBD      | array        | [RFC-XXXX] |
+-----------------+----------+--------------+------------+
| joining_uri     | TBD      | tstr         | [RFC-XXXX] |
+-----------------+----------+--------------+------------+
| as_uri          | TBD      | tstr         | [RFC-XXXX] |
+-----------------+----------+--------------+------------+
| conf_filter     | TBD      | array        | [RFC-XXXX] |
+-----------------+----------+--------------+------------+
| app_groups_diff | TBD      | array        | [RFC-XXXX] |
+-----------------+----------+--------------+------------+
]]></artwork>
      </figure>
      <t>The following holds for the Group Manager.</t>
      <ul spacing="normal">
        <li>
          <t>It MUST support and understand the parameters 'error', 'error_description', 'ace-groupcomm-profile', 'exp' and 'group_policies', which are defined in <xref section="8" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm"/>.  </t>
          <t>
This is consistent with what is defined in <xref section="8" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm"/> for the Key Distribution Center, of which the Group Manager defined in <xref target="I-D.ietf-ace-key-groupcomm-oscore"/> is a specific instance.</t>
        </li>
        <li>It MUST support and understand all the parameters listed in <xref target="fig-ACE-Groupcomm-Parameters"/>, with the exception of the 'app_groups_diff' parameter, which MUST be supported and understood only if the Group Manager supports the selective update of a group configuration (see <xref target="configuration-resource-patch"/>).</li>
      </ul>
      <t>The following holds for an Administrator.</t>
      <ul spacing="normal">
        <li>It MUST support and understand the parameters 'error', 'error_description', 'ace-groupcomm-profile', 'exp' and 'group_policies', which are defined in <xref section="8" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm"/>.</li>
        <li>
          <t>It MUST support and understand all the parameters listed in <xref target="fig-ACE-Groupcomm-Parameters"/>, with the following exceptions.  </t>
          <ul spacing="normal">
            <li>'conf_filter', which MUST be supported and understood only if the Administrator supports the partial retrieval of a group configuration by filters (see <xref target="configuration-resource-fetch"/>).</li>
            <li>'app_groups_diff' parameter, which MUST be supported and understood only if the Administrator supports the selective update of a group configuration (see <xref target="configuration-resource-patch"/>).</li>
          </ul>
        </li>
      </ul>
    </section>
    <section anchor="error-types">
      <name>ACE Groupcomm Error Identifiers</name>
      <t>In addition to what is defined in <xref section="9" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm"/>, this document defines a new value that the Group Manager can include as error identifiers, in the 'error' field of an error response with Content-Format application/ace-groupcomm+cbor.</t>
      <figure anchor="fig-ACE-Groupcomm-Error">
        <name>ACE Groupcomm Error Identifiers</name>
        <artwork align="center"><![CDATA[
+-------+--------------------------+
| Value | Description              |
+-------+--------------------------+
| 10    | Group currently active   |
+-------+--------------------------+
| 11    | No available group names |
+-------+--------------------------+
]]></artwork>
      </figure>
      <t>When receiving an error response from the Group Manager, an Administrator may use the information conveyed in the 'error' parameter to determine what actions to take next. If it is included in the error response, the 'error_description' parameter may provide additional context. In particular, the following guidelines apply.</t>
      <ul spacing="normal">
        <li>In case of error 10, the Administrator should stop sending the DELETE request to the Group Manager (see <xref target="configuration-resource-delete"/>), until the group becomes inactive. As per this document, this error is relevant only for the Administrator, if it tries to delete a group without having set its status to inactive first (see <xref target="configuration-resource-delete"/>). In such a case, the Administrator should take the expected course of actions, and set the group status to inactive first (see <xref target="configuration-resource-put"/> and <xref target="configuration-resource-patch"/>), before sending a new request of group deletion to the Group Manager.</li>
        <li>
          <t>In case of error 11, the Administrator has the following options.  </t>
          <ul spacing="normal">
            <li>The Administrator simply tries again later on. The new POST request to the group-collection resource specifies the same group name originally suggested in the previous request that triggered the error response (see <xref target="collection-resource-post"/>). This option fundamentally relies on the Group Manager freeing up group names, hence it is not viable if considerably or indefinitely postponing the creation of the group is not acceptable.</li>
            <li>
              <t>The Administrator sends a new POST request to the group-collection resource right away, specifying a different group name than the one suggested in the previous request that triggered the error response. The new group name suggested by the Administrator should be such that the following holds.      </t>
              <t>
Let us define: i) S, as the set of all the scope entries in the Administrator's Access Token, such that the old group name matched with each of those scope entries; ii) S', as the set of all the scope entries in the Administrator's Access Token, such that the new group name matches with each of those scope entries. Then, S' is neither equal to S nor a subset of S.</t>
            </li>
            <li>
              <t>The Administrator requests a new Access Token to the Authorization Server, in order to update its access rights, and have a new granted scope whose scope entries specify more and/or different group name patterns than the old Access Token.      </t>
              <t>
After uploading the new Access Token to the Group Manager, the Administrator can send a new POST request to the group-collection resource. When doing so, the Administrator suggests a new group name to the Group Manager, according to the same criteria discussed for the previous option.</t>
            </li>
          </ul>
        </li>
      </ul>
    </section>
    <section anchor="sec-security-considerations">
      <name>Security Considerations</name>
      <t>Security considerations are inherited from the ACE framework for Authentication and Authorization <xref target="RFC9200"/>, and from the specific transport profile of ACE used between the Administrator and the Group Manager, such as <xref target="RFC9202"/> and <xref target="RFC9203"/>.</t>
    </section>
    <section anchor="iana">
      <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-ace-groupcomm-parameters">
        <name>ACE Groupcomm Parameters</name>
        <t>IANA is asked to register the following entries in the "ACE Groupcomm Parameters" registry defined in <xref section="11.6" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm"/>.</t>
        <artwork><![CDATA[
Name: hkdf
CBOR Key: TBD
CBOR Type: tstr / int
Reference: [RFC-XXXX]

Name: cred_fmt
CBOR Key: TBD
CBOR Type: int
Reference: [RFC-XXXX]

Name: group_mode
CBOR Key: TBD
CBOR Type: simple value
Reference: [RFC-XXXX]

Name: sign_enc_alg
CBOR Key: TBD
CBOR Type: tstr / int / simple value
Reference: [RFC-XXXX]

Name: sign_alg
CBOR Key: TBD
CBOR Type: tstr / int / simple value
Reference: [RFC-XXXX]

Name: sign_params
CBOR Key: TBD
CBOR Type: array / simple value
Reference: [RFC-XXXX]

Name: pairwise_mode
CBOR Key: TBD
CBOR Type: simple value
Reference: [RFC-XXXX]

Name: alg
CBOR Key: TBD
CBOR Type: tstr / int / simple value
Reference: [RFC-XXXX]

Name: ecdh_alg
CBOR Key: TBD
CBOR Type: tstr / int / simple value
Reference: [RFC-XXXX]

Name: ecdh_params
CBOR Key: TBD
CBOR Type: array / simple value
Reference: [RFC-XXXX]

Name: det_req
CBOR Key: TBD
CBOR Type: simple value
Reference: [RFC-XXXX]

Name: det_hash_alg
CBOR Key: TBD
CBOR Type: tstr / int
Reference: [RFC-XXXX]

Name: rt
CBOR Key: TBD
CBOR Type: tstr
Reference: [RFC-XXXX]

Name: active
CBOR Key: TBD
CBOR Type: simple value
Reference: [RFC-XXXX]

Name: group_name
CBOR Key: TBD
CBOR Type: tstr
Reference: [RFC-XXXX]

Name: group_title
CBOR Key: TBD
CBOR Type: tstr / simple value
Reference: [RFC-XXXX]

Name: max_stale_sets
CBOR Key: TBD
CBOR Type: uint
Reference: [RFC-XXXX]

Name: gid_reuse
CBOR Key: TBD
CBOR Type: simple value
Reference: [RFC-XXXX]

Name: app_groups
CBOR Key: TBD
CBOR Type: array
Reference: [RFC-XXXX]

Name: joining_uri
CBOR Key: TBD
CBOR Type: tstr
Reference: [RFC-XXXX]

Name: as_uri
CBOR Key: TBD
CBOR Type: tstr
Reference: [RFC-XXXX]

Name: conf_filter
CBOR Key: TBD
CBOR Type: array
Reference: [RFC-XXXX]

Name: app_groups_diff
CBOR Key: TBD
CBOR Type: array
Reference: [RFC-XXXX]
]]></artwork>
      </section>
      <section anchor="iana-ace-groupcomm-errors">
        <name>ACE Groupcomm Errors</name>
        <t>IANA is asked to register the following entry in the "ACE Groupcomm Errors" registry defined in <xref section="11.11" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm"/>.</t>
        <artwork><![CDATA[
Value: 10
Description: Group currently active.
Reference: [RFC-XXXX]

Value: 11
Description: No available group names.
Reference: [RFC-XXXX]
]]></artwork>
      </section>
      <section anchor="iana-rt">
        <name>Resource Types</name>
        <t>IANA is asked to enter the following values in the "Resource Type (rt=) Link Target Attribute Values" registry within the "Constrained Restful Environments (CoRE) Parameters" registry group.</t>
        <artwork><![CDATA[
Value: core.osc.gcoll
Description: Group-collection resource of an OSCORE Group Manager
Reference: [RFC-XXXX]

Value: core.osc.gconf
Description: Group-configuration resource of an OSCORE Group Manager
Reference: [RFC-XXXX]
]]></artwork>
      </section>
      <section anchor="ssec-iana-group-oscore-admin-permissions-registry">
        <name>Group OSCORE Admin Permissions</name>
        <t>This document establishes the IANA "Group OSCORE Admin Permissions" registry. The registry has been created to use the "Expert Review" registration procedure <xref target="RFC8126"/>. Expert review guidelines are provided in <xref target="ssec-iana-expert-review"/>.</t>
        <t>This registry includes the possible permissions that Administrators can have to perform operations on an OSCORE Group Manager, each in combination with a numeric identifier. These numeric identifiers are used to express authorization information about performing administrative operations concerning OSCORE groups under the control of the Group Manager, as specified in <xref target="scope-format"/> of [RFC-XXXX].</t>
        <t>The columns of this registry are:</t>
        <ul spacing="normal">
          <li>Name: A value that can be used in documents for easier comprehension, to identify a possible permission that Administrators can perform when interacting with an OSCORE Group Manager.</li>
          <li>
            <t>Value: The numeric identifier for this permission. Integer values greater than 65535 are marked as "Private Use", all other values use the registration policy "Expert Review" <xref target="RFC8126"/>.  </t>
            <t>
Note that, in general, a single permission can be associated with multiple different operations that are possible to be performed when interacting with the Group Manager.</t>
          </li>
          <li>Description: This field contains a brief description of the permission.</li>
          <li>Reference: This contains a pointer to the public specification for the permission.</li>
        </ul>
        <t>This registry will be initially populated by the values in <xref target="fig-permission-values"/>.</t>
        <t>The Reference column for all of these entries will be [RFC-XXXX].</t>
      </section>
      <section anchor="ssec-iana-expert-review">
        <name>Expert Review Instructions</name>
        <t>The IANA registry established in this document is defined as "Expert Review".  This section gives some general guidelines for what the experts should be looking for, but they are being designated as experts for a reason so they should be given substantial latitude.</t>
        <t>Expert reviewers should take into consideration the following points:</t>
        <ul spacing="normal">
          <li>
            <t>Clarity and correctness of registrations. Experts are expected to check the clarity of purpose and use of the requested entries. Experts should inspect the entry for the considered permission, to verify the correctness of its description against the permission as intended in the specification that defined it. Expert should consider requesting an opinion on the correctness of registered parameters from the Authentication and Authorization for Constrained Environments (ACE) Working Group and the Constrained RESTful Environments (CoRE) Working Group.  </t>
            <t>
Entries that do not meet these objective of clarity and completeness should not be registered.</t>
          </li>
          <li>Duplicated registration and point squatting should be discouraged. Reviewers are encouraged to get sufficient information for registration requests to ensure that the usage is not going to duplicate one that is already registered and that the point is likely to be used in deployments.</li>
          <li>Experts should take into account the expected usage of permissions when approving point assignment. Given a 'Value' V as code point, the length of the encoding of (2^(V+1) - 1) should be weighed against the usage of the entry, considering the resources and capabilities of devices it will be used on. Additionally, given a 'Value' V as code point, the length of the encoding of (2^(V+1) - 1) should be weighed against how many code points resulting in that encoding length are left, and the resources and capabilities of devices it will be used on.</li>
          <li>Specifications are recommended. When specifications are not provided, the description provided needs to have sufficient information to verify the points above.</li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="I-D.ietf-core-oscore-groupcomm" target="https://www.ietf.org/archive/id/draft-ietf-core-oscore-groupcomm-15.txt">
          <front>
            <title>Group OSCORE - Secure Group Communication for CoAP</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Jiye Park" initials="J." surname="Park">
              <organization>Universitaet Duisburg-Essen</organization>
            </author>
            <date day="5" month="September" year="2022"/>
            <abstract>
              <t>   This document defines Group Object Security for Constrained RESTful
   Environments (Group OSCORE), providing end-to-end security of CoAP
   messages exchanged between members of a group, e.g., sent over IP
   multicast.  In particular, the described approach defines how OSCORE
   is used in a group communication setting to provide source
   authentication for CoAP group requests, sent by a client to multiple
   servers, and for protection of the corresponding CoAP responses.
   Group OSCORE also defines a pairwise mode where each member of the
   group can efficiently derive a symmetric pairwise key with any other
   member of the group for pairwise OSCORE communication.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-groupcomm-15"/>
        </reference>
        <reference anchor="I-D.ietf-ace-key-groupcomm" target="https://www.ietf.org/archive/id/draft-ietf-ace-key-groupcomm-16.txt">
          <front>
            <title>Key Provisioning for Group Communication using ACE</title>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date day="5" month="September" year="2022"/>
            <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 acting as Clients and authorized to join a
   group can do so by interacting with a Key Distribution Center (KDC)
   acting as 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="Internet-Draft" value="draft-ietf-ace-key-groupcomm-16"/>
        </reference>
        <reference anchor="I-D.ietf-ace-key-groupcomm-oscore" target="https://www.ietf.org/archive/id/draft-ietf-ace-key-groupcomm-oscore-15.txt">
          <front>
            <title>Key Management for OSCORE Groups in ACE</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Jiye Park" initials="J." surname="Park">
              <organization>Universitaet Duisburg-Essen</organization>
            </author>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <date day="5" month="September" year="2022"/>
            <abstract>
              <t>   This document defines an application profile of the ACE framework for
   Authentication and Authorization, to request and provision keying
   material in group communication scenarios that are based on CoAP and
   are secured with Group Object Security for Constrained RESTful
   Environments (Group OSCORE).  This application profile delegates the
   authentication and authorization of Clients, that join an OSCORE
   group through a Resource Server acting as Group Manager for that
   group.  This application profile leverages protocol-specific
   transport profiles of ACE to achieve communication security, server
   authentication 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="Internet-Draft" value="draft-ietf-ace-key-groupcomm-oscore-15"/>
        </reference>
        <reference anchor="I-D.ietf-core-coral" target="https://www.ietf.org/archive/id/draft-ietf-core-coral-05.txt">
          <front>
            <title>The Constrained RESTful Application Language (CoRAL)</title>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>ARM</organization>
            </author>
            <date day="7" month="March" year="2022"/>
            <abstract>
              <t>   The Constrained RESTful Application Language (CoRAL) defines a data
   model and interaction model as well as a compact serialization
   formats for the description of typed connections between resources on
   the Web ("links"), possible operations on such resources ("forms"),
   and simple resource metadata.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-coral-05"/>
        </reference>
        <reference anchor="I-D.ietf-core-groupcomm-bis" target="https://www.ietf.org/archive/id/draft-ietf-core-groupcomm-bis-07.txt">
          <front>
            <title>Group Communication for the Constrained Application Protocol (CoAP)</title>
            <author fullname="Esko Dijk" initials="E." surname="Dijk">
              <organization>IoTconsultancy.nl</organization>
            </author>
            <author fullname="Chonggang Wang" initials="C." surname="Wang">
              <organization>InterDigital</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date day="11" month="July" year="2022"/>
            <abstract>
              <t>   This document specifies the use of the Constrained Application
   Protocol (CoAP) for group communication, including the use of UDP/IP
   multicast as the default underlying data transport.  Both unsecured
   and secured CoAP group communication are specified.  Security is
   achieved by use of the Group Object Security for Constrained RESTful
   Environments (Group OSCORE) protocol.  The target application area of
   this specification is any group communication use cases that involve
   resource-constrained devices or networks that support CoAP.  This
   document replaces RFC 7390, while it updates RFC 7252 and RFC 7641.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-groupcomm-bis-07"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC6690" target="https://www.rfc-editor.org/info/rfc6690">
          <front>
            <title>Constrained RESTful Environments (CoRE) Link Format</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby">
              <organization/>
            </author>
            <date month="August" year="2012"/>
            <abstract>
              <t>This specification defines Web Linking using a link format for use by constrained web servers to describe hosted resources, their attributes, and other relationships between links.  Based on the HTTP Link Header field defined in RFC 5988, the Constrained RESTful Environments (CoRE) Link Format is carried as a payload and is assigned an Internet media type.  "RESTful" refers to the Representational State Transfer (REST) architecture.  A well-known URI is defined as a default entry point for requesting the links hosted by a server.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6690"/>
          <seriesInfo name="DOI" value="10.17487/RFC6690"/>
        </reference>
        <reference anchor="RFC6749" target="https://www.rfc-editor.org/info/rfc6749">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt">
              <organization/>
            </author>
            <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="RFC7252" target="https://www.rfc-editor.org/info/rfc7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby">
              <organization/>
            </author>
            <author fullname="K. Hartke" initials="K." surname="Hartke">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <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="RFC7641" target="https://www.rfc-editor.org/info/rfc7641">
          <front>
            <title>Observing Resources in the Constrained Application Protocol (CoAP)</title>
            <author fullname="K. Hartke" initials="K." surname="Hartke">
              <organization/>
            </author>
            <date month="September" year="2015"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a RESTful application protocol for constrained nodes and networks.  The state of a resource on a CoAP server can change over time.  This document specifies a simple protocol extension for CoAP that enables CoAP clients to "observe" resources, i.e., to retrieve a representation of a resource and keep this representation updated by the server over a period of time.  The protocol follows a best-effort approach for sending new representations to clients and provides eventual consistency between the state observed by each client and the actual resource state at the server.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7641"/>
          <seriesInfo name="DOI" value="10.17487/RFC7641"/>
        </reference>
        <reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton">
              <organization/>
            </author>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <author fullname="T. Narten" initials="T." surname="Narten">
              <organization/>
            </author>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters.  To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper.  For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed.  This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="RFC8132" target="https://www.rfc-editor.org/info/rfc8132">
          <front>
            <title>PATCH and FETCH Methods for the Constrained Application Protocol (CoAP)</title>
            <author fullname="P. van der Stok" initials="P." surname="van der Stok">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <author fullname="A. Sehgal" initials="A." surname="Sehgal">
              <organization/>
            </author>
            <date month="April" year="2017"/>
            <abstract>
              <t>The methods defined in RFC 7252 for the Constrained Application Protocol (CoAP) only allow access to a complete resource, not to parts of a resource.  In case of resources with larger or complex data, or in situations where resource continuity is required, replacing or requesting the whole resource is undesirable.  Several applications using CoAP need to access parts of the resources.</t>
              <t>This specification defines the new CoAP methods, FETCH, PATCH, and iPATCH, which are used to access and update parts of a resource.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8132"/>
          <seriesInfo name="DOI" value="10.17487/RFC8132"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8610" target="https://www.rfc-editor.org/info/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">
              <organization/>
            </author>
            <author fullname="C. Vigano" initials="C." surname="Vigano">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <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="RFC8613" target="https://www.rfc-editor.org/info/rfc8613">
          <front>
            <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="G. Selander" initials="G." surname="Selander">
              <organization/>
            </author>
            <author fullname="J. Mattsson" initials="J." surname="Mattsson">
              <organization/>
            </author>
            <author fullname="F. Palombini" initials="F." surname="Palombini">
              <organization/>
            </author>
            <author fullname="L. Seitz" initials="L." surname="Seitz">
              <organization/>
            </author>
            <date month="July" year="2019"/>
            <abstract>
              <t>This document defines Object Security for Constrained RESTful Environments (OSCORE), a method for application-layer protection of the Constrained Application Protocol (CoAP), using CBOR Object Signing and Encryption (COSE).  OSCORE provides end-to-end protection between endpoints communicating using CoAP or CoAP-mappable HTTP. OSCORE is designed for constrained nodes and networks supporting a range of proxy operations, including translation between different transport protocols.</t>
              <t>Although an optional functionality of CoAP, OSCORE alters CoAP options processing and IANA registration.  Therefore, this document updates RFC 7252.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8613"/>
          <seriesInfo name="DOI" value="10.17487/RFC8613"/>
        </reference>
        <reference anchor="RFC8949" target="https://www.rfc-editor.org/info/rfc8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman">
              <organization/>
            </author>
            <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" target="https://www.rfc-editor.org/info/rfc9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad">
              <organization/>
            </author>
            <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" target="https://www.rfc-editor.org/info/rfc9053">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad">
              <organization/>
            </author>
            <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" target="https://www.rfc-editor.org/info/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">
              <organization/>
            </author>
            <author fullname="G. Selander" initials="G." surname="Selander">
              <organization/>
            </author>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem">
              <organization/>
            </author>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman">
              <organization/>
            </author>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig">
              <organization/>
            </author>
            <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="RFC9203" target="https://www.rfc-editor.org/info/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">
              <organization/>
            </author>
            <author fullname="L. Seitz" initials="L." surname="Seitz">
              <organization/>
            </author>
            <author fullname="G. Selander" initials="G." surname="Selander">
              <organization/>
            </author>
            <author fullname="M. Gunnarsson" initials="M." surname="Gunnarsson">
              <organization/>
            </author>
            <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="RFC9237" target="https://www.rfc-editor.org/info/rfc9237">
          <front>
            <title>An Authorization Information Format (AIF) for Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <date month="August" year="2022"/>
            <abstract>
              <t>Information about which entities are authorized to perform what operations on which constituents of other entities is a crucial component of producing an overall system that is secure.  Conveying precise authorization information is especially critical in highly automated systems with large numbers of entities, such as the Internet of Things.</t>
              <t>This specification provides a generic information model and format for representing such authorization information, as well as two variants of a specific instantiation of that format for use with Representational State Transfer (REST) resources identified by URI path.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9237"/>
          <seriesInfo name="DOI" value="10.17487/RFC9237"/>
        </reference>
        <reference anchor="RFC9277" target="https://www.rfc-editor.org/info/rfc9277">
          <front>
            <title>On Stable Storage for Items in Concise Binary Object Representation (CBOR)</title>
            <author fullname="M. Richardson" initials="M." surname="Richardson">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <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="COSE.Algorithms" target="https://www.iana.org/assignments/cose/cose.xhtml#algorithms">
          <front>
            <title>COSE Algorithms</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="I-D.tiloca-core-oscore-discovery" target="https://www.ietf.org/archive/id/draft-tiloca-core-oscore-discovery-12.txt">
          <front>
            <title>Discovery of OSCORE Groups with the CoRE Resource Directory</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <author fullname="Peter Van der Stok" initials="P." surname="Van der Stok">
              <organization>Consultant</organization>
            </author>
            <date day="5" month="September" year="2022"/>
            <abstract>
              <t>   Group communication over the Constrained Application Protocol (CoAP)
   can be secured by means of Group Object Security for Constrained
   RESTful Environments (Group OSCORE).  At deployment time, devices may
   not know the exact security groups to join, the respective Group
   Manager, or other information required to perform the joining
   process.  This document describes how a CoAP endpoint can use
   descriptions and links of resources registered at the CoRE Resource
   Directory to discover security groups and to acquire information for
   joining them through the respective Group Manager.  A given security
   group may protect multiple application groups, which are separately
   announced in the Resource Directory as sets of endpoints sharing a
   pool of resources.  This approach is consistent with, but not limited
   to, the joining of security groups based on the ACE framework for
   Authentication and Authorization in constrained environments.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-tiloca-core-oscore-discovery-12"/>
        </reference>
        <reference anchor="I-D.hartke-t2trg-coral-reef" target="https://www.ietf.org/archive/id/draft-hartke-t2trg-coral-reef-04.txt">
          <front>
            <title>Resource Discovery in Constrained RESTful Environments (CoRE) using the Constrained RESTful Application Language (CoRAL)</title>
            <author fullname="Klaus Hartke" initials="K." surname="Hartke">
              <organization>Ericsson</organization>
            </author>
            <date day="9" month="May" year="2020"/>
            <abstract>
              <t>   This document explores how the Constrained RESTful Application
   Language (CoRAL) might be used for two use cases in Constrained
   RESTful Environments (CoRE): CoRE Resource Discovery, which allows a
   client to discover the resources of a server given a host name or IP
   address, and CoRE Resource Directory, which provides a directory of
   resources on many servers.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-hartke-t2trg-coral-reef-04"/>
        </reference>
        <reference anchor="I-D.amsuess-core-cachable-oscore" target="https://www.ietf.org/archive/id/draft-amsuess-core-cachable-oscore-05.txt">
          <front>
            <title>Cacheable OSCORE</title>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date day="11" month="July" year="2022"/>
            <abstract>
              <t>   Group communication with the Constrained Application Protocol (CoAP)
   can be secured end-to-end using Group Object Security for Constrained
   RESTful Environments (Group OSCORE), also across untrusted
   intermediary proxies.  However, this sidesteps the proxies' abilities
   to cache responses from the origin server(s).  This specification
   restores cacheability of protected responses at proxies, by
   introducing consensus requests which any client in a group can send
   to one server or multiple servers in the same group.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-amsuess-core-cachable-oscore-05"/>
        </reference>
        <reference anchor="I-D.ietf-cose-cbor-encoded-cert" target="https://www.ietf.org/archive/id/draft-ietf-cose-cbor-encoded-cert-04.txt">
          <front>
            <title>CBOR Encoded X.509 Certificates (C509 Certificates)</title>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Shahid Raza" initials="S." surname="Raza">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Joel Höglund" initials="J." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Martin Furuhed" initials="M." surname="Furuhed">
              <organization>Nexus Group</organization>
            </author>
            <date day="10" month="July" year="2022"/>
            <abstract>
              <t>   This document specifies a CBOR encoding of X.509 certificates.  The
   resulting certificates are called C509 Certificates.  The CBOR
   encoding supports a large subset of RFC 5280 and all certificates
   compatible with the RFC 7925, IEEE 802.1AR (DevID), CNSA, RPKI, GSMA
   eUICC, and CA/Browser Forum Baseline Requirements profiles.  When
   used to re-encode DER encoded X.509 certificates, the CBOR encoding
   can in many cases reduce the size of RFC 7925 profiled certificates
   with over 50%.  The CBOR encoded structure can alternatively be
   signed directly ("natively signed"), which does not require re-
   encoding for the signature to be verified.  The document also
   specifies C509 COSE headers, a C509 TLS certificate type, and a C509
   file format.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-cbor-encoded-cert-04"/>
        </reference>
        <reference anchor="RFC7925" target="https://www.rfc-editor.org/info/rfc7925">
          <front>
            <title>Transport Layer Security (TLS) / Datagram Transport Layer Security (DTLS) Profiles for the Internet of Things</title>
            <author fullname="H. Tschofenig" initials="H." role="editor" surname="Tschofenig">
              <organization/>
            </author>
            <author fullname="T. Fossati" initials="T." surname="Fossati">
              <organization/>
            </author>
            <date month="July" year="2016"/>
            <abstract>
              <t>A common design pattern in Internet of Things (IoT) deployments is the use of a constrained device that collects data via sensors or controls actuators for use in home automation, industrial control systems, smart cities, and other IoT deployments.</t>
              <t>This document defines a Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) 1.2 profile that offers communications security for this data exchange thereby preventing eavesdropping, tampering, and message forgery.  The lack of communication security is a common vulnerability in IoT products that can easily be solved by using these well-researched and widely deployed Internet security protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7925"/>
          <seriesInfo name="DOI" value="10.17487/RFC7925"/>
        </reference>
        <reference anchor="RFC8392" target="https://www.rfc-editor.org/info/rfc8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones">
              <organization/>
            </author>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem">
              <organization/>
            </author>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman">
              <organization/>
            </author>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig">
              <organization/>
            </author>
            <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="RFC9147" target="https://www.rfc-editor.org/info/rfc9147">
          <front>
            <title>The Datagram Transport Layer Security (DTLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla">
              <organization/>
            </author>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig">
              <organization/>
            </author>
            <author fullname="N. Modadugu" initials="N." surname="Modadugu">
              <organization/>
            </author>
            <date month="April" year="2022"/>
            <abstract>
              <t>This document specifies version 1.3 of the Datagram Transport Layer Security (DTLS) protocol. DTLS 1.3 allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>The DTLS 1.3 protocol is based on the Transport Layer Security (TLS) 1.3 protocol and provides equivalent security guarantees with the exception of order protection / non-replayability.  Datagram semantics of the underlying transport are preserved by the DTLS protocol.</t>
              <t>This document obsoletes RFC 6347.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9147"/>
          <seriesInfo name="DOI" value="10.17487/RFC9147"/>
        </reference>
        <reference anchor="RFC9176" target="https://www.rfc-editor.org/info/rfc9176">
          <front>
            <title>Constrained RESTful Environments (CoRE) Resource Directory</title>
            <author fullname="C. Amsüss" initials="C." role="editor" surname="Amsüss">
              <organization/>
            </author>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby">
              <organization/>
            </author>
            <author fullname="M. Koster" initials="M." surname="Koster">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <author fullname="P. van der Stok" initials="P." surname="van der Stok">
              <organization/>
            </author>
            <date month="April" year="2022"/>
            <abstract>
              <t>In many Internet of Things (IoT) applications, direct discovery of resources is not practical due to sleeping nodes or networks where multicast traffic is inefficient. These problems can be solved by employing an entity called a Resource Directory (RD), which contains information about resources held on other servers, allowing lookups to be performed for those resources. The input to an RD is composed of links, and the output is composed of links constructed from the information stored in the RD. This document specifies the web interfaces that an RD supports for web servers to discover the RD and to register, maintain, look up, and remove information on resources. Furthermore, new target attributes useful in conjunction with an RD are defined.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9176"/>
          <seriesInfo name="DOI" value="10.17487/RFC9176"/>
        </reference>
        <reference anchor="RFC9202" target="https://www.rfc-editor.org/info/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">
              <organization/>
            </author>
            <author fullname="O. Bergmann" initials="O." surname="Bergmann">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <author fullname="G. Selander" initials="G." surname="Selander">
              <organization/>
            </author>
            <author fullname="L. Seitz" initials="L." surname="Seitz">
              <organization/>
            </author>
            <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>
      </references>
    </references>
    <section anchor="sec-as-scope-processing">
      <name>Processing of Group Name Patterns at the AS</name>
      <t>When processing an Authorization Request from an Administrator (see <xref target="getting-access"/>), the AS builds the authorization information expressing granted permissions as scope entries, according to the AIF specific data model AIF-OSCORE-GROUPCOMM and to its extension specified in <xref target="scope-format"/>. These scope entries are in turn specified as value of the 'scope' claim to include in the Access Token.</t>
      <t>In order to evaluate the requested permissions against the access policies pertaining to the Administrator for the Group Manager in question, the AS can perform the following steps.</t>
      <t>The following specifically refers only to "admin scope entries", i.e., scope entries that express authorization information for Administrators of OSCORE groups.</t>
      <ol spacing="normal" type="1"><li>The AS initializes three empty sets of scope entries, namely S1, S2 and S3.</li>
        <li>
          <t>For each scope entry E in the 'scope' parameter of the Authorization Request, the AS performs the following actions.  </t>
          <ul spacing="normal">
            <li>In its access policies related to administrative operations at the Group Manager for the Administrator, the AS determines every group name superpattern P*, such that every group name matching with the pattern P of the scope entry E matches also with P*.</li>
            <li>If no superpatterns are found, the AS proceeds with the next scope entry, if any. Otherwise, the AS computes Tperm* as the union of the permission sets associated with the superpatterns found at the previous step. That is, Tperm* is the inclusive OR of the binary representations of the Tperm values associated with the found superpatterns and encoding the corresponding permission sets as per <xref target="scope-format"/>.</li>
            <li>The AS adds to the set S1 a scope entry, such that its Toid is the same as in the scope entry E, while its Tperm is the AND of Tperm* with the Tperm in the scope entry E.</li>
          </ul>
        </li>
        <li>
          <t>For each scope entry E in the 'scope' parameter of the Authorization Request, the AS performs the following actions.  </t>
          <ul spacing="normal">
            <li>In its access policies related to administrative operations at the Group Manager for the Administrator, the AS determines every group name subpattern P*, such that: i) the pattern P of the scope entry E is different from P*; and ii) every group name matching with P* also matches with P.</li>
            <li>If no subpatterns are found, the AS proceeds with the next scope entry, if any. Otherwise, for each found subpattern P*, the AS adds to the set S2 a scope entry, such that its Toid is the same as in the subpattern P*, while its Tperm is the AND of the Tperm from the subpattern P* with the Tperm in the scope entry E.</li>
          </ul>
        </li>
        <li>
          <t>For each scope entry E in the 'scope' parameter of the Authorization Request, the AS performs the following actions.  </t>
          <ul spacing="normal">
            <li>
              <t>For each group name pattern P* in its access policies related to administrative operations at the Group Manager for the Administrator, the AS performs the following actions.      </t>
              <ul spacing="normal">
                <li>The AS attempts to determine a crosspattern P** such that: i) in the previous steps, P** was not identified as a superpattern or subpattern for the pattern P of the scope entry E; ii) every group name matching with P** also matches with both P and P*.</li>
                <li>If no crosspattern is built, the AS proceeds with the next pattern in its access policies related to administrative operations at the Group Manager for the Administrator, if any. Otherwise, the AS adds to the set S3 a scope entry, such that its Toid is the same as in the crosspattern P**, while its Tperm is the AND of the Tperm from the pattern P* and the Tperm in the scope entry E.</li>
              </ul>
            </li>
          </ul>
        </li>
        <li>If the sets S1, S2 and S3 are all empty, the Authorization Request has not been successfully verified, and the AS returns an error response as per <xref section="5.8.3" sectionFormat="of" target="RFC9200"/>. Otherwise, the AS uses the scope entries in the sets S1, S2 and S3 as the scope entries for the 'scope' claim to include in the Access Token, as per the format defined in <xref target="scope-format"/>.</li>
      </ol>
    </section>
    <section anchor="sec-document-updates">
      <name>Document Updates</name>
      <t>RFC EDITOR: PLEASE REMOVE THIS SECTION.</t>
      <section anchor="sec-06-07">
        <name>Version -06 to -07</name>
        <ul spacing="normal">
          <li>Alignment with renaming in draft-ietf-ace-key-groupcomm.</li>
          <li>Updated signaling of semantics for binary encoded scopes.</li>
          <li>Split between parameter registration and their CBOR abbreviations.</li>
          <li>Classified parameters as must/should/may be supported.</li>
          <li>New error code "No available group names" and related guidelines.</li>
          <li>Fixes in the examples.</li>
          <li>Editorial improvements.</li>
        </ul>
      </section>
      <section anchor="sec-05-06">
        <name>Version -05 to -06</name>
        <ul spacing="normal">
          <li>Use and extend the same AIF specific data model AIF-OSCORE-GROUPCOMM defined in <xref target="I-D.ietf-ace-key-groupcomm-oscore"/>.</li>
          <li>Revised Client-AS interaction, based on the used AIF specific data model.</li>
          <li>Categorized operations at the Group Manager as required and optional to support.</li>
          <li>Added status parameter 'gid_reuse', on reassigning OSCORE Group IDs upon group rekeying.</li>
          <li>Clarifications on the group name ultimately chosen by the Group Manager.</li>
          <li>Moved the detailed processing of group name patterns at the AS to an Appendix, as an example.</li>
          <li>Editorial improvements.</li>
        </ul>
      </section>
      <section anchor="sec-04-05">
        <name>Version -04 to -05</name>
        <ul spacing="normal">
          <li>Defined format of scope based on a new AIF data model.</li>
          <li>Specified authorization checks at the Group Manager.</li>
          <li>Revised resource handlers based on the new scope format.</li>
          <li>Renamed 'pub_key_enc' to 'cred_fmt'.</li>
          <li>Mandatory to include 'group_name' in the group creation request.</li>
          <li>Suggesting a used 'group_name' results in a new name, not in an error.</li>
          <li>Distinction between authentication credentials and public keys.</li>
          <li>More details on informing group members about changes in the group configuration.</li>
          <li>Revised order of sections; editorial improvements.</li>
        </ul>
      </section>
      <section anchor="sec-03-04">
        <name>Version -03 to -04</name>
        <ul spacing="normal">
          <li>Clarifications on what to do in case of enhanced error responses.</li>
          <li>Clarifications on handling default values for group parameters.</li>
          <li>New configuration parameters to support OSCORE deterministic requests.</li>
          <li>IANA considerations - Use RFC8126 terminology.</li>
          <li>Author's change of address.</li>
          <li>Editorial improvements.</li>
        </ul>
      </section>
      <section anchor="sec-02-03">
        <name>Version -02 to -03</name>
        <ul spacing="normal">
          <li>Aligned new and old parameters to core-groupcomm-oscore and ace-key-groupcomm-oscore.</li>
          <li>Removed 'cs_key_params' and 'ecdh_key_params' to avoid redundant COSE capabilities of key types, consistently with draft-ietf-ace-key-groupcomm-oscore.</li>
          <li>Revised examples and side effects due to parameter changes.</li>
          <li>New error type "Group currently active".</li>
        </ul>
      </section>
      <section anchor="sec-01-02">
        <name>Version -01 to -02</name>
        <ul spacing="normal">
          <li>Admit multiple Administrators and limited access to admin resources.</li>
          <li>Early design considerations for defining the format of scope.</li>
          <li>Additional error handling, using also error types.</li>
          <li>Selective update of group-configuration resources with PATCH/iPATCH.</li>
          <li>Editorial improvements.</li>
        </ul>
      </section>
      <section anchor="sec-00-01">
        <name>Version -00 to -01</name>
        <ul spacing="normal">
          <li>Names of application groups as status parameter.</li>
          <li>Parameters related to the pairwise mode of Group OSCORE.</li>
          <li>Defined FETCH for group-configuration resources.</li>
          <li>Policies on registration of links to the Resource Directory.</li>
          <li>Added resource type for group-configuration resources.</li>
          <li>Fixes, clarifications and editorial improvements.</li>
        </ul>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgment">
      <name>Acknowledgments</name>
      <t>Klaus Hartke provided substantial contribution in defining the resource model based on group collection and group configurations, as well as the interactions with the Group Manager using CoRAL.</t>
      <t>The authors sincerely thank <contact fullname="Christian Amsüss"/>, <contact fullname="Carsten Bormann"/> and <contact fullname="Jim Schaad"/> for their comments and feedback.</t>
      <t>The work on this document has been partly supported by VINNOVA and the Celtic-Next project CRITISEC; and by the H2020 project SIFIS-Home (Grant agreement 952652).</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
/Bk39Z8G8Ax18xkHcHuoSCMoNIwEAQMfypMEfZ0nEQL9X+8I/24Z0CEwWYjZ
lAriYuVfO8OkJeGXCWwwf8H66Kus7BA0o/gO+3oj5syrxq9LhNfSEoJZwSwS
IYQrIwS7iyGuHFfaXvW5An4/U7WDP2AM73ESj+44gpem+BeO3427hGZat/kG
LrsHoNLw9htjoKRRjbIDshzv9Km1xWu/QE4gj9TyWvFUQGaHlS4cLKOp+Rwb
eAuRCPo+tCeJAsiW7ph7U+/ZV5bbFF50q7PtTvPXdTmtL5ndsoSS01y3xPkM
RZ+OmZlLyuI1XUd19MUPd3ZcnSWk/jSrUaqoLn7a/875lAuf4he//rr1phf9
utWLHr55003f8udRlVVpnu1HzscLJpJCuvg9uVTU50UlWkQ9D/gONb5QRpPW
ZuotLdR7bnoZnZueWLmUajtMPswIijsPN7e/e7y9vbu03vk1q2q3f61uWcUw
ipu6b3DZuidrq6sF90r/yag+gE/fDuNZfDYAgeAt9eDZ8p9R3yz7IPBKEG4e
tuibeoXqUuKN1H8vWKL9TOsSWx60liiXm/EePyiq2pW+JSU5dHObri2+4F7Z
iE9e3VWzYLik1g1dTh3/Egrrq7iopFBHQHGtF6gK6rB/gBpVX0a3nQl0F0it
lmp7wzx6rj9ElTl9dyhlB5SULL6Ga3jLlVSCrftY0opV0kSt51jHwlKNHWCM
YonypuwqGTW2m8uLegyIB9aQ3hEMkWsViz3wtkrFn3nZ0f5kwnKvlsO1h5U0
WFCtuUdlczUhy1nPOoXj55Baj+psO1b0idvvmKUrBG1fnywNoEG/t6sZ19VY
1EzPEspSijNOEqvZDpQeb6WmsI93UchoxwxJh/R8VkU85kIQ8WQJdbwBv+5I
Ce8pKwlWm6qMc3I5Pdy6bW3Rc85BNEXuOl0bF95id0FWnFPI+ONX5FJTXuPi
OKcUvjoby2muC8oUuUL2raiqFp8hhc5VPXXNKe+HNdzGb11Vs/ExUfkav7c1
vOZBjGr1pns9rK/Ts3lj96UA4NbrY3VBvDt0zCnlrqYjGU3DUygcCb78Qvro
bfkWb+pH9FWLl8CuL7E63zWcYbN5yBkW0A1uxxf26vVyvrAF6oGrBOQaDh2l
fyUHYFoTCJwDp+COl8M6lriWUjKk0WURqNbgV9JpqkAZNN9qeauRMToNtii1
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
vigSQo3o8YPthw+2NwYr/x/r73YiHswBAA==

-->

</rfc>
