You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/iot-dps/how-to-legacy-device-symm-key.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,7 +21,7 @@ If you can easily install a [hardware security module (HSM)](concepts-service.md
21
21
22
22
This tutorial also assumes that the device update takes place in a secure environment to prevent unauthorized access to the master group key or the derived device key.
23
23
24
-
This tutorial is oriented toward a Windows-based workstation. However, you can perform the procedures on Linux. For a Linux example, see [Tutorial: Provision for geolatency](how-to-provision-multitenant.md).
24
+
This tutorial is oriented toward a Windows-based workstation. However, you can perform the procedures on Linux. For a Linux example, see [Tutorial: Provision for geo latency](how-to-provision-multitenant.md).
25
25
26
26
>[!NOTE]
27
27
> If you've previously completed [Quickstart: Provision a simulated symmetric key device](quick-create-simulated-device-symm-key.md) and still have your Azure resources and development environment set up, you can proceed to [Create a symmetric key enrollment group](#create-a-symmetric-key-enrollment-group) in this tutorial.
@@ -211,7 +211,7 @@ In this section, you'll prepare a development environment that's used to build t
211
211
212
212
:::image type="content" source="./media/how-to-legacy-device-symm-key/add-symmetric-key-enrollment-group.png" alt-text="Screenshot that shows adding a symmetric key enrollment group to DPS.":::
213
213
214
-
1. Select **Save**. When you save the enrollment, IoT Hub generates the**Primary Key** and **Secondary Key** and adds them to the enrollment entry. Your symmetric key enrollment group appears as **mylegacydevices** under the *Group Name* column in the *Enrollment Groups* tab.
214
+
1. Select **Save**. When you save the enrollment, IoT Hub generates a**Primary Key** and **Secondary Key**, then adds them to the enrollment entry. Your symmetric key enrollment group appears as **mylegacydevices** under the *Group Name* column in the *Enrollment Groups* tab.
215
215
216
216
1. Open the enrollment and copy the value of the **Primary Key**. This key is your master group key.
Copy file name to clipboardExpand all lines: articles/iot-dps/how-to-provision-multitenant.md
+8-8Lines changed: 8 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
---
2
-
title: Tutorial - Provision devices for geolatency in Azure IoT Hub Device Provisioning Service
2
+
title: Tutorial - Provision devices for geo latency in Azure IoT Hub Device Provisioning Service
3
3
description: This tutorial shows how to provision devices for geolocation/geolatency with your Device Provisioning Service (DPS) instance
4
4
author: kgremban
5
5
ms.author: kgremban
@@ -9,11 +9,11 @@ ms.service: iot-dps
9
9
services: iot-dps
10
10
---
11
11
12
-
# Tutorial: Provision for geolatency
12
+
# Tutorial: Provision for geo latency
13
13
14
-
This tutorial shows how to securely provision multiple simulated symmetric key devices to a group of IoT Hubs using an [allocation policy](concepts-service.md#allocation-policy). IoT Hub Device Provisioning Service (DPS) supports a variety of allocation scenarios through its built-in allocation policies and its support for custom allocation policies.
14
+
This tutorial shows how to securely provision multiple simulated symmetric key devices to a group of IoT Hubs using an [allocation policy](concepts-service.md#allocation-policy). IoT Hub Device Provisioning Service (DPS) supports various allocation scenarios through its built-in allocation policies and its support for custom allocation policies.
15
15
16
-
Provisioning for **Geolocation/ GeoLatency** is a common allocation scenario. As a device moves between locations, network latency is improved by having the device provisioned to the IoT hub that's closest to each location. In this scenario, a group of IoT hubs, which span across regions, are selected for enrollments. The built-in **Lowest latency** allocation policy is selected for these enrollments. This policy causes the Device Provisioning Service to evaluate device latency and determine the closet IoT hub out of the group of IoT hubs.
16
+
Provisioning for *Geolocation/Geo latency* is a common allocation scenario. As a device moves between locations, network latency is improved by having the device provisioned to the IoT hub that's closest to each location. In this scenario, a group of IoT hubs, which span across regions, are selected for enrollments. The built-in **Lowest latency** allocation policy is selected for these enrollments. This policy causes the Device Provisioning Service to evaluate device latency and determine the closet IoT hub out of the group of IoT hubs.
17
17
18
18
This tutorial uses a simulated device sample from the [Azure IoT C SDK](https://github.com/Azure/azure-iot-sdk-c) to demonstrate how to provision devices across regions. You'll perform the following steps in this tutorial:
19
19
@@ -64,9 +64,9 @@ In this section, you'll create an Azure resource group, and two new regional IoT
64
64
65
65
This command may take a few minutes to complete.
66
66
67
-
## Create an enrollment for geolatency
67
+
## Create an enrollment for geo latency
68
68
69
-
In this section, you'll create a new enrollment group for the your devices.
69
+
In this section, you'll create a new enrollment group for your devices.
70
70
71
71
For simplicity, this tutorial uses [Symmetric key attestation](concepts-symmetric-key-attestation.md) with the enrollment. For a more secure solution, consider using [X.509 certificate attestation](concepts-x509-attestation.md) with a chain of trust.
72
72
@@ -252,7 +252,7 @@ For each VM:
252
252
253
253
When using symmetric key attestation with group enrollments, you don't use the enrollment group keys directly. Instead, you derive a unique key from the enrollment group key for each device. For more information, see [Group Enrollments with symmetric keys](concepts-symmetric-key-attestation.md#group-enrollments).
254
254
255
-
In this part of the tutorial, you'll generate a device key from the you group master key to compute an [HMAC-SHA256](https://wikipedia.org/wiki/HMAC) of the unique registration ID for the device. The result will then be converted into Base64 format.
255
+
In this part of the tutorial, you'll generate a device key from the group master key to compute an [HMAC-SHA256](https://wikipedia.org/wiki/HMAC) of the unique registration ID for the device. The result will then be converted into Base64 format.
256
256
257
257
>[!IMPORTANT]
258
258
>Don't include your group master key in your device code.
@@ -317,7 +317,7 @@ The sample code simulates a device boot sequence that sends the provisioning req
Uncomment the function calls, and replace the placeholder values (including the angle brackets) with the unique registration IDs and derived device keys for each device that you derived in the previous section. The keys shown below are for example purposes only. Use the keys you generated earlier.
320
+
Uncomment the function calls, and replace the placeholder values (including the angle brackets) with the unique registration IDs and derived device keys for each device that you derived in the previous section. The keys shown below are examples. Use the keys you generated earlier.
Copy file name to clipboardExpand all lines: articles/iot-dps/quick-create-simulated-device-tpm.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -157,7 +157,7 @@ In this section, you'll prepare a development environment used to build the [Azu
157
157
158
158
## Build and run the TPM device simulator
159
159
160
-
In this section, you'll build and run the TPM simulator. This simulator listens over a socket on ports 2321 and 2322. Do not close the command window. You'll need to keep this simulator running until the end of this quickstart.
160
+
In this section, you'll build and run the TPM simulator. This simulator listens over a socket on ports 2321 and 2322. Don't close the command window. You'll need to keep this simulator running until the end of this quickstart.
161
161
162
162
::: zone-end
163
163
@@ -299,7 +299,7 @@ In this section, you'll build and run the TPM simulator. This simulator listens
299
299
300
300
1. Run the [TPM](/windows/device-security/tpm/trusted-platform-module-overview) simulator to be the [HSM](https://azure.microsoft.com/blog/azure-iot-supports-new-security-hardware-to-strengthen-iot-security/) for the simulated device.
301
301
302
-
2. Select **Allow Access**. The simulator listens over a socket on ports 2321 and 2322. Do not close this command window; you will need to keep this simulator running until the end of this quickstart guide.
302
+
2. Select **Allow Access**. The simulator listens over a socket on ports 2321 and 2322. Don't close this command window; you need to keep this simulator running until the end of this quickstart guide.
@@ -449,7 +449,7 @@ In this section, you'll build and execute a sample that reads the endorsement ke
449
449
450
450
* Select **TPM** as the identity attestation *Mechanism*.
451
451
* Enter the *Endorsement key* you retrieved earlier from your HSM.
452
-
* Enter a unique *Registration ID*for your device. You will also use this registration ID when registering your device, so make a note of it for later.
452
+
* Enter a unique *Registration ID* for your device. You'll also use this registration ID when registering your device, so make a note of it for later.
453
453
* Select an IoT hub linked with your provisioning service.
454
454
* Optionally, you may provide the following information:
455
455
* Enter a unique *Device ID* (you can use the suggested **test-docs-device** or provide your own). Make sure to avoid sensitive data while naming your device. If you choose not to provide one, the registration ID will be used to identify the device instead.
@@ -481,7 +481,7 @@ In this section, you'll configure sample code to use the [Advanced Message Queui
481
481
482
482
4. Near the top of the file, find the `#define` statements for each device protocol as shown below. Make sure only `SAMPLE_AMQP` is uncommented.
483
483
484
-
Currently, the [MQTT protocol is not supported for TPM Individual Enrollment](https://github.com/Azure/azure-iot-sdk-c#provisioning-client-sdk).
484
+
Currently, the [MQTT protocol isn't supported for TPM Individual Enrollment](https://github.com/Azure/azure-iot-sdk-c#provisioning-client-sdk).
485
485
486
486
```c
487
487
//
@@ -544,7 +544,7 @@ In this section, you'll configure sample code to use the [Advanced Message Queui
544
544
cd '.\azure-iot-sdk-csharp\provisioning\device\samples\How To\TpmSample\'
545
545
```
546
546
547
-
4. Run the following command to register your device. Replace `<IdScope>` with the value for the DPS you just copied and `<RegistrationId>` with the value you used when creating the device enrollment.
547
+
4. Run the following command to register your device. Replace `<IdScope>` with the value for the DPS you copied and `<RegistrationId>` with the value you used when creating the device enrollment.
Copy file name to clipboardExpand all lines: articles/iot-dps/quick-setup-auto-provision-bicep.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -47,7 +47,7 @@ Save a copy of the Bicep file locally as **main.bicep**.
47
47
48
48
Sign in to your Azure account and select your subscription.
49
49
50
-
1.To log in Azure at the command prompt:
50
+
1.Sign in to Azure at the command prompt:
51
51
52
52
# [CLI](#tab/CLI)
53
53
@@ -167,9 +167,9 @@ Sign in to your Azure account and select your subscription.
167
167
168
168
## Clean up resources
169
169
170
-
Other quickstarts in this collection build upon this quickstart. If you plan to continue on to work with subsequent quickstarts or with the tutorials, do not clean up the resources created in this quickstart. If you do not plan to continue, you can use the Azure PowerShell or Azure CLI to delete the resource group and all of its resources.
170
+
Other quickstarts in this collection build upon this quickstart. If you plan to continue on to work with subsequent quickstarts or with the tutorials, don't clean up the resources created in this quickstart. If you don't plan to continue, you can use Azure PowerShell or Azure CLI to delete the resource group and all of its resources.
171
171
172
-
To delete a resource group and all its resources from the Azure portal, just open the resource group and click **Delete resource group** and the top.
172
+
To delete a resource group and all its resources from the Azure portal, just open the resource group and select **Delete resource group** and the top.
You can also delete resource groups and individual resources using the Azure portal, PowerShell, or REST APIs, as well as with supported platform SDKs published for Azure Resource Manager or IoT Hub Device Provisioning Service.
189
+
You can also delete resource groups and individual resources using the Azure portal, PowerShell, or REST APIs, or with supported platform SDKs.
Create a Device Provisioning Service with the [az iot dps create](/cli/azure/iot/dps#az-iot-dps-create) command.
53
53
54
-
The following example creates a provisioning service named *my-sample-dps* in the *westus* location. You will also need to choose a globally unique name for your own provisioning service. Make sure it follows proper naming conventions for an IoT Hub Device Provisioning Service: it should be 3-64 characters in length and can contain only upper or lower case alphanumeric characters or hyphens ('-').
54
+
The following example creates a provisioning service named *my-sample-dps* in the *westus* location. You'll also choose a globally unique name for your own provisioning service. Make sure it follows proper naming conventions for an IoT Hub Device Provisioning Service: it should be 3-64 characters in length and can contain only upper or lower case alphanumeric characters or hyphens ('-').
55
55
56
56
```azurecli-interactive
57
57
az iot dps create --name my-sample-dps --resource-group my-sample-resource-group --location westus
You need your IoT hub's connection string to link it with the Device Provisioning Service. Use the [az iot hub show-connection-string](/cli/azure/iot/hub#az-iot-hub-show-connection-string) command to get the connection string and use its output to set a variable that you will use when you link the two resources.
67
+
You need your IoT hub's connection string to link it with the Device Provisioning Service. Use the [az iot hub show-connection-string](/cli/azure/iot/hub#az-iot-hub-show-connection-string) command to get the connection string and use its output to set a variable that you'll use when you link the two resources.
68
68
69
69
The following example sets the *hubConnectionString* variable to the value of the connection string for the primary key of the hub's *iothubowner* policy (the `--policy-name` parameter can be used to specify a different policy). Trade out *my-sample-hub* for the unique IoT hub name you chose earlier. The command uses the Azure CLI [query](/cli/azure/query-azure-cli) and [output](/cli/azure/format-output-azure-cli#tsv-output-format) options to extract the connection string from the command output.
You can use the `echo` command to see the connection string.
76
76
77
-
```azurecli-interactive
77
+
```azurecli-interactive
78
78
echo $hubConnectionString
79
79
```
80
80
@@ -88,7 +88,7 @@ echo $hubConnectionString
88
88
89
89
## Link the IoT hub and the provisioning service
90
90
91
-
Link the IoT hub and your provisioning service with the [az iot dps linked-hub create](/cli/azure/iot/dps/linked-hub#az-iot-dps-linked-hub-create) command.
91
+
Link the IoT hub and your provisioning service with the [az iot dps linked-hub create](/cli/azure/iot/dps/linked-hub#az-iot-dps-linked-hub-create) command.
92
92
93
93
The following example links an IoT hub named *my-sample-hub* in the *westus* location and a Device Provisioning Service named *my-sample-dps*. Trade out these names for the unique IoT hub and Device Provisioning Service names you chose earlier. The command uses the connection string for your IoT hub that was stored in the *hubConnectionString* variable in the previous step.
94
94
@@ -107,13 +107,14 @@ The following example gets the details of a provisioning service named *my-sampl
107
107
```azurecli-interactive
108
108
az iot dps show --name my-sample-dps
109
109
```
110
+
110
111
The linked IoT hub is shown in the *properties.iotHubs* collection.
Other quickstarts in this collection build upon this quickstart. If you plan to continue on to work with subsequent quickstarts or with the tutorials, do not clean up the resources created in this quickstart. If you do not plan to continue, you can use the following commands to delete the provisioning service, the IoT hub or the resource group and all of its resources. Replace the names of the resources written below with the names of your own resources.
117
+
Other quickstarts in this collection build upon this quickstart. If you plan to continue on to work with subsequent quickstarts or with the tutorials, don't clean up the resources created in this quickstart. If you don't plan to continue, you can use the following commands to delete the provisioning service, the IoT hub or the resource group and all of its resources. Replace the names of the resources written below with the names of your own resources.
117
118
118
119
To delete the provisioning service, run the [az iot dps delete](/cli/azure/iot/dps#az-iot-dps-delete) command:
0 commit comments