Skip to content

Commit e27a8d7

Browse files
author
Jill Grant
authored
Merge pull request #268865 from kgremban/mar12-dpsfresh
DPS freshness
2 parents 9dab075 + 99e4b8f commit e27a8d7

13 files changed

+225
-281
lines changed

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

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Overview of Azure IoT Hub Device Provisioning Service
33
description: Describes production scale device provisioning in Azure with the Device Provisioning Service (DPS) and IoT Hub
44
author: kgremban
55
ms.author: kgremban
6-
ms.date: 10/14/2022
6+
ms.date: 03/12/2024
77
ms.topic: overview
88
ms.service: iot-dps
99
services: iot-dps
@@ -13,21 +13,26 @@ ms.custom: [amqp, mqtt]
1313

1414
# What is Azure IoT Hub Device Provisioning Service?
1515

16-
Microsoft Azure provides a rich set of integrated public cloud services for all your IoT solution needs. The IoT Hub Device Provisioning Service (DPS) is a helper service for IoT Hub that enables zero-touch, just-in-time provisioning to the right IoT hub without requiring human intervention. DPS enables the provisioning of millions of devices in a secure and scalable manner.
16+
The IoT Hub Device Provisioning Service (DPS) is a helper service for IoT Hub that enables zero-touch, just-in-time provisioning to the right IoT hub without requiring human intervention. DPS enables the provisioning of millions of devices in a secure and scalable manner. 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.
1717

18-
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 diagram describes what goes on behind the scenes to get a device provisioned. The first step is manual, all of the following steps are automated.
18+
## How Device Provisioning Service works
19+
20+
The following diagram describes what goes on behind the scenes to provision a device with DPS.
1921

2022
:::image type="content" source="./media/about-iot-dps/dps-provisioning-flow.png" alt-text="Diagram that shows how the device, Device Provisioning Service, and IoT Hub work together.":::
2123

22-
Before the device provisioning flow begins, there are two manual steps to prepare. On the device side, the device manufacturer prepares the device for provisioning by preconfiguring it with its authentication credentials and assigned Device Provisioning Service ID and endpoint. On the cloud side, you or the device manufacturer prepares the Device Provisioning Service instance with individual enrollments and enrollments groups that identify valid devices and define how they should be provisioned.
24+
Before the device provisioning flow begins, there are two manual steps to prepare:
25+
26+
* On the device side, the device manufacturer prepares the device for provisioning by preconfiguring it with its authentication credentials and assigned Device Provisioning Service ID and endpoint.
27+
* On the cloud side, you or the device manufacturer prepares the Device Provisioning Service instance with individual enrollments and enrollment groups that identify valid devices and define how they should be provisioned.
2328

2429
Once the device and cloud are set up for provisioning, the following steps kick off automatically as soon as the device powers on for the first time:
2530

26-
1. When the device first powers on, it connects to the DPS endpoint and presents it authentication credentials.
31+
1. The device powers on for the first time, then connects to the DPS endpoint and presents it authentication credentials.
2732
1. The DPS instance checks the identity of the device against its enrollment list. Once the device identity is verified, DPS assigns the device to an IoT hub and registers it in the hub.
2833
1. The DPS instance receives the device ID and registration information from the assigned hub and passes that information back to the device.
2934
1. The device uses its registration information to connect directly to its assigned IoT hub and authenticate.
30-
1. Once authenticated, the device and IoT hub begin communicating directly. The DPS instance has no further role as an intermediary unless the device needs to reprovision.
35+
1. The device and IoT hub begin communicating directly. The DPS instance has no further role as an intermediary unless the device needs to reprovision.
3136

3237
## When to use Device Provisioning Service
3338

@@ -41,41 +46,41 @@ There are many provisioning scenarios in which DPS is an excellent choice for ge
4146
* Reprovisioning based on a change in the device
4247
* Rolling the keys used by the device to connect to IoT Hub (when not using X.509 certificates to connect)
4348

44-
Provisioning of nested IoT Edge devices (parent/child hierarchies) is not currently supported by DPS.
49+
Provisioning of nested IoT Edge devices (parent/child hierarchies) isn't currently supported by DPS.
4550

4651
## Provisioning process
4752

48-
There are two distinct steps in the deployment process of a device in which DPS takes a part that can be done independently:
53+
There are two steps that take place ahead of a device provisioning with DPS:
4954

5055
* The **manufacturing step** in which the device is created and prepared at the factory, and
5156
* The **cloud setup step** in which the Device Provisioning Service is configured for automated provisioning.
5257

53-
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.
58+
Both of these steps can be incorporated into existing manufacturing and deployment processes. DPS even simplifies some deployment processes that involve manual work to get connection information onto the device.
5459

5560
### Manufacturing step
5661

5762
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.
5863

