Lernprogramm: Bereitstellen von Geräten mithilfe von Registrierungsgruppen mit symmetrischen Schlüsseln
In diesem Tutorial wird gezeigt, wie mehrere simulierte symmetrische Schlüsselgeräte mithilfe einer Registrierungsgruppe sicher für einen einzelnen IoT Hub bereitgestellt werden.
In Azure IoT Hub Device Provisioning Service werden zwei Registrierungsarten für Bereitstellungsgeräte unterstützt:
- Registrierungsgruppen: Für die Registrierung mehrerer verbundener Geräte In diesem Tutorial wird die Bereitstellung mit Registrierungsgruppen veranschaulicht.
- Individuelle Registrierung: Für die Registrierung eines einzelnen Geräts
Der Azure IoT Hub Device Provisioning Service unterstützt drei Arten der Authentifizierung für Bereitstellungsgeräte:
- X.509-Zertifikate
- TPM (Trusted Platform Module)
- Symmetrische Schlüssel – In diesem Tutorial wird der symmetrische Schlüsselnachweis vorgestellt
Einige Geräte verfügen unter Umständen nicht über ein Zertifikat, TPM oder ein anderes Sicherheitsfeature, über das das Gerät sicher identifiziert werden kann. Für solche Geräte enthält Azure IoT Hub DPS (Device Provisioning Service) einen Nachweis für symmetrische Schlüssel. Der Nachweis des symmetrischen Schlüssels kann genutzt werden, um ein Gerät anhand von eindeutigen Informationen zu identifizieren, beispielsweise über die MAC-Adresse oder eine Seriennummer.
In diesem Tutorial führen Sie Folgendes durch:
- Definieren Sie eine eindeutige Registrierungs-IDs für jedes Gerät.
- Erstellen Sie eine Registrierungsgruppe, die den Nachweis des symmetrischen Schlüssels verwendet.
- Erstellen Sie für jedes Gerät mithilfe ihrer eindeutigen Registrierungs-ID und des gemeinsamen Registrierungsgruppenschlüssels einen Geräteschlüssel.
- Stellen Sie Geräte mithilfe des Geräteschlüssels und des Beispielcodes in den Azure IoT-Geräte-SDKs bereit.
Dieses Tutorial ist auf eine Windows-basierte Workstation ausgerichtet. Allerdings können Sie die Verfahren auch unter Linux ausführen. Ein Beispiel für Linux finden Sie im Tutorial: Bereitstellen für Geolatenz.
Hinweis
Wenn Sie zuvor Schnellstart: Bereitstellen eines simulierten Geräts mit symmetrischem Schlüssel durchgearbeitet haben und noch über Ihre Azure-Ressourcen und Entwicklungsumgebung verfügen, können Sie mit Erstellen einer Registrierungsgruppe mit symmetrischem Schlüssel in diesem Tutorial fortfahren.
Voraussetzungen
Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
Führen Sie die Schritte im Artikel Einrichten des IoT Hub Device Provisioning Service im Azure-Portal aus.
Installieren Sie bei Verwendung einer Windows-Entwicklungsumgebung Visual Studio 2022 mit aktivierter Workload Desktopentwicklung mit C++. Visual Studio 2019, Visual Studio 2017 und Visual Studio 2015 werden ebenfalls unterstützt. Informationen zu Linux oder macOS finden Sie in der SDK-Dokumentation im entsprechenden Abschnitt unter Vorbereiten Ihrer Entwicklungsumgebung.
Installieren Sie das neueste CMake-Buildsystem. Überprüfen Sie unbedingt die Option, mit der die ausführbare Datei „CMake“ Ihrem Pfad hinzugefügt wird.
Wichtig
Vergewissern Sie sich vor Beginn der Installation von
CMake
, dass die erforderlichen Visual Studio-Komponenten (Visual Studio und die Workload „Desktopentwicklung mit C++“) auf dem Computer installiert sind. Sobald die Voraussetzungen erfüllt sind und der Download überprüft wurde, installieren Sie das CMake-Buildsystem. Beachten Sie auch, dass ältere Versionen des CMake-Buildsystems die in diesem Artikel verwendete Projektmappendatei nicht generieren können. Stellen Sie sicher, dass Sie die neueste Version von CMake verwenden.
Installieren Sie das .NET SDK 6.0 oder höher auf Ihrem Windows-Computer. Sie können den folgenden Befehl ausführen, um Ihre Version zu überprüfen:
dotnet --info
- Installieren Sie Node.js v4.0+.
- Installieren Sie Python 3.7 oder höher auf Ihrem Windows-Computer. Durch Ausführen von
python --version
können Sie überprüfen, welche Python-Version verwendet wird.
Installieren Sie das Java SE Development Kit 8 oder höher auf Ihrem Computer.
Laden Sie Maven herunter, und installieren Sie es.
- Installieren Sie die aktuelle Version von Git. Stellen Sie sicher, dass Git den Umgebungsvariablen hinzugefügt wurde, auf die das Befehlsfenster Zugriff hat. Unter den Git-Clienttools von Software Freedom Conservancy finden Sie die neueste Version der zu installierenden
git
-Tools. Hierzu zählt auch die Befehlszeilen-App Git Bash, über die Sie mit Ihrem lokalen Git-Repository interagieren können.
Vorbereiten Ihrer Entwicklungsumgebung
In diesem Abschnitt bereiten Sie eine Entwicklungsumgebung vor, die zum Erstellen des Azure IoT-Geräte-SDK für C verwendet wird. Mit dem Beispielcode wird das Gerät während der Startsequenz des Geräts bereitgestellt.
Öffnen Sie einen Webbrowser, und wechseln Sie zur Releaseseite für das Azure IoT C SDK.
Kopieren Sie den Tagnamen für das aktuelle Release des Azure IoT C SDK, z. B.:
lts_03_2024
.Öffnen Sie eine Windows-Eingabeaufforderung und führen Sie die folgenden Befehle zum Klonen des aktuellen Releases des GitHub-Repositorys Azure IoT-Geräte-SDK für C aus. Ersetzen Sie
<release-tag>
durch das Tag, das Sie im vorherigen Schritt kopiert haben.git clone -b <release-tag> https://github.com/Azure/azure-iot-sdk-c.git cd azure-iot-sdk-c git submodule update --init
Dieser Vorgang kann mehrere Minuten dauern.
Führen Sie nach Abschluss des Vorgangs die folgenden Befehle aus dem Verzeichnis
azure-iot-sdk-c
aus:mkdir cmake cd cmake
Im Codebeispiel wird ein symmetrischer Schlüssel verwendet, um den erforderlichen Nachweis zu erbringen. Erstellen Sie mit dem folgenden Befehl eine spezifische SDK-Version für Ihre Entwicklungsclientplattform, die den Client für die Gerätebereitstellung enthält.
cmake -Dhsm_type_symm_key:BOOL=ON -Duse_prov_client:BOOL=ON ..
Tipp
Falls
cmake
Ihren C++-Compiler nicht findet, treten beim Ausführen des obigen Befehls unter Umständen Buildfehler auf. Führen Sie den Befehl in diesem Fall an der Visual Studio-Eingabeaufforderung aus.Nach der erfolgreichen Erstellung ähneln die letzten Ausgabezeilen der folgenden Ausgabe:
$ cmake -Dhsm_type_symm_key:BOOL=ON -Duse_prov_client:BOOL=ON .. -- Building for: Visual Studio 16 2019 -- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.22621. -- The C compiler identification is MSVC 19.29.30146.0 -- The CXX compiler identification is MSVC 19.29.30146.0 ... -- Configuring done -- Generating done -- Build files have been written to: C:/azure-iot-sdk-c/cmake
Öffnen Sie eine Eingabeaufforderung oder einen Git Bash-Terminal.
Klonen Sie mit dem folgenden Befehl das GitHub-Repository mit dem Azure IoT SDK für C#:
git clone https://github.com/Azure/azure-iot-sdk-csharp.git
Öffnen Sie eine Eingabeaufforderung oder einen Git Bash-Terminal.
Klonen Sie mithilfe des folgenden Befehls das GitHub-Repository mit dem Azure IoT SDK für Node.js:
git clone https://github.com/Azure/azure-iot-sdk-node.git --recursive
Öffnen Sie eine Eingabeaufforderung oder einen Git Bash-Terminal.
Klonen Sie mit dem folgenden Befehl das GitHub-Repository mit dem Azure IoT-Geräte-SDK für Python:
git clone -b v2 https://github.com/Azure/azure-iot-sdk-python.git --recursive
Hinweis
Die in diesem Tutorial verwendeten Beispiele befinden sich im v2-Branch des Repositorys „azure-iot-sdk-python“. V3 des Python SDK ist für die Verwendung in der Betaversion verfügbar. Informationen zum Aktualisieren von V2-Codebeispielen für die Verwendung einer V3-Version des Python SDK finden Sie im Migrationsleitfaden zum Azure IoT-Geräte-SDK für Python.
Öffnen Sie eine Eingabeaufforderung oder einen Git Bash-Terminal.
Klonen Sie mit dem folgenden Befehl das GitHub-Repository mit dem Azure IoT SDK für Java:
git clone https://github.com/Azure/azure-iot-sdk-java.git --recursive
Navigieren Sie zum Stammverzeichnis
azure-iot-sdk-java
, und erstellen Sie das Projekt, um alle erforderlichen Pakete herunterzuladen. Dieser Schritt kann mehrere Minuten dauern.cd azure-iot-sdk-java mvn install -DskipTests=true
Erstellen einer Registrierungsgruppe mit symmetrischem Schlüssel
Melden Sie sich beim Azure-Portal an, und navigieren Sie zur Dienstinstanz für die Gerätebereitstellung.
Wählen Sie im Navigationsmenü im Abschnitt Einstellungen die Option Registrierungen verwalten aus.
Wählen Sie Registrierungsgruppe hinzufügen aus.
Geben Sie auf der Registerkarte Registrierung + Bereitstellung der Seite Registrierungsgruppe hinzufügen die folgenden Informationen an, um die Details der Registrierungsgruppe zu konfigurieren:
Feld Beschreibung Nachweis Wählen Sie Symmetrischer Schlüssel als Nachweismechanismus aus. Einstellungen für symmetrische Schlüssel Aktivieren Sie das Kontrollkästchen Symmetrische Schlüssel automatisch generieren, wenn Sie zufällig generierte Schlüssel verwenden möchten. Deaktivieren Sie dieses Kontrollkästchen, wenn Sie Ihre eigenen Schlüssel bereitstellen möchten. Gruppenname Geben Sie einen Namen für die Gerätegruppe an. Beim Namen der Registrierungsgruppe handelt es sich um eine Zeichenfolge (bis zu 128 Zeichen lang) alphanumerischer Zeichen ohne Beachtung der Groß-/Kleinschreibung plus diese Sonderzeichen: '-'
,'.'
,'_'
,':'
. Das letzte Zeichen muss alphanumerisch oder ein Bindestrich ('-'
) sein.Bereitstellungsstatus Aktivieren Sie das Kontrollkästchen Diese Registrierung aktivieren, wenn diese Registrierungsgruppe für die Bereitstellung von Geräten verfügbar sein soll. Deaktivieren Sie dieses Kontrollkästchen, wenn die Gruppe deaktiviert werden soll. Sie können diese Einstellung später ändern. Richtlinie für die erneute Bereitstellung Wählen Sie eine Richtlinie für die erneute Bereitstellung aus, die angibt, wie DPS Geräte, die eine erneute Bereitstellung anfordern, behandeln soll. Weitere Informationen finden Sie unter Richtlinie zur erneuten Bereitstellung. Wählen Sie Weiter: IoT Hubs aus.
Geben Sie auf der Registerkarte IoT-Hubs der Seite Registrierungsgruppe hinzufügen die folgenden Informationen an, um zu bestimmen, für welche IoT-Hubs die Registrierungsgruppe Geräte bereitstellen kann:
Feld Beschreibung Ziel-IoT-Hubs Wählen Sie einen oder mehrere Ihrer verknüpften IoT-Hubs aus, oder fügen Sie einem IoT-Hub einen neuen Link hinzu. Weitere Informationen zum Verknüpfen von IoT-Hubs mit Ihrer DPS-Instanz finden Sie unter Verknüpfen und Verwalten von IoT-Hubs. Zuordnungsrichtlinie Wenn Sie mehrere verknüpfte IoT-Hubs ausgewählt haben, wählen Sie aus, wie Sie den verschiedenen Hubs Geräte zuweisen möchten. Weitere Informationen zu Zuordnungsrichtlinien finden Sie unter Verwenden von Zuordnungsrichtlinien.
Wenn Sie nur einen verknüpften IoT-Hub ausgewählt haben, empfehlen wir die Verwendung der Richtlinie Gleichmäßig gewichtete Verteilung.Wählen Sie Weiter: Geräteeinstellungen aus.
Geben Sie auf der Registerkarte Geräteeinstellungen der Seite Registrierungsgruppe hinzufügen die folgenden Informationen an, um zu definieren, wie neu bereitgestellte Geräte konfiguriert werden sollen:
Feld Beschreibung IoT Edge Aktivieren Sie IoT Edge auf bereitgestellten Geräten aktivieren, wenn auf allen über diese Gruppe bereitgestellten Geräten Azure IoT Edge ausgeführt wird. Deaktivieren Sie dieses Kontrollkästchen, wenn diese Gruppe nur für IoT Edge-fähige Geräte verwendet werden soll. Entweder sind alle Geräte in einer Gruppe IoT Edge-fähig oder keines. Gerätetags Verwenden Sie dieses Textfeld, um alle Tags anzugeben, die Sie auf den Gerätezwillingen der bereitgestellten Geräte anwenden möchten. Gewünschte Eigenschaften Verwenden Sie dieses Textfeld, um alle gewünschten Eigenschaften anzugeben, die Sie auf den Gerätezwillingen der bereitgestellten Geräte anwenden möchten. Weitere Informationen finden Sie unter Verstehen und Verwenden von Gerätezwillingen in IoT Hub.
Klicken Sie auf Weiter: Überprüfen + erstellen.
Überprüfen Sie auf der Registerkarte Überprüfen + erstellen all Ihre Werte, und wählen Sie dann Erstellen aus.
Wenn Sie die Registrierungsgruppe erstellen, generiert DPS einen Primärschlüssel und einen Sekundärschlüssel und fügt sie dann dem Registrierungseintrag hinzu. Ihre Registrierungsgruppe mit symmetrischem Schlüssel wird in der Spalte Gruppenname auf der Registerkarte Registrierungsgruppen angezeigt.
Öffnen Sie die Registrierung, und kopieren Sie den Wert des von Ihnen generierten Primärschlüssels. Dieser Schlüssel ist Ihr Gruppenschlüssel.
Auswählen einer eindeutigen Registrierungs-ID für das Gerät
Eine eindeutige Registrierungs-ID muss definiert werden, um jedes Gerät zu identifizieren. Sie können die MAC-Adresse, Seriennummer oder eindeutige Informationen vom Gerät verwenden.
In diesem Beispiel wird eine Kombination aus MAC-Adresse und Seriennummer genutzt, um die folgende Zeichenfolge für eine Registrierungs-ID zu bilden.
sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6
Erstellen Sie eindeutige Registrierungs-IDs für jedes Gerät. Bei der Registrierungs-ID handelt es sich um eine Zeichenfolge (bis zu 128 Zeichen lang) alphanumerischer Zeichen ohne Beachtung der Groß-/Kleinschreibung plus die folgenden Sonderzeichen: - . _ :
. Das letzte Zeichen muss alphanumerisch oder ein Bindestrich (-
) sein.
Ableiten eines Geräteschlüssels
Verwenden Sie zum Generieren von Geräteschlüsseln den Primärschlüssel der Registrierungsgruppe, um einen HMAC-SHA256-Hashwert der Registrierungs-ID für jedes Gerät zu berechnen. Das Ergebnis wird dann für jedes Gerät in das Base64-Format konvertiert.
Warnung
Der Gerätecode für jedes Gerät sollte nur den abgeleiteten Geräteschlüssel für dieses Gerät enthalten. Fügen Sie Ihren Gruppen-Primärschlüssel nicht in Ihren Gerätecode ein. Ein kompromittierter Gruppenschlüssel kann die Sicherheit aller Geräte gefährden, die mit ihm authentifiziert werden.
Die IoT-Erweiterung für die Azure CLI stellt den Befehl az iot dps enrollment-group compute-device-key zum Generieren abgeleiteter Geräteschlüssel bereit. Dieser Befehl kann sowohl von Windows-basierten als auch von Linux-Systemen verwendet werden.
Ersetzen Sie den Wert des Parameters --key
durch den Primärschlüssel aus Ihrer Registrierungsgruppe.
Ersetzen Sie den Wert des Parameters --registration-id
durch Ihre Registrierungs-ID.
az iot dps enrollment-group compute-device-key --key <group_primary_key> --registration-id <device_registration_id>
Beispielergebnis:
"Jsm0lyGpjaVYVP2g3FnmnmG9dI/9qU24wNoykUmermc="
Jedes Gerät verwendet den abgeleiteten Geräteschlüssel mit der eindeutigen Registrierungs-ID, um während der Bereitstellung den Nachweis symmetrischer Schlüssel mit der Registrierungsgruppe durchzuführen.
Vorbereiten und Ausführen des Gerätebereitstellungscodes
In diesem Abschnitt aktualisieren Sie den Beispielcode für das Gerät, um die Startsequenz des Geräts an Ihre Gerätebereitstellungs-Dienstinstanz zu senden. Diese Startsequenz bewirkt, dass das Gerät erkannt, authentifiziert und einem IoT-Hub zugewiesen wird, der mit der Gerätebereitstellungs-Dienstinstanz verknüpft ist.
Mit dem Beispielcode für die Bereitstellung werden nacheinander die folgenden Aufgaben durchgeführt:
Authentifiziert Ihr Gerät mit den folgenden drei Parametern bei Ihrer Device Provisioning-Ressource:
- ID-Bereich Ihrer Device Provisioning Service-Instanz
- Registrierungs-ID für Ihre Geräteregistrierung
- Abgeleiteter Geräteschlüssel für Ihr Gerät
Weist das Gerät dem IoT-Hub zu, der bereits mit Ihrer Device Provisioning Service-Instanz verknüpft ist.
Gehen Sie wie folgt vor, um das Bereitstellungsbeispiel mit Ihren Geräteinformationen zu aktualisieren und auszuführen:
Wählen Sie im Hauptmenü Ihrer Device Provisioning Service-Instanz die Option Übersicht aus.
Kopieren Sie den Wert von ID-Bereich.
Öffnen Sie in Visual Studio die Projektmappendatei azure_iot_sdks.sln, die zuvor durch das Ausführen von CMake generiert wurde. Die Projektmappendatei befindet sich am folgenden Speicherort:
\azure-iot-sdk-c\cmake\azure_iot_sdks.sln
Tipp
Wurde die Datei nicht in Ihrem CMake-Verzeichnis erstellt, vergewissern Sie sich, dass Sie eine aktuelle Version des CMake-Buildsystems verwendet haben.
Navigieren Sie im Visual Studio-Fenster Projektmappen-Explorer zum Ordner Provision_Samples. Erweitern Sie das Beispielprojekt prov_dev_client_sample. Erweitern Sie Quelldateien, und öffnen Sie prov_dev_client_sample.c.
Suchen Sie die Konstante
id_scope
, und ersetzen Sie den Wert durch den Wert von ID-Bereich, den Sie im Azure-Portal kopiert haben.static const char* id_scope = "0ne00002193";
Suchen Sie die Definition für die Funktion
main()
in der gleichen Datei. Stellen Sie sicher, dass die Variablehsm_type
wie unten dargestellt aufSECURE_DEVICE_TYPE_SYMMETRIC_KEY
festgelegt ist:SECURE_DEVICE_TYPE hsm_type; //hsm_type = SECURE_DEVICE_TYPE_TPM; //hsm_type = SECURE_DEVICE_TYPE_X509; hsm_type = SECURE_DEVICE_TYPE_SYMMETRIC_KEY;
Suchen Sie in prov_dev_client_sample.c den auskommentierten Aufruf von
prov_dev_set_symmetric_key_info()
.// Set the symmetric key if using they auth type //prov_dev_set_symmetric_key_info("<symm_registration_id>", "<symmetric_Key>");
Heben Sie die Auskommentierung des Funktionsaufrufs auf, und ersetzen Sie die Platzhalterwerte (einschließlich der spitzen Klammern) durch die Registrierungs-ID, die Sie in Auswählen einer eindeutigen Registrierungs-ID für das Gerät ausgewählt haben, und den abgeleiteten Geräteschlüssel, den Sie in Ableiten eines Geräteschlüssels generiert haben.
// Set the symmetric key if using they auth type prov_dev_set_symmetric_key_info("sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6", "Jsm0lyGpjaVYVP2g3FnmnmG9dI/9qU24wNoykUmermc=");
Achtung
Beachten Sie, dass bei diesem Schritt der abgeleitete Geräteschlüssel weiterhin als Teil des Images für jedes Gerät vorliegt, was nicht den empfohlenen Best Practices für die Sicherheit entspricht. Dies ist ein Grund, warum zwischen Sicherheit und Benutzerfreundlichkeit häufig ein Kompromiss gefunden werden muss. Sie müssen die Sicherheit Ihrer Geräte gemäß Ihren eigenen Anforderungen umfassend überprüfen.
Speichern Sie die Datei .
Klicken Sie mit der rechten Maustaste auf das Projekt prov_dev_client_sample, und wählen Sie Als Startprojekt festlegen aus.
Wählen Sie im Visual Studio-Menü die Option Debuggen>Starten ohne Debugging aus, um die Projektmappe auszuführen. Wählen Sie in der Aufforderung zum erneuten Erstellen des Projekts Ja aus, um das Projekt vor der Ausführung neu zu erstellen.
Die folgende Beispielausgabe zeigt die erfolgreiche Verbindungsherstellung des Geräts mit der Provisioning Service-Instanz, um einem IoT-Hub zugewiesen zu werden:
Provisioning API Version: 1.9.1 Registering Device Provisioning Status: PROV_DEVICE_REG_STATUS_CONNECTED Provisioning Status: PROV_DEVICE_REG_STATUS_ASSIGNING Registration Information received from service: contoso-hub-2.azure-devices.net, deviceId: sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6 Press enter key to exit:
Mit dem Beispielcode für die Bereitstellung werden die folgenden Aufgaben durchgeführt:
Authentifiziert Ihr Gerät mit den folgenden drei Parametern bei Ihrer Device Provisioning-Ressource:
- ID-Bereich Ihrer Device Provisioning Service-Instanz
- Registrierungs-ID für Ihre Geräteregistrierung
- Abgeleiteter Geräteschlüssel für Ihr Gerät
Weist das Gerät dem IoT-Hub zu, der bereits mit Ihrer Device Provisioning Service-Instanz verknüpft ist.
Sendet eine Testnachricht an den IoT-Hub.
Gehen Sie wie folgt vor, um das Bereitstellungsbeispiel mit Ihren Geräteinformationen zu aktualisieren und auszuführen:
Wählen Sie im Hauptmenü Ihrer Device Provisioning Service-Instanz die Option Übersicht aus.
Kopieren Sie den Wert von ID-Bereich.
Öffnen Sie eine Eingabeaufforderung, und wechseln Sie im geklonten SDK-Repository zu SymmetricKeySample:
cd .\azure-iot-sdk-csharp\provisioning\device\samples\how to guides\SymmetricKeySample
Öffnen Sie im Ordner SymmetricKeySample die Datei Parameters.cs in einem Text-Editor. Diese Datei enthält die vom Beispiel referenzierten Parameter. Beim Ausführen des Beispiels werden nur die ersten drei erforderlichen Parameter in diesem Artikel verwendet. Sehen Sie sich den Code in dieser Datei an. Es sind keine Änderungen erforderlich.
Parameter Erforderlich BESCHREIBUNG --i
oder--IdScope
Richtig Der ID-Bereich der DPS-Instanz --r
oder--RegistrationId
Richtig Die Registrierungs-ID für das Gerät. Bei der Registrierungs-ID handelt es sich um eine Zeichenfolge (bis zu 128 Zeichen lang) alphanumerischer Zeichen ohne Beachtung der Groß-/Kleinschreibung plus diese Sonderzeichen: '-'
,'.'
,'_'
,':'
. Das letzte Zeichen muss alphanumerisch oder ein Bindestrich ('-'
) sein.--p
oder--PrimaryKey
Richtig Der Primärschlüssel einer einzelnen Registrierung oder der abgeleitete Geräteschlüssel einer Gruppenregistrierung. --g
oder--GlobalDeviceEndpoint
Falsch Der globale Endpunkt, mit dem Geräte eine Verbindung herstellen sollen. Der Standardwert lautet global.azure-devices-provisioning.net
.--t
oder--TransportType
Falsch Der Transporttyp, der für die Kommunikation mit der Gerätebereitstellungsinstanz verwendet werden soll. Wird standardmäßig auf Mqtt
festgelegt. Mögliche Werte:Mqtt
,Mqtt_WebSocket_Only
,Mqtt_Tcp_Only
,Amqp
,Amqp_WebSocket_Only
,Amqp_Tcp_only
undHttp1
Öffnen Sie im Ordner SymmetricKeySample die Datei ProvisioningDeviceClientSample.cs in einem Text-Editor. Diese Datei verdeutlicht, wie die SecurityProviderSymmetricKey-Klasse zusammen mit der ProvisioningDeviceClient-Klasse funktioniert, um Ihr simuliertes Gerät mit symmetrischem Schlüssel bereitzustellen. Sehen Sie sich den Code in dieser Datei an. Es sind keine Änderungen erforderlich.
Erstellen Sie den Code, und führen Sie ihn mithilfe des folgenden Befehls aus:
- Ersetzen Sie
<id-scope>
durch den ID-Bereich, den Sie im Azure-Portal kopiert haben. - Ersetzen Sie
<registration-id>
durch die Registrierungs-ID, die Sie in Auswählen einer eindeutigen Registrierungs-ID für das Gerät ausgewählt haben. - Ersetzen Sie
<primarykey>
durch den abgeleiteten Geräteschlüssel, den Sie generiert haben.
dotnet run --i <id-scope> --r <registration-id> --p <primarykey>
- Ersetzen Sie
Es sollte eine Ausgabe ähnlich der folgenden angezeigt werden. Die Zeichenfolge „TestMessage“ wird als Testnachricht an den Hub gesendet.
D:\azure-iot-sdk-csharp\provisioning\device\samples\how to guides\SymmetricKeySample>dotnet run --i 0ne00000A0A --r sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6 --p sbDDeEzRuEuGKag+kQKV+T1QGakRtHpsERLP0yPjwR93TrpEgEh/Y07CXstfha6dhIPWvdD1nRxK5T0KGKA+nQ== Initializing the device provisioning client... Initialized for registration Id sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6. Registering with the device provisioning service... Registration status: Assigned. Device sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6 registered to contoso-hub-2.azure-devices.net. Creating symmetric key authentication for IoT Hub... Testing the provisioned device with IoT Hub... Sending a telemetry message... Finished.
Mit dem Beispielcode für die Bereitstellung werden nacheinander die folgenden Aufgaben durchgeführt:
Authentifiziert Ihr Gerät mit den folgenden vier Parametern bei Ihrer Device Provisioning-Ressource:
PROVISIONING_HOST
PROVISIONING_IDSCOPE
PROVISIONING_REGISTRATION_ID
PROVISIONING_SYMMETRIC_KEY
Weist das Gerät dem IoT-Hub zu, der bereits mit Ihrer Device Provisioning Service-Instanz verknüpft ist.
Sendet eine Testtelemetrienachricht an den IoT-Hub.
Gehen Sie wie folgt vor, um das Bereitstellungsbeispiel mit Ihren Geräteinformationen zu aktualisieren und auszuführen:
Wählen Sie im Hauptmenü Ihrer Device Provisioning Service-Instanz die Option Übersicht aus.
Kopieren Sie den Wert von ID-Bereich.
Öffnen Sie eine Eingabeaufforderung für die Ausführung von Node.js-Befehlen, und navigieren Sie zum folgenden Verzeichnis:
cd azure-iot-sdk-node\provisioning\device\samples
Öffnen Sie im Ordner provisioning/device/samples die Datei register_symkey.js, und überprüfen Sie den Code.
Das Beispiel ist standardmäßig auf MQTT als Transportprotokoll festgelegt. Wenn Sie ein anderes Protokoll verwenden möchten, kommentieren Sie die folgende Zeile aus, und heben Sie die Auskommentierung für das geeignete Protokoll aus.
var ProvisioningTransport = require('azure-iot-provisioning-device-mqtt').Mqtt;
Beachten Sie außerdem, dass mit dem Beispielcode benutzerdefinierte Nutzdaten festgelegt werden:
provisioningClient.setProvisioningPayload({a: 'b'});
Sie können diesen Code auskommentieren, da er für dieses Tutorial nicht benötigt wird. Sie können eine benutzerdefinierte Payload verwenden, falls Sie einen benutzerdefinierten Zuordnungswebhook verwenden, um Ihr Gerät einem IoT-Hub zuzuweisen. Weitere Informationen finden Sie im Tutorial: Verwenden benutzerdefinierter Zuordnungsrichtlinien.
Mit der Methode
provisioningClient.register()
wird die Registrierung Ihres Geräts versucht.Führen Sie an der Eingabeaufforderung die folgenden Befehle aus, um die vom Beispiel verwendeten Umgebungsvariablen festzulegen:
- Der erste Befehl legt die Umgebungsvariable
PROVISIONING_HOST
auf den globalen Geräteendpunkt fest. Dieser Endpunkt ist für alle DPS-Instanzen identisch. - Ersetzen Sie
<id-scope>
durch den ID-Bereich, den Sie im Azure-Portal kopiert haben. - Ersetzen Sie
<registration-id>
durch die Registrierungs-ID, die Sie in Auswählen einer eindeutigen Registrierungs-ID für das Gerät ausgewählt haben. - Ersetzen Sie
<derived-device-key>
durch den abgeleiteten Geräteschlüssel, den Sie in Ableiten eines Geräteschlüssels generiert haben.
set PROVISIONING_HOST=global.azure-devices-provisioning.net
set PROVISIONING_IDSCOPE=<id-scope>
set PROVISIONING_REGISTRATION_ID=<registration-id>
set PROVISIONING_SYMMETRIC_KEY=<derived-device-key>
- Der erste Befehl legt die Umgebungsvariable
Erstellen Sie den Beispielcode, und führen Sie ihn aus, indem Sie die folgenden Befehle verwenden:
npm install
node register_symkey.js
Nun sollte in etwa die folgende Ausgabe angezeigt werden. Die Zeichenfolge „Hallo Welt“ wird als Testnachricht an den Hub gesendet.
registration succeeded assigned hub=contoso-hub-2.azure-devices.net deviceId=sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6 payload=undefined Client connected send status: MessageEnqueued
Mit dem Beispielcode für die Bereitstellung werden nacheinander die folgenden Aufgaben durchgeführt:
Authentifiziert Ihr Gerät mit den folgenden vier Parametern bei Ihrer Device Provisioning-Ressource:
PROVISIONING_HOST
PROVISIONING_IDSCOPE
PROVISIONING_REGISTRATION_ID
PROVISIONING_SYMMETRIC_KEY
Weist das Gerät dem IoT-Hub zu, der bereits mit Ihrer Device Provisioning Service-Instanz verknüpft ist.
Sendet eine Testnachricht an den IoT-Hub.
Gehen Sie wie folgt vor, um das Bereitstellungsbeispiel mit Ihren Geräteinformationen zu aktualisieren und auszuführen:
Wählen Sie im Hauptmenü Ihrer Device Provisioning Service-Instanz die Option Übersicht aus.
Kopieren Sie den Wert von ID-Bereich.
Öffnen Sie eine Eingabeaufforderung, und navigieren Sie zum Verzeichnis mit der Beispieldatei provision_symmetric_key.py.
cd azure-iot-sdk-python\samples\async-hub-scenarios
Führen Sie an der Eingabeaufforderung die folgenden Befehle aus, um die vom Beispiel verwendeten Umgebungsvariablen festzulegen:
- Der erste Befehl legt die Umgebungsvariable
PROVISIONING_HOST
auf den globalen Geräteendpunkt fest. Dieser Endpunkt ist für alle DPS-Instanzen identisch. - Ersetzen Sie
<id-scope>
durch den ID-Bereich, den Sie im Azure-Portal kopiert haben. - Ersetzen Sie
<registration-id>
durch die Registrierungs-ID, die Sie in Auswählen einer eindeutigen Registrierungs-ID für das Gerät ausgewählt haben. - Ersetzen Sie
<derived-device-key>
durch den abgeleiteten Geräteschlüssel, den Sie in Ableiten eines Geräteschlüssels generiert haben.
set PROVISIONING_HOST=global.azure-devices-provisioning.net
set PROVISIONING_IDSCOPE=<id-scope>
set PROVISIONING_REGISTRATION_ID=<registration-id>
set PROVISIONING_SYMMETRIC_KEY=<derived-device-key>
- Der erste Befehl legt die Umgebungsvariable
Installieren Sie die Bibliothek azure-iot-device, indem Sie den folgenden Befehl ausführen.
pip install azure-iot-device
Führen Sie den Python-Beispielcode in der Datei provision_symmetric_key.py aus.
python provision_symmetric_key.py
Nun sollte in etwa die folgende Ausgabe angezeigt werden. Zu Testzwecken werden auch einige Beispielnachrichten mit Telemetriedaten zur Windgeschwindigkeit an den Hub gesendet.
D:\azure-iot-sdk-python\samples\async-hub-scenarios>python provision_symmetric_key.py The complete registration result is sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6 contoso-hub-2.azure-devices.net initialAssignment null Will send telemetry from the provisioned device sending message #1 sending message #2 sending message #3 sending message #4 sending message #5 sending message #6 sending message #7 sending message #8 sending message #9 sending message #10 done sending message #1 done sending message #2 done sending message #3 done sending message #4 done sending message #5 done sending message #6 done sending message #7 done sending message #8 done sending message #9 done sending message #10
Mit dem Beispielcode für die Bereitstellung werden nacheinander die folgenden Aufgaben durchgeführt:
Authentifiziert Ihr Gerät mit den folgenden vier Parametern bei Ihrer Device Provisioning-Ressource:
GLOBAL_ENDPOINT
SCOPE_ID
REGISTRATION_ID
SYMMETRIC_KEY
Weist das Gerät dem IoT-Hub zu, der bereits mit Ihrer Device Provisioning Service-Instanz verknüpft ist.
Sendet eine Testnachricht an den IoT-Hub.
Gehen Sie wie folgt vor, um das Bereitstellungsbeispiel mit Ihren Geräteinformationen zu aktualisieren und auszuführen:
Wählen Sie im Hauptmenü Ihrer Device Provisioning Service-Instanz die Option Übersicht aus.
Kopieren Sie den Wert von ID-Bereich.
Öffnen Sie den Beispielcode für das Java-Gerät zur Bearbeitung. Der vollständige Pfad zum Beispielcode für das Gerät lautet:
azure-iot-sdk-java/provisioning/provisioning-samples/provisioning-symmetrickey-individual-sample/src/main/java/samples/com/microsoft/azure/sdk/iot/ProvisioningSymmetricKeyIndividualEnrollmentSample.java
Legen Sie für Ihre DPS- und Geräteregistrierung den Wert der folgenden Variablen fest:
- Ersetzen Sie
[Your scope ID here]
durch den ID-Bereich, den Sie im Azure-Portal kopiert haben. - Ersetzen Sie
[Your Provisioning Service Global Endpoint here]
durch den globalen Geräteendpunkt: global.azure-devices-provisioning.net. Dieser Endpunkt ist für alle DPS-Instanzen identisch. - Ersetzen Sie
[Enter your Symmetric Key here]
durch den abgeleiteten Geräteschlüssel, den Sie in Ableiten eines Geräteschlüssels generiert haben. - Ersetzen Sie
[Enter your Registration ID here]
durch die Registrierungs-ID, die Sie in Auswählen einer eindeutigen Registrierungs-ID für das Gerät ausgewählt haben.
private static final String SCOPE_ID = "[Your scope ID here]"; private static final String GLOBAL_ENDPOINT = "[Your Provisioning Service Global Endpoint here]"; private static final String SYMMETRIC_KEY = "[Enter your Symmetric Key here]"; private static final String REGISTRATION_ID = "[Enter your Registration ID here]";
Achtung
Beachten Sie, dass bei diesem Schritt der abgeleitete Geräteschlüssel weiterhin als Teil des Images für jedes Gerät vorliegt, was nicht den empfohlenen Best Practices für die Sicherheit entspricht. Dies ist ein Grund, warum zwischen Sicherheit und Benutzerfreundlichkeit häufig ein Kompromiss gefunden werden muss. Sie müssen die Sicherheit Ihrer Geräte gemäß Ihren eigenen Anforderungen umfassend überprüfen.
- Ersetzen Sie
Öffnen Sie eine Eingabeaufforderung für den Buildvorgang. Navigieren Sie zum Projektordner mit dem Bereitstellungsbeispiel im Java-SDK-Repository.
cd azure-iot-sdk-java\provisioning\provisioning-device-client-samples\provisioning-symmetrickey-individual-sample
Erstellen Sie das Beispiel.
mvn clean install
Navigieren Sie zum Ordner
target
, und führen Sie die erstellte.jar
-Datei aus. Ersetzen Sie im Befehljava
den Platzhalter{version}
durch die Version im Dateinamen.jar
auf Ihrem Computer.cd target java -jar ./provisioning-symmetrickey-individual-sample-{version}-with-deps.jar
Nun sollte in etwa die folgende Ausgabe angezeigt werden.
Starting... Beginning setup. WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance. 2022-10-07 18:14:48,388 DEBUG (main) [com.microsoft.azure.sdk.iot.provisioning.device.ProvisioningDeviceClient] - Initialized a ProvisioningDeviceClient instance using SDK version 2.0.2 2022-10-07 18:14:48,390 DEBUG (main) [com.microsoft.azure.sdk.iot.provisioning.device.ProvisioningDeviceClient] - Starting provisioning thread... Waiting for Provisioning Service to register 2022-10-07 18:14:48,392 INFO (global.azure-devices-provisioning.net-002edcf5-CxnPendingConnectionId-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Opening the connection to device provisioning service... 2022-10-07 18:14:48,518 INFO (global.azure-devices-provisioning.net-002edcf5-Cxn002edcf5-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Connection to device provisioning service opened successfully, sending initial device registration message 2022-10-07 18:14:48,521 INFO (global.azure-devices-provisioning.net-002edcf5-Cxn002edcf5-azure-iot-sdk-RegisterTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.RegisterTask] - Authenticating with device provisioning service using symmetric key 2022-10-07 18:14:49,252 INFO (global.azure-devices-provisioning.net-002edcf5-Cxn002edcf5-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Waiting for device provisioning service to provision this device... 2022-10-07 18:14:49,253 INFO (global.azure-devices-provisioning.net-002edcf5-Cxn002edcf5-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Current provisioning status: ASSIGNING 2022-10-07 18:14:52,459 INFO (global.azure-devices-provisioning.net-002edcf5-Cxn002edcf5-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Device provisioning service assigned the device successfully IotHUb Uri : contoso-hub-2.azure-devices.net Device ID : sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6 2022-10-07 18:14:58,424 INFO (main) [com.microsoft.azure.sdk.iot.device.transport.ExponentialBackoffWithJitter] - NOTE: A new instance of ExponentialBackoffWithJitter has been created with the following properties. Retry Count: 2147483647, Min Backoff Interval: 100, Max Backoff Interval: 10000, Max Time Between Retries: 100, Fast Retry Enabled: true 2022-10-07 18:14:58,436 INFO (main) [com.microsoft.azure.sdk.iot.device.transport.ExponentialBackoffWithJitter] - NOTE: A new instance of ExponentialBackoffWithJitter has been created with the following properties. Retry Count: 2147483647, Min Backoff Interval: 100, Max Backoff Interval: 10000, Max Time Between Retries: 100, Fast Retry Enabled: true 2022-10-07 18:14:58,440 DEBUG (main) [com.microsoft.azure.sdk.iot.device.DeviceClient] - Initialized a DeviceClient instance using SDK version 2.1.1 2022-10-07 18:14:58,450 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.MqttIotHubConnection] - Opening MQTT connection... 2022-10-07 18:14:58,471 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.Mqtt] - Sending MQTT CONNECT packet... 2022-10-07 18:14:59,314 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.Mqtt] - Sent MQTT CONNECT packet was acknowledged 2022-10-07 18:14:59,315 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.Mqtt] - Sending MQTT SUBSCRIBE packet for topic devices/sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6/messages/devicebound/# 2022-10-07 18:14:59,378 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.Mqtt] - Sent MQTT SUBSCRIBE packet for topic devices/sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6/messages/devicebound/# was acknowledged 2022-10-07 18:14:59,379 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.MqttIotHubConnection] - MQTT connection opened successfully 2022-10-07 18:14:59,381 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - The connection to the IoT Hub has been established 2022-10-07 18:14:59,383 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Updating transport status to new status CONNECTED with reason CONNECTION_OK 2022-10-07 18:14:59,389 DEBUG (main) [com.microsoft.azure.sdk.iot.device.DeviceIO] - Starting worker threads 2022-10-07 18:14:59,392 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Invoking connection status callbacks with new status details 2022-10-07 18:14:59,395 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Client connection opened successfully 2022-10-07 18:14:59,404 INFO (main) [com.microsoft.azure.sdk.iot.device.DeviceClient] - Device client opened successfully Sending message from device to IoT Hub... 2022-10-07 18:14:59,408 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Message was queued to be sent later ( Message details: Correlation Id [aaaa0000-bb11-2222-33cc-444444dddddd] Message Id [aaaa0000-bb11-2222-33cc-444444dddddd] ) Press any key to exit... 2022-10-07 18:14:59,409 DEBUG (contoso-hub-2.azure-devices.net-sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6-c32c76d0-Cxn0e70bbf7-8476-441d-8626-c17250585ee6-azure-iot-sdk-IotHubSendTask) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Sending message ( Message details: Correlation Id [aaaa0000-bb11-2222-33cc-444444dddddd] Message Id [aaaa0000-bb11-2222-33cc-444444dddddd] ) 2022-10-07 18:14:59,777 DEBUG (MQTT Call: sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - IotHub message was acknowledged. Checking if there is record of sending this message ( Message details: Correlation Id [aaaa0000-bb11-2222-33cc-444444dddddd] Message Id [aaaa0000-bb11-2222-33cc-444444dddddd] ) 2022-10-07 18:14:59,779 DEBUG (contoso-hub-2.azure-devices.net-sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6-c32c76d0-Cxn0e70bbf7-8476-441d-8626-c17250585ee6-azure-iot-sdk-IotHubSendTask) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Invoking the callback function for sent message, IoT Hub responded to message ( Message details: Correlation Id [aaaa0000-bb11-2222-33cc-444444dddddd] Message Id [aaaa0000-bb11-2222-33cc-444444dddddd] ) with status OK Message received! Response status: OK
Bestätigen der Registrierung der Gerätebereitstellung
In diesem Tutorial haben Sie die Zuordnungsrichtlinie Statische Konfiguration verwendet, um mithilfe der Registrierungsgruppe registrierte Geräte demselben IoT-Hub zuzuweisen. Wenn ein Gerät jedoch einem von mehreren IoT-Hubs zugewiesen werden kann, können Sie in den Registrierungseinträgen der Registrierungsgruppe nachsehen, welchem IoT-Hub das Gerät zugewiesen wurde:
Navigieren Sie im Azure-Portal zu Ihrer DPS-Instanz.
Wählen Sie im Menü Einstellungen die Option Registrierungen verwalten aus.
Wählen Sie Registrierungsgruppen aus.
Wählen Sie die Registrierungsgruppe aus, die Sie für dieses Tutorial erstellt haben.
Wählen Sie auf der Seite Details zur Registrierungsgruppe die Registerkarte Registrierungsstatus aus.
Suchen Sie in der Spalte Geräte-ID die Geräte-ID für Ihr Gerät, und notieren Sie sich den IoT-Hub in der Spalte Zugewiesener IoT-Hub.
Sie können den Gerätedatensatz auswählen, um weitere Details anzuzeigen, z. B. den ursprünglichen Zwilling, der dem Gerät zugewiesen wurde.
So überprüfen Sie das Gerät auf Ihrem IoT-Hub:
Wechseln Sie im Azure-Portal zu dem IoT-Hub, dem Ihr Gerät zugewiesen wurde.
Wählen Sie im Menü Geräteverwaltung die Option Geräte aus.
Wenn Ihr Gerät erfolgreich bereitgestellt wurde, sollte die Geräte-ID in der Liste mit dem StatusAktiviert angezeigt werden. Wenn Ihr Gerät nicht angezeigt wird, wählen Sie Aktualisieren aus.
Hinweis
Wenn Sie den anfänglichen Gerätezwillingsstatus im Registrierungseintrag für Ihr Gerät gegenüber dem Standardwert geändert haben, kann ein Gerät den gewünschten Zwillingsstatus aus dem Hub abrufen und entsprechend agieren. Weitere Informationen finden Sie unter Verstehen und Verwenden von Gerätezwillingen in IoT Hub.
Bereitstellen weiterer Geräte
Führen Sie die Schritte in den vorherigen Abschnitten aus, um weitere Geräte über die Registrierungsgruppe bereitzustellen:
Wählen Sie eine eindeutige Registrierungs-ID für das Gerät aus.
Leiten Sie einen Geräteschlüssel ab. Verwenden Sie wie zuvor den Primärschlüssel für die Registrierungsgruppe als Gruppenschlüssel.
Führen Sie den Gerätebereitstellungscode aus. Ersetzen Sie die erforderlichen Artefakte durch Ihren neuen abgeleiteten Geräteschlüssel und die Registrierungs-ID.
Bereinigen von Ressourcen
Wenn Sie das Geräteclientbeispiel weiter verwenden und erkunden möchten, sollten Sie die in diesem Tutorial erstellten Ressourcen nicht bereinigen. Führen Sie andernfalls die folgenden Schritte aus, um alle Ressourcen zu löschen, die im Rahmen dieses Tutorials erstellt wurden.
Löschen Ihrer Registrierungsgruppe
Das Löschen einer Registrierungsgruppe führt nicht dazu, dass die ihr zugeordneten Registrierungsdatensätze gelöscht werden. Diese verwaisten Datensätze werden auf das Registrierungskontingent für die DPS-Instanz angerechnet. Aus diesem Grund sollten Sie alle mit einer Registrierungsgruppe verbundenen Registrierungsdatensätze löschen, bevor Sie die Registrierungsgruppe selbst löschen.
Navigieren Sie im Azure-Portal zu Ihrer DPS-Instanz.
Wählen Sie im Menü Einstellungen die Option Registrierungen verwalten aus.
Wählen Sie die Registerkarte Registrierungsgruppen aus.
Wählen Sie den Namen der Registrierungsgruppe aus, die Sie für dieses Tutorial verwendet haben, um die zugehörige Detailseite zu öffnen.
Wählen Sie auf der Seite Details zur Registrierung die Registerkarte Registrierungsstatus aus. Aktivieren Sie dann das Kontrollkästchen neben der Spaltenüberschrift Geräte-ID, um alle Registrierungsdatensätze für die Registrierungsgruppe auszuwählen. Wählen Sie oben auf der Seite Löschen aus, um die Registrierungsdatensätze zu löschen.
Wechseln Sie zurück zur Seite Registrierungen verwalten.
Aktivieren Sie das Kontrollkästchen neben dem Namen der Registrierungsgruppe, die Sie für dieses Tutorial verwendet haben.
Wählen Sie oben auf der Seite Löschen aus.
Löschen der Geräteregistrierungen aus IoT Hub
Wechseln Sie im Azure-Portal zu dem IoT-Hub, dem Ihr Gerät zugewiesen wurde.
Wählen Sie im Abschnitt Geräteverwaltung des Navigationsmenüs die Option Geräte aus.
Aktivieren Sie das Kontrollkästchen neben der Geräte-ID für die Geräte, die Sie in diesem Tutorial registriert haben.
Wählen Sie oben auf der Seite Löschen aus.
Nächste Schritte
In diesem Tutorial haben Sie mehrere Geräte mithilfe einer Registrierungsgruppe für einen einzelnen IoT-Hub bereitgestellt. Informieren Sie sich als Nächstes, wie IoT-Geräte auf mehreren IoT-Hubs bereitgestellt werden.