Schnellstart: Bereitstellen eines simulierten TPM-Geräts
In dieser Schnellstartanleitung erstellen Sie ein simuliertes Gerät auf Ihrem Windows-Computer. Das simulierte Gerät wird 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 für Ihren IoT-Hub bereit. Anschließend wird Beispielcode 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. Vergewissern Sie sich außerdem, dass Sie die Schritte unter Einrichten des IoT Hub Device Provisioning-Diensts über das Azure-Portal ausgeführt haben, 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.
Individuelle Registrierungen, die für die 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 im Artikel Einrichten des IoT Hub Device Provisioning Service im Azure-Portal aus.
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 mit der aktivierten 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 Beispiels für den TPM-Gerätesimulator 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. 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.Ö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_01_2023
.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
Öffnen Sie eine Git CMD- oder Git Bash-Befehlszeilenumgebung.
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 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 Sie den TPM-Simulator und führen ihn aus. Dieser Simulator lauscht über einen Socket an den Ports 2321 und 2322. Lassen Sie das Befehlsfenster geöffnet. Dieser Simulator muss bis zum Ende der Schnellstartanleitung ausgeführt werden.
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
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 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/cmake
Navigieren Sie zum Stammordner des von Ihnen geklonten Git-Repositorys.
Führen Sie den TPM-Simulator aus, indem Sie den unten angegebenen Pfad verwenden.
cd .. .\provisioning_client\deps\utpm\tools\tpm_simulator\Simulator.exe
Im 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.exe
Erstellen 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
npm
gestellten Fragen beantworten oder ggf. Standardwerte übernehmen):npm init
Installieren Sie die folgenden Vorstufenpakete:
npm install node-gyp -g npm install ffi-napi -g
Hinweis
Die Installation der obigen Pakete kann zu einigen bekannten Problemen führen. Um diese Probleme zu beheben, führen Sie an einer Eingabeaufforderung
npm install --global --production windows-build-tools
im Modus Als Administrator ausführen aus. Führen SieSET VCTargetsPath=C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140
aus, nachdem Sie den Pfad durch Ihre installierte Version ersetzt haben, und führen Sie anschließend die obigen 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-device
Mit dem Befehl werden die folgenden Pakete installiert:
Ein für TPM geeigneter Sicherheitsclient:
azure-iot-security-tpm
Eine Transportkomponente für das Gerät, um eine Verbindung mit dem Gerätebereitstellungsdienst herzustellen:
azure-iot-provisioning-device-http
oderazure-iot-provisioning-device-amqp
Ein Client zur Verwendung der Transportkomponente und des Sicherheitsclients:
azure-iot-provisioning-device
Der Geräteclient:
azure-iot-device
Eine Transportkomponente:
azure-iot-device-amqp
,azure-iot-device-mqtt
oderazure-iot-device-http
Der bereits installierte Sicherheitsclient:
azure-iot-security-tpm
Hinweis
Für die Beispiele in dieser Schnellstartanleitung werden die Transportkomponenten
azure-iot-provisioning-device-http
undazure-iot-device-mqtt
verwendet.
Ö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.js
Führen Sie das Beispiel aus.
Im Ausgabefenster werden der Endorsement Key und die Registrierungs-ID für die Geräteregistrierung angezeigt. 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=true
Navigieren Sie zum Beispielordner.
cd provisioning/provisioning-samples/provisioning-tpm-sample
In diesem Abschnitt erstellen Sie ein Beispiel, bei dem der Endorsement Key und die Registrierungs-ID aus dem ausgeführten TPM-Simulator gelesen werden. Sie führen das Beispiel aus, und es wird weiterhin über die Ports 2321 und 2322 gelauscht. Diese Werte werden für die Geräteregistrierung bei Ihrer Instanz des Device Provisioning-Diensts 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 eine Registrierungs-ID und einen Endorsement Key und zeigt diese an. Notieren oder kopieren Sie diese Werte. Sie werden im nächsten Abschnitt für die Geräteregistrierung verwendet.
Melden Sie sich beim Azure-Portal an, wählen Sie im Menü links die Schaltfläche Alle Ressourcen aus, und öffnen Sie Ihre Device Provisioning Service-Instanz. Notieren Sie sich den ID-Bereich und den globalen Endpunkt für den Bereitstellungsdienst.
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.jar
Wenn die Ausführung des Programms beginnt, werden der Endorsement Key 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 führen Sie ein Beispiel aus, das den Endorsement Key aus Ihrem TPM 2.0-Hardwaresicherheitsmodul liest. Dieser Wert wird für die Geräteregistrierung bei 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 Endorsement Key an, der zum Überprüfen des Geräts für diese Registrierung verwendet wird. 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 der Seite Registrierung hinzufügen die folgenden Informationen an, um zu definieren, wie neu bereitgestellte Geräte konfiguriert werden sollen:
Feld Beschreibung Geräte-ID Geben Sie eine Geräte-ID an, die dem bereitgestellten Gerät im IoT-Hub zugewiesen wird. Wenn Sie keine Geräte-ID angeben, wird die Registrierungs-ID verwendet. IoT Edge Aktivieren Sie das Kontrollkästchen IoT Edge auf bereitgestellten Geräten aktivieren, wenn auf dem bereitgestellten Gerät Azure IoT Edge ausgeführt wird. 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.
Klicken Sie auf Weiter: Überprüfen + erstellen.
Ü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 Endorsement Key an, der zum Überprüfen des Geräts für diese Registrierung verwendet wird. 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 der Seite Registrierung hinzufügen die folgenden Informationen an, um zu definieren, wie neu bereitgestellte Geräte konfiguriert werden sollen:
Feld Beschreibung Geräte-ID Geben Sie eine Geräte-ID an, die dem bereitgestellten Gerät im IoT-Hub zugewiesen wird. Wenn Sie keine Geräte-ID angeben, wird die Registrierungs-ID verwendet. IoT Edge Aktivieren Sie das Kontrollkästchen IoT Edge auf bereitgestellten Geräten aktivieren, wenn auf dem bereitgestellten Gerät Azure IoT Edge ausgeführt wird. 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.
Klicken Sie auf Weiter: Überprüfen + erstellen.
Ü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 zum Verwenden 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 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 im oberen Bereich der Datei die
#define
-Anweisungen für jedes Geräteprotokoll, wie unten dargestellt. Stellen Sie sicher, dass nurSAMPLE_AMQP
auskommentiert 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_HTTP
Suchen 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_type
wie unten dargestellt aufSECURE_DEVICE_TYPE_TPM
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;
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 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 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 weitere Protokolle wie etwa 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 die Werte für Globaler Geräteendpunkt und ID-Bereich 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.js
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.
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 Menü Explorer die Option IoT-Geräte aus.
Wenn Ihr Gerät erfolgreich bereitgestellt wurde, sollte die Geräte-ID in der Liste mit dem StatusAktiviert angezeigt werden. Wählen Sie oben auf der Seite Aktualisieren aus, falls Ihr Gerät nicht angezeigt wird.
Wenn Ihr Gerät erfolgreich bereitgestellt wurde, sollte die Geräte-ID in der Liste mit dem StatusAktiviert angezeigt werden. Wählen Sie oben auf der Seite Aktualisieren aus, falls Ihr Gerät nicht angezeigt wird.
Wenn Ihr Gerät erfolgreich bereitgestellt wurde, sollte die Geräte-ID in der Liste mit dem StatusAktiviert angezeigt werden. Wählen Sie oben auf der Seite Aktualisieren aus, falls Ihr Gerät nicht angezeigt wird.
Wenn Ihr Gerät erfolgreich bereitgestellt wurde, sollte die Geräte-ID in der Liste mit dem StatusAktiviert angezeigt werden. Wählen Sie oben auf der Seite Aktualisieren aus, falls Ihr Gerät nicht angezeigt wird.
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 Azure-Portal im linken Menü die Option Alle Ressourcen aus.
Wählen Sie Ihre Device Provisioning Service-Instanz aus.
Wählen Sie im Menü Einstellungen die Option Registrierungen verwalten aus.
Wählen Sie die Registerkarte Individuelle Registrierungen aus.
Aktivieren Sie das Kontrollkästchen neben der Registrierungs-ID des Geräts, das Sie in dieser Schnellstartanleitung registriert haben.
Wählen Sie oben auf der Seite Löschen aus.
Löschen Ihrer Geräteregistrierung aus IoT Hub
Wählen Sie im Azure-Portal im linken Menü die Option Alle Ressourcen aus.
Wählen Sie Ihren IoT Hub aus.
Wählen Sie im Menü Explorer die Option IoT-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 oben auf der Seite 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.