<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 2.6.10) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

<!ENTITY RFC7643 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7643.xml">
<!ENTITY RFC7644 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7644.xml">
<!ENTITY RFC2119 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC8174 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC8520 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8520.xml">
<!ENTITY RFC4648 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4648.xml">
<!ENTITY RFC5280 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5280.xml">
<!ENTITY RFC6241 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6241.xml">
<!ENTITY RFC8040 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8040.xml">
<!ENTITY RFC7950 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7950.xml">
<!ENTITY RFC8995 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8995.xml">
<!ENTITY I-D.ietf-asdf-nipc SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-asdf-nipc.xml">
<!ENTITY I-D.brinckman-nipc SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.brinckman-nipc.xml">
]>


<rfc ipr="trust200902" docName="draft-ietf-scim-device-model-17" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="SCIM Device Schema Extensions">Device Schema Extensions to the SCIM model</title>

    <author initials="M." surname="Shahzad" fullname="Muhammad Shahzad">
      <organization>North Carolina State University</organization>
      <address>
        <postal>
          <street>Department of Computer Science</street> <street>890 Oval Drive</street> <street>Campus Box 8206</street>
          <city>Raleigh, NC</city>
          <code>27695-8206</code>
          <country>USA</country>
        </postal>
        <email>mshahza@ncsu.edu</email>
      </address>
    </author>
    <author initials="H." surname="Iqbal" fullname="Hassan Iqbal">
      <organization>North Carolina State University</organization>
      <address>
        <postal>
          <street>Department of Computer Science</street> <street>890 Oval Drive</street> <street>Campus Box 8206</street>
          <city>Raleigh, NC</city>
          <code>27695-8206</code>
          <country>USA</country>
        </postal>
        <email>hassaniqbal931@gmail.com</email>
      </address>
    </author>
    <author initials="E." surname="Lear" fullname="Eliot Lear">
      <organization>Cisco Systems</organization>
      <address>
        <postal>
          <street>Richtistrasse 7</street>
          <city>Wallisellen</city>
          <code>CH-8304</code>
          <country>Switzerland</country>
        </postal>
        <phone>+41 44 878 9200</phone>
        <email>lear@cisco.com</email>
      </address>
    </author>

    <date year="2025" month="July" day="25"/>

    
    
    <keyword>Internet-Draft</keyword>

    <abstract>


<?line 117?>

<t>The initial core schema for SCIM (System for Cross-domain Identity
Management) was designed for provisioning users. This memo specifies
schema extensions that enables provisioning of devices, using various
underlying bootstrapping systems, such as Wi-fi Easy Connect, FIDO
device onboarding vouchers, BLE passcodes, and MAC authenticated bypass.</t>



    </abstract>



  </front>

  <middle>


<?line 125?>

<section anchor="introduction"><name>Introduction</name>

<t>The Internet of Things presents a management challenge in many
dimensions. One of them is the ability to onboard and manage large
number of devices. There are many models for bootstrapping trust
between devices and network deployments. Indeed it is expected that
different manufacturers will make use of different methods.</t>

<t>SCIM (System for Cross-domain Identity Management) <xref target="RFC7643"/> <xref target="RFC7644"/>
defines a protocol and a schema for provisioning of users. However, it
can easily be extended to provision device credentials and other
attributes into a network. The protocol and core schema were designed
to permit just such extensions. Bulk operations are supported. This is
good because often devices are procured in bulk.</t>

<t>A primary purpose of this specification is to provision the network
for onboarding and communications access to and from devices within a
local deployment based on the underlying capabilities of those
devices.</t>

<t>The underlying security mechanisms of some devices range from
non-existent such as the Bluetooth Low Energy (BLE) "Just Works"
pairing method to a robust FIDO Device Onboard (FDO) mechanism.
Information from the SCIM server is dispatched to control functions
based on selected schema extensions to enable these communications
within a network.  The SCIM database is therefore essentially
equivalent to a network's Authentication, Authorization, and
Accounting (AAA) database, and should be carefully managed as such.</t>

<section anchor="why-scim-for-devices"><name>Why SCIM for devices?</name>
<t>There are a number of existing models that might provide the basis for
a scheme for provisioning devices onto a network, including two
standardised by the IETF:  NETCONF <xref target="RFC6241"/> or RESTCONF <xref target="RFC8040"/>
with YANG <xref target="RFC7950"/>. SCIM was chosen for the following reasons:</t>

<t><list style="symbols">
  <t>NETCONF and RESTCONF focus on <strong>configuration</strong> rather than
provisioning.</t>
  <t>SCIM is designed with inter-domain provisioning in mind.
The use of HTTP as a substrate permits both user-based authentication
for local provisioning applications, as well as OAUTH or certificate-
based authentication.  The inter-domain nature of these operations
does not expose local policy, which itself must be (and often is)
configured with other APIs, many of which are not standardized.</t>
  <t>SCIM is also a familiar tool within the enterprise enviroment, used
extensively to configure federated user accounts.</t>
  <t>Finally, once one chooses a vehicle such as SCIM, one is beholden
to its data model.  The SCIM data model is more targeted to provisioning
as articulated in <xref target="RFC7643"/>.</t>
</list></t>

<t>This taken together with the fact that end devices are not intended to
be <strong>directly</strong> configured leave us with SCIM as the best standard option.</t>

</section>
<section anchor="protocol-participants"><name>Protocol Participants</name>

<t>In the normal SCIM model, it was presumed that large federated
deployments would be SCIM clients who provision and remove employees
and contractors as they enter and depart those deployments, and
federated services such as sales, payment, or conferencing services
would be the servers.</t>

<t>In the device model, the roles are reversed, and may be somewhat more
varied. The SCIM server resides within a deployment and is used for
receiving information about devices that are expected to be connected
to its network. That server will apply appropriate local policies
regarding whether/how the device should be connected.</t>

<t>The client may be one of a number of entities:</t>

<t><list style="symbols">
  <t>A vendor who is authorized to add devices to a network as part of
a sales transaction. This is similar to the sales integration
sometimes envisioned by Bootstrapping Remote Key Infrastructure
(BRSKI) <xref target="RFC8995"/>.</t>
  <t>A client application that administrators or employees use to add,
remove, or get information about devices. An example might be an
tablet or phone app that scans Wi-fi Easy Connect QR codes.</t>
</list></t>

<figure title="Basic Architecture - non-IP example" anchor="arch"><artset><artwork  type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="304" width="496" viewBox="0 0 496 304" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,64 L 8,112" fill="none" stroke="black"/>
<path d="M 8,176 L 8,224" fill="none" stroke="black"/>
<path d="M 104,64 L 104,112" fill="none" stroke="black"/>
<path d="M 104,176 L 104,224" fill="none" stroke="black"/>
<path d="M 200,32 L 200,72" fill="none" stroke="black"/>
<path d="M 200,128 L 200,256" fill="none" stroke="black"/>
<path d="M 224,64 L 224,112" fill="none" stroke="black"/>
<path d="M 224,176 L 224,208" fill="none" stroke="black"/>
<path d="M 264,120 L 264,168" fill="none" stroke="black"/>
<path d="M 304,64 L 304,112" fill="none" stroke="black"/>
<path d="M 328,176 L 328,208" fill="none" stroke="black"/>
<path d="M 408,176 L 408,208" fill="none" stroke="black"/>
<path d="M 472,176 L 472,208" fill="none" stroke="black"/>
<path d="M 488,32 L 488,256" fill="none" stroke="black"/>
<path d="M 200,32 L 488,32" fill="none" stroke="black"/>
<path d="M 8,64 L 104,64" fill="none" stroke="black"/>
<path d="M 224,64 L 304,64" fill="none" stroke="black"/>
<path d="M 112,80 L 216,80" fill="none" stroke="black"/>
<path d="M 112,96 L 216,96" fill="none" stroke="black"/>
<path d="M 8,112 L 104,112" fill="none" stroke="black"/>
<path d="M 224,112 L 304,112" fill="none" stroke="black"/>
<path d="M 8,176 L 104,176" fill="none" stroke="black"/>
<path d="M 224,176 L 328,176" fill="none" stroke="black"/>
<path d="M 408,176 L 472,176" fill="none" stroke="black"/>
<path d="M 224,208 L 328,208" fill="none" stroke="black"/>
<path d="M 408,208 L 472,208" fill="none" stroke="black"/>
<path d="M 8,224 L 104,224" fill="none" stroke="black"/>
<path d="M 200,256 L 488,256" fill="none" stroke="black"/>
<polygon class="arrowhead" points="272,168 260,162.4 260,173.6" fill="black" transform="rotate(90,264,168)"/>
<polygon class="arrowhead" points="224,80 212,74.4 212,85.6" fill="black" transform="rotate(0,216,80)"/>
<polygon class="arrowhead" points="120,96 108,90.4 108,101.6" fill="black" transform="rotate(180,112,96)"/>
<g class="text">
<text x="160" y="68">Request</text>
<text x="60" y="84">onboarding</text>
<text x="260" y="84">SCIM</text>
<text x="56" y="100">app</text>
<text x="260" y="100">Server</text>
<text x="140" y="116">Ctrl</text>
<text x="184" y="116">Endpt</text>
<text x="296" y="148">(device</text>
<text x="352" y="148">info)</text>
<text x="56" y="196">Control</text>
<text x="152" y="196">...........</text>
<text x="212" y="196">..</text>
<text x="272" y="196">ALG</text>
<text x="368" y="196">.........</text>
<text x="436" y="196">device</text>
<text x="56" y="212">App</text>
<text x="296" y="244">Local</text>
<text x="352" y="244">network</text>
</g>
</svg>
</artwork><artwork  type="ascii-art"><![CDATA[
                            +-----------------------------------+
                            |                                   |
    +-----------+   Request |  +---------+                      |
    | onboarding|------------->|  SCIM   |                      |
    |    app    |<-------------| Server  |                      |
    +-----------+  Ctrl Endpt  +---------+                      |
                            |       |                           |
                            |       |(device info)              |
                            |       v                           |
    +-----------+           |  +------------+         +-------+ |
    |  Control  |...........|..|    ALG     |.........|device | |
    |    App    |           |  +------------+         +-------+ |
    +-----------+           |                                   |
                            |         Local network             |
                            +-----------------------------------+

]]></artwork></artset></figure>

<t>In <xref target="arch"/>, the onboarding application (app) provides the device particulars,
which will vary based on the type of device, as indicated by the
selection of schema extensions. As
part of the response, the SCIM server might provide additional
information, especially in the case of non-IP devices, where an
application-layer gateway may need to be used to communicate with
the device (c.f., <xref target="I-D.ietf-asdf-nipc"/>). The control endpoint
is one among a number of objects
that may be returned.  That control endpoint will then communicate
with the application layer gateway (ALG) to reach the device.</t>

<figure title="Interaction with AAA" anchor="arch2"><artset><artwork  type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="272" width="504" viewBox="0 0 504 272" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,64 L 8,112" fill="none" stroke="black"/>
<path d="M 8,144 L 8,192" fill="none" stroke="black"/>
<path d="M 104,64 L 104,112" fill="none" stroke="black"/>
<path d="M 104,144 L 104,192" fill="none" stroke="black"/>
<path d="M 200,32 L 200,72" fill="none" stroke="black"/>
<path d="M 200,128 L 200,224" fill="none" stroke="black"/>
<path d="M 224,64 L 224,112" fill="none" stroke="black"/>
<path d="M 224,144 L 224,176" fill="none" stroke="black"/>
<path d="M 304,64 L 304,112" fill="none" stroke="black"/>
<path d="M 328,144 L 328,176" fill="none" stroke="black"/>
<path d="M 336,64 L 336,96" fill="none" stroke="black"/>
<path d="M 376,64 L 376,96" fill="none" stroke="black"/>
<path d="M 408,144 L 408,176" fill="none" stroke="black"/>
<path d="M 416,64 L 416,96" fill="none" stroke="black"/>
<path d="M 440,104 L 440,136" fill="none" stroke="black"/>
<path d="M 472,64 L 472,96" fill="none" stroke="black"/>
<path d="M 472,144 L 472,176" fill="none" stroke="black"/>
<path d="M 496,32 L 496,224" fill="none" stroke="black"/>
<path d="M 200,32 L 496,32" fill="none" stroke="black"/>
<path d="M 8,64 L 104,64" fill="none" stroke="black"/>
<path d="M 224,64 L 304,64" fill="none" stroke="black"/>
<path d="M 336,64 L 376,64" fill="none" stroke="black"/>
<path d="M 416,64 L 472,64" fill="none" stroke="black"/>
<path d="M 112,80 L 216,80" fill="none" stroke="black"/>
<path d="M 312,80 L 328,80" fill="none" stroke="black"/>
<path d="M 384,80 L 408,80" fill="none" stroke="black"/>
<path d="M 112,96 L 216,96" fill="none" stroke="black"/>
<path d="M 336,96 L 376,96" fill="none" stroke="black"/>
<path d="M 416,96 L 472,96" fill="none" stroke="black"/>
<path d="M 8,112 L 104,112" fill="none" stroke="black"/>
<path d="M 224,112 L 304,112" fill="none" stroke="black"/>
<path d="M 8,144 L 104,144" fill="none" stroke="black"/>
<path d="M 224,144 L 328,144" fill="none" stroke="black"/>
<path d="M 408,144 L 472,144" fill="none" stroke="black"/>
<path d="M 224,176 L 328,176" fill="none" stroke="black"/>
<path d="M 408,176 L 472,176" fill="none" stroke="black"/>
<path d="M 8,192 L 104,192" fill="none" stroke="black"/>
<path d="M 200,224 L 496,224" fill="none" stroke="black"/>
<polygon class="arrowhead" points="416,80 404,74.4 404,85.6" fill="black" transform="rotate(0,408,80)"/>
<polygon class="arrowhead" points="392,80 380,74.4 380,85.6" fill="black" transform="rotate(180,384,80)"/>
<polygon class="arrowhead" points="336,80 324,74.4 324,85.6" fill="black" transform="rotate(0,328,80)"/>
<polygon class="arrowhead" points="224,80 212,74.4 212,85.6" fill="black" transform="rotate(0,216,80)"/>
<polygon class="arrowhead" points="120,96 108,90.4 108,101.6" fill="black" transform="rotate(180,112,96)"/>
<g class="text">
<text x="160" y="68">Request</text>
<text x="60" y="84">onboarding</text>
<text x="260" y="84">SCIM</text>
<text x="360" y="84">AAA</text>
<text x="444" y="84">switch</text>
<text x="56" y="100">app</text>
<text x="260" y="100">Server</text>
<text x="140" y="116">Ctrl</text>
<text x="184" y="116">Endpt</text>
<text x="56" y="164">Control</text>
<text x="152" y="164">...........</text>
<text x="212" y="164">..</text>
<text x="272" y="164">router/fw</text>
<text x="368" y="164">.........</text>
<text x="436" y="164">device</text>
<text x="56" y="180">App</text>
<text x="304" y="212">Local</text>
<text x="360" y="212">network</text>
</g>
</svg>
</artwork><artwork  type="ascii-art"><![CDATA[
                            +------------------------------------+
                            |                                    |
    +-----------+   Request |  +---------+   +----+    +------+  |
    | onboarding|------------->|  SCIM   |-->| AAA|<-->|switch|  |
    |    app    |<-------------| Server  |   +----+    +------+  |
    +-----------+  Ctrl Endpt  +---------+                |      |
                            |                             |      |
    +-----------+           |  +------------+         +-------+  |
    |  Control  |...........|..| router/fw  |.........|device |  |
    |    App    |           |  +------------+         +-------+  |
    +-----------+           |                                    |
                            |          Local network             |
                            +------------------------------------+

]]></artwork></artset></figure>

<t><xref target="arch2"/> shows how IP-based endpoints can be provisioned.  In this
case, the onboarding application provisions a device via SCIM. The necessary
information is passed to the Authentication, Authorization, and Accounting
(AAA) subsystem, such that the device is
permitted to connect.  Once it is online, since the device is based
on IP, it will not need an ALG, but will use the normal IP
infrastructure to communicate with its control application.</t>

</section>
<section anchor="schema-description"><name>Schema Description</name>

