Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Schnellstart erstellen Sie ein simuliertes Gerät auf Ihrem Windows-Computer. Das simulierte Gerät ist für die Verwendung eines TPM-Nachweismechanismus (Trusted Platform Module) für die Authentifizierung konfiguriert. Nachdem Sie Ihr Gerät konfiguriert haben, stellen Sie es mithilfe des Azure IoT Hub Device Provisioning Service in Ihrem IoT-Hub bereit. Beispielcode wird dann verwendet, um das Gerät bei einer Device Provisioning Service-Instanz zu registrieren.
Wenn Sie mit dem Prozess der Bereitstellung noch nicht vertraut sind, sollten Sie zunächst die Übersicht zur Bereitstellung lesen. Stellen Sie außerdem sicher, dass Sie die Schritte in der Schnellstartanleitung ausführen: Einrichten des IoT Hub-Gerätebereitstellungsdiensts mit dem Azure-Portal , bevor Sie fortfahren.
In Azure IoT Device Provisioning Service werden zwei Registrierungsarten unterstützt:
Registrierungsgruppen, die für die Registrierung mehrerer zusammengehöriger Geräte verwendet werden.
Einzelne Registrierungen, die zur Registrierung eines einzelnen Geräts verwendet werden.
In diesem Artikel werden individuelle Registrierungen veranschaulicht.
Der Nachweis des Trusted Platform Module (TPM) wird im Python SDK nicht unterstützt. Mit Python können Sie ein Gerät mit symmetrischen Schlüsseln order X.509-Zertifikaten bereitstellen.
Voraussetzungen
Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
Führen Sie die Schritte in der Schnellstartanleitung aus: Einrichten des IoT Hub-Gerätebereitstellungsdiensts mit dem Azure-Portal.
Die folgenden Voraussetzungen gelten für eine Windows-Entwicklungsumgebung. Informationen zu Linux oder macOS finden Sie in der SDK-Dokumentation im entsprechenden Abschnitt unter Vorbereiten Ihrer Entwicklungsumgebung.
- Visual Studio 2019 oder höher mit aktivierter Workload "Desktopentwicklung mit C++" . Visual Studio 2015 und Visual Studio 2017 werden ebenfalls unterstützt.
Ein TPM 2.0-Hardwaresicherheitsmodul auf Ihrem Windows-Computer.
Installieren Sie das .NET Core 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 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 C SDK und des TPM-Gerätesimulatorbeispiels verwendet wird.
Laden Sie das neueste CMake-Buildsystem herunter.
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. Außerdem können ältere Versionen des CMake-Buildsystems die in diesem Artikel verwendete Lösungsdatei nicht generieren. Stellen Sie sicher, dass Sie die neueste Version von CMake verwenden.Öffnen Sie einen Webbrowser, und wechseln Sie zur Releaseseite für das Azure IoT C SDK.
Wählen Sie oben auf der Seite die Registerkarte Tags aus.
Kopieren Sie den Tagnamen für das aktuelle Release des Azure IoT C SDK.
Öffnen Sie eine Eingabeaufforderung oder die Git Bash-Shell. Führen Sie die folgenden Befehle aus, um das aktuelle Release des GitHub-Repositorys für das Azure IoT Device SDK für C zu klonen. Ersetzen Sie
<release-tag>durch das Tag, das Sie im vorherigen Schritt kopiert haben. Beispiel:lts_03_2025.git clone -b <release-tag> https://github.com/Azure/azure-iot-sdk-c.git cd azure-iot-sdk-c git submodule update --initDieser Vorgang kann mehrere Minuten dauern.
Führen Sie nach Abschluss des Vorgangs die folgenden Befehle aus dem Verzeichnis
azure-iot-sdk-caus:mkdir cmake cd cmake
Öffnen Sie eine Git CMD- oder Git Bash-Befehlszeilenumgebung.
Klonen Sie das Azure IoT SDK für .NET GitHub-Repository mit dem folgenden Befehl:
git clone https://github.com/Azure/azure-iot-sdk-csharp.git
Öffnen Sie eine Git CMD- oder Git Bash-Befehlszeilenumgebung.
Klonen Sie mit dem folgenden Befehl das GitHub-Repository azure-utpm-c:
git clone https://github.com/Azure/azure-utpm-c.git --recursive
Öffnen Sie eine Git CMD- oder Git Bash-Befehlszeilenumgebung.
Klonen Sie mit dem folgenden Befehl das GitHub-Repository für Java:
git clone https://github.com/Azure/azure-iot-sdk-java.git --recursive
Erstellen und Ausführen des TPM-Gerätesimulators
In diesem Abschnitt erstellen und führen Sie den TPM-Simulator aus. Dieser Simulator lauscht über einen Socket an den Ports 2321 und 2322. Lassen Sie das Befehlsfenster geöffnet. Sie müssen diesen Simulator bis zum Ende dieser Schnellstartanleitung ausführen.
Führen Sie den folgenden Befehl aus, um das Azure IoT C SDK zu erstellen, das den Beispielcode für den TPM-Gerätesimulator enthält. Im
cmake-Verzeichnis wird eine Visual Studio-Projektmappe für das simulierte Gerät generiert. Dieses Beispiel stellt einen TPM-Nachweismechanismus über SAS-Tokenauthentifizierung (Shared Access Signature) bereit.cmake -Duse_prov_client:BOOL=ON -Duse_tpm_simulator:BOOL=ON ..Tipp
Wenn
cmakeIhren C++-Compiler nicht findet, können beim Ausführen des vorherigen Befehls möglicherweise Buildfehler auftreten. Führen Sie den Befehl in diesem Fall an der Visual Studio-Eingabeaufforderung aus.Nach einer erfolgreichen Erstellung ähneln die letzten Ausgabezeilen der folgenden Ausgabe:
$ cmake -Duse_prov_client:BOOL=ON .. -- Building for: Visual Studio 16 2019 -- The C compiler identification is MSVC 19.23.28107.0 -- The CXX compiler identification is MSVC 19.23.28107.0 ... -- Configuring done -- Generating done -- Build files have been written to: C:/code/azure-iot-sdk-c/cmakeNavigieren Sie zum Stammordner des von Ihnen geklonten Git-Repositorys.
Führen Sie den TPM-Simulator mit dem im folgenden Beispiel gezeigten Pfad aus.
cd .. .\provisioning_client\deps\utpm\tools\tpm_simulator\Simulator.exeIm Simulator wird keine Ausgabe angezeigt. Setzen Sie die Ausführung fort, da hiermit ein TPM-Gerät simuliert wird.
Navigieren Sie zum GitHub-Stammordner.
Führen Sie den TPM-Simulator aus, damit er als HSM für das simulierte Gerät verwendet wird.
.\azure-utpm-c\tools\tpm_simulator\Simulator.exeErstellen Sie einen neuen leeren Ordner namens registerdevice. Erstellen Sie im Ordner registerdevice die Datei package.json, indem Sie an der Eingabeaufforderung den folgenden Befehl verwenden (hierbei alle von
npmgestellten Fragen beantworten oder ggf. Standardwerte übernehmen):npm initInstallieren Sie die folgenden Vorstufenpakete:
npm install node-gyp -g npm install ffi-napi -gHinweis
Es gibt einige bekannte Probleme beim Installieren der vorherigen Pakete. Um diese Probleme zu beheben, führen Sie
npm install --global --production windows-build-toolsin einer Eingabeaufforderung im Modus "Als Administrator ausführen" aus, führen Sie anschließendSET VCTargetsPath=C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140aus, nachdem Sie den Pfad durch Ihre installierte Version ersetzt haben, und führen Sie dann die vorherigen Installationsbefehle erneut aus.Installieren Sie alle erforderlichen Pakete, indem Sie an der Eingabeaufforderung im Ordner registerdevice den folgenden Befehl ausführen:
npm install --save azure-iot-device azure-iot-device-mqtt azure-iot-security-tpm azure-iot-provisioning-device-http azure-iot-provisioning-deviceMit dem Befehl werden die folgenden Pakete installiert:
Ein für TPM geeigneter Sicherheitsclient:
azure-iot-security-tpmEine Transportkomponente für das Gerät, um eine Verbindung mit dem Gerätebereitstellungsdienst herzustellen:
azure-iot-provisioning-device-httpoderazure-iot-provisioning-device-amqpEin Client zur Verwendung der Transportkomponente und des Sicherheitsclients:
azure-iot-provisioning-deviceDer Geräteclient:
azure-iot-deviceEine Transportkomponente:
azure-iot-device-amqp,azure-iot-device-mqttoderazure-iot-device-httpDer bereits installierte Sicherheitsclient:
azure-iot-security-tpmHinweis
Für die Beispiele in dieser Schnellstartanleitung werden die Transportkomponenten
azure-iot-provisioning-device-httpundazure-iot-device-mqttverwendet.
Öffnen Sie einen Text-Editor Ihrer Wahl.
Erstellen Sie im Ordner registerdevice die neue Datei ExtractDevice.js.
Fügen Sie am Anfang der Datei ExtractDevice.js die folgenden
require-Anweisungen hinzu:'use strict'; var tpmSecurity = require('azure-iot-security-tpm'); var tssJs = require("tss.js"); var myTpm = new tpmSecurity.TpmSecurityClient(undefined, new tssJs.Tpm(true));Fügen Sie die folgende Funktion hinzu, um die Methode zu implementieren:
myTpm.getEndorsementKey(function(err, endorsementKey) { if (err) { console.log('The error returned from get key is: ' + err); } else { console.log('the endorsement key is: ' + endorsementKey.toString('base64')); myTpm.getRegistrationId((getRegistrationIdError, registrationId) => { if (getRegistrationIdError) { console.log('The error returned from get registration id is: ' + getRegistrationIdError); } else { console.log('The Registration Id is: ' + registrationId); process.exit(); } }); } });Speichern und schließen Sie die Datei ExtractDevice.js.
node ExtractDevice.jsFühren Sie das Beispiel aus.
Das Ausgabefenster zeigt den Bestätigungsschlüssel und die Registrierungs-ID an, die für die Geräteregistrierung erforderlich ist. Kopieren Sie diese Werte.
Führen Sie den TPM-Simulator aus, damit er als HSM für das simulierte Gerät verwendet wird.
Wählen Sie Zugriff gestatten aus. Der Simulator lauscht über einen Socket an den Ports 2321 und 2322. Lassen Sie das Befehlsfenster geöffnet. Sie benötigen es, um den Simulator bis zum Ende dieses Schnellstarts auszuführen.
.\azure-iot-sdk-java\provisioning\provisioning-tools\tpm-simulator\Simulator.exe
Öffnen Sie eine zweite Eingabeaufforderung.
Navigieren Sie an der zweiten Eingabeaufforderung zum Stammordner, und erstellen Sie die Beispielabhängigkeiten.
cd azure-iot-sdk-java mvn install -DskipTests=trueNavigieren Sie zum Beispielordner.
cd provisioning/provisioning-samples/provisioning-tpm-sample
In diesem Abschnitt erstellen und ausführen Sie ein Beispiel, das den Bestätigungsschlüssel und die Registrierungs-ID aus dem TPM-Simulator liest, den Sie ausgeführt haben, und überwacht weiterhin die Ports 2321 und 2322. Diese Werte werden für die Geräteregistrierung mit Ihrer Device Provisioning Service-Instanz verwendet.
Starten Sie Visual Studio.
Öffnen Sie die Projektmappe
azure_iot_sdks.sln, die im Ordner cmake generiert wurde.Wählen Sie im Visual Studio-Menü die Option Erstellen>Projektmappe erstellen aus, um alle Projekte in der Projektmappe zu erstellen.
Navigieren Sie im Visual Studio-Fenster Projektmappen-Explorer zum Ordner Provision_Tools. Klicken Sie mit der rechten Maustaste auf das Projekt tpm_device_provision, 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. Die App liest und zeigt eine Registrierungs-ID und einen Bestätigungsschlüssel an. Notieren oder kopieren Sie diese Werte. Diese Werte werden im nächsten Abschnitt für die Geräteregistrierung verwendet.
Melden Sie sich beim Azure-Portal an, wählen Sie im linken Menü die Schaltfläche "Alle Ressourcen " aus, und öffnen Sie Ihre Device Provisioning Service-Instanz. Notieren Sie sich Ihre ID-Bereichs- und globalen Geräteendpunktwerte .
Bearbeiten Sie
src/main/java/samples/com/microsoft/azure/sdk/iot/ProvisioningTpmSample.java, um die zuvor notierten Werte für den ID-Bereich und den globalen Endpunkt für den Bereitstellungsdienst einzufügen.private static final String idScope = "[Your ID scope here]"; private static final String globalEndpoint = "[Your Provisioning Service Global Endpoint here]"; private static final ProvisioningDeviceClientTransportProtocol PROVISIONING_DEVICE_CLIENT_TRANSPORT_PROTOCOL = ProvisioningDeviceClientTransportProtocol.HTTPS;Speichern Sie die Datei .
Erstellen Sie das Projekt mit den folgenden Befehlen, navigieren Sie zum Zielordner, und führen Sie die erstellte JAR-Datei aus (ersetzen Sie
{version}durch Ihre Java-Version):mvn clean install cd target java -jar ./provisioning-tpm-sample-{version}-with-deps.jarWenn das Programm gestartet wird, wird der Bestätigungsschlüssel und die Registrierungs-ID angezeigt. Kopieren Sie diese Werte für den nächsten Abschnitt. Achten Sie darauf, dass das Programm weiter ausgeführt wird.
In diesem Abschnitt erstellen und ausführen Sie ein Beispiel, das den Bestätigungsschlüssel aus Ihrem TPM 2.0-Hardwaresicherheitsmodul liest. Dieser Wert wird für die Geräteregistrierung mit Ihrer Device Provisioning Service-Instanz verwendet.
Wechseln Sie an einer Eingabeaufforderung zum Projektverzeichnis für das TPM-Gerätebereitstellungsbeispiel.
cd '.\azure-iot-sdk-csharp\provisioning\device\samples\how to guides\TpmSample\'Geben Sie den folgenden Befehl ein, um das TPM-Gerätebereitstellungsbeispiel zu erstellen und auszuführen. Kopieren Sie den Endorsement Key, der von Ihrem TPM 2.0-Hardwaresicherheitsmodul zurückgegeben wurde, um ihn später bei der Registrierung Ihres Geräts zu verwenden.
dotnet run -- -e
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 die Registerkarte Individuelle Registrierungen und dann Individuelle Registrierung hinzufügen aus.
Geben Sie unter Registrierung und Bereitstellung der Seite Registrierung hinzufügen die folgenden Informationen an, um die Registrierungsdetails zu konfigurieren:
Feld BESCHREIBUNG Nachweis Wählen Sie Trusted Platform Module (TPM) als Nachweismechanismus aus. Einstellungen für das Trusted Platform Module (TPM) Geben Sie den Bestätigungsschlüssel an, der verwendet wird, um das Gerät für diese Registrierung zu überprüfen. Sie können den Endorsement Key aus dem TPM Ihres Geräts abrufen. Registrierungs-ID Geben Sie die eindeutige Registrierungs-ID für das Gerät an. Sie können die Registrierungs-ID aus dem TPM Ihres Geräts abrufen. Bereitstellungsstatus Aktivieren Sie das Kontrollkästchen Diese Registrierung aktivieren, wenn diese Registrierung für die Bereitstellung des Geräts verfügbar sein soll. Deaktivieren Sie dieses Kontrollkästchen, wenn die Registrierung 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, handhaben soll. Weitere Informationen finden Sie unter Richtlinien für die erneute Bereitstellung. Wählen Sie Weiter: IoT-Hubs aus.
Geben Sie auf der Registerkarte IoT-Hubs der Seite Registrierung hinzufügen die folgenden Informationen an, um zu bestimmen, für welche IoT-Hubs die Registrierung 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 " auf der Seite " Registrierung hinzufügen " die folgenden Informationen an, um zu definieren, wie neu bereitgestellte Geräte konfiguriert werden:
Feld BESCHREIBUNG Geräte-ID Geben Sie eine Geräte-ID an, die dem bereitgestellten Gerät im IoT Hub zugewiesen ist. Wenn Sie keine Geräte-ID angeben, wird die Registrierungs-ID verwendet. IoT Edge Überprüfen Sie das Aktivieren von IoT Edge auf bereitgestellten Geräten , wenn das bereitgestellte Gerät Azure IoT Edge ausführt. Deaktivieren Sie dieses Kontrollkästchen, wenn diese Registrierung für ein Gerät ohne IoT Edge aktiviert ist. Gerätetags Verwenden Sie dieses Textfeld, um alle Tags anzugeben, die Sie auf den Gerätezwilling des bereitgestellten Geräts anwenden möchten. Gewünschte Eigenschaften Verwenden Sie dieses Textfeld, um alle gewünschten Eigenschaften anzugeben, die Sie auf den Gerätezwilling des bereitgestellten Geräts anwenden möchten. Weitere Informationen finden Sie unter Verstehen und Verwenden von Gerätezwillingen in IoT Hub.
Wählen Sie Weiter: Überprüfen + erstellen aus.
Überprüfen Sie auf der Registerkarte Überprüfen und erstellen all Ihre Werte, und wählen Sie dann Erstellen aus.
Das C#-TPM-Beispiel für diese Schnellstartanleitung enthält keine Registrierungs-ID. Wenn Sie aufgefordert werden, eins für die einzelne Registrierung hinzuzufügen, geben Sie Ihren eigenen Wert an.
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 die Registerkarte Individuelle Registrierungen und dann Individuelle Registrierung hinzufügen aus.
Geben Sie unter Registrierung und Bereitstellung der Seite Registrierung hinzufügen die folgenden Informationen an, um die Registrierungsdetails zu konfigurieren:
Feld BESCHREIBUNG Nachweis Wählen Sie Trusted Platform Module (TPM) als Nachweismechanismus aus. Einstellungen für das Trusted Platform Module (TPM) Geben Sie den Bestätigungsschlüssel an, der verwendet wird, um das Gerät für diese Registrierung zu überprüfen. Sie können den Endorsement Key aus dem TPM Ihres Geräts abrufen. Registrierungs-ID Geben Sie die eindeutige Registrierungs-ID für das Gerät an. Sie können die Registrierungs-ID aus dem TPM Ihres Geräts abrufen. Bereitstellungsstatus Aktivieren Sie das Kontrollkästchen Diese Registrierung aktivieren, wenn diese Registrierung für die Bereitstellung des Geräts verfügbar sein soll. Deaktivieren Sie dieses Kontrollkästchen, wenn die Registrierung 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, handhaben soll. Weitere Informationen finden Sie unter Richtlinien für die erneute Bereitstellung. Wählen Sie Weiter: IoT-Hubs aus.
Geben Sie auf der Registerkarte IoT-Hubs der Seite Registrierung hinzufügen die folgenden Informationen an, um zu bestimmen, für welche IoT-Hubs die Registrierung 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 " auf der Seite " Registrierung hinzufügen " die folgenden Informationen an, um zu definieren, wie neu bereitgestellte Geräte konfiguriert werden:
Feld BESCHREIBUNG Geräte-ID Geben Sie eine Geräte-ID an, die dem bereitgestellten Gerät im IoT Hub zugewiesen ist. Wenn Sie keine Geräte-ID angeben, wird die Registrierungs-ID verwendet. IoT Edge Überprüfen Sie das Aktivieren von IoT Edge auf bereitgestellten Geräten , wenn das bereitgestellte Gerät Azure IoT Edge ausführt. Deaktivieren Sie dieses Kontrollkästchen, wenn diese Registrierung für ein Gerät ohne IoT Edge aktiviert ist. Gerätetags Verwenden Sie dieses Textfeld, um alle Tags anzugeben, die Sie auf den Gerätezwilling des bereitgestellten Geräts anwenden möchten. Gewünschte Eigenschaften Verwenden Sie dieses Textfeld, um alle gewünschten Eigenschaften anzugeben, die Sie auf den Gerätezwilling des bereitgestellten Geräts anwenden möchten. Weitere Informationen finden Sie unter Verstehen und Verwenden von Gerätezwillingen in IoT Hub.
Wählen Sie Weiter: Überprüfen + erstellen aus.
Überprüfen Sie auf der Registerkarte Überprüfen und erstellen all Ihre Werte, und wählen Sie dann Erstellen aus.
Registrieren des Geräts
In diesem Abschnitt konfigurieren Sie Beispielcode für die Verwendung des Advanced Message Queuing Protocol (AMQP), um die Startsequenz des Geräts an Ihre Device Provisioning Service-Instanz zu senden. Diese Startsequenz bewirkt, dass das Gerät bei einem IoT-Hub registriert wird, der mit der Device Provisioning Service-Instanz verknüpft ist.
Wählen Sie im Azure-Portal die Registerkarte "Übersicht" für Ihre Device Provisioning Service-Instanz aus.
Kopieren Sie den Wert von ID-Bereich.
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 oben in der Datei die
#defineAnweisungen für jedes Geräteprotokoll, wie im folgenden Beispiel gezeigt. Stellen Sie sicher, dass nurSAMPLE_AMQPauskommentiert wurde.Zurzeit wird das MQTT-Protokoll für die individuelle TPM-Registrierung nicht unterstützt.
// // The protocol you wish to use should be uncommented // //#define SAMPLE_MQTT //#define SAMPLE_MQTT_OVER_WEBSOCKETS #define SAMPLE_AMQP //#define SAMPLE_AMQP_OVER_WEBSOCKETS //#define SAMPLE_HTTPSuchen Sie die Konstante
id_scope, und ersetzen Sie den Wert durch Ihren ID-Bereich-Wert, den Sie zuvor 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_typeaufSECURE_DEVICE_TYPE_TPMfestgelegt ist, wie im folgenden Beispiel gezeigt.SECURE_DEVICE_TYPE hsm_type; hsm_type = SECURE_DEVICE_TYPE_TPM; //hsm_type = SECURE_DEVICE_TYPE_X509; //hsm_type = SECURE_DEVICE_TYPE_SYMMETRIC_KEY;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 Ausgabe ist ein Beispiel dafür, wie der Gerätebereitstellungsclient erfolgreich hochfährt und sich mit einer Instanz des Device Provisioning-Diensts verbindet, um IoT Hub-Informationen zu erhalten und sich zu registrieren:
Provisioning API Version: 1.2.7 Registering... Press enter key to interrupt. Provisioning Status: PROV_DEVICE_REG_STATUS_CONNECTED Provisioning Status: PROV_DEVICE_REG_STATUS_ASSIGNING Provisioning Status: PROV_DEVICE_REG_STATUS_ASSIGNING Registration Information received from service: test-docs-hub.azure-devices.net, deviceId: test-docs-cert-device
Wählen Sie im Azure-Portal die Registerkarte "Übersicht" für Ihre Device Provisioning Service-Instanz aus.
Kopieren Sie den Wert von ID-Bereich.
Wechseln Sie an einer Eingabeaufforderung zum Projektverzeichnis für das TPM-Gerätebereitstellungsbeispiel.
cd '.\azure-iot-sdk-csharp\provisioning\device\samples\how to guides\TpmSample\'Führen Sie den folgenden Befehl aus, um Ihr Gerät zu registrieren: Ersetzen Sie
<IdScope>durch den Wert für den kopierten DPS und<RegistrationId>durch den Wert, den Sie beim Erstellen der Geräteregistrierung verwendet haben.dotnet run -- -s <IdScope> -r <RegistrationId>Wenn die Geräteregistrierung erfolgreich war, werden die folgenden Meldungen angezeigt:
Initializing security using the local TPM... Initializing the device provisioning client... Initialized for registration Id <RegistrationId>. Registering with the device provisioning service... Registration status: Assigned. Device <RegistrationId> registered to <HubName>.azure-devices.net. Creating TPM authentication for IoT Hub... Testing the provisioned device with IoT Hub... Sending a telemetry message... Finished.
Wählen Sie im Azure-Portal die Registerkarte "Übersicht" für Ihre Device Provisioning Service-Instanz aus.
Kopieren Sie den Wert von ID-Bereich.
Öffnen Sie einen Text-Editor Ihrer Wahl.
Erstellen Sie im Ordner registerdevice die neue Datei RegisterDevice.js.
Fügen Sie am Anfang der Datei RegisterDevice.js die folgenden
require-Anweisungen hinzu:'use strict'; var ProvisioningTransport = require('azure-iot-provisioning-device-http').Http; var iotHubTransport = require('azure-iot-device-mqtt').Mqtt; var Client = require('azure-iot-device').Client; var Message = require('azure-iot-device').Message; var tpmSecurity = require('azure-iot-security-tpm'); var ProvisioningDeviceClient = require('azure-iot-provisioning-device').ProvisioningDeviceClient;Hinweis
Das Azure IoT SDK für Node.js unterstützt andere Protokolle wie AMQP, AMQP WS und MQTT WS. Weitere Beispiele finden Sie unter Samples for the Azure IoT Device Provisioning Device SDK for Node.js (Beispiele für das Azure IoT Device Provisioning Device SDK für Node.js).
Fügen Sie die Variablen globalDeviceEndpoint und idScope hinzu, und verwenden Sie sie zum Erstellen einer Instanz von ProvisioningDeviceClient. Ersetzen Sie {globalDeviceEndpoint} und {idScope} durch den globalen Geräteendpunkt und die ID-Bereichswerte aus Schritt 1:
var provisioningHost = '{globalDeviceEndpoint}'; var idScope = '{idScope}'; var tssJs = require("tss.js"); var securityClient = new tpmSecurity.TpmSecurityClient('', new tssJs.Tpm(true)); // if using non-simulated device, replace the above line with following: //var securityClient = new tpmSecurity.TpmSecurityClient(); var provisioningClient = ProvisioningDeviceClient.create(provisioningHost, idScope, new ProvisioningTransport(), securityClient);Fügen Sie die folgende Funktion hinzu, um die Methode auf dem Gerät zu implementieren:
provisioningClient.register(function(err, result) { if (err) { console.log("error registering device: " + err); } else { console.log('registration succeeded'); console.log('assigned hub=' + result.registrationState.assignedHub); console.log('deviceId=' + result.registrationState.deviceId); var tpmAuthenticationProvider = tpmSecurity.TpmAuthenticationProvider.fromTpmSecurityClient(result.registrationState.deviceId, result.registrationState.assignedHub, securityClient); var hubClient = Client.fromAuthenticationProvider(tpmAuthenticationProvider, iotHubTransport); var connectCallback = function (err) { if (err) { console.error('Could not connect: ' + err.message); } else { console.log('Client connected'); var message = new Message('Hello world'); hubClient.sendEvent(message, printResultFor('send')); } }; hubClient.open(connectCallback); function printResultFor(op) { return function printResult(err, res) { if (err) console.log(op + ' error: ' + err.toString()); if (res) console.log(op + ' status: ' + res.constructor.name); process.exit(1); }; } } });Speichern und schließen Sie die Datei RegisterDevice.js.
Führen Sie den folgenden Befehl aus:
node RegisterDevice.jsBeachten Sie die Nachrichten, die den Start und die Verbindungsherstellung des Geräts mit dem Device Provisioning-Dienst simulieren, um Ihre IoT Hub-Informationen abzurufen.
Drücken Sie im Befehlsfenster, in dem der Java-Beispielcode auf Ihrem Computer ausgeführt wird, die EINGABETASTE, um die Ausführung der Anwendung fortzusetzen. Beachten Sie die Nachrichten, die den Start und die Verbindungsherstellung des Geräts mit dem Device Provisioning-Dienst simulieren, um Ihre IoT Hub-Informationen abzurufen.
Bestätigen der Registrierung der Gerätebereitstellung
Melden Sie sich beim Azure-Portal an.
Wählen Sie im Menü auf der linken Seite oder auf der Portalseite die Option Alle Ressourcen aus.
Wählen Sie den IoT-Hub aus, dem Ihr Gerät zugewiesen wurde.
Wählen Sie im Abschnitt 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 oben im Bereich "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 der gewünschte Zwillingsstatus vom Hub abgerufen werden, und es können entsprechende Aktionen durchgeführt werden. Weitere Informationen finden Sie unter Verstehen und Verwenden von Gerätezwillingen in IoT Hub.
Bereinigen von Ressourcen
Wenn Sie das Geräteclientbeispiel weiter verwenden und erkunden möchten, sollten Sie die in dieser Schnellstartanleitung erstellten Ressourcen nicht bereinigen. Falls Sie nicht fortfahren möchten, führen Sie die folgenden Schritte aus, um alle Ressourcen zu löschen, die im Rahmen dieser Schnellstartanleitung erstellt wurden.
Löschen der Geräteregistrierung
Schließen Sie auf Ihrem Computer das Ausgabefenster des Geräteclientbeispiels.
Wählen Sie im Portalmenü im Azure-Portal "Alle Ressourcen" aus.
Wählen Sie Ihre Device Provisioning Service-Instanz aus.
Wählen Sie im Dienstmenü unter "Einstellungen" die Option " Registrierungen verwalten" aus.
Wählen Sie im Arbeitsbereich die Registerkarte "Einzelne Registrierungen " aus.
Aktivieren Sie das Kontrollkästchen neben der Registrierungs-ID des Geräts, das Sie in dieser Schnellstartanleitung registriert haben.
Wählen Sie am oberen Rand des Bereichs die Option Löschen aus.
Löschen Ihrer Geräteregistrierung aus IoT Hub
Wählen Sie im Portalmenü im Azure-Portal "Alle Ressourcen" aus.
Wählen Sie Ihren IoT Hub aus.
Wählen Sie im Menü "Dienst" unter "Geräteverwaltung" die Option "Geräte" aus.
Aktivieren Sie das Kontrollkästchen neben der Geräte-ID des Geräts, das Sie in dieser Schnellstartanleitung registriert haben.
Wählen Sie am oberen Rand des Bereichs die Option Löschen aus.
Nächste Schritte
In dieser Schnellstartanleitung haben Sie ein einzelnes Gerät mit einer individuellen Registrierung für Ihren IoT-Hub bereitgestellt. Informieren Sie sich als Nächstes, wie IoT-Geräte auf mehreren IoT-Hubs bereitgestellt werden.