Skip to content

Commit e5ba1f1

Browse files
authored
Merge pull request #178741 from anastasia-ms/dps-faq
FAQ for DPS
2 parents 7eb90a2 + 082331f commit e5ba1f1

File tree

4 files changed

+112
-5
lines changed

4 files changed

+112
-5
lines changed

articles/iot-dps/about-iot-dps.md

Lines changed: 56 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Overview of the Microsoft Azure IoT Hub Device Provisioning Service
33
description: Describes device provisioning in Azure with the Device Provisioning Service (DPS) and IoT Hub
44
author: anastasia-ms
55
ms.author: v-stharr
6-
ms.date: 10/06/2021
6+
ms.date: 11/09/2021
77
ms.topic: overview
88
ms.service: iot-dps
99
services: iot-dps
@@ -36,6 +36,7 @@ There are many provisioning scenarios in which DPS is an excellent choice for ge
3636
3737

3838
## Behind the scenes
39+
3940
All the scenarios listed in the previous section can be done using DPS for zero-touch provisioning with the same flow. Many of the manual steps traditionally involved in provisioning are automated with DPS to reduce the time to deploy IoT devices and lower the risk of manual error. The following section describes what goes on behind the scenes to get a device provisioned. The first step is manual, all of the following steps are automated.
4041

4142
![Basic provisioning flow](./media/about-iot-dps/dps-provisioning-flow.png)
@@ -50,6 +51,7 @@ All the scenarios listed in the previous section can be done using DPS for zero-
5051
8. The device gets the desired state from its device twin in IoT hub.
5152

5253
## Provisioning process
54+
5355
There are two distinct steps in the deployment process of a device in which DPS takes a part that can be done independently:
5456

5557
* The **manufacturing step** in which the device is created and prepared at the factory, and
@@ -58,20 +60,23 @@ There are two distinct steps in the deployment process of a device in which DPS
5860
Both these steps fit in seamlessly with existing manufacturing and deployment processes. DPS even simplifies some deployment processes that involve manual work to get connection information onto the device.
5961

6062
### Manufacturing step
63+
6164
This step is all about what happens on the manufacturing line. The roles involved in this step include silicon designer, silicon manufacturer, integrator and/or the end manufacturer of the device. This step is concerned with creating the hardware itself.
6265

6366
DPS does not introduce a new step in the manufacturing process; rather, it ties into the existing step that installs the initial software and (ideally) the HSM on the device. Instead of creating a device ID in this step, the device is programmed with the provisioning service information, enabling it to call the provisioning service to get its connection info/IoT solution assignment when it is switched on.
6467

6568
Also in this step, the manufacturer supplies the device deployer/operator with identifying key information. Supplying that information could be as simple as confirming that all devices have an X.509 certificate generated from a signing certificate provided by the device deployer/operator, or as complicated as extracting the public portion of a TPM endorsement key from each TPM device. These services are offered by many silicon manufacturers today.
6669

6770
### Cloud setup step
71+
6872
This step is about configuring the cloud for proper automatic provisioning. Generally there are two types of users involved in the cloud setup step: someone who knows how devices need to be initially set up (a device operator), and someone else who knows how devices are to be split among the IoT hubs (a solution operator).
6973

7074
There is a one-time initial setup of the provisioning that must occur, which is usually handled by the solution operator. Once the provisioning service is configured, it does not have to be modified unless the use case changes.
7175

7276
After the service has been configured for automatic provisioning, it must be prepared to enroll devices. This step is done by the device operator, who knows the desired configuration of the device(s) and is in charge of making sure the provisioning service can properly attest to the device's identity when it comes looking for its IoT hub. The device operator takes the identifying key information from the manufacturer and adds it to the enrollment list. There can be subsequent updates to the enrollment list as new entries are added or existing entries are updated with the latest information about the devices.
7377