<t>RFC 7643 does not prescribe a language to describe a schema, but instead
uses narrative description with examples.  We follow that approach.
In addition, we provide non-normative JSON Schema 
<xref target="JSONSchema"/> and OpenAPI <xref target="OpenAPI"/> versions in the appendices for 
ease of implementation, neither of which existed when SCIM was originally
developed.  The only difference the authors note
between the normative schema representations is that JSON Schema and OpenAPI
do not have a means to express case sensitivity, and thus attributes that
are not case sensitive must be manually validated.</t>

<t>Several additional schemas specify specific onboarding mechanisms,
such as Bluetooth Low energy (BLE) <xref target="BLE54"/>, Wi-fi Easy Connect <xref target="DPP2"/>,
and FIDO Device Onboard <xref target="FDO11"/>.</t>

</section>
<section anchor="schema-representation"><name>Schema Representation</name>

<t>Attributes defined in the device core schema and extensions comprise
characteristics and SCIM datatypes defined in Sections 2.2 and 2.3 of
<xref target="RFC7643"/>. This specification does not define new
characteristics and datatypes for the SCIM attributes.</t>

</section>
<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>The reader is also expected to be familiar with the narrative schema
language used in <xref target="RFC7643"/>.</t>

</section>
</section>
<section anchor="resourcetype-device"><name>ResourceType Device</name>

<t>A new resource type 'Device' is specified. The "ResourceType" schema
specifies the metadata about a resource type (see Section 6 of
<xref target="RFC7643"/>).  It comprises a core device schema and several
extension schemas. This schema provides a minimal resource
representation, whereas extension schemas extend it
depending on the device's capability.</t>

<section anchor="commonatts"><name>Common Attributes</name>

<t>The Device schema contains three common attributes as defined in Section
3.1 of <xref target="RFC7643"/>.  No semantic or syntax changes are made here, but the
attributes are listed merely for completeness.</t>

<dl>
  <dt>id:</dt>
  <dd>
    <t>A required and unique attribute of the core device schema
 (see section 3.1 of <xref target="RFC7643"/>).</t>
  </dd>
  <dt>externalId:</dt>
  <dd>
    <t>An optional attribute (see section 3.1 of <xref target="RFC7643"/>).</t>
  </dd>
  <dt>meta:</dt>
  <dd>
    <t>A complex attribute and is required (see section 3.1 of <xref target="RFC7643"/>).</t>
  </dd>
</dl>

</section>
</section>
<section anchor="scim-core-device-schema"><name>SCIM Core Device Schema</name>

<t>The core device schema provides the minimal representation of a
resource "Device". It contains only those attributes that any device
may need, and only one attribute is required.  It is identified using the
schema URI:</t>

<t>"urn:ietf:params:scim:schemas:core:2.0:Device".</t>

<t>The following attributes are defined in the core device schema.</t>

<section anchor="singular-attributes"><name>Singular Attributes</name>

<dl>
  <dt>displayName:</dt>
  <dd>
    <t>A string that provides a human-readable name
  for a device. It is intended to be displayed to end-users and should be
  suitable for that purpose. The attribute is not required, and is not
  case-sensitive. It may be modified and SHOULD be returned
  by default. No uniqueness constraints are imposed on this attribute.</t>
  </dd>
  <dt>active:</dt>
  <dd>
    <t>A mutable boolean that is required. If set to TRUE, it means that this device
 is intended to be operational. Attempts to control or access a device
 where this value is set to FALSE may fail. For example, when used in
 conjunction with NIPC <xref target="I-D.brinckman-nipc"/>, commands such as
 connect, disconnect, subscribe that control application sends to the
 controller for the devices any command will be rejected by the controller.</t>
  </dd>
  <dt>mudUrl:</dt>
  <dd>
    <t>A string that represents the URL to the Manufacturer Usage Description
 (MUD) file associated with this device. This attribute is optional and mutable.
 The mudUrl value is case sensitive and not unique. When present, this attribute
 may be used as described in <xref target="RFC8520"/>. This attribute is case
 sensitive and returned by default.</t>
  </dd>
  <dt>groups:</dt>
  <dd>
    <t>An optional read-only complex object that indicates group membership.  Its
form is precisely the same as that defined in <xref section="4.1.2" sectionFormat="of" target="RFC7643"/>.</t>
  </dd>
</dl>

<texttable title="Characteristics of device schema attributes. (Req = Required,
T = True, F = False, RO = ReadOnly, RW = ReadWrite, and Def = Default)" anchor="tabDevice">
      <ttcol align='left'>Attribute</ttcol>
      <ttcol align='left'>Multi Value</ttcol>
      <ttcol align='left'>Req</ttcol>
      <ttcol align='left'>Case Exact</ttcol>
      <ttcol align='left'>Mutable</ttcol>
      <ttcol align='left'>Return</ttcol>
      <ttcol align='left'>Unique</ttcol>
      <c>displayName</c>
      <c>F</c>
      <c>F</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
      <c>active</c>
      <c>F</c>
      <c>T</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
      <c>mudUrl</c>
      <c>F</c>
      <c>F</c>
      <c>T</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
      <c>groups</c>
      <c>T</c>
      <c>F</c>
      <c>T</c>
      <c>RO</c>
      <c>Def</c>
      <c>n/a</c>
</texttable>

<figure title="Core Device Example Entries" anchor="coreExample"><artwork><![CDATA[
<CODE BEGINS>
{
        "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Device"],
        "id": "e9e30dba-f08f-4109-8486-d5c6a3316111",
        "displayName": "BLE Heart Monitor",
        "active": true,
        "meta": {
          "resourceType": "Device",
      "created": "2022-01-23T04:56:22Z",
          "lastModified": "2022-05-13T04:42:34Z",
          "version": "W\/\"a330bc54f0671c9\"",
          "location": "https://example.com/v2/Devices/e9e30dba-f08f
             -4109-8486-d5c6a3316111"
        }
}
<CODE ENDS>
]]></artwork></figure>

</section>
</section>
<section anchor="groups"><name>Groups</name>

<t>Device and EndpointApp groups are created using the SCIM groups as defined
in <xref section="4.2" sectionFormat="of" target="RFC7643"/>.  If set, the "type" subattribute
of the "members" attribute MUST be set to "Device" for devices and
"EndpointApp" for endpoint applications.</t>

</section>
<section anchor="resource-type-endpointapp"><name>Resource Type EndpointApp</name>

<t>This section defines the 'EndpointApp' resource type. The
"ResourceType" schema specifies the metadata about a resource type
(see Section 6 of <xref target="RFC7643"/>). The resource "EndpointApp" represents
client applications that can control and/or receive data from the
devices.</t>

</section>
<section anchor="endpointapp-schema"><name>SCIM EndpointApp Schema</name>

<t>The EndpointApp schema is used to authorize control
or telemetry services for clients.  The schema identifies the application
and how clients are to authenticate to the various services.</t>

<t>The schema for "EndpointApp" is identified using the schema URI:
"urn:ietf:params:scim:schemas:core:2.0:EndpointApp". The following
attributes are defined in this schema.</t>

<section anchor="common-attributes"><name>Common Attributes</name>

<t>Like <xref target="commonatts"/> The EndpointApp schema contains the three common 
attributes specified in Section 3.1 <xref target="RFC7643"/>.</t>

</section>
<section anchor="singular-attributes-1"><name>Singular Attributes</name>

<dl>
  <dt>applicationType:</dt>
  <dd>
    <t>A string that represents the type of
 application. It will only contain two values; 'deviceControl'
 or 'telemetry'. 'deviceControl' is the application that sends commands
 to control the device. 'telemetry' is the application that receives
 data from the device. The attribute is required, and is not
 case-sensitive. The attribute is readOnly and should be returned
 by default. No uniqueness constraints are imposed on this attribute.</t>
  </dd>
  <dt>applicationName:</dt>
  <dd>
    <t>a string that represents a
 human readable name for the application. This attribute is required and
 mutable. The attribute should be returned by default and there is no
 uniqueness contraint on the attribute.</t>
  </dd>
  <dt>clientToken:</dt>
  <dd>
    <t>A string contains a token that the client will use
 to authenticate itself. Each token may be a string up to 500
 characters in length. It is not mutable, read-only, generated if
 no certificateInfo object is provisioned, case sensitive and returned
 by default if it exists.  The SCIM server should expect that client
 tokens will be shared by the SCIM client with other components within
 the client's infrastructure.
groups:</t>
  </dd>
  <dt/>
  <dd>
    <t>An optional read-only complex object that indicates group membership.  Its
form is precisely the same as that defined in <xref section="4.1.2" sectionFormat="of" target="RFC7643"/>.</t>
  </dd>
</dl>

</section>
<section anchor="complex-attributes"><name>Complex Attributes</name>

<section anchor="certificateinfo"><name>certificateInfo</name>

<t>certificateInfo is a complex attribute that contains x509 certificate's subject
name and root CA information associated with application clients that
will connect for purposes of device control or telemetry.</t>

<dl>
  <dt>rootCA:</dt>
  <dd>
    <t>A base64-encoded string as
 described in <xref target="RFC4648"/> Section 4 a trust anchor certificate.
 This trust anchor is applicable
 for certificates used for client application access.  The object
 is not required, singular, case sensitive, and read/write.  If not
 present, a set of trust anchors MUST be configured out of band.</t>
  </dd>
  <dt>subjectName:</dt>
  <dd>
    <t>when present, a string taht contains one of two one of two names:
</t>

    <t><list style="symbols">
      <t>a distinguished name as that will be present in the certificate
subject field, as described in Section 4.1.2.4 of <xref target="RFC5280"/>; or</t>
      <t>or a dnsName as part of a subjectAlternateName as described in
Section 4.2.1.6 of <xref target="RFC5280"/>.</t>
    </list></t>

    <t>In the latter case, servers validating such certificates SHALL reject
 connections when name of the peer as resolved by a DNS reverse lookup
 does not match the dnsName in the certificate.  If multiple dnsNames
 are present, it is left to server implementations to address any
 authorization conflicts associated with those names.  This attribute
 is not required, mutable, singular and NOT case sensitive.</t>
  </dd>
</dl>

<texttable title="Characteristics of EndpointApp schema attributes. 
(Req = Required, T = True, F = False, R = ReadOnly, RW = ReadWrite,
 Manuf = Manufacturer, N = No, and Def = Default)" anchor="tabEndpointApp">
      <ttcol align='left'>Attribute</ttcol>
      <ttcol align='left'>Multi Value</ttcol>
      <ttcol align='left'>Req</ttcol>
      <ttcol align='left'>Case Exact</ttcol>
      <ttcol align='left'>Mutable</ttcol>
      <ttcol align='left'>Return</ttcol>
      <ttcol align='left'>Unique</ttcol>
      <c>applicationType</c>
      <c>F</c>
      <c>T</c>
      <c>F</c>
      <c>R</c>
      <c>Def</c>
      <c>None</c>
      <c>applicationName</c>
      <c>F</c>
      <c>T</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
      <c>clientToken</c>
      <c>F</c>
      <c>F</c>
      <c>T</c>
      <c>R</c>
      <c>N</c>
      <c>None</c>
      <c>certificateInfo</c>
      <c>F</c>
      <c>F</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
      <c>rootCA</c>
      <c>F</c>
      <c>F</c>
      <c>T</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
      <c>subjectName</c>
      <c>F</c>
      <c>T</c>
      <c>T</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
</texttable>

<t>Note that either clientToken or certificateInfo are used for the
authentication of the application.  If certificateInfo is NOT present
when an endpointApp is object created, then the server SHOULD return
a clientToken.  Otherwise, if the server accepts the certificateInfo
object for authentication, it SHOULD NOT return a clientToken.
If the server accepts and produces a clientToken, then control and
telemetry servers MUST validate both.  The SCIM client will know
that this is the case based on the SCIM object that is returned.</t>

<t>certificateInfo is preferred in situations where client functions
are federated such that different clients may connect for different
purposes.</t>

<figure title="Endpoint App Example" anchor="eaExample"><artwork><![CDATA[
<CODE BEGINS>
{
  "schemas": ["urn:ietf:params:scim:schemas:core:2.0:EndpointApp"],
  "id": "e9e30dba-f08f-4109-8486-d5c6a3316212",
  "applicationType": "deviceControl",
  "applicationName": "Device Control App 1",
  "certificateInfo": {
      "rootCA" : "MIIBIjAN...",
      "subjectName": "www.example.com"
  },
  "meta": {
    "resourceType": "EndpointApp",
    "created": "2022-01-23T04:56:22Z",
    "lastModified": "2022-05-13T04:42:34Z",
    "version": "W\/\"a330bc54f0671c9\"",
    "location": "https://example.com/v2/EndpointApps/e9e30dba-f08f
       -4109-8486-d5c6a3316212"
  }
}
<CODE ENDS>
]]></artwork></figure>

</section>
</section>
</section>
<section anchor="extensions"><name>SCIM Device Extensions</name>

<t>SCIM provides various extension schemas, their attributes, JSON
representation, and example object. The core schema is extended with a
new resource type, Device.  No
schemaExtensions list is specified in that definition.  Instead,
IANA registry entries are created, where all values for "required" are set to
false.  All extensions to the Device schema MUST be registered via IANA,
as described in <xref target="device-schema-extensions"></xref>.  The schemas below demonstrate how
this model is to work.  All the SCIM Server related Schema URIs are valid only
with Device resource types.</t>

<section anchor="ble-extension"><name>Bluetooth Low Energy (BLE) Extension</name>

<t>This schema extends the device schema to represent the devices
supporting BLE. The extension is identified using the following
schema URI:</t>

<t>urn:ietf:params:scim:schemas:extension:ble:2.0:Device</t>

<t>The attributes are as follows:</t>

<section anchor="singular-attributes-2"><name>Singular Attributes</name>

<dl>
  <dt>deviceMacAddress:</dt>
  <dd>
    <t>A string value that represent a public MAC address assigned by the
 manufacturer. It is a unique 48-bit value. It is required, case
 insensitive, is mutable, and is returned by default. The ECMA
 regular expression pattern <xref target="ECMA"/> is the following:</t>
  </dd>
</dl>

<figure><artwork><![CDATA[
^[0-9A-Fa-f]{2}(:[0-9A-Fa-f]{2}){5}$
]]></artwork></figure>

<dl>
  <dt>isRandom:</dt>
  <dd>
    <t>A boolean flag taken from <xref target="BLE54"/>. If FALSE,
 the device is using a public MAC address. If TRUE, the device uses a
 random address.  If an Idenifying Resolving Key (IRK) is present, the
 address represents a resolvable private address.  Otherwise, the
 address is assumed to be a random static address.  Non-resolvable
 private addresses are not supported by this specification.  This
 attribute is not required. It is mutable, and is returned by default.
 The default value is FALSE.</t>
  </dd>
  <dt>separateBroadcastAddress:</dt>
  <dd>
    <t>When present, this string represents an address used for broadcasts/advertisements.
 This value MUST NOT be set when an IRK is provided. Its form is the
 same as deviceMacAddress. It is not required, multivalued, mutable,
 and returned by default.</t>
  </dd>
  <dt>irk:</dt>
  <dd>
    <t>A string value that specifies the identity resolving key (IRK), which
 is unique to each device. It is used to resolve private random
 address. It should only be provisioned when isRandom is TRUE. It is
 mutable and never returned.  For more information about the use of
 the IRK, see Section 5.4.5 of <xref target="BLE54"/>.</t>
  </dd>
  <dt>mobility:</dt>
  <dd>
    <t>A boolean attribute to enable BLE device mobility. If set to TRUE, the
 device could be expected to move within a network of APs.  For
 example, BLE device is connected with AP-1 and moves out of range but
 comes in range of AP-2, it will be disconnected with AP-1 and connects
 with AP-2. It is returned by default and mutable.</t>
  </dd>
</dl>

</section>
<section anchor="multivalued-attributes"><name>Multivalued Attributes</name>

<dl>
  <dt>versionSupport:</dt>
  <dd>
    <t>A multivalued set of strings that specifies the BLE versions supported by the
 device in the form of an array. For example,
 ["4.1", "4.2", "5.0", "5.1", "5.2", "5.3", "5.4"]. It is required, mutable, and
 return as default.</t>
  </dd>
  <dt>pairingMethods:</dt>
  <dd>
    <t>An multivalued set of strings that specifies pairing methods associated with the BLE
 device. The pairing methods may require sub-attributes, such as
 key/password, for the device pairing process. To enable the
 scalability of pairing methods in the future, they are represented as
 extensions to incorporate various attributes that are part of the
 respective pairing process. Pairing method extensions are nested
 inside the BLE extension. It is required, case sensitive, mutable, and
 returned by default.</t>
  </dd>