59-
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.
64+
DPS doesn't introduce a new step in the manufacturing process; rather, it ties into the existing step that installs the initial software and (ideally) the hardware security module (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's switched on.
6065

61-
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.
66+
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. Many silicon manufacturers offer these services.
6267

6368
### Cloud setup step
6469

6570
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).
6671

67-
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.
72+
There's a one-time initial setup of the provisioning service, which the solution operator usually handles. Once the provisioning service is configured, it doesn't have to be modified unless the use case changes.
6873

69-
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 looks 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.
74+
After the service is 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 devices and makes sure that the provisioning service can properly attest to a device's identity. 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.
7075

7176
## Registration and provisioning
7277

7378
*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:
7479

75-
1. The first part is establishing the initial connection between the device and the IoT solution by registering the device.
76-
2. The second part is applying the proper configuration to the device based on the specific requirements of the solution it was registered to.
80+
* The first part is establishing the initial connection between the device and the IoT solution by registering the device.
81+
* The second part is applying the proper configuration to the device based on the specific requirements of the solution it was registered to.
7782

78-
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.
83+
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 don't provide the initial configuration. DPS automates both steps to provide a seamless provisioning experience for the device.
7984

8085
## Features of the Device Provisioning Service
8186

@@ -93,7 +98,7 @@ You can learn more about the concepts and features involved in device provisioni
9398

9499
## Cross-platform support
95100

96-
Just like all Azure IoT services, DPS works cross-platform with various operating systems. Azure offers open-source SDKs in various [languages](https://github.com/Azure/azure-iot-sdks) to facilitate connecting devices and managing the service. DPS supports the following protocols for connecting devices:
101+
Just like all Azure IoT services, DPS works cross-platform with various operating systems. Azure offers [open-source SDKs](https://github.com/Azure/azure-iot-sdks) in various languages to facilitate connecting devices and managing the service. DPS supports the following protocols for connecting devices:
97102

98103
* HTTPS
99104
* AMQP
@@ -113,13 +118,13 @@ For resiliency and reliability, we recommend deploying to one of the regions tha
113118

114119
Device Provisioning Service stores customer data. By default, customer data is replicated to a secondary region to support disaster recovery scenarios. For deployments in Southeast Asia and Brazil South, customers can choose to keep their data only within that region by [disabling disaster recovery](./iot-dps-ha-dr.md). For more information, see [Cross-region replication in Azure](../availability-zones/cross-region-replication-azure.md).
115120

116-
DPS uses the same [device provisioning endpoint](concepts-service.md#device-provisioning-endpoint) for all provisioning service instances, and performs traffic load balancing to the nearest available service endpoint. As a result, authentication secrets may be temporarily transferred outside of the region where the DPS instance was initially created. However, once the device is connected, the device data will flow directly to the original region of the DPS instance. To ensure that your data doesn't leave the original or secondary region, use a private endpoint. To learn how to set up private endpoints, see [DPS support for virtual networks](virtual-network-support.md#private-endpoint-limitations).
121+
DPS uses the same [device provisioning endpoint](concepts-service.md#device-provisioning-endpoint) for all provisioning service instances, and performs traffic load balancing to the nearest available service endpoint. As a result, authentication secrets may be temporarily transferred outside of the region where the DPS instance was initially created. However, once the device is connected, the device data flows directly to the original region of the DPS instance. To ensure that your data doesn't leave the original or secondary region, use a private endpoint. To learn how to set up private endpoints, see [DPS support for virtual networks](virtual-network-support.md#private-endpoint-limitations).
117122

118123
## Quotas and Limits
119124

120-
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.
125+
Each Azure subscription has default quota limits in place that could impact the scope of your IoT solution. The current limit is 10 Device Provisioning Service instances per subscription.
121126

122-
For more details on quota limits, see [Azure Subscription Service Limits](../azure-resource-manager/management/azure-subscription-service-limits.md).
127+
For more information about quota limits, see [Azure Subscription Service Limits](../azure-resource-manager/management/azure-subscription-service-limits.md).
123128

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

@@ -174,10 +179,7 @@ DPS automates device provisioning with Azure IoT Hub. Learn more about [IoT Hub]
174179
> [!NOTE]
175180
> Provisioning of nested edge devices (parent/child hierarchies) is not currently supported by DPS.
176181
177-
IoT Central applications use an internal DPS instance to manage device connections. To learn more, see:
178-
179-
* [How devices connect to IoT Central](../iot-central/core/overview-iot-central-developer.md)
180-
* [Tutorial: Create and connect a client application to your Azure IoT Central application](../iot-central/core/tutorial-connect-device.md)
182+
IoT Central applications use an internal DPS instance to manage device connections. To learn more, see [How devices connect to IoT Central](../iot-central/core/overview-iot-central-developer.md).
181183

182184
## Next steps
183185

0 commit comments

Comments
 (0)