7478
## Registration and provisioning
79+
7580
*Provisioning* means various things depending on the industry in which the term is used. In the context of provisioning IoT devices to their cloud solution, provisioning is a two part process:
7681

7782
1. The first part is establishing the initial connection between the device and the IoT solution by registering the device.
@@ -80,6 +85,7 @@ After the service has been configured for automatic provisioning, it must be pre
8085
Once both of those two steps have been completed, we can say that the device has been fully provisioned. Some cloud services only provide the first step of the provisioning process, registering devices to the IoT solution endpoint, but do not provide the initial configuration. DPS automates both steps to provide a seamless provisioning experience for the device.
8186

8287
## Features of the Device Provisioning Service
88+
8389
DPS has many features, making it ideal for provisioning devices.
8490

8591
* **Secure attestation** support for both X.509 and TPM-based identities.
@@ -90,10 +96,10 @@ DPS has many features, making it ideal for provisioning devices.
9096
* **Cross-region support** allows DPS to assign devices to IoT hubs in other regions.
9197
* **Encryption for data at rest** allows data in DPS to be encrypted and decrypted transparently using 256-bit AES encryption, one of the strongest block ciphers available, and is FIPS 140-2 compliant.
9298

93-
9499
You can learn more about the concepts and features involved in device provisioning by reviewing the [DPS terminology](concepts-service.md) topic along with the other conceptual topics in the same section.
95100