</dl>

</section>
<section anchor="ble-pairing-method-extensions"><name>BLE Pairing Method Extensions</name>

<t>The details on pairing methods and their associated attributes are in
section 5.2.4 of <xref target="BLE54"/>. This memo defines extensions for four
pairing methods that are nested insided the BLE extension schema. Each
extension contains the common attributes <xref target="common-attributes"></xref>. These
extension are as follows:</t>

<t>(i) pairingNull extension is identified using the following schema URI:</t>

<t>urn:ietf:params:scim:schemas:extension:pairingNull:2.0:Device</t>

<t>pairingNull does not have any attribute. It allows pairing for BLE
devices that do not require a pairing method.</t>

<t>(ii) pairingJustWorks extension is identified using the following
schema URI:</t>

<t>urn:ietf:params:scim:schemas:extension:pairingJustWorks:2.0:Device</t>

<t>Just Works pairing method does not require a key to pair devices. For
completeness, the key attribute is included and is set to 'null'. Key
attribute is required, immutable, and returned by default.</t>

<t>(iii) pairingPassKey extension is identified using the following
schema URI:</t>

<t>urn:ietf:params:scim:schemas:extension:pairingPassKey:2.0:Device</t>

<t>The passkey pairing method requires a 6-digit key to pair devices.
This extension has one singular integer attribute, "key", which is
required, mutable and returned by default. The key pattern is
as follows:</t>

<figure><artwork><![CDATA[
^[0-9]{6}$
]]></artwork></figure>

<t>(iv) pairingOOB extension is identified using the following
schema URI:</t>

<t>urn:ietf:params:scim:schemas:extension:pairingOOB:2.0:Device</t>

<t>The out-of-band pairing method includes three singular attributes,
i.e., key, randomNumber, and confirmationNumber.</t>

<dl>
  <dt>key:</dt>
  <dd>
    <t>A string value, required and received from out-of-band
 sources such as NFC. It is case sensitive, mutable, and returned
 by default.</t>
  </dd>
  <dt>randomNumber:</dt>
  <dd>
    <t>An integer that represents a nonce added to the key. It is 
 a required attribute. It is mutable and returned by default.</t>
  </dd>
  <dt>confirmationNumber:</dt>
  <dd>
    <t>An integer which some solutions require in RESTful message
 exchange. It is not required. It is mutable and returned by default if
 it exists.</t>
  </dd>
</dl>

<texttable title="Characteristics of BLE extension schema attributes.
sepBroadcastAdd is short for separateBroadcastAddress. (Req = Required,
T = True, F = False, RW = ReadWrite, WO=Write Only, Def = Default,
Nev = Never, and Manuf = Manufacturer)." anchor="tabBLE">
      <ttcol align='left'>Attribute</ttcol>
      <ttcol align='left'>Multi Value</ttcol>
      <ttcol align='left'>Req</ttcol>
      <ttcol align='left'>Case Exact</ttcol>
      <ttcol align='left'>Mutable</ttcol>
      <ttcol align='left'>Return</ttcol>
      <ttcol align='left'>Unique</ttcol>
      <c>deviceMacAddress</c>
      <c>F</c>
      <c>T</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>Manuf</c>
      <c>isRandom</c>
      <c>F</c>
      <c>T</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
      <c>sepBroadcastAdd</c>
      <c>T</c>
      <c>F</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
      <c>irk</c>
      <c>F</c>
      <c>F</c>
      <c>F</c>
      <c>WO</c>
      <c>Nev</c>
      <c>Manuf</c>
      <c>versionSupport</c>
      <c>T</c>
      <c>T</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
      <c>mobility</c>
      <c>F</c>
      <c>F</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
      <c>pairingMethods</c>
      <c>T</c>
      <c>T</c>
      <c>T</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
</texttable>

<figure title="BLE Example" anchor="btExample"><artwork><![CDATA[
<CODE BEGINS>
{
  "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Device",
     "urn:ietf:params:scim:schemas:extension:ble:2.0:Device"],

  "id": "e9e30dba-f08f-4109-8486-d5c6a3316111",
  "displayName": "BLE Heart Monitor",
  "active": true,
  "urn:ietf:params:scim:schemas:extension:ble:2.0:Device" : {
    "versionSupport": ["5.3"],
    "deviceMacAddress": "2C:54:91:88:C9:E2",
    "isRandom": false,
    "separateBroadcastAddress": ["AA:BB:88:77:22:11", "AA:BB:88:77
       :22:12"],
    "mobility": true,
    "pairingMethods": ["urn:ietf:params:scim:schemas:extension
       :pairingPassKey:2.0:Device"],
    "urn:ietf:params:scim:schemas:extension:pairingPassKey:2.0
       :Device" : {
      "key": 123456
    }
  },
  "meta": {
    "resourceType": "Device",
      "created": "2022-01-23T04:56:22Z",
    "lastModified": "2022-05-13T04:42:34Z",
    "version": "W\/\"a330bc54f0671c9\"",
    "location": "https://example.com/v2/Devices/e9e30dba-f08f-4109
       -8486-d5c6a3316111"
  }
}
<CODE ENDS>
]]></artwork></figure>

<t>In the above example, the pairing method is "pairingPassKey", which implies
that this BLE device pairs using only a passkey. In another example below,
the pairing method is "pairingOOB", denoting that this BLE device uses the
out-of-band pairing method.</t>

<figure title="BLE with pairingOOB" anchor="btExample2"><artwork><![CDATA[
<CODE BEGINS>
{
  "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Device",
     "urn:ietf:params:scim:schemas:extension:ble:2.0:Device"],

  "id": "e9e30dba-f08f-4109-8486-d5c6a3316111",
  "displayName": "BLE Heart Monitor",
  "active": true,
  "urn:ietf:params:scim:schemas:extension:ble:2.0:Device" : {
    "versionSupport": ["5.3"],
    "deviceMacAddress": "2C:54:91:88:C9:E2",
    "isRandom": false,
    "separateBroadcastAddress": ["AA:BB:88:77:22:11", "AA:BB:88:77
       :22:12"],
    "mobility": true,
    "pairingMethods": ["urn:ietf:params:scim:schemas:extension
       :pairingOOB:2.0:Device"],
    "urn:ietf:params:scim:schemas:extension:pairingOOB:2.0:Device":
        {
      "key": "TheKeyvalueRetrievedFromOOB",
      "randomNumber": 238796813516896
    }
  },
  "meta": {
    "resourceType": "Device",
      "created": "2022-01-23T04:56:22Z",
    "lastModified": "2022-05-13T04:42:34Z",
    "version": "W\/\"a330bc54f0671c9\"",
    "location": "https://example.com/v2/Devices/e9e30dba-f08f-4109
       -8486-d5c6a3316111"
  }
}
<CODE ENDS>
]]></artwork></figure>

<t>However, a device can have more than one pairing method. Support for multiple
pairing methods is also provided by the multi-valued attribute pairingMethods.
In the example below, the BLE device can pair with both passkey and OOB pairing
methods.</t>

<figure title="BLE Pairing with both passkey and OOB" anchor="btExample3"><artwork><![CDATA[
<CODE BEGINS>
{
  "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Device",
     "urn:ietf:params:scim:schemas:extension:ble:2.0:Device"],

  "id": "e9e30dba-f08f-4109-8486-d5c6a3316111",
  "displayName": "BLE Heart Monitor",
  "active": true,
  "urn:ietf:params:scim:schemas:extension:ble:2.0:Device" : {
    "versionSupport": ["5.3"],
    "deviceMacAddress": "2C:54:91:88:C9:E2",
    "isRandom": false,
    "separateBroadcastAddress": ["AA:BB:88:77:22:11", "AA:BB:88:77
       :22:12"],
    "mobility": true,
    "pairingMethods": ["urn:ietf:params:scim:schemas:extension
       :pairingPassKey:2.0:Device",
        "urn:ietf:params:scim:schemas:extension:pairingOOB:2.0
           :Device"],
    "urn:ietf:params:scim:schemas:extension:pairingPassKey:2.0
       :Device" : {
      "key": 123456
    },
    "urn:ietf:params:scim:schemas:extension:pairingOOB:2.0:Device":
        {
      "key": "TheKeyvalueRetrievedFromOOB",
      "randomNumber": 238796813516896
    }
  },
  "meta": {
    "resourceType": "Device",
      "created": "2022-01-23T04:56:22Z",
    "lastModified": "2022-05-13T04:42:34Z",
    "version": "W\/\"a330bc54f0671c9\"",
    "location": "https://example.com/v2/Devices/e9e30dba-f08f-4109
       -8486-d5c6a3316111"
  }
}
<CODE ENDS>
]]></artwork></figure>

</section>
</section>
<section anchor="wi-fi-easy-connect-extension"><name>Wi-Fi Easy Connect Extension</name>

<t>A schema that extends the device schema to enable Wi-Fi Easy Connect
(otherwise known as Device Provisioning Protocol or DPP). Throughout this
specification we use the term DPP.  The extension
is identified using the following schema URI:</t>

<t>urn:ietf:params:scim:schemas:extension:dpp:2.0:Device</t>

<t>The attributes in this extension are adopted from <xref target="DPP2"/>. The
attributes are as follows:</t>

<section anchor="singular-attributes-3"><name>Singular Attributes</name>

<dl>
  <dt>dppVersion:</dt>
  <dd>
    <t>An integer that represents the version of DPP the device supports.
 This attribute is required, case insensitive, mutable, and
 returned by default.</t>
  </dd>
  <dt>bootstrapKey:</dt>
  <dd>
    <t>A string value representing an Elliptic-Curve Diffie-Hellman (ECDH) public
 key. The base64 encoded lengths for P-256, P-384, and P-521 are
 80, 96, and 120 characters. This attribute is required, case-sensitive,
 mutable, and returned by default.</t>
  </dd>
  <dt>deviceMacAddress:</dt>
  <dd>
    <t>A MAC address stored as string. It is a unique 48-bit value. This attribut
 is optional, case insensitive, mutable, and returned by default.  Its form
 is identical to that of the deviceMacAddress for BLE devices.</t>
  </dd>
  <dt>serialNumber:</dt>
  <dd>
    <t>An alphanumeric serial number, stored as string, may also be passed
 as bootstrapping information. This attribute is optional, case
 insensitive, mutable, and returned by default.</t>
  </dd>
</dl>

</section>
<section anchor="multivalued-attributes-1"><name>Multivalued Attributes</name>

<dl>
  <dt>bootstrappingMethod:</dt>
  <dd>
    <t>One or more strings of all the bootstrapping methods available
on the enrollee device. For example, [QR, NFC]. This attribute is
optional, case insensitive, mutable, and returned by default.</t>
  </dd>
  <dt>classChannel:</dt>
  <dd>
    <t>One or more strings representing the global operating class and
 channel shared as bootstrapping information. It is formatted as
 class/channel. For example, ['81/1','115/36']. This attribute
 is optional, case insensitive, mutable, and returned by default.</t>
  </dd>
</dl>

<texttable title="Characteristics of DPP extension schema attributes.
(Req = Required, T = True, F = False, RW = ReadWrite, WO = Write Only,
Def = Default, Nev = Never, and Manuf = Manufacturer)." anchor="tabDPP">
      <ttcol align='left'>Attribute</ttcol>
      <ttcol align='left'>Multi Value</ttcol>
      <ttcol align='left'>Req</ttcol>
      <ttcol align='left'>Case Exact</ttcol>
      <ttcol align='left'>Mutable</ttcol>
      <ttcol align='left'>Return</ttcol>
      <ttcol align='left'>Unique</ttcol>
      <c>dppVersion</c>
      <c>F</c>
      <c>T</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
      <c>bootstrapKey</c>
      <c>F</c>
      <c>T</c>
      <c>T</c>
      <c>WO</c>
      <c>Nev</c>
      <c>None</c>
      <c>deviceMacAddress</c>
      <c>F</c>
      <c>F</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>Manuf</c>
      <c>serialNumber</c>
      <c>F</c>
      <c>F</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
      <c>bootstrappingMethod</c>
      <c>T</c>
      <c>F</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
      <c>classChannel</c>
      <c>T</c>
      <c>F</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
</texttable>

<figure title="DPP Example" anchor="dPPExample"><artwork><![CDATA[
<CODE BEGINS>
{
        "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Device",
                 "urn:ietf:params:scim:schemas:extension:dpp:2.0
                    :Device"],

        "id": "e9e30dba-f08f-4109-8486-d5c6a3316111",
        "displayName": "WiFi Heart Monitor",
        "active": true,
        "urn:ietf:params:scim:schemas:extension:dpp:2.0:Device" : {
                "dppVersion": 2,
                "bootstrappingMethod": ["QR"],
                "bootstrapKey":
                    "MDkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDIgADURzxmt
                   tZoIRIPWGoQMV00XHWCAQIhXruVWOz0NjlkIA=",
                "deviceMacAddress": "2C:54:91:88:C9:F2",
                "classChannel": ["81/1", "115/36"],
                "serialNumber": "4774LH2b4044"
        },

        "meta": {
          "resourceType": "Device",
      "created": "2022-01-23T04:56:22Z",
          "lastModified": "2022-05-13T04:42:34Z",
          "version": "W\/\"a330bc54f0671c9\"",
          "location": "https://example.com/v2/Devices/e9e30dba-f08f
             -4109-8486-d5c6a3316111"
        }
}
<CODE ENDS>
]]></artwork></figure>

</section>
</section>
<section anchor="ethernet-mab-extension"><name>Ethernet MAB Extension</name>

<t>This extension enables a legacy means of (very) weak authentication,
known as MAC Authenticated Bypass (MAB), that is supported in many wired
ethernet solutions. If the MAC address is known, then the device may
be permitted (perhaps limited) access. The extension is identified
by the following URI:</t>

<t>urn:ietf:params:scim:schemas:extension:ethernet-mab:2.0:Device</t>

<t>Note that this method is not likely to work properly with
MAC address randomization.</t>

<section anchor="single-attribute"><name>Single Attribute</name>

<t>This extension has a singular attribute:</t>

<dl>
  <dt>deviceMacAddress:</dt>
  <dd>
    <t>This is the Ethernet address to be provisioned onto the network. It
 takes the identical form as found in the BLE extension.</t>
  </dd>
</dl>

<texttable title="Characteristics of MAB extension schema attributes
(Req = Required, T = True, F = False, RW = ReadWrite, and
Def = Default)" anchor="tabMAB">
      <ttcol align='left'>Attribute</ttcol>
      <ttcol align='left'>Multi Value</ttcol>
      <ttcol align='left'>Req</ttcol>
      <ttcol align='left'>Case Exact</ttcol>
      <ttcol align='left'>Mutable</ttcol>
      <ttcol align='left'>Return</ttcol>
      <ttcol align='left'>Unique</ttcol>
      <c>deviceMacAddress</c>
      <c>F</c>
      <c>T</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
</texttable>

<figure title="MAB Example" anchor="MABExample"><artwork><![CDATA[
<CODE BEGINS>
{
  "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Device",
     "urn:ietf:params:scim:schemas:extension:ethernet-mab:2.0
        :Device"],

  "id": "e9e30dba-f08f-4109-8486-d5c6a3316111",
  "displayName": "Some random Ethernet Device",
  "active": true,
  "urn:ietf:params:scim:schemas:extension:ethernet-mab:2.0:Device" 
     : {
    "deviceMacAddress": "2C:54:91:88:C9:E2"
  },

  "meta": {
    "resourceType": "Device",
      "created": "2022-01-23T04:56:22Z",
    "lastModified": "2022-05-13T04:42:34Z",
    "version": "W\/\"a330bc54f0671c9\"",
    "location": "https://example.com/v2/Devices/e9e30dba-f08f-4109
       -8486-d5c6a3316111"
  }
}
<CODE ENDS>
]]></artwork></figure>

</section>
</section>
<section anchor="fido-device-onboard-extension"><name>FIDO Device Onboard Extension</name>

<t>This extension specifies a voucher to be used by the FDO Device
Onboard (FDO) protocols <xref target="FDO11"/> to complete a trusted transfer of
ownership and control of the device to the environment.  The SCIM
server MUST know how to process the voucher, either directly
or by forwarding it along to an owner process as defined in the FDO
specification.</t>

<t>urn:ietf:params:scim:schemas:extension:fido-device-onboard:2.0:Device</t>

<section anchor="single-attribute-1"><name>Single Attribute</name>

<t>This extension has a singular attribute:</t>

<dl>
  <dt>fdoVoucher:</dt>
  <dd>
    <t>The voucher is formated as a PEM-encoded object in accordance with <xref target="FDO11"/>.</t>
  </dd>
</dl>

<texttable title="Characteristics of FDO extension schema attributes
(Req = Required, T = True, F = False, WO = WriteOnly, and
Nev = Never)" anchor="tabFDO">
      <ttcol align='left'>Attribute</ttcol>
      <ttcol align='left'>Multi Value</ttcol>
      <ttcol align='left'>Req</ttcol>
      <ttcol align='left'>Case Exact</ttcol>
      <ttcol align='left'>Mutable</ttcol>
      <ttcol align='left'>Return</ttcol>
      <ttcol align='left'>Unique</ttcol>
      <c>fdoVoucher</c>
      <c>F</c>
      <c>T</c>
      <c>F</c>
      <c>WO</c>
      <c>Nev</c>
      <c>None</c>
</texttable>

<figure title="FDO Example" anchor="fdoExample"><artwork><![CDATA[
<CODE BEGINS>
{
  "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Devices",
     "urn:ietf:params:scim:schemas:extension:fido-device-onboard
        :2.0:Devices"],

  "id": "e9e30dba-f08f-4109-8486-d5c6a3316111",
  "displayName": "Some random Ethernet Device",
  "active": true,
  "urn:ietf:params:scim:schemas:extension:fido-device-onboard:2.0
     :Devices" : {
     "fdoVoucher": "{... voucher ...}"
  },

  "meta": {
    "resourceType": "Device",
      "created": "2022-01-23T04:56:22Z",
    "lastModified": "2022-05-13T04:42:34Z",
    "version": "W\/\"a330bc54f0671c9\"",
    "location": "https://example.com/v2/Devices/e9e30dba-f08f-4109
       -8486-d5c6a3316111"
  }
}
<CODE ENDS>
]]></artwork></figure>

</section>
</section>
<section anchor="zigbee-extension"><name>Zigbee Extension</name>

<t>A schema that extends the device schema to enable the provisioning of
Zigbee devices <xref target="Zigbee"/>. The extension is identified using the following
schema URI:</t>

<t>urn:ietf:params:scim:schemas:extension:zigbee:2.0:Device</t>

<t>It has one singular attribute and one multivalued
attribute. The attributes are as follows:</t>

<section anchor="singular-attribute"><name>Singular Attribute</name>

<dl>
  <dt>deviceEui64Address:</dt>
  <dd>
    <t>An EUI-64 (Extended Unique Identifier) device address stored as string.
 This attribute is required, case insensitive, mutable, and returned by
 default. It takes the same form as the deviceMACaddress in the BLE
 extension.</t>
  </dd>
</dl>

</section>
<section anchor="multivalued-attribute"><name>Multivalued Attribute</name>

<dl>
  <dt>versionSupport:</dt>
  <dd>
    <t>One or more strings of all the Zigbee versions supported
 by the device. For example, [3.0]. This attribute is required, case
 insensitive, mutable, and returned by default.</t>
  </dd>
</dl>

<texttable title="Characteristics of Zigbee extension schema attributes.
(Req = Required, T = True, F = False, RW = ReadWrite, and
Def = Default)" anchor="tabZigbee">
      <ttcol align='left'>Attribute</ttcol>
      <ttcol align='left'>Multi Value</ttcol>
      <ttcol align='left'>Req</ttcol>
      <ttcol align='left'>Case Exact</ttcol>
      <ttcol align='left'>Mutable</ttcol>
      <ttcol align='left'>Return</ttcol>
      <ttcol align='left'>Unique</ttcol>
      <c>deviceEui64Address</c>
      <c>F</c>
      <c>T</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
      <c>versionSupport</c>
      <c>T</c>
      <c>T</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
</texttable>

<figure title="Zigbee Example" anchor="zigBeeExample"><artwork><![CDATA[
<CODE BEGINS>
{
  "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Device",
     "urn:ietf:params:scim:schemas:extension:zigbee:2.0:Device"],

  "id": "e9e30dba-f08f-4109-8486-d5c6a3316111",
  "displayName": "Zigbee Heart Monitor",
  "active": true,
  "urn:ietf:params:scim:schemas:extension:zigbee:2.0:Device" : {
    "versionSupport": ["3.0"],
    "deviceEui64Address": "50:32:5F:FF:FE:E7:67:28"
  },

  "meta": {
    "resourceType": "Device",
      "created": "2022-01-23T04:56:22Z",
    "lastModified": "2022-05-13T04:42:34Z",
    "version": "W\/\"a330bc54f0671c9\"",
    "location": "https://example.com/v2/Devices/e9e30dba-f08f-4109
       -8486-d5c6a3316111"
  }
}
<CODE ENDS>
]]></artwork></figure>

</section>
</section>
<section anchor="endpointsappext-schema"><name>The Endpoint Applications Extension Schema</name>

<t>Sometimes non-IP devices such as those using BLE or Zigbee require an
application gateway interface to manage them. SCIM clients MUST NOT
specify this to describe native IP-based devices.</t>

<t>endpointAppsExt provides the list of applications that connect to
enterprise gateway. The endpointAppsExt has one multivalued attribute
and two singular attributes. The extension is identified using the
following schema URI:</t>

<t>urn:ietf:params:scim:schemas:extension:endpointAppsExt:2.0:Device</t>

<section anchor="singular-attributes-4"><name>Singular Attributes</name>

<dl>
  <dt>deviceControlEnterpriseEndpoint:</dt>
  <dd>
    <t>A string representing the URL of the
 enterprise endpoint to reach the enterprise gateway. When the enterprise
 receives the SCIM object from
 the onboarding application, it adds this attribute to it and sends it back as
 a response to the onboarding application. This attribute is required,
 case-sensitive, mutable, and returned by default. The uniqueness is
 enforced by the enterprise.</t>
  </dd>
  <dt>telemetryEnterpriseEndpoint:</dt>
  <dd>
    <t>A string representing a URL of the enterprise endpoint to reach the
 an enterprise gateway for telemetry. When the enterprise receives the SCIM object from
 the onboarding application, it adds this attribute to it and sends it back as
 a response to the onboarding application. This attribute is optional,
 case-sensitive, mutable, and returned by default. The uniqueness is
 enforced by the enterprise.  An implementation MUST generate an
 exception if telemetryEnterpriseEndpoint is not returned and telemetry
 is required for the proper functioning of a device.</t>
  </dd>
</dl>

</section>
<section anchor="multivalued-attribute-1"><name>Multivalued Attribute</name>

<dl>
  <dt>applications:</dt>
  <dd>
    <t>A  multivalued attribute of one or more complex attributes that represent
 a list of endpoint applications i.e., deviceControl and telemetry. Each
entry in the list comprises two attributes including "value" and "$ref".</t>
  </dd>
  <dt>value:</dt>
  <dd>
    <t>A string containingthe identifier of the endpoint application formated as UUID. It
is same as the common attribute "$id" of the resource "endpointApp".
It is read/write, required, case insensitive and returned by default.</t>
  </dd>
  <dt>$ref:</dt>
  <dd>
    <t>A reference  to the respective endpointApp resource object
 stored in the SCIM server. It is readOnly, required, case sensitive
 and returned by default.</t>
  </dd>
</dl>

<texttable title="Characteristics of EndpointAppsExt extension schema
attributes. DevContEntEndpoint represents attribute
deviceControlEnterpriseEndpoint and telEntEndpoint represents
telemetryEnterpriseEndpoint. (Req = Required, T = True, F = False,
R = ReadOnly, RW = ReadWrite, Ent = Enterprise, and Def = Default)." anchor="tabEndpointAppsExt">
      <ttcol align='left'>Attribute</ttcol>
      <ttcol align='left'>Multi Value</ttcol>
      <ttcol align='left'>Req</ttcol>
      <ttcol align='left'>Case Exact</ttcol>
      <ttcol align='left'>Mutable</ttcol>
      <ttcol align='left'>Return</ttcol>
      <ttcol align='left'>Unique</ttcol>
      <c>devContEntEndpoint</c>
      <c>F</c>
      <c>T</c>
      <c>T</c>
      <c>R</c>
      <c>Def</c>
      <c>Ent</c>
      <c>telEntEndpoint</c>
      <c>F</c>
      <c>F</c>
      <c>T</c>
      <c>R</c>
      <c>Def</c>
      <c>Ent</c>
      <c>applications</c>
      <c>T</c>
      <c>T</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
      <c>value</c>
      <c>F</c>
      <c>T</c>
      <c>F</c>
      <c>RW</c>
      <c>Def</c>
      <c>None</c>
      <c>$ref</c>
      <c>F</c>
      <c>T</c>
      <c>F</c>
      <c>R</c>
      <c>Def</c>
      <c>None</c>
</texttable>

<figure title="Endpoint Applications Extension Example" anchor="eaExtension"><artwork><![CDATA[
<CODE BEGINS>
{
  "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Device",
     "urn:ietf:params:scim:schemas:extension:ble:2.0:Device",
     "urn:ietf:params:scim:schemas:extension:endpointAppsExt:2.0
        :Device"],
  "id": "e9e30dba-f08f-4109-8486-d5c6a3316111",
  "displayName": "BLE Heart Monitor",
  "active": true,
  "urn:ietf:params:scim:schemas:extension:ble:2.0:Device" : {
    "versionSupport": ["5.3"],
    "deviceMacAddress": "2C:54:91:88:C9:E2",
    "isRandom": false,
    "separateBroadcastAddress": ["AA:BB:88:77:22:11", "AA:BB:88:77
       :22:12"],
    "mobility": false,
    "pairingMethods": [
        "urn:ietf:params:scim:schemas:extension:pairingPassKey:2.0
           :Device"],
    "urn:ietf:params:scim:schemas:extension:pairingPassKey:2.0
       :Device" : {
      "key": 123456
    }
  },
  "urn:ietf:params:scim:schemas:extension:endpointAppsExt:2.0
     :Device": {
    "applications": [
      {
        "value" : "e9e30dba-f08f-4109-8486-d5c6a3316212",
        "$ref" : "https://example.com/v2/EndpointApps/e9e30dba-f08f
           -4109-8486-d5c6a3316212"
      },
      {
        "value" : "e9e30dba-f08f-4109-8486-d5c6a3316333",
        "$ref" : "https://example.com/v2/EndpointApps/e9e30dba-f08f
           -4109-8486-d5c6a3316333"
      }
    ],
      "deviceControlEnterpriseEndpoint": "https
         ://example.com/device_control_app_endpoint/",
      "telemetryEnterpriseEndpoint": "https
         ://example.com/telemetry_app_endpoint/"
  },
  "meta": {
    "resourceType": "Device",
      "created": "2022-01-23T04:56:22Z",
    "lastModified": "2022-05-13T04:42:34Z",
    "version": "W\/\"a330bc54f0671c9\"",
    "location": "https://example.com/v2/Devices/e9e30dba-f08f-4109
       -8486-d5c6a3316111"
  }
}
<CODE ENDS>
]]></artwork></figure>

<t>The schema for the endpointAppsExt extension along with BLE extension is
presented in JSON format in <xref target="endpointappsext-extension-schema-json"/>, while
the openAPI representation is provided in <xref target="endpointappsext-extension-schema-openapi-representation"/>.</t>

</section>
</section>
</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>Because provisioning operations permit device access to a network,
each SCIM client MUST be appropriately authenticated.</t>

<section anchor="scim-operations"><name>SCIM operations</name>

<t>An attacker that has authenticated to a trusted SCIM client could
manipulate portions of the SCIM database.  To be clear on the risks,
we specify each operation below:</t>

<section anchor="unauthorized-object-creation"><name>Unauthorized Object Creation</name>

<t>An attacker that is authenticated could attempt to add
elements that the enterprise would not normally permit on a network.
For instance, an enterprise may not wish specific devices that have
well-known vulnerabilities to be introduced to their environment.
To mitigate the attack, network administrators should layer additional
policies regarding what devices are permitted on the network.</t>

<t>An attacker that gains access to SCIM could attempt to add an IP-based
device that itself attempts unauthorized access, effectively acting as
a Bot.  Network administrators SHOULD establish appropriate access-control
policies that follow the principle of least privilege to mitigate this
attack.</t>

</section>
</section>
<section anchor="object-deletion"><name>Object Deletion</name>

<t>Once granted, even if the object is removed, the server may or may not
act on that removal.  The deletion of the object is a signal of intent
by the application that it no longer expects the device to be on the
network.  It is strictly up to the SCIM server and its back end policy
to decide whether or not to revoke access to the infrastructure.  It is
RECOMMENDED that SCIM delete operations trigger a workflow in accordance
with local network policy.</t>

</section>
<section anchor="read-operations"><name>Read operations</name>

<t>Read operations are necessary in order for an application to sync its
state to know what devices it is expected to manage.  An attacker with
access to SCIM objects may gain access to the devices themselves.  To
prevent one SCIM client from interfering with devices that it has no
business managing, only clients that have created objects or those
they authorize SHOULD have the ability to read those objects.</t>

</section>
<section anchor="update-operations"><name>Update Operations</name>

<t>Update operations may be necessary if a device has been modified in
some way.  Attackers with update access may be able to disable network
access to devices or device access to networks.  To avoid this, the
same access control policy for read operations is RECOMMENDED here.</t>

</section>
<section anchor="higher-level-protection-for-certain-systems"><name>Higher level protection for certain systems</name>

<t>Devices provisioned with this model may be completely controlled by
the administrator of the SCIM server, depending on how those systems
are defined. For instance, if BLE passkeys are provided, the device
can be connected to, and perhaps paired with. If the administrator of
the SCIM client does not wish the network to have complete access to
the device, the device itself MUST support finer levels of access
control and additional authentication mechanisms.
Any additional security
must be provided at higher application layers. For example, if client
applications wish to keep private information to and from the device,
they should encrypt that information over-the-top.</t>

</section>
<section anchor="logging"><name>Logging</name>

<t>An attacker could learn what devices are on a network by examining
SCIM logs.  Due to the sensitive nature of SCIM operations, logs
SHOULD be encrypted both on the disk and in transit.</t>

</section>
</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<section anchor="new-schemas"><name>New Schemas</name>

<t>The IANA is requested to add the following additions to the "SCIM
Schema URIs for Data Resources" registry as follows:</t>

<texttable>
      <ttcol align='left'>URN</ttcol>
      <ttcol align='left'>Name</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>urn:ietf:params:scim:schemas:core: 2.0:Device</c>
      <c>Core Device Schema</c>
      <c>This memo, <xref target="scim-core-device-schema"></xref></c>
      <c>urn:ietf:params:scim:schemas:core: 2.0:EndpointApp</c>
      <c>Endpoint Application</c>
      <c>This memo, <xref target="endpointapp-schema"/></c>
</texttable>

<t>Note that the line break in URNs should be removed, as should this comment.</t>

</section>
<section anchor="device-schema-extensions"><name>Device Schema Extensions</name>

<t>IANA is requested to create the following extensions in the SCIM
Server-Related Schema URIs registry as described in <xref target="extensions"/>:</t>