96101
## Cross-platform support
102+
97103
Just like all Azure IoT services, DPS works cross-platform with a variety of operating systems. Azure offers open-source SDKs in a variety of [languages](https://github.com/Azure/azure-iot-sdks) to facilitate connecting devices and managing the service. DPS supports the following protocols for connecting devices:
98104

99105
* HTTPS
@@ -105,26 +111,74 @@ Just like all Azure IoT services, DPS works cross-platform with a variety of ope
105111
DPS only supports HTTPS connections for service operations.
106112

107113
## Regions
114+
108115
DPS is available in many regions. The updated list of existing and newly announced regions for all services is at [Azure Regions](https://azure.microsoft.com/regions/). You can check availability of the Device Provisioning Service on the [Azure Status](https://azure.microsoft.com/status/) page.
109116

110117
> [!NOTE]
111118
> DPS is global and not bound to a location. However, you must specify a region in which the metadata associated with your DPS profile will reside.
112119
113120
## Availability
121+
114122
There is a 99.9% Service Level Agreement for DPS, and you can [read the SLA](https://azure.microsoft.com/support/legal/sla/iot-hub/). The full [Azure SLA](https://azure.microsoft.com/support/legal/sla/) explains the guaranteed availability of Azure as a whole.
115123

116124
## Quotas and Limits
125+
117126
Each Azure subscription has default quota limits in place that could impact the scope of your IoT solution. The current limit on a per-subscription basis is 10 Device Provisioning Services per subscription.
118127

119128
For more details on quota limits, see [Azure Subscription Service Limits](../azure-resource-manager/management/azure-subscription-service-limits.md).
120129

121130
[!INCLUDE [azure-iotdps-limits](../../includes/iot-dps-limits.md)]
122131

132+
## Billable service operations and pricing
133+
134+
Each API call on DPS is billable as one *operation*. This includes all the service APIs and the device registration API.
135+
136+
The tables below show the current billable status for each DPS service API operation. To learn more about pricing, see [Azure Hub Pricing](https://azure.microsoft.com/pricing/details/iot-hub/) in the IoT Hub Device Provisioning Service section.
137+
138+
| API | Operation | Billable? |
139+
| --------------- | ------- | -- |
140+
| Device API | [Device Registration Status Lookup](/api/iot-dps/device/runtime-registration/device-registration-status-lookup) | Yes|
141+
| Device API | [Operation Status Lookup](/api/iot-dps/device/runtime-registration/operation-status-lookup)| No |
142+
| Device API | [Register Device](/api/iot-dps/device/runtime-registration/register-device) | Yes |
143+
| DPS Service API (registration state) | [Delete](/api/iot-dps/service/device-registration-state/delete) | Yes|
144+
| DPS Service API (registration state) | [Get](/api/iot-dps/service/device-registration-state/get) | Yes|
145+
| DPS Service API (registration state) | [Query](/api/iot-dps/service/device-registration-state/query) | Yes|
146+
| DPS Service API (enrollment group) | [Create or Update](/api/iot-dps/service/enrollment-group/create-or-update) | Yes|
147+
| DPS Service API (enrollment group) | [Delete](/api/iot-dps/service/enrollment-group/delete) | Yes|
148+
| DPS Service API (enrollment group) | [Get](/api/iot-dps/service/enrollment-group/get) | Yes|
149+
| DPS Service API (enrollment group) | [Get Attestation Mechanism](/api/iot-dps/service/enrollment-group/get-attestation-mechanism)| Yes|
150+
| DPS Service API (enrollment group) | [Query](/api/iot-dps/service/enrollment-group/query) | Yes|
151+
| DPS Service API (enrollment group) | [Run Bulk Operation](/api/iot-dps/service/enrollment-group/run-bulk-operation) | Yes|
152+
| DPS Service API (individual enrollment) | [Create or Update](/api/iot-dps/service/individual-enrollment/create-or-update) | Yes|
153+
| DPS Service API (individual enrollment)| [Delete](/api/iot-dps/service/individual-enrollment/delete) | Yes|
154+
| DPS Service API (individual enrollment)| [Get](/api/iot-dps/service/individual-enrollment/get) | Yes|
155+
| DPS Service API (individual enrollment)| [Get Attestation Mechanism](/api/iot-dps/service/individual-enrollment/get-attestation-mechanism) | Yes|
156+
| DPS Service API (individual enrollment)| [Query](/api/iot-dps/service/individual-enrollment/query) | Yes|
157+
| DPS Service API (individual enrollment)| [Run Bulk Operation](/api/iot-dps/service/individual-enrollment/run-bulk-operation) | Yes|
158+
| DPS Certificate API| [Create or Update](/api/iot-dps/dps-certificate/create-or-update) | No |
159+
| DPS Certificate API| [Delete](/api/iot-dps/dps-certificate/delete) | No |
160+
| DPS Certificate API| [Generate Verification Code](/api/iot-dps/dps-certificate/generate-verification-code)|No |
161+
| DPS Certificate API| [Get](/api/iot-dps/dps-certificate/get) | No |
162+
| DPS Certificate API| [List](/api/iot-dps/dps-certificate/list) |No |
163+
| DPS Certificate API| [Verify Certificate](/api/iot-dps/dps-certificate/verify-certificate) | No |
164+
| IoT DPS Resource API| [Check Provisioning Service Name Availability](/api/iot-dps/iot-dps-resource/check-provisioning-service-name-availability) | No |
165+
| IoT DPS Resource API| [Create or Update](/api/iot-dps/iot-dps-resource/create-or-update) | No |
166+
| IoT DPS Resource API| [Delete](/api/iot-dps/iot-dps-resource/delete) | No|
167+
| IoT DPS Resource API| [Get](/api/iot-dps/iot-dps-resource/get) | No |
168+
| IoT DPS Resource API| [Get Operation Result](/api/iot-dps/iot-dps-resource/get-operation-result)| No |
169+
| IoT DPS Resource API| [List By Resource Group](/api/iot-dps/iot-dps-resource/list-by-resource-group) |No |
170+
| IoT DPS Resource API| [List By Subscription](/api/iot-dps/iot-dps-resource/list-by-subscription) |No |
171+
| IoT DPS Resource API| [List By Keys](/api/iot-dps/iot-dps-resource/list-keys) |No |
172+
| IoT DPS Resource API| [List Keys for Key Name](/api/iot-dps/iot-dps-resource/list-keys-for-key-name) |No |
173+
| IoT DPS Resource API| [List Valid SKUs](/api/iot-dps/iot-dps-resource/list-valid-skus) |No |
174+
| IoT DPS Resource API| [Update](/api/iot-dps/iot-dps-resource/update) | No|
123175

124176
## Related Azure components
177+
125178
DPS automates device provisioning with Azure IoT Hub. Learn more about [IoT Hub](../iot-hub/index.yml).
126179

127180
## Next steps
181+
128182
You now have an overview of provisioning IoT devices in Azure. The next step is to try out an end-to-end IoT scenario.
129183

130184
[Set up IoT Hub Device Provisioning Service with the Azure portal](quick-setup-auto-provision.md)

articles/iot-dps/dps-faq.yml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
### YamlMime:FAQ
2+
metadata:
3+
title: Microsoft Azure IoT Hub Device Provisioning Service frequently asked questions (FAQ)
4+
description: Find answer to common questions about Azure IoT Hub Device Provisioning Service.
5+
author: anastasia-ms
6+
ms.author: v-stharr
7+
ms.date: 11/08/2021
8+
ms.topic: conceptual
9+
ms.service: iot-dps
10+
services: iot-dps
11+
12+
13+
title: Azure IoT Hub Device Provisioning Service frequently asked questions (FAQ)
14+
summary: |
15+
This article answers to common questions about Azure IoT Hub Device Provisioning Service. The following topics are covered:
16+
17+
* DPS Management
18+
* DPS Billing
19+
20+
21+
22+
sections:
23+
- name: DPS Management
24+
questions:
25+
- question: |
26+
What is the recommended way to update a linked hub when the primary key for the IoT Hub access policy is regenerated?
27+
answer: |
28+
The primary key is embedded inside the connection string that DPS uses for authentication. Whenever the primary connection string is modified, the primary key will also be modified, and you'll need to relink the hub to your DPS.
29+
- name: DPS Billing
30+
questions:
31+
- question: |
32+
Which Device Provisioning Service API operations are billable and what are their prices?”
33+
answer: |
34+
For information on which operations are billable and their prices, see [Billable service operations and pricing for Microsoft Device Provisioning Service](about-iot-dps.md#billable-service-operations-and-pricing)
35+
36+
additionalContent: |
37+
38+
## Next steps
39+
40+
If this FAQ doesn’t answer your question, you can contact us through the following channels (in escalating order):
41+
42+
* The comments section of this article.
43+
* [MSFT Q&A page for Azure DPS(/answers/topics/azure-dps.html).
44+
* Microsoft Support. To create a new support request, in the [Azure portal](https://portal.azure.com/), on the Help tab, select the **Help +** support button, and then select **New support request**.
45+
46+
47+
> [!div class="nextstepaction"]
48+
> [https://github.com/anastasia-ms/azure-docs-pr/pull/new/dps-faq](how-to-troubleshoot-dps.md)
49+
50+

articles/iot-dps/toc.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,12 @@
106106
- name: Windows
107107
href: ../iot-edge/how-to-provision-devices-at-scale-windows-tpm.md
108108
maintainContext: true
109-
- name: Troubleshooting
110-
href: how-to-troubleshoot-dps.md
109+
- name: Troubleshooting and FAQ
110+
items:
111+
- name: Troubleshooting DPS
112+
href: how-to-troubleshoot-dps.md
113+
- name: DSP FAQ
114+
href: dps-faq.yml
111115
- name: Reference
112116
items:
113117
- name: REST API

includes/iot-dps-limits.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,3 @@ The Device Provisioning Service has the following rate limits.
3737
| Device registrations | 200/min/service | Yes |
3838
| Device polling operation | 5/10 sec/device | No |
3939

40-
Each API call on DPS is billable as one *Operation*. This includes all the service APIs and the device registration API. The device registration polling operation is not billed.

0 commit comments

Comments
 (0)