<texttable>
      <ttcol align='left'>URN</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Resource Type</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>urn:ietf:params:scim: schemas:extension: ble:2.0:Device</c>
      <c>BLE Extension</c>
      <c>Device</c>
      <c>This memo, <xref target="ble-extension"></xref></c>
      <c>urn:ietf:params:scim: schemas:extension: ethernet-mab:2.0:Device</c>
      <c>Ethernet MAB</c>
      <c>Device</c>
      <c>This memo, <xref target="ethernet-mab-extension"></xref></c>
      <c>urn:ietf:params:scim: schemas:extension: fido-device-onboard:2.0:Device</c>
      <c>FIDO Device Onboard</c>
      <c>Device</c>
      <c>This memo, <xref target="fido-device-onboard-extension"></xref></c>
      <c>urn:ietf:params:scim: schemas:extension: dpp:2.0:Device</c>
      <c>Wi-fi Easy Connect</c>
      <c>Device</c>
      <c>This memo, <xref target="wi-fi-easy-connect-extension"></xref></c>
      <c>urn:ietf:params:scim: schemas:extension: endpointAppsExt:2.0:Device</c>
      <c>Application Endpoint Extension</c>
      <c>Device</c>
      <c>This memo, <xref target="ble-pairing-method-extensions"></xref></c>
      <c>urn:ietf:params:scim: schemas:extension: pairingJustWorks:2.0:Device</c>
      <c>Just Works Auth BLE</c>
      <c>Device</c>
      <c>This memo, <xref target="ble-pairing-method-extensions"></xref></c>
      <c>urn:ietf:params:scim: schemas:extension: pairingOOB:2.0:Device</c>
      <c>Out of Band Pairing for BLE</c>
      <c>Device</c>
      <c>This memo, <xref target="ble-pairing-method-extensions"></xref></c>
      <c>urn:ietf:params:scim: schemas:extension: pairingPassKey:2.0:Device</c>
      <c>Passkey Pairing for BLE</c>
      <c>Device</c>
      <c>This memo, <xref target="ble-pairing-method-extensions"></xref></c>
</texttable>

</section>
</section>
<section anchor="acknowledgments"><name>Acknowledgments</name>

<t>The authors would like to thank Bart Brinckman, Rohit Mohan, Lars
Streubesand, Christian Amsüss, Jason Livingwood, Mike Ounsworth, Monty
Wiseman, Geoffrey Cooper, Paulo Jorge N. Correia, Phil Hunt, and Elwyn
Davies for their reviews, and Nick Ross for his contribution to the Appendix.</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">

<reference anchor="BLE54" target="https://www.bluetooth.org/DocMan/handlers/DownloadDoc.ashx?doc_id=587177">
  <front>
    <title>Bluetooth Core Specification, Version 5.4</title>
    <author >
      <organization>Bluetooth SIG</organization>
    </author>
    <date year="2023"/>
  </front>
</reference>
<reference anchor="DPP2" >
  <front>
    <title>Wi-Fi Easy Connect Specification, Version 2.0</title>
    <author >
      <organization>Wi-Fi Alliance</organization>
    </author>
    <date year="2020"/>
  </front>
</reference>
<reference anchor="ECMA" target="https://ecma-international.org/publications-and-standards/standards/ecma-262/">
  <front>
    <title>ECMA-262, 16th Edition</title>
    <author >
      <organization>ECMA International</organization>
    </author>
    <date year="2025" month="June"/>
  </front>
</reference>
<reference anchor="FDO11" >
  <front>
    <title>FIDO Device Onboard Specification 1.1</title>
    <author >
      <organization>FIDO Alliance</organization>
    </author>
    <date year="2022" month="April"/>
  </front>
</reference>
<reference anchor="Zigbee" target="https://zigbeealliance.org/wp-content/uploads/2019/11/docs-05-3474-21-0csg-zigbee-specification.pdf">
  <front>
    <title>Zigbee Specification</title>
    <author >
      <organization>Zigbee Alliance</organization>
    </author>
    <date year="2015" month="August"/>
  </front>
</reference>
&RFC7643;
&RFC7644;
&RFC2119;
&RFC8174;
&RFC8520;
&RFC4648;
&RFC5280;


    </references>

    <references title='Informative References' anchor="sec-informative-references">

<reference anchor="JSONSchema" target="https://json-schema.org/draft/2020-12/json-schema-core">
  <front>
    <title>JSON Schema- A Media Type for Describing JSON Documents</title>
    <author initials="A." surname="Wright" fullname="Austin Wright" role="editor">
      <organization></organization>
    </author>
    <author initials="H. A." surname="Andrews" fullname="Henry Andrews" role="editor">
      <organization></organization>
    </author>
    <author initials="B." surname="Hutton" fullname="Ben Hutton" role="editor">
      <organization>Postman</organization>
    </author>
    <author initials="G." surname="Dennis" fullname="Greg Dennis">
      <organization></organization>
    </author>
    <date year="2022" month="December"/>
  </front>
</reference>
<reference anchor="OpenAPI" target="https://swagger.io/specification/">
  <front>
    <title>OpenAPI Specification, Version 3.1.1</title>
    <author >
      <organization>swagger.io</organization>
    </author>
    <date year="2024" month="October"/>
  </front>
</reference>
&RFC6241;
&RFC8040;
&RFC7950;
&RFC8995;
&I-D.ietf-asdf-nipc;
&I-D.brinckman-nipc;


    </references>

</references>


<?line 1364?>

<section anchor="changes-from-earlier-versions"><name>Changes from Earlier Versions</name>
<t>[RFC Editor to remove this section.]</t>

<t>Draft 16:</t>

<t><list style="symbols">
  <t>More DISCUSS resolution: make clear that JSON Schema is not normative</t>
  <t>Add reference for ECMA for regex</t>
  <t>lots of typo/spelling error cleanup</t>
  <t>Add figure labels for examples</t>
  <t>fix an aasvg rendering problem</t>
  <t>add some reference targets.</t>
  <t>Elwyn Davies review suggestions.</t>
</list></t>

<t>Drafts 17:
  * Post DISCUSS hiccup with groups.
  * Add OpenAPI header
  * multivalues-&gt;multivalued
  * externalID-&gt;externalId
  * remove nullable (wasn't doing anything)
  * Update appropriate json schema and openapi accordingly.</t>

<t>Drafts 14, 15, 16:
  * Resolve DISCUSSes</t>

<t>Draft 13:
  * post IANA and IETF LC</t>

<t>Drafts 10-12:
  * additional WGLC and shepherd comments</t>

<t>Draft -09:
  * last call comments, bump BLE version, add acknowledgments.
  * Also, recapture Rohit comments and those of Christian.</t>

<t>Drafts 04-08:
  * Lots of cleanup
  * Security review responses
  * Removal of a tab
  * Dealing with certificate stuff</t>

<t>Draft -03:
  * Add MAB, FDO
  * Some grammar improvements
  * fold OpenAPI
  * IANA considerations</t>

<t>Draft -02:
  *  Clean up examples
  *  Move openapi to appendix
Draft -01:</t>

<t><list style="symbols">
  <t>Doh! We forgot the core device scheme!</t>
</list></t>

<t>Draft -00:</t>

<t><list style="symbols">
  <t>Initial revision</t>
</list></t>

</section>
<section anchor="json-schema-representation"><name>JSON Schema Representation</name>

<section anchor="resource-schema"><name>Resource Schema</name>

<figure><artwork><![CDATA[
<CODE BEGINS>
[
  {
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0
       :ResourceType"],
    "id": "Device",
    "name": "Device",
    "endpoint": "/Devices",
    "description": "Device Account",
    "schema": "urn:ietf:params:scim:schemas:core:2.0:Device",
    "meta": {
      "location": "https://example.com/v2/ResourceTypes/Device",
      "resourceType": "ResourceType"
    }
  },
  {
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0
       :ResourceType"],
    "id": "EndpointApp",
    "name": "EndpointApp",
    "endpoint": "/EndpointApp",
    "description": "Endpoint application such as device control and
        telemetry.",
    "schema": "urn:ietf:params:scim:schemas:core:2.0:EndpointApp",
    "meta": {
      "location": "https
         ://example.com/v2/ResourceTypes/EndpointApp",
      "resourceType": "ResourceType"
    }
  }
]
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="device-schema-json"><name>Core Device Schema</name>

<figure><artwork><![CDATA[
<CODE BEGINS>
{
  "id": "urn:ietf:params:scim:schemas:core:2.0:Device",
  "name": "Device",
  "description": "Entry containing attributes about a device",
  "attributes" : [
    {
      "name": "displayName",
      "type": "string",
      "description": "Human readable name of the device, suitable
          for displaying to end-users. For example, 'BLE Heart
          Monitor' etc.",
      "multiValued": false,
      "required": false,
      "caseExact": false,
      "mutability": "readWrite",
      "returned": "default",
      "uniqueness": "none"
    },
    {
      "name": "active",
      "type": "boolean",
      "description": "A mutable boolean value indicating the device
          administrative status. If set TRUE, the commands (such as
          connect, disconnect, subscribe) that control app sends to
          the controller for the devices will be processeed by the
          controller. If set FALSE, any command comming from the
          control app for the device will be rejected by the
          controller.",
      "multiValued": false,
      "required": true,
      "caseExact": false,
      "mutability": "readWrite",
      "returned": "default",
      "uniqueness": "none"
    },
    {
      "name": "mudUrl",
      "type": "reference",
      "description": "A URL to MUD file of the device (RFC 8520).",
      "multiValued": false,
      "required": false,
      "caseExact": true,
      "mutability": "readWrite",
      "returned": "default",
      "uniqueness": "none"
    },
    {
      "name": "groups",
      "type": "complex",
      "multiValued": true,
      "description": "A list of groups to which the device belongs,
          either through direct membership, through nested groups,
          or dynamically calculated.",
      "required": false,
      "subAttributes": [
        {
          "name": "value",
          "type": "string",
          "multiValued": false,
          "description": "The identifier of the Device's group.",
          "required": false,
          "caseExact": false,
          "mutability": "readOnly",
          "returned": "default",
          "uniqueness": "none"
        },
        {
          "name": "$ref",
          "type": "reference",
          "referenceTypes": [
            "Device"
          ],
          "multiValued": false,
          "description": "The URI of the corresponding 'Group'
              resource to which the device belongs.",
          "required": false,
          "caseExact": false,
          "mutability": "readOnly",
          "returned": "default",
          "uniqueness": "none"
        },
        {
          "name": "display",
          "type": "string",
          "multiValued": false,
          "description": "A human-readable name, primarily used for
              display purposes.  READ-ONLY.",
          "required": false,
          "caseExact": false,
          "mutability": "readOnly",
          "returned": "default",
          "uniqueness": "none"
        },
        {
          "name": "type",
          "type": "string",
          "multiValued": false,
          "description": "A label indicating the attribute's
              function, e.g., 'direct' or 'indirect'.",
          "required": false,
          "caseExact": false,
          "canonicalValues": [
            "direct",
            "indirect"
          ],
          "mutability": "readOnly",
          "returned": "default",
          "uniqueness": "none"
        }
      ],
      "mutability": "readOnly",
      "returned": "default"
    }
],
  "meta" : {
    "resourceType" : "Schema",
    "location" :
      "/v2/Schemas/urn:ietf:params:scim:schemas:core:2.0:Device"
  }
}
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="endpointapp-schema-json"><name>EndpointApp Schema</name>

<figure><artwork><![CDATA[
<CODE BEGINS>
{
  "id": "urn:ietf:params:scim:schemas:core:2.0:EndpointApp",
  "name": "EndpointApp",
  "description": "Endpoint application and their credentials",
  "attributes" : [
    {
      "name": "applicationType",
      "type": "string",
      "description": "This attribute will only contain two values;
          'deviceControl' or 'telemetry'.",
      "multiValued": false,
      "required": true,
      "caseExact": false,
      "mutability": "readOnly",
      "returned": "default",
      "uniqueness": "none"
    },
    {
      "name": "applicationName",
      "type": "string",
      "description": "Human readable name of the application.",
      "multiValued": false,
      "required": true,
      "caseExact": false,
      "mutability": "readWrite",
      "returned": "default",
      "uniqueness": "none"
    },
    {
      "name": "certificateInfo",
      "type": "complex",
      "description": "Contains x509 certificate's subject name and
          root CA information associated with the device control or
          telemetry app.",
      "multiValued": false,
      "required": false,
      "caseExact": false,
      "mutability": "readWrite",
      "returned": "default",
      "uniqueness": "none",
      "subAttributes" : [
        {
          "name" : "rootCA",
          "type" : "string",
          "description" : "The base64 encoding of the DER encoding
              of the CA certificate",
          "multiValued" : false,
          "required" : false,
          "caseExact" : true,
          "mutability" : "readWrite",
          "returned" : "default",
          "uniqueness" : "none"
        },
        {
          "name" : "subjectName",
          "type" : "string",
          "description" : "A Common Name (CN) of the form of CN =
              dnsName",
          "multiValued" : false,
          "required" : true,
          "caseExact" : true,
          "mutability" : "readWrite",
          "returned" : "default",
          "uniqueness" : "none"
        }
      ]
    },
    {
      "name": "clientToken",
      "type": "string",
      "description": "This attribute contains a token that the
          client will use to authenticate itself.  Each token may
          be a string up to 500 characters in length.",
      "multiValued": false,
      "required": false,
      "caseExact": true,
      "mutability": "readOnly",
      "returned": "default",
      "uniqueness": "none"
    },
    {
      "name": "groups",
      "type": "complex",
      "multiValued": true,
      "description": "A list of groups to which an endpoint
          application belongs, either through direct membership,
          through nested groups, or dynamically calculated.",
      "required": false,
      "subAttributes": [
        {
          "name": "value",
          "type": "string",
          "multiValued": false,
          "description": "The identifier of the endpoint
              application's group.",
          "required": false,
          "caseExact": false,
          "mutability": "readOnly",
          "returned": "default",
          "uniqueness": "none"
        },
        {
          "name": "$ref",
          "type": "reference",
          "referenceTypes": [
            "EndpointApp"
          ],
          "multiValued": false,
          "description": "The URI of the corresponding 'Group'
              resource to which the endpoint application belongs.",
          "required": false,
          "caseExact": false,
          "mutability": "readOnly",
          "returned": "default",
          "uniqueness": "none"
        },
        {
          "name": "display",
          "type": "string",
          "multiValued": false,
          "description": "A human-readable name, primarily used for
              display purposes.  READ-ONLY.",
          "required": false,
          "caseExact": false,
          "mutability": "readOnly",
          "returned": "default",
          "uniqueness": "none"
        },
        {
          "name": "type",
          "type": "string",
          "multiValued": false,
          "description": "A label indicating the attribute's
              function, e.g., 'direct' or 'indirect'.",
          "required": false,
          "caseExact": false,
          "canonicalValues": [
            "direct",
            "indirect"
          ],
          "mutability": "readOnly",
          "returned": "default",
          "uniqueness": "none"
        }
      ],
      "mutability": "readOnly",
      "returned": "default"
    }
  ],
  "meta" : {
    "resourceType" : "Schema",
    "location" :
      "/v2/Schemas/urn:ietf:params:scim:schemas:core:2.0:Device"
  }
}
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="ble-extension-schema-json"><name>BLE Extension Schema</name>
<figure><artwork><![CDATA[
<CODE BEGINS>
[
  {
    "id": "urn:ietf:params:scim:schemas:extension:ble:2.0:Device",
    "name": "bleExtension",
    "description": "Ble extension for device account",
    "attributes" : [
      {
        "name": "versionSupport",
        "type": "string",
        "description": "Provides a list of all the BLE versions
            supported by the device. For example, [4.1, 4.2, 5.0,
            5.1, 5.2, 5.3].",
        "multiValued": true,
        "required": true,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "none"
      },
      {
        "name": "deviceMacAddress",
        "type": "string",
        "pattern": "^[0-9A-Fa-f]{2}(:[0-9A-Fa-f]{2}){5}$",
        "description": "A unique public MAC address assigned by the
            manufacturer.",
        "multiValued": false,
        "required": true,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "Manufacturer"
      },
      {
        "name": "isRandom",
        "type": "boolean",
          "description": "The isRandom flag is taken from the BLE
              core specifications 5.3. If TRUE, device is using a
              random address.  Default value is false.",
        "multiValued": false,
        "required": false,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "none"
      },
      {
        "name": "separateBroadcastAddress",
        "type": "string",
        "description": "When present, this address is used for
            broadcasts/advertisements.  This value MUST NOT be set
            when an IRK is provided.  Its form is the same as
            deviceMa`cAddress.",
        "multiValued": true,
        "required": false,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "none"
      },
      {
        "name": "irk",
        "type": "string",
        "description": "Identity resolving key, which is unique for
            every device. It is used to resolve random address. 
            This value MUST NOT be set when
            separateBroadcastAddress is set.",
        "multiValued": false,
        "required": false,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "Manufacturer"
      },
      {
        "name": "mobility",
        "type": "bool",
        "description": "If set to True, the BLE device will
            automatically connect to the closest AP. For example,
            BLE device is connected with AP-1 and moves out of
            range but comes in range of AP-2, it will be
            disconnected with AP-1 and connects with AP-2.",
        "multiValued": false,
        "required": false,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "none"
      },
      {
        "name": "pairingMethods",
        "type": "string",
        "description": "List of pairing methods associated with the
            ble device, stored as schema URI.",
        "multiValued": true,
        "required": true,
        "caseExact": true,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "none"
      }
    ],
    "meta" : {
      "resourceType" : "Schema",
      "location" : "/v2/Schemas/urn:ietf:params:scim:schemas
         :extension:ble:2.0:Device"
    }
  },
  {
    "id": "urn:ietf:params:scim:schemas:extension:pairingNull:2.0
       :Device",
    "name": "nullPairing",
    "description": "Null pairing method for ble. It is included for
        the devices that do not have a pairing method.",
    "meta" : {
      "resourceType" : "Schema",
      "location" : "/v2/Schemas/urn:ietf:params:scim:schemas
         :extension:pairingNull:2.0:Device"
    }
  },
  {
    "id": "urn:ietf:params:scim:schemas:extension:pairingJustWorks
       :2.0:Device",
    "name": "pairingJustWorks",
    "description": "Just works pairing method for ble.",
    "attributes" : [
      {
        "name": "key",
        "type": "integer",
        "description": "Just works does not have any key value. For
            completeness, it is added with a key value 'null'.",
        "multiValued": false,
        "required": true,
        "caseExact": false,
        "mutability": "immutable",
        "returned": "default",
        "uniqueness": "none"
      }
    ],
    "meta" : {
      "resourceType" : "Schema",
      "location" : "/v2/Schemas/urn:ietf:params:scim:schemas
         :extension:pairingJustWorks:2.0:Device"
    }
  },
  {
    "id": "urn:ietf:params:scim:schemas:extension:pairingPassKey
       :2.0:Device",
    "name": "pairingPassKey",
    "description": "Pass key pairing method for ble.",
    "attributes" : [
      {
        "name": "key",
        "type": "integer",
        "description": "A six digit passkey for ble device. The
            pattern of key is ^[0-9]{6}$.",
        "multiValued": false,
        "required": true,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "none"
      }
    ],
    "meta" : {
      "resourceType" : "Schema",
      "location" : "/v2/Schemas/urn:ietf:params:scim:schemas
         :extension:pairingPassKey:2.0:Device"
    }
  },
  {
    "id": "urn:ietf:params:scim:schemas:extension:pairingOOB:2.0
       :Device",
    "name": "pairingOOB",
    "description": "Pass key pairing method for ble.",
    "attributes" : [
      {
        "name": "key",
        "type": "string",
        "description": "A key value retrieved from out of band
            source such as NFC.",
        "multiValued": false,
        "required": true,
        "caseExact": true,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "none"
      },
      {
        "name": "randomNumber",
        "type": "integer",
        "description": "Nonce added to the key.",
        "multiValued": false,
        "required": true,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "none"
      },
      {
        "name": "confirmationNumber",
        "type": "integer",
        "description": "Some solutions require confirmation number
            in RESTful message exchange.",
        "multiValued": false,
        "required": false,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "none"
      }
    ],
    "meta" : {
      "resourceType" : "Schema",
      "location" : "/v2/Schemas/urn:ietf:params:scim:schemas
         :extension:pairingOOB:2.0:Device"
    }
  }
]
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="dpp-extension-schema-json"><name>DPP Extension Schema</name>
<figure><artwork><![CDATA[
<CODE BEGINS>
{
    "id": "urn:ietf:params:scim:schemas:extension:dpp:2.0:Device",
    "name": "dppExtension",
    "description": "Device extension schema for Wi-Fi Easy Connect
        / Device Provisioning Protocol (DPP)",
    "attributes" : [
      {
        "name": "dppVersion",
        "type": "integer",
        "description": "Version of DPP this device supports.",
        "multiValued": false,
        "required": true,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "none"
      },
      {
        "name": "bootstrappingMethod",
        "type": "string",
        "description": "The list of all the bootstrapping methods
            available on the enrollee device. For example, [QR,
            NFC].",
        "multiValued": true,
        "required": false,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "none"
      },
      {
        "name": "bootstrapKey",
        "type": "string",
        "description": "A base64-encoded Elliptic-Curve Diffie
           -Hellman public key (may be P-256, P-384, or P-521).",
        "multiValued": false,
        "required": true,
        "caseExact": true,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "none"
      },
      {
        "name": "deviceMacAddress",
        "type": "string",
        "pattern": "^[0-9A-Fa-f]{2}(:[0-9A-Fa-f]{2}){5}$",
        "description": "A unique public MAC address assigned by the
            manufacturer.",
        "multiValued": false,
        "required": false,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "Manufacturer"
      },
      {
        "name": "classChannel",
        "type": "string",
        "description": "A list of global operating class and
            channel shared as bootstrapping information. It is
            formatted as class/channel. For example, '81/1',
            '115/36'.",
        "multiValued": true,
        "required": false,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "none"
      },
      {
        "name": "serialNumber",
        "type": "string",
        "description": "An alphanumeric serial number that may also
            be passed as bootstrapping information.",
        "multiValued": false,
        "required": false,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "none"
      }

    ],
    "meta" : {
      "resourceType" : "Schema",
      "location" : "/v2/Schemas/urn:ietf:params:scim:schemas
         :extension:dpp:2.0:Device"
    }
  }
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="ethernet-mab-extension-schema-json"><name>Ethernet MAB Extension Schema</name>
<figure><artwork><![CDATA[
<CODE BEGINS>
{
  "id": "urn:ietf:params:scim:schemas:extension:ethernet-mab:2.0
     :Device",
  "name": "ethernetMabExtension",
  "description": "Device extension schema for MAC authentication
      Bypass.",
  "attributes" : [
      {
        "name": "deviceMacAddress",
        "type": "string",
        "pattern": "^[0-9A-Fa-f]{2}(:[0-9A-Fa-f]{2}){5}$",
        "description": "A MAC address assigned by the manufacturer",
        "multiValued": false,
        "required": true,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "Manufacturer"
      }
  ],
  "meta" : {
    "resourceType" : "Schema",
    "location" : "/v2/Schemas/urn:ietf:params:scim:schemas
       :extension:ethernet-mab:2.0:Device"
  }
}
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="fdo-extension-schema-json"><name>FDO Extension Schema</name>
<figure><artwork><![CDATA[
<CODE BEGINS>
{
  "id": "urn:ietf:params:scim:schemas:extension:fido-device-onboard
     :2.0:Devices",
  "name": "FDOExtension",
  "description": "Device extension schema for FIDO Device Onboard 
     (FDO).",
  "attributes" : [
      {
        "name": "fdoVoucher",
        "type": "string",
        "description": "A voucher as defined in the FDO
            specification",
        "multiValued": false,
        "required": true,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "Manufacturer"
      }
  ],
  "meta" : {
    "resourceType" : "Schema",
    "location" : "/v2/Schemas/urn:ietf:params:scim:schemas
       :extension:fido-device-onboard:2.0:Devices"
  }
}
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="zigbee-extension-schema-json"><name>Zigbee Extension Schema</name>
<figure><artwork><![CDATA[
<CODE BEGINS>
{
  "id": "urn:ietf:params:scim:schemas:extension:zigbee:2.0:Device",
  "name": "zigbeeExtension",
  "description": "Device extension schema for zigbee.",
  "attributes" : [
    {
      "name": "versionSupport",
      "type": "string",
      "description": "Provides a list of all the zigbee versions
          supported by the device. For example, [3.0].",
      "multiValued": true,
      "required": true,
      "caseExact": false,
      "mutability": "readWrite",
      "returned": "default",
      "uniqueness": "none"
    },
    {
      "name": "deviceEui64Address",
      "type": "string",
      "pattern": "^[0-9A-Fa-f]{2}(:[0-9A-Fa-f]{2}){7}$",
      "description": "The EUI-64 (Extended Unique Identifier)
          device address.",
      "multiValued": false,
      "required": true,
      "caseExact": false,
      "mutability": "readWrite",
      "returned": "default",
      "uniqueness": "none"
    }
  ],
  "meta" : {
    "resourceType" : "Schema",
    "location" : "/v2/Schemas/urn:ietf:params:scim:schemas
       :extension:zigbee:2.0:Device"
  }
}
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="endpointappsext-extension-schema-json"><name>EndpointAppsExt Extension Schema</name>
<figure><artwork><![CDATA[
<CODE BEGINS>
{
  "id": "urn:ietf:params:scim:schemas:extension:endpointAppsExt:2.0
     :Device",
  "name": "endpointAppsExt",
  "description": "Extension for partner endpoint applications that
      can onboard, control, and communicate with the device.",
  "attributes" : [
    {
      "name": "applications",
      "type": "complex",
      "description": "Includes references to two types of
          application that connect with entrprise, i.e.,
          deviceControl and telemetry.",
      "multiValued": true,
      "required": true,
      "caseExact": false,
      "mutability": "readWrite",
      "returned": "default",
      "uniqueness": "none",
      "subAttributes" : [
        {
          "name" : "value",
          "type" : "string",
          "description" : "The identifier of the endpointApp.",
          "multiValued" : false,
          "required" : true,
          "caseExact" : false,
          "mutability" : "readWrite",
          "returned" : "default",
          "uniqueness" : "none"
        },
        {
          "name" : "$ref",
          "type" : "reference",
          "referenceTypes" : "EndpointApps",
          "description" : "The URI of the corresponding
              'EndpointApp' resource which will control or obtain
              data from the device.",
          "multiValued" : false,
          "required" : false,
          "caseExact" : true,
          "mutability" : "readOnly",
          "returned" : "default",
          "uniqueness" : "none"
        }
      ]
    },
    {
      "name": "deviceControlEnterpriseEndpoint",
      "type": "reference",
      "description": "The URL of the enterprise endpoint which
          device control apps use to reach enterprise network
          gateway.",
      "multiValued": false,
      "required": true,
      "caseExact": true,
      "mutability": "readOnly",
      "returned": "default",
      "uniqueness": "Enterprise"
    },
    {
      "name": "telemetryEnterpriseEndpoint",
      "type": "reference",
      "description": "The URL of the enterprise endpoint which
          telemetry apps use to reach enterprise network gateway.",
      "multiValued": false,
      "required": false,
      "caseExact": true,
      "mutability": "readOnly",
      "returned": "default",
      "uniqueness": "Enterprise"
    }
  ],
  "meta" : {
    "resourceType" : "Schema",
    "location" : "/v2/Schemas/urn:ietf:params:scim:schemas
       :extension:endpointAppsExt:2.0:Device"
  }
}
<CODE ENDS>
]]></artwork></figure>

</section>
</section>
<section anchor="openapi-representation"><name>OpenAPI representation</name>

<t>The following sections are provided for informational purposes.</t>

<section anchor="device-schema-openapi-representation"><name>Core Device Schema OpenAPI Representation</name>

<t>OpenAPI representation of core device schema is as follows:</t>

<figure><artwork><![CDATA[
<CODE BEGINS>
openapi: 3.1.0
info:
  title: SCIM Device Schema
  version: 1.0.0

components:
  schemas:
    Group:
      type: object
      description: A list of groups to which the device belongs,
                   either through direct membership, through nested
                   groups, or dynamically calculated.
      properties:
        value:
          type: string
          description: the unique identifier of a group,
                       typically a UUID.
          readOnly: true
          writeOnly: false
        display:
          type: string
          description: a display string for the group.
          readOnly: true
          writeOnly: false
        $ref:
          type: string
          format: uri
          description: reference to the group object
          readOnly: true
          writeOnly: true
    Device:
      description: Entry containing attributes about a device
      type: object
      properties:
        displayName:
          type: string
          description: "Human readable name of the device, suitable
                        for displaying to end-users. For example,
                       'BLE Heart Monitor' etc."
          readOnly: false
          writeOnly: false
        active:
          type: boolean
          description: A mutable boolean value indicating the device
                       administrative status. If set TRUE, the
                       commands (such as connect, disconnect,
                       subscribe) that control app sends to the
                       controller for the devices will be processeed
                       by the controller.  If set FALSE, any command
                       comming from the control app for the device
                       will be rejected by the controller.
          readOnly: false
          writeOnly: false
        mudUrl:
          type: string
          format: uri
          description: A URL to MUD file of the device (RFC 8520).
              It
                       is added for future use. Current usage is not
                       defined yet.
          readOnly: false
          writeOnly: false
        groups:
          type: array
          description: list of groups device belongs to
          items:
            $ref: '#/components/schemas/Group'

      required:
        - active
      additionalProperties: false
      allOf:
        - $ref: '#/components/schemas/CommonAttributes'
    CommonAttributes:
      type: object
      properties:
        schemas:
          type: array
          items:
            type: string
            enum:
              - urn:ietf:params:scim:schemas:core:2.0:Device
          description: The list of schemas that define the resource.
        id:
          type: string
          format: uri
          description: The unique identifier for a resource.
          readOnly: true
          writeOnly: false
        externalId:
          type: string
          description: An identifier for the resource that is
              defined
                       by the provisioning client.
          readOnly: false
          writeOnly: false
        meta:
          type: object
          readOnly: true
          properties:
            resourceType:
              type: string
              description: The name of the resource type of the
                           resource.
              readOnly: true
              writeOnly: false
            location:
              type: string
              format: uri
              description: The URI of the resource being returned.
              readOnly: true
              writeOnly: false
            created:
              type: string
              format: date-time
              description: The date and time the resource was added
                           to the service provider.
              readOnly: true
              writeOnly: false
            lastModified:
              type: string
              format: date-time
              description: The most recent date and time that the
                           details of this resource were updated at
                           the service provider.
              readOnly: true
              writeOnly: false
            version:
              type: string
              description: The version of the resource.
              readOnly: true
              writeOnly: false
          additionalProperties: false
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="endpointapp-schema-openapi-representation"><name>EndpointApp Schema OpenAPI Representation</name>
<t>OpenAPI representation of endpointApp schema is as follows:</t>

<figure><artwork><![CDATA[
<CODE BEGINS>
openapi: 3.1.0
info:
  title: SCIM endpoint app schema
  version: 1.0.0

components:
  schemas:
    Group:
      type: object
      description: A list of groups to which the endpoint
                   application belongs, either through
                   direct membership, through nested
                   groups, or dynamically calculated.
      properties:
        value:
          type: string
          description: the unique identifier of a group,
                       typically a UUID.
          readOnly: true
          writeOnly: false
        display:
          type: string
          description: a display string for the group.
          readOnly: true
          writeOnly: false
        $ref:
          type: string
          format: uri
          description: reference to the group object
          readOnly: true
          writeOnly: true
    EndpointApp:
      title: EndpointApp
      description: Endpoint application resource
      type: object
      properties:
        applicationType:
          type: string
          description: This attribute will only contain two values;
                       'deviceControl' or 'telemetry'.
          readOnly: false
          writeOnly: false

        applicationName:
          type: string
          description: Human readable name of the application.
          readOnly: false
          writeOnly: false
        groups:
          type: array
          description: list of groups to which the endpointApp
                       belongs.
          items:
            $ref: '#/components/schemas/Group'

      required:
        - applicationType
        - applicationName

      additionalProperties: true
      oneOf:
        - $ref: '#/components/schemas/clientToken'
        - $ref: '#/components/schemas/certificateInfo'

      allOf:
        - $ref: '#/components/schemas/CommonAttributes'

    clientToken:
      type: string
      description: "This attribute contains a token that the client
                    will use to authenticate itself. Each token may
                    be a string up to 500 characters in length."
      readOnly: true
      writeOnly: false

    certificateInfo:
      type: object
      description: "Contains x509 certificate's subject name and
                    root CA information associated with the device
                    control or telemetry app."
      properties:
        rootCA:
          type: string
          description: "The base64 encoding of a trust anchor
                        certificate,as per RFC 4648 Section 4."
          readOnly: false
          writeOnly: false

        subjectName:
          type: string
          description: "Also known as the Common Name (CN), the
                        Subject Name is a field in the X.509
                        certificate that identifies the primary
                        domain or IP address for which the
                        certificate is issued."
          readOnly: false
          writeOnly: false

      required:
      - subjectName

    CommonAttributes:
      type: object
      properties:
        schemas:
          type: array
          items:
            type: string
            enum:
              - urn:ietf:params:scim:schemas:core:2.0:EndpointApp
          description: The list of schemas that define the resource.
        id:
          type: string
          format: uri
          description: The unique identifier for a resource.
          readOnly: true
          writeOnly: false
        meta:
          type: object
          readOnly: true
          properties:
            resourceType:
              type: string
              description: The name of the resource type of the
                           resource.
              readOnly: true
              writeOnly: false
            location:
              type: string
              format: uri
              description: The URI of the resource being returned.
              readOnly: true
              writeOnly: false
            created:
              type: string
              format: date-time
              description: The date and time the resource was added
                           to the service provider.
              readOnly: true
              writeOnly: false
            lastModified:
              type: string
              format: date-time
              description: The most recent date and time that the
                           details of this resource were updated at
                           the service provider.
              readOnly: true
              writeOnly: false
            version:
              type: string
              description: The version of the resource.
              readOnly: true
              writeOnly: false
          additionalProperties: false
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="ble-extension-schema-openapi-representation"><name>BLE Extension Schema OpenAPI Representation</name>
<t>OpenAPI representation of BLE extension schema is as follows:</t>

<figure><artwork><![CDATA[
<CODE BEGINS>
openapi: 3.1.0
info:
  title: SCIM Bluetooth Extension Schema
  version: 1.0.0

components:
  schemas:
    BleDevice:
      type: object
      description: BLE Device schema.
      properties:
        schemas:
          type: array
          items:
            type: string
            enum:
              - urn:ietf:params:scim:schemas:extension:ble:2.0
                 :Device
        urn:ietf:params:scim:schemas:extension:ble:2.0:Device:
          $ref: '#/components/schemas/BleDeviceExtension'
          required: true
    BleDeviceExtension:
      type: object
      properties:
        versionSupport:
          type: array
          items:
            type: string
          description: Provides a list of all the BLE versions
                       supported by the device. For example,
                       [4.1, 4.2, 5.0, 5.1, 5.2, 5.3].
          readOnly: false
          writeOnly: false

        deviceMacAddress:
          type: string
          description: It is the public MAC address assigned by the
                       manufacturer. It is unique 48 bit value. The
                       regex pattern is
                       ^[0-9A-Fa-f]{2}(:[0-9A-Fa-f]{2}){5}.
          readOnly: false
          writeOnly: false

        isRandom:
          type: boolean
          description: AddressType flag is taken from the BLE core
                       specifications 5.3. If FALSE, the device is
                       using public MAC address. If TRUE, device is
                       using a random address.
          readOnly: false
          writeOnly: false

        separateBroadcastAddress:
          type: string
          description: "When present, this address is used for
                        broadcasts/advertisements.  This value MUST
                            NOT
                        be set when an IRK is provided.  Its form is
                        the same as deviceMa`cAddress."
          readOnly: false
          writeOnly: false

        irk:
          type: string
          description: Identity resolving key, which is unique for
                       every device. It is used to resolve random
                       address.
          readOnly: false
          writeOnly: true
        mobility:
          type: boolean
          description: If set to True, the BLE device will
                       automatically connect to the closest AP. For
                       example, BLE device is connected with AP-1
                           and
                       moves out of range but comes in range of AP
                          -2,
                       it will be disconnected with AP-1 and
                           connects
                       with AP-2.
          readOnly: false
          writeOnly: false
        pairingMethods:
          type: array
          items:
            type: string
          description: List of pairing methods associated with the
                       ble device, stored as schema URI.
          readOnly: false
          writeOnly: false
        urn:ietf:params:scim:schemas:extension:pairingNull:2.0
           :Device:
          $ref: '#/components/schemas/NullPairing'
          required: false
        urn:ietf:params:scim:schemas:extension:pairingJustWorks:2.0
           :Device:
          $ref: '#/components/schemas/PairingJustWorks'
          required: false
        urn:ietf:params:scim:schemas:extension:pairingPassKey:2.0
           :Device:
          $ref: '#/components/schemas/PairingPassKey'
          required: false
        urn:ietf:params:scim:schemas:extension:pairingOOB:2.0
           :Device:
          $ref: '#/components/schemas/PairingOOB'
          required: false
      required:
        - versionSupport
        - deviceMacAddress
        - AddressType
        - pairingMethods
      additionalProperties: false

    NullPairing:
      type: object

    PairingJustWorks:
      type: object
      description: Just works pairing method for ble
      properties:
        key:
          type: integer
          description: Just works does not have any key value. For
                       completeness, it is added with a key value
                       'null'.
          readOnly: false
          writeOnly: false
      required:
        - key

    PairingPassKey:
      type: object
      description: Pass key pairing method for ble
      properties:
        key:
          type: integer
          description: A six digit passkey for ble device.
                       The pattern of key is ^[0-9]{6}$.
          readOnly: false
          writeOnly: true
      required:
        - key

    PairingOOB:
      type: object
      description: Out-of-band pairing method for BLE
      properties:
        key:
          type: string
          description: The OOB key value for ble device.
          readOnly: false
          writeOnly: false
        randomNumber:
          type: integer
          description: Nonce added to the key
          readOnly: false
          writeOnly: true
        confirmationNumber:
          type: integer
          description: Some solutions require a confirmation number
                       in the RESTful message exchange.
          readOnly: false
          writeOnly: true
      required:
        - key
        - randomNumber
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="dpp-extension-schema-openapi-representation"><name>DPP Extension Schema OpenAPI Representation</name>
<t>OpenAPI representation of DPP extension schema is as follows:</t>

<figure><artwork><![CDATA[
<CODE BEGINS>
openapi: 3.1.0
info:
  title: SCIM Device Provisioning Protocol Extension Schema
  version: 1.0.0

components:
  schemas:
    DppDevice:
      type: object
      description: Wi-Fi Easy Connect (DPP) device extension schema
      properties:
        schemas:
          type: array
          items:
            type: string
            enum:
              - urn:ietf:params:scim:schemas:extension:dpp:2.0
                 :Device
        urn:ietf:params:scim:schemas:extension:dpp:2.0:Device:
          $ref: '#/components/schemas/DppDeviceExtension'
          required: true
    DppDeviceExtension:
      type: object
      properties:
        dppVersion:
          type: integer
          description: Version of DPP this device supports.
          readOnly: false
          writeOnly: false
        bootstrappingMethod:
          type: array
          items:
            type: string
          description: The list of all the bootstrapping methods
                       available on the enrollee device. For
                       example, [QR, NFC].
          readOnly: false
          writeOnly: false
        bootstrapKey:
          type: string
          description: An Elliptic-Curve Diffie Hellman
                       (ECDH) public key. The base64 encoded length
                       for P-256, P-384, and P-521 is 80, 96, and
                           120
                       characters.
          readOnly: false
          writeOnly: true
        deviceMacAddress:
          type: string
          description: The MAC address assigned by the manufacturer.
                       The regex pattern is
                       ^[0-9A-Fa-f]{2}(:[0-9A-Fa-f]{2}){5}.
          readOnly: false
          writeOnly: false
        classChannel:
          type: array
          items:
            type: string
          description: A list of global operating class and channel
                       shared as bootstrapping information. It is
                       formatted as class/channel. For example,
                       '81/1', '115/36'.
          readOnly: false
          writeOnly: false
        serialNumber:
          type: string
          description: An alphanumeric serial number that may also
              be
                       passed as bootstrapping information.
          readOnly: false
          writeOnly: false
      required:
        - dppVersion
        - bootstrapKey
      additionalProperties: false
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="ethernet-mab-extension-schema-openapi-representation"><name>Ethernet MAB Extension Schema OpenAPI Representation</name>
<t>OpenAPI representation of Ethernet MAB extension schema is as follows:</t>

<figure><artwork><![CDATA[
<CODE BEGINS>
openapi: 3.1.0
info:
  title: SCIM MAC Authentication Bypass Extension Schema
  version: 1.0.0

components:
  schemas:
    EthernetMABDevice:
      type: object
      description: Ethernet MAC Authenticated Bypass
      properties:
        schemas:
          type: array
          items:
            type: string
            enum:
              - urn:ietf:params:scim:schemas:extension:ethernet-mab
                 :2.0:Device
        urn:ietf:params:scim:schemas:extension:ethernet-mab:2.0
           :Device:
          $ref: '#/components/schemas/EthernetMABDeviceExtension'
          required: true
    EthernetMABDeviceExtension:
      type: object
      properties:
        deviceMacAddress:
          type: string
          description: It is the public MAC address assigned by the
                       manufacturer. It is unique 48 bit value. The
                       regex pattern is
                       ^[0-9A-Fa-f]{2}(:[0-9A-Fa-f]{2}){5}.
          readOnly: false
          writeOnly: false
      required:
        - deviceMacAddress
      description: Device extension schema for Ethernet-MAB
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="fdo-extension-schema-openapi-representation"><name>FDO Extension Schema OpenAPI Representation</name>
<t>OpenAPI representation of FDO extension schema is as follows:</t>

<figure><artwork><![CDATA[
<CODE BEGINS>
openapi: 3.1.0
info:
  title: SCIM Fido Device Onboarding Extension Schema
  version: 1.0.0

components:
  schemas:
    FDODevice:
      type: object
      description: FIDO Device Onboarding Extension
      properties:
        schemas:
          type: array
          items:
            type: string
            enum:
              - urn:ietf:params:scim:schemas:extension:fido-device
                 -onboard:2.0:Devices
        urn:ietf:params:scim:schemas:extension:fido-device-onboard
           :2.0:Devices:
          $ref: '#/components/schemas/FDODeviceExtension'
          required: true
    FDODeviceExtension:
      type: object
      properties:
        fdoVoucher:
          type: string
          description: A FIDO Device Onboard (FDO) Voucher
          readOnly: false
          writeOnly: false
      required:
        - fdoVoucher
      description: Device Extension for a FIDO Device Onboard (FDO)
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="zigbee-extension-schema-openapi-representation"><name>Zigbee Extension Schema OpenAPI Representation</name>
<t>OpenAPI representation of zigbee extension schema is as follows:</t>

<figure><artwork><![CDATA[
<CODE BEGINS>
openapi: 3.1.0
info:
  title: SCIM Zigbee Extension Schema
  version: 1.0.0

components:
  schemas:
    ZigbeeDevice:
      type: object
      description: Zigbee Device schema.
      properties:
        schemas:
          type: array
          items:
            type: string
            enum:
              - urn:ietf:params:scim:schemas:extension:zigbee:2.0
                 :Device
        urn:ietf:params:scim:schemas:extension:zigbee:2.0:Device:
          $ref: '#/components/schemas/ZigbeeDeviceExtension'
          required: true
    ZigbeeDeviceExtension:
      type: object
      properties:
        versionSupport:
          type: array
          items:
            type: string
          description: Provides a list of all the Zigbee versions
                       supported by the device. For example, [3.0].
          readOnly: false
          writeOnly: false
        deviceEui64Address:
          type: string
          description: The EUI-64 (Extended Unique Identifier)
              device
                       address. The regex pattern is
                       ^[0-9A-Fa-f]{16}$.
          readOnly: false
          writeOnly: false
      required:
        - versionSupport
        - deviceEui64Address
      description: Device extension schema for Zigbee.
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="endpointappsext-extension-schema-openapi-representation"><name>EndpointAppsExt Extension Schema OpenAPI Representation</name>
<t>OpenAPI representation of endpoint Apps extension schema
is as follows:</t>

<figure><artwork><![CDATA[
<CODE BEGINS>
openapi: 3.1.0
info:
  title: SCIM Endpoint extension schema
  version: 1.0.0


components:
  schemas:
    EndpointAppsExt:
      type: object
      properties:
        applications:
          $ref: '#/components/schemas/applications'

        deviceControlEnterpriseEndpoint:
          type: string
          format: url
          description: The URL of the enterprise endpoint which
              device
                       control apps use to reach enterprise network
                       gateway.
          readOnly: true
          writeOnly: false

        telemetryEnterpriseEndpoint:
          type: string
          format: url
          description: The URL of the enterprise endpoint which
                       telemetry apps use to reach enterprise
                           network
                       gateway.
          readOnly: true
          writeOnly: false

      required:
        - applications
        - deviceControlEnterpriseEndpoint

    applications:
      type: array
      items:
        value:
          type: string
          description: The identifier of the endpointApp.
          readOnly: false
          writeOnly: false
        ref:
          type: string
          format: uri
          description: The URI of the corresponding 'EndpointApp'
                      resource which will control or obtain data
                          from
                      the device.
          readOnly: true
          writeOnly: false
      required:
        - value
        - ref


<CODE ENDS>
]]></artwork></figure>

</section>
</section>
<section anchor="fido-device-onboarding-example-flow"><name>Fido Device Onboarding Example Flow</name>

<t>The following diagrams are included to demonstrate how FDO can be used.  In this first diagram, a device
is onboarded not only to the device owner process, but also to the AAA server for initial onboarding.
The voucher contains a device certificate that is used by the AAA system for authentication.</t>

<figure><artset><artwork  type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="592" width="520" viewBox="0 0 520 592" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,96 L 8,144" fill="none" stroke="black"/>
<path d="M 16,32 L 16,80" fill="none" stroke="black"/>
<path d="M 48,152 L 48,576" fill="none" stroke="black"/>
<path d="M 72,32 L 72,80" fill="none" stroke="black"/>
<path d="M 200,32 L 200,80" fill="none" stroke="black"/>
<path d="M 232,152 L 232,576" fill="none" stroke="black"/>
<path d="M 256,32 L 256,80" fill="none" stroke="black"/>
<path d="M 272,120 L 272,144" fill="none" stroke="black"/>
<path d="M 272,224 L 272,256" fill="none" stroke="black"/>
<path d="M 384,32 L 384,80" fill="none" stroke="black"/>
<path d="M 416,80 L 416,416" fill="none" stroke="black"/>
<path d="M 416,504 L 416,576" fill="none" stroke="black"/>
<path d="M 448,32 L 448,80" fill="none" stroke="black"/>
<path d="M 480,48 L 480,80" fill="none" stroke="black"/>
<path d="M 496,80 L 496,576" fill="none" stroke="black"/>
<path d="M 512,48 L 512,80" fill="none" stroke="black"/>
<path d="M 16,32 L 72,32" fill="none" stroke="black"/>
<path d="M 200,32 L 256,32" fill="none" stroke="black"/>
<path d="M 384,32 L 448,32" fill="none" stroke="black"/>
<path d="M 480,48 L 512,48" fill="none" stroke="black"/>
<path d="M 16,80 L 72,80" fill="none" stroke="black"/>
<path d="M 200,80 L 256,80" fill="none" stroke="black"/>
<path d="M 384,80 L 448,80" fill="none" stroke="black"/>
<path d="M 480,80 L 512,80" fill="none" stroke="black"/>
<path d="M 8,96 L 248,96" fill="none" stroke="black"/>
<path d="M 8,144 L 272,144" fill="none" stroke="black"/>
<path d="M 56,192 L 224,192" fill="none" stroke="black"/>
<path d="M 240,224 L 272,224" fill="none" stroke="black"/>
<path d="M 240,256 L 272,256" fill="none" stroke="black"/>
<path d="M 240,352 L 408,352" fill="none" stroke="black"/>
<path d="M 240,400 L 408,400" fill="none" stroke="black"/>
<path d="M 240,448 L 488,448" fill="none" stroke="black"/>
<path d="M 240,496 L 488,496" fill="none" stroke="black"/>
<path d="M 56,544 L 224,544" fill="none" stroke="black"/>
<path d="M 264,96 L 276,120" fill="none" stroke="black"/>
<polygon class="arrowhead" points="496,448 484,442.4 484,453.6" fill="black" transform="rotate(0,488,448)"/>
<polygon class="arrowhead" points="416,352 404,346.4 404,357.6" fill="black" transform="rotate(0,408,352)"/>
<polygon class="arrowhead" points="248,496 236,490.4 236,501.6" fill="black" transform="rotate(180,240,496)"/>
<polygon class="arrowhead" points="248,400 236,394.4 236,405.6" fill="black" transform="rotate(180,240,400)"/>
<polygon class="arrowhead" points="248,256 236,250.4 236,261.6" fill="black" transform="rotate(180,240,256)"/>
<polygon class="arrowhead" points="232,192 220,186.4 220,197.6" fill="black" transform="rotate(0,224,192)"/>
<polygon class="arrowhead" points="64,544 52,538.4 52,549.6" fill="black" transform="rotate(180,56,544)"/>
<g class="text">
<text x="36" y="52">SCIM</text>
<text x="220" y="52">SCIM</text>
<text x="408" y="52">Owner</text>
<text x="44" y="68">Client</text>
<text x="228" y="68">Server</text>
<text x="416" y="68">Service</text>
<text x="496" y="68">AAA</text>
<text x="256" y="100">!</text>
<text x="40" y="116">voucher</text>
<text x="108" y="116">contains</text>
<text x="260" y="116">|_</text>
<text x="20" y="132">an</text>
<text x="56" y="132">X.509</text>
<text x="100" y="132">cert</text>
<text x="144" y="132">chain</text>
<text x="56" y="164">1</text>
<text x="84" y="164">POST</text>
<text x="164" y="164">[FDO(voucher)]</text>
<text x="72" y="180">/HTTP</text>
<text x="288" y="244">2</text>
<text x="328" y="244">Recover</text>
<text x="384" y="244">X.509</text>
<text x="300" y="260">cert</text>
<text x="344" y="260">chain</text>
<text x="300" y="276">from</text>
<text x="352" y="276">voucher</text>
<text x="240" y="324">3</text>
<text x="264" y="324">Add</text>
<text x="344" y="324">device(voucher)</text>
<text x="256" y="340">/HTTP</text>
<text x="280" y="388">4</text>
<text x="304" y="388">200</text>
<text x="340" y="388">&quot;ok&quot;</text>
<text x="336" y="436">5</text>
<text x="360" y="436">add</text>
<text x="412" y="436">identity</text>
<text x="416" y="468">|</text>
<text x="352" y="484">6</text>
<text x="376" y="484">200</text>
<text x="412" y="484">&quot;ok&quot;</text>
<text x="96" y="532">7</text>
<text x="120" y="532">200</text>
<text x="156" y="532">&quot;ok&quot;</text>
</g>
</svg>
</artwork><artwork  type="ascii-art"><![CDATA[
 ,------.               ,------.               ,-------.
 |SCIM  |               |SCIM  |               |Owner  |   ,---.
 |Client|               |Server|               |Service|   |AAA|
 `---+--'               `---+--'               `---+---'   `-+-'
,------------------------------!.                  |         |  
|voucher contains              |_\                 |         |  
|an X.509 cert chain             |                 |         |  
`--------------------------------'                 |         |  
     |1 POST [FDO(voucher)] |                      |         |  
     |/HTTP                 |                      |         |  
     |--------------------->|                      |         |  
     |                      |                      |         |  
     |                      |----.                 |         |  
     |                      |    | 2 Recover X.509 |         |  
     |                      |<---' cert chain      |         |  
     |                      |      from voucher    |         |  
     |                      |                      |         |  
     |                      |                      |         |  
     |                      |3 Add device(voucher) |         |  
     |                      |/HTTP                 |         |  
     |                      |--------------------->|         |  
     |                      |                      |         |  
     |                      |     4 200 "ok"       |         |  
     |                      |<---------------------|         |  
     |                      |                      |         |  
     |                      |            5 add identity      |  
     |                      |------------------------------->|  
     |                      |                      |         |  
     |                      |              6 200 "ok"        |  
     |                      |<-------------------------------|  
     |                      |                      |         |  
     |     7 200 "ok"       |                      |         |  
     |<---------------------|                      |         |  
     |                      |                      |         |  
     |                      |                      |         |  
]]></artwork></artset></figure>

<t>After this flow is complete, the device can then first provisionally onboard, and then later receive
a trust anchor through FDO's TO2 process.  This is shown below.</t>

<figure><artset><artwork  type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="864" width="576" viewBox="0 0 576 864" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,640 L 8,704" fill="none" stroke="black"/>
<path d="M 16,32 L 16,80" fill="none" stroke="black"/>
<path d="M 48,80 L 48,632" fill="none" stroke="black"/>
<path d="M 48,712 L 48,824" fill="none" stroke="black"/>
<path d="M 80,32 L 80,80" fill="none" stroke="black"/>
<path d="M 152,480 L 152,528" fill="none" stroke="black"/>
<path d="M 168,48 L 168,80" fill="none" stroke="black"/>
<path d="M 184,80 L 184,472" fill="none" stroke="black"/>
<path d="M 184,536 L 184,600" fill="none" stroke="black"/>
<path d="M 184,712 L 184,824" fill="none" stroke="black"/>
<path d="M 200,48 L 200,80" fill="none" stroke="black"/>
<path d="M 256,192 L 256,256" fill="none" stroke="black"/>
<path d="M 288,368 L 288,416" fill="none" stroke="black"/>
<path d="M 296,32 L 296,80" fill="none" stroke="black"/>
<path d="M 328,80 L 328,184" fill="none" stroke="black"/>
<path d="M 328,264 L 328,360" fill="none" stroke="black"/>
<path d="M 328,424 L 328,472" fill="none" stroke="black"/>
<path d="M 328,536 L 328,600" fill="none" stroke="black"/>
<path d="M 328,712 L 328,824" fill="none" stroke="black"/>
<path d="M 352,32 L 352,80" fill="none" stroke="black"/>
<path d="M 360,504 L 360,528" fill="none" stroke="black"/>
<path d="M 400,96 L 400,176" fill="none" stroke="black"/>
<path d="M 400,216 L 400,256" fill="none" stroke="black"/>
<path d="M 448,48 L 448,80" fill="none" stroke="black"/>
<path d="M 480,184 L 480,360" fill="none" stroke="black"/>
<path d="M 480,424 L 480,632" fill="none" stroke="black"/>
<path d="M 480,712 L 480,824" fill="none" stroke="black"/>
<path d="M 504,48 L 504,80" fill="none" stroke="black"/>
<path d="M 520,392 L 520,416" fill="none" stroke="black"/>
<path d="M 520,664 L 520,704" fill="none" stroke="black"/>
<path d="M 568,120 L 568,176" fill="none" stroke="black"/>
<path d="M 16,32 L 80,32" fill="none" stroke="black"/>
<path d="M 296,32 L 352,32" fill="none" stroke="black"/>
<path d="M 168,48 L 200,48" fill="none" stroke="black"/>
<path d="M 448,48 L 504,48" fill="none" stroke="black"/>
<path d="M 16,80 L 80,80" fill="none" stroke="black"/>
<path d="M 168,80 L 200,80" fill="none" stroke="black"/>
<path d="M 296,80 L 352,80" fill="none" stroke="black"/>
<path d="M 448,80 L 504,80" fill="none" stroke="black"/>
<path d="M 400,96 L 544,96" fill="none" stroke="black"/>
<path d="M 400,176 L 568,176" fill="none" stroke="black"/>
<path d="M 256,192 L 376,192" fill="none" stroke="black"/>
<path d="M 256,256 L 400,256" fill="none" stroke="black"/>
<path d="M 336,288 L 472,288" fill="none" stroke="black"/>
<path d="M 192,336 L 320,336" fill="none" stroke="black"/>
<path d="M 288,368 L 496,368" fill="none" stroke="black"/>
<path d="M 288,416 L 520,416" fill="none" stroke="black"/>
<path d="M 192,448 L 320,448" fill="none" stroke="black"/>
<path d="M 152,480 L 336,480" fill="none" stroke="black"/>
<path d="M 152,528 L 360,528" fill="none" stroke="black"/>
<path d="M 336,560 L 472,560" fill="none" stroke="black"/>
<path d="M 56,608 L 472,608" fill="none" stroke="black"/>
<path d="M 8,640 L 496,640" fill="none" stroke="black"/>
<path d="M 8,704 L 520,704" fill="none" stroke="black"/>
<path d="M 336,736 L 472,736" fill="none" stroke="black"/>
<path d="M 336,784 L 472,784" fill="none" stroke="black"/>
<path d="M 352,480 L 364,504" fill="none" stroke="black"/>
<path d="M 512,640 L 524,664" fill="none" stroke="black"/>
<path d="M 392,192 L 404,216" fill="none" stroke="black"/>
<path d="M 512,368 L 524,392" fill="none" stroke="black"/>
<path d="M 560,96 L 572,120" fill="none" stroke="black"/>
<polygon class="arrowhead" points="480,560 468,554.4 468,565.6" fill="black" transform="rotate(0,472,560)"/>
<polygon class="arrowhead" points="344,784 332,778.4 332,789.6" fill="black" transform="rotate(180,336,784)"/>
<polygon class="arrowhead" points="344,736 332,730.4 332,741.6" fill="black" transform="rotate(180,336,736)"/>
<polygon class="arrowhead" points="344,288 332,282.4 332,293.6" fill="black" transform="rotate(180,336,288)"/>
<polygon class="arrowhead" points="328,448 316,442.4 316,453.6" fill="black" transform="rotate(0,320,448)"/>
<polygon class="arrowhead" points="200,336 188,330.4 188,341.6" fill="black" transform="rotate(180,192,336)"/>
<polygon class="arrowhead" points="64,608 52,602.4 52,613.6" fill="black" transform="rotate(180,56,608)"/>
<g class="text">
<text x="40" y="52">Owner</text>
<text x="324" y="52">Access</text>
<text x="48" y="68">Service</text>
<text x="184" y="68">AAA</text>
<text x="320" y="68">Point</text>
<text x="476" y="68">Device</text>
<text x="552" y="100">!</text>
<text x="428" y="116">Device</text>
<text x="500" y="116">configured</text>
<text x="556" y="116">|_</text>
<text x="420" y="132">with</text>
<text x="484" y="132">well-known</text>
<text x="420" y="148">RCOI</text>
<text x="456" y="148">and</text>
<text x="488" y="148">for</text>
<text x="528" y="148">trust</text>
<text x="412" y="164">on</text>
<text x="448" y="164">first</text>
<text x="488" y="164">use</text>
<text x="384" y="196">!</text>
<text x="276" y="212">WLAN</text>
<text x="348" y="212">configured|_</text>
<text x="276" y="228">with</text>
<text x="340" y="228">well-known</text>
<text x="276" y="244">RCOI</text>
<text x="344" y="276">1</text>
<text x="408" y="276">EAP-TLS/EAPOL</text>
<text x="192" y="324">2</text>
<text x="260" y="324">EAP-TLS/Radius</text>
<text x="504" y="372">!</text>
<text x="316" y="388">Device</text>
<text x="368" y="388">skips</text>
<text x="508" y="388">|_</text>
<text x="316" y="404">server</text>
<text x="404" y="404">authentication</text>
<text x="192" y="436">3</text>
<text x="260" y="436">Result=Success</text>
<text x="344" y="484">!</text>
<text x="184" y="500">Limited</text>
<text x="244" y="500">access</text>
<text x="348" y="500">|_</text>
<text x="168" y="516">for</text>
<text x="200" y="516">now</text>
<text x="336" y="548">4</text>
<text x="404" y="548">Result=Success</text>
<text x="224" y="596">5</text>
<text x="248" y="596">FDO</text>
<text x="280" y="596">TO2</text>
<text x="184" y="628">|</text>
<text x="328" y="628">|</text>
<text x="504" y="644">!</text>
<text x="32" y="660">FSIM,</text>
<text x="88" y="660">Runtime</text>
<text x="144" y="660">SSID,</text>
<text x="508" y="660">|_</text>
<text x="56" y="676">Credentials</text>
<text x="128" y="676">incl.</text>
<text x="32" y="692">local</text>
<text x="80" y="692">trust</text>
<text x="132" y="692">anchor</text>
<text x="344" y="724">6</text>
<text x="404" y="724">dissasociate</text>
<text x="336" y="772">7</text>
<text x="376" y="772">EAP-TLS</text>
<text x="420" y="772">w/</text>
<text x="448" y="772">LSC</text>
<text x="48" y="836">.</text>
<text x="184" y="836">.</text>
<text x="264" y="836">etc</text>
<text x="328" y="836">.</text>
<text x="480" y="836">.</text>
</g>
</svg>
</artwork><artwork  type="ascii-art"><![CDATA[
 ,-------.                          ,------.                           
 |Owner  |          ,---.           |Access|           ,------.        
 |Service|          |AAA|           |Point |           |Device|        
 `---+---'          `-+-'           `---+--'           `---+--'        
     |                |                 |        ,------------------!. 
     |                |                 |        |Device configured |_\
     |                |                 |        |with well-known     |
     |                |                 |        |RCOI and for trust  |
     |                |                 |        |on first use        |
     |                |                 |        `--------------------'
     |                |        ,---------------!.          |           
     |                |        |WLAN configured|_\         |           
     |                |        |with well-known  |         |           
     |                |        |RCOI             |         |           
     |                |        `-----------------'         |           
     |                |                 | 1 EAP-TLS/EAPOL  |           
     |                |                 |<-----------------|           
     |                |                 |                  |           
     |                |2 EAP-TLS/Radius |                  |           
     |                |<----------------|                  |           
     |                |                 |                  |           
     |                |            ,--------------------------!.       
     |                |            |Device skips              |_\      
     |                |            |server authentication       |      
     |                |            `----------------------------'      
     |                |3 Result=Success |                  |           
     |                |---------------->|                  |           
     |                |                 |                  |           
     |            ,-----------------------!.               |           
     |            |Limited access         |_\              |           
     |            |for now                  |              |           
     |            `-------------------------'              |           
     |                |                 |4 Result=Success  |           
     |                |                 |----------------->|           
     |                |                 |                  |           
     |                |    5 FDO TO2    |                  |           
     |<----------------------------------------------------|           
     |                |                 |                  |           
,-------------------------------------------------------------!.       
|FSIM, Runtime SSID,                                          |_\      
|Credentials incl.                                              |      
|local trust anchor                                             |      
`---------------------------------------------------------------'      
     |                |                 | 6 dissasociate   |           
     |                |                 |<-----------------|           
     |                |                 |                  |           
     |                |                 |7 EAP-TLS w/ LSC  |           
     |                |                 |<-----------------|           
     |                |                 |                  |           
     |                |                 |                  |           
     .                .        etc      .                  .           

]]></artwork></artset></figure>

</section>


  </back>

<!-- ##markdown-source:
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
IZ+84mB353QmyoAoJEmxT2cppoNfuiAdJV7AtzCxYko5GTBDt5sPSedsBG66
nImLk00lCarTivC/7BKTDmFOtJtSeayE5+irQjazL88RuKzv7I/uWh0clQ3M
fNOeI3fp70D8sts5JaXXucXi+p1pxxa/5EVSmLD/Lghu+VsVWDFBTCoR8kCw
m78dOSOOoe6PMfwI5LsF2qETFTdBFNU58RTdXKCds72TI0JIyl9J+LdQO4nC
eTREqJvzt1MqiS5Paye/OrbMbX81rZ27d69bx9ba2KL3XO0UVueu+NIs7dDq
lD6aq50iVJeLL83QjnVnQxy0TusXr8/X4N+T14u2U2QNC45n4q2qdjb1JM78
bjjOFm2nMIsF25n40YLtTFBP9TaZpR1FubKrcFiloc7UjjRZuNYE981Z2pmo
sy5PbmcL1KhsHI2+PR8T71oUzvluyzTNj7TuVctcMD9MaefudTgIKaCVIaPv
560Q09pBfgK0b/JEprdTvcw5m8RicN7OY8KC7RRG991HWnd9Y4eMkCgmztzO
NB2i9HqSeU2xoU25DB27Ozw/elMTZ+OYEpudnx/t14pdV12Gjt3tAfdH6uRH
GRl+J0nJZS2pdjBVX+TK9Yu0M9VAN+WaQg9L+t3FJA2ZL1MRiEX3xe/L34sf
PVMcX9ysidfne3+Uec3STgGH9Y1g1BHlr7i3SMX0/j/AUDDFBqoBAA==

-->

</rfc>

