Quickstart: Een gesimuleerd TPM-apparaat inrichten
In deze quickstart maakt u een gesimuleerd apparaat op uw Windows-computer. Het gesimuleerde apparaat wordt geconfigureerd voor het gebruik van een TPM-attestation-mechanisme (Trusted Platform Module) voor verificatie. Nadat u uw apparaat hebt geconfigureerd, richt u het in op uw IoT-hub met behulp van de Azure IoT Hub Device Provisioning Service. Voorbeeldcode wordt vervolgens gebruikt om het apparaat te registreren bij een Device Provisioning Service-exemplaar.
Als u niet bekend bent met het inrichtingsproces, raadpleegt u het inrichtingsoverzicht . Controleer ook of u de stappen in IoT Hub Device Provisioning Service instellen met Azure Portal hebt voltooid voordat u verdergaat.
Azure IoT Device Provisioning Service ondersteunt twee typen inschrijvingen:
Inschrijvingsgroepen die worden gebruikt om meerdere gerelateerde apparaten in te schrijven.
Afzonderlijke inschrijvingen die worden gebruikt om één apparaat in te schrijven.
In dit artikel worden individuele inschrijvingen gedemonstreerd.
Tpm-attestation (Trusted Platform Module) wordt niet ondersteund in de Python SDK. Met Python kunt u een apparaat inrichten met behulp van symmetrische sleutels of X.509-certificaten.
Vereisten
Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.
Voer de stappen uit in IoT Hub Device Provisioning Service instellen met Azure Portal.
De volgende vereisten gelden voor een ontwikkelomgeving in Windows. Voor Linux of macOS raadpleegt u het desbetreffende gedeelte in Uw ontwikkelomgeving voorbereiden in de SDK-documentatie.
- Visual Studio 2019 met de workload Desktopontwikkeling met C++ ingeschakeld. Visual Studio 2015 en Visual Studio 2017 worden ook ondersteund.
Een TPM 2.0-hardwarebeveiligingsmodule op uw Windows-computer.
Installeer .NET Core SDK 6.0 of hoger op uw Windows-computer. U kunt de volgende opdracht gebruiken om uw versie te controleren.
dotnet --info
- Installeer Node.js v4.0+.
Installeer Java SE Development Kit 8 of hoger die op uw computer is geïnstalleerd.
Download en installeer Maven.
- Installeer de meest recente versie van Git. Zorg ervoor dat Git is toegevoegd aan de omgevingsvariabelen die toegankelijk zijn voor het opdrachtvenster. Zie de Git-clienthulpprogramma's van Software Freedom Conservancy voor de nieuwste versie van
git
hulpprogramma's die u kunt installeren, waaronder Git Bash, de opdrachtregel-app die u kunt gebruiken om te communiceren met uw lokale Git-opslagplaats.
Uw ontwikkelomgeving voorbereiden
In deze sectie bereidt u een ontwikkelomgeving voor die wordt gebruikt om de Azure IoT C SDK en het voorbeeld van de TPM-apparaatsimulator te bouwen.
Download het nieuwste CMake-buildsysteem.
Belangrijk
Controleer of de vereisten voor Visual Studio (Visual Studio en de workload Desktopontwikkeling met C++) op uw computer zijn geïnstalleerd voordat u de
CMake
installatie start. Zodra aan de vereisten is voldaan en de download is geverifieerd, installeert u het CMake-bouwsysteem. Houd er ook rekening mee dat oudere versies van het CMake-buildsysteem het oplossingsbestand dat in dit artikel wordt gebruikt, niet kunnen genereren. Zorg ervoor dat u de nieuwste versie van CMake gebruikt.Open een webbrowser en ga naar de releasepagina van de Azure IoT C SDK.
Selecteer het tabblad Tags boven aan de pagina.
Kopieer de tagnaam voor de nieuwste versie van de Azure IoT C SDK.
Open een opdrachtprompt of Git Bash-shell. Voer de volgende opdrachten uit om de nieuwste versie van de Azure IoT Device SDK voor C GitHub-opslagplaats te klonen. Vervang
<release-tag>
door de tag die u in de vorige stap hebt gekopieerd, bijvoorbeeld: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
Het kan enkele minuten duren voordat deze bewerking is voltooid.
Wanneer de bewerking is voltooid, voert u de volgende opdrachten uit vanuit de
azure-iot-sdk-c
map:mkdir cmake cd cmake
Open een Git CMD- of Git Bash-opdrachtregelomgeving.
Kloon de Azure IoT SDK voor C# GitHub-opslagplaats met behulp van de volgende opdracht:
git clone https://github.com/Azure/azure-iot-sdk-csharp.git
Open een Git CMD- of Git Bash-opdrachtregelomgeving.
Kloon de GitHub-opslagplaats azure-utpm-c met behulp van de volgende opdracht:
git clone https://github.com/Azure/azure-utpm-c.git --recursive
Open een Git CMD- of Git Bash-opdrachtregelomgeving.
Kloon de Java GitHub-opslagplaats met behulp van de volgende opdracht:
git clone https://github.com/Azure/azure-iot-sdk-java.git --recursive
De TPM-apparaatsimulator bouwen en uitvoeren
In deze sectie bouwt en voert u de TPM-simulator uit. Deze simulator luistert via een socket op poorten 2321 en 2322. Sluit het opdrachtvenster niet. U moet deze simulator actief houden tot het einde van deze quickstart.
Voer de volgende opdracht uit om azure IoT C SDK te bouwen die de voorbeeldcode van de TPM-apparaatsimulator bevat. Er wordt een Visual Studio-oplossing voor het gesimuleerde apparaat gegenereerd in de map
cmake
. Dit voorbeeld biedt een TPM attestation-mechanisme via SAS-tokenverificatie (Shared Access Signature).cmake -Duse_prov_client:BOOL=ON -Duse_tpm_simulator:BOOL=ON ..
Tip
Als
cmake
uw C++-compiler niet wordt gevonden, kunnen er buildfouten optreden tijdens het uitvoeren van de bovenstaande opdracht. Als dit gebeurt, voert u de opdracht uit in de Visual Studio-opdrachtprompt.Wanneer de build slaagt, zien de laatste paar uitvoerlijnen er ongeveer als volgt uit:
$ 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
Ga naar de hoofdmap van de Git-opslagplaats die u hebt gekloond.
Voer de TPM-simulator uit met behulp van het onderstaande pad.
cd .. .\provisioning_client\deps\utpm\tools\tpm_simulator\Simulator.exe
De simulator geeft geen uitvoer weer. Laat het blijven uitvoeren terwijl er een TPM-apparaat wordt gesimuleerd.
Ga naar de hoofdmap van GitHub.
Voer de TPM-simulator uit als de HSM voor het gesimuleerde apparaat.
.\azure-utpm-c\tools\tpm_simulator\Simulator.exe
Maak een nieuwe, lege map met de naam registerdevice. Maak in de map registerdevice een package.json-bestand met behulp van de volgende opdracht bij de opdrachtprompt (zorg ervoor dat u alle vragen beantwoordt die door
npm
u worden gesteld of accepteer de standaardwaarden als deze geschikt zijn voor u):npm init
Installeer de volgende precursorpakketten:
npm install node-gyp -g npm install ffi-napi -g
Notitie
Het installeren van de bovengenoemde pakketten kan problemen met zich meebrengen. U kunt deze oplossen door
npm install --global --production windows-build-tools
uit te voeren via een opdrachtprompt in de modus Uitvoeren als administrator. Vervolgens voert uSET VCTargetsPath=C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140
uit nadat u het pad hebt vervangen door dat van de geïnstalleerde versie. Voer ten slotte de bovenstaande installatieopdrachten opnieuw uit.Installeer alle vereiste pakketten met de volgende opdracht bij de opdrachtprompt in de map registerdevice :
npm install --save azure-iot-device azure-iot-device-mqtt azure-iot-security-tpm azure-iot-provisioning-device-http azure-iot-provisioning-device
Met de opdracht worden de volgende pakketten geïnstalleerd:
Een beveiligingsclient die werkt met TPM:
azure-iot-security-tpm
Een transport voor het apparaat om verbinding te maken met Device Provisioning Service: of
azure-iot-provisioning-device-http
azure-iot-provisioning-device-amqp
Een client voor het gebruik van de transport- en beveiligingsclient:
azure-iot-provisioning-device
De apparaatclient:
azure-iot-device
Een transport: elk van
azure-iot-device-amqp
,azure-iot-device-mqtt
ofazure-iot-device-http
De beveiligingsclient die u al hebt geïnstalleerd:
azure-iot-security-tpm
Notitie
De voorbeelden in deze quickstart gebruiken de
azure-iot-provisioning-device-http
enazure-iot-device-mqtt
transporten.
Open een teksteditor van uw keuzes.
Maak in de map registerdevice een nieuw ExtractDevice.js-bestand .
Voeg de volgende
require
-instructies toe aan het begin van het bestand ExtractDevice.js:'use strict'; var tpmSecurity = require('azure-iot-security-tpm'); var tssJs = require("tss.js"); var myTpm = new tpmSecurity.TpmSecurityClient(undefined, new tssJs.Tpm(true));
Voeg de volgende functie toe om de methode te implementeren:
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(); } }); } });
Sla het bestand ExtractDevice.js op en sluit het.
node ExtractDevice.js
Voet het voorbeeld uit.
In het uitvoervenster worden de voor apparaatinschrijving vereiste goedkeuringssleutel en registratie-id weergegeven. Kopieer deze waarden.
Voer de TPM-simulator uit als de HSM voor het gesimuleerde apparaat.
Selecteer Toegang toestaan. De simulator luistert via een socket op poorten 2321 en 2322. Sluit dit opdrachtvenster niet; U moet deze simulator actief houden tot het einde van deze snelstartgids.
.\azure-iot-sdk-java\provisioning\provisioning-tools\tpm-simulator\Simulator.exe
Open een tweede opdrachtprompt.
Navigeer in de tweede opdrachtprompt naar de hoofdmap en bouw de voorbeeldafhankelijkheden.
cd azure-iot-sdk-java mvn install -DskipTests=true
Navigeer naar de voorbeeldmap.
cd provisioning/provisioning-samples/provisioning-tpm-sample
In deze sectie bouwt en voert u een voorbeeld uit dat de goedkeuringssleutel en registratie-id leest van de TPM-simulator die u nog hebt uitgevoerd en nog steeds luistert via poorten 2321 en 2322. Deze waarden worden gebruikt voor de inschrijving van apparaten met uw Device Provisioning Service-exemplaar.
Start Visual Studio.
Open de oplossing die is gegenereerd in de map cmake met de naam
azure_iot_sdks.sln
.Selecteer in het menu van Visual Studio, Build>Build Solution om alle projecten in de oplossing te bouwen.
Navigeer in het venster Solution Explorer van Visual Studio naar de map Provision_Tools. Klik met de rechtermuisknop op het tpm_device_provision-project en selecteer Set as Startup Project.
Selecteer in het menu van Visual Studio de optie Debug>Start without debugging om de oplossing uit te voeren. De app leest een Registratie-id en een Goedkeuringssleutel en geeft deze weer. Kopieer deze waarden of noteer ze. Deze worden gebruikt in de volgende sectie voor apparaatinschrijving.
Meld u aan bij Azure Portal, selecteer de knop Alle resources in het menu aan de linkerkant en open device provisioning Service. Noteer de waarden voor Id-bereik en Globaal eindpunt voor inrichtingsservice.
Bewerk
src/main/java/samples/com/microsoft/azure/sdk/iot/ProvisioningTpmSample.java
om de eerder genoteerde waarden voor Id-bereik en Globaal eindpunt voor inrichtingsservice toe te voegen.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;
Sla het bestand op.
Gebruik de volgende opdrachten om het project te bouwen, naar de doelmap te navigeren en het gemaakte .jar-bestand uit te voeren (vervang
{version}
door uw versie van Java):mvn clean install cd target java -jar ./provisioning-tpm-sample-{version}-with-deps.jar
Wanneer het programma wordt uitgevoerd, wordt de goedkeuringssleutel en registratie-id weergegeven. Kopieer deze waarden voor de volgende sectie. Zorg ervoor dat het programma actief blijft.
In deze sectie bouwt en voert u een voorbeeld uit waarmee de goedkeuringssleutel van uw TPM 2.0-hardwarebeveiligingsmodule wordt gelezen. Deze waarde wordt gebruikt voor apparaatinschrijving met uw Device Provisioning Service-exemplaar.
Ga op een opdrachtprompt naar de projectmap met de voorbeeldcode voor het inrichten van het de TPM-apparaat.
cd '.\azure-iot-sdk-csharp\provisioning\device\samples\how to guides\TpmSample\'
Typ de volgende opdracht om de voorbeeldcode voor het TPM-apparaat te bouwen en uit te voeren. Kopieer de goedkeuringssleutel die is geretourneerd uit uw TPM 2.0-hardwarebeveiligingsmodule om later te gebruiken bij het inschrijven van uw apparaat.
dotnet run -- -e
Meld u aan bij Azure Portal en navigeer naar uw Device Provisioning Service-exemplaar.
Selecteer Inschrijvingen beheren in de sectie Instellingen van het navigatiemenu.
Selecteer het tabblad Afzonderlijke inschrijvingen en selecteer vervolgens Afzonderlijke inschrijving toevoegen.
Geef op de pagina Registratie en inrichting van de pagina Inschrijving toevoegen de volgende informatie op om de inschrijvingsgegevens te configureren:
Veld Beschrijving Attest Selecteer Trusted Platform Module (TPM) als attestation-mechanisme. TPM-instellingen (Trusted Platform Module) Geef de goedkeuringssleutel op die wordt gebruikt om het apparaat voor deze inschrijving te verifiëren. U kunt de goedkeuringssleutel ophalen uit de TPM van uw apparaat. Registratie-id Geef de unieke registratie-id voor het apparaat op. U kunt de registratie-id ophalen uit de TPM van uw apparaat. Inrichtingsstatus Schakel het selectievakje Deze inschrijving inschakelen in als u wilt dat deze inschrijving beschikbaar is om het apparaat in te richten. Schakel dit selectievakje uit als u wilt dat de inschrijving wordt uitgeschakeld. U kunt deze instelling later wijzigen. Beleid voor opnieuw inrichten Kies een beleid voor opnieuw inrichten dat aangeeft hoe DPS apparaten verwerkt die herinrichting aanvragen. Zie Beleid voor opnieuw inrichten voor meer informatie. Selecteer Volgende: IoT-hubs.
Geef op het tabblad IoT Hubs van de pagina Inschrijving toevoegen de volgende informatie op om te bepalen voor welke IoT-hubs de inschrijving apparaten kan inrichten:
Veld Beschrijving IoT-doelhubs Selecteer een of meer gekoppelde IoT-hubs of voeg een nieuwe koppeling toe aan een IoT-hub. Zie IoT-hubs koppelen en beheren voor meer informatie over het koppelen van IoT-hubs aan uw DPS-exemplaar. Toewijzingsbeleid Als u meer dan één gekoppelde IoT-hub hebt geselecteerd, selecteert u hoe u apparaten wilt toewijzen aan de verschillende hubs. Zie Toewijzingsbeleid gebruiken voor meer informatie over toewijzingsbeleid.
Als u slechts één gekoppelde IoT-hub hebt geselecteerd, raden we u aan het gelijkmatig gewogen distributiebeleid te gebruiken.Volgende selecteren: Apparaatinstellingen
Geef op het tabblad Apparaatinstellingen van de pagina Inschrijving toevoegen de volgende informatie op om te definiëren hoe nieuw ingerichte apparaten worden geconfigureerd:
Veld Beschrijving Apparaat-id Geef een apparaat-id op die wordt toegewezen aan het ingerichte apparaat in IoT Hub. Als u geen apparaat-id opgeeft, wordt de registratie-id gebruikt. IoT Edge Schakel IoT Edge in op ingerichte apparaten als op het ingerichte apparaat Azure IoT Edge wordt uitgevoerd. Schakel dit selectievakje uit als deze inschrijving is bedoeld voor een apparaat dat niet is ingeschakeld voor IoT Edge. Apparaattags Gebruik dit tekstvak om alle tags op te geven die u wilt toepassen op de apparaatdubbel van het ingerichte apparaat. Gewenste eigenschappen Gebruik dit tekstvak om de gewenste eigenschappen op te geven die u wilt toepassen op de apparaatdubbel van het ingerichte apparaat. Zie Apparaatdubbels begrijpen en gebruiken in IoT Hub voor meer informatie.
Selecteer Volgende: Beoordelen en maken.
Controleer op het tabblad Controleren en maken al uw waarden en selecteer Vervolgens Maken.
Het C#TPM-voorbeeld voor deze quickstart biedt geen registratie-id. Wanneer u wordt gevraagd om er een toe te voegen voor de afzonderlijke inschrijving, geeft u uw eigen waarde op.
Meld u aan bij Azure Portal en navigeer naar uw Device Provisioning Service-exemplaar.
Selecteer Inschrijvingen beheren in de sectie Instellingen van het navigatiemenu.
Selecteer het tabblad Afzonderlijke inschrijvingen en selecteer vervolgens Afzonderlijke inschrijving toevoegen.
Geef op de pagina Registratie en inrichting van de pagina Inschrijving toevoegen de volgende informatie op om de inschrijvingsgegevens te configureren:
Veld Beschrijving Attest Selecteer Trusted Platform Module (TPM) als attestation-mechanisme. TPM-instellingen (Trusted Platform Module) Geef de goedkeuringssleutel op die wordt gebruikt om het apparaat voor deze inschrijving te verifiëren. U kunt de goedkeuringssleutel ophalen uit de TPM van uw apparaat. Registratie-id Geef de unieke registratie-id voor het apparaat op. U kunt de registratie-id ophalen uit de TPM van uw apparaat. Inrichtingsstatus Schakel het selectievakje Deze inschrijving inschakelen in als u wilt dat deze inschrijving beschikbaar is om het apparaat in te richten. Schakel dit selectievakje uit als u wilt dat de inschrijving wordt uitgeschakeld. U kunt deze instelling later wijzigen. Beleid voor opnieuw inrichten Kies een beleid voor opnieuw inrichten dat aangeeft hoe DPS apparaten verwerkt die herinrichting aanvragen. Zie Beleid voor opnieuw inrichten voor meer informatie. Selecteer Volgende: IoT-hubs.
Geef op het tabblad IoT Hubs van de pagina Inschrijving toevoegen de volgende informatie op om te bepalen voor welke IoT-hubs de inschrijving apparaten kan inrichten:
Veld Beschrijving IoT-doelhubs Selecteer een of meer gekoppelde IoT-hubs of voeg een nieuwe koppeling toe aan een IoT-hub. Zie IoT-hubs koppelen en beheren voor meer informatie over het koppelen van IoT-hubs aan uw DPS-exemplaar. Toewijzingsbeleid Als u meer dan één gekoppelde IoT-hub hebt geselecteerd, selecteert u hoe u apparaten wilt toewijzen aan de verschillende hubs. Zie Toewijzingsbeleid gebruiken voor meer informatie over toewijzingsbeleid.
Als u slechts één gekoppelde IoT-hub hebt geselecteerd, raden we u aan het gelijkmatig gewogen distributiebeleid te gebruiken.Volgende selecteren: Apparaatinstellingen
Geef op het tabblad Apparaatinstellingen van de pagina Inschrijving toevoegen de volgende informatie op om te definiëren hoe nieuw ingerichte apparaten worden geconfigureerd:
Veld Beschrijving Apparaat-id Geef een apparaat-id op die wordt toegewezen aan het ingerichte apparaat in IoT Hub. Als u geen apparaat-id opgeeft, wordt de registratie-id gebruikt. IoT Edge Schakel IoT Edge in op ingerichte apparaten als op het ingerichte apparaat Azure IoT Edge wordt uitgevoerd. Schakel dit selectievakje uit als deze inschrijving is bedoeld voor een apparaat dat niet is ingeschakeld voor IoT Edge. Apparaattags Gebruik dit tekstvak om alle tags op te geven die u wilt toepassen op de apparaatdubbel van het ingerichte apparaat. Gewenste eigenschappen Gebruik dit tekstvak om de gewenste eigenschappen op te geven die u wilt toepassen op de apparaatdubbel van het ingerichte apparaat. Zie Apparaatdubbels begrijpen en gebruiken in IoT Hub voor meer informatie.
Selecteer Volgende: Beoordelen en maken.
Controleer op het tabblad Controleren en maken al uw waarden en selecteer Vervolgens Maken.
Apparaat registreren
In deze sectie configureert u voorbeeldcode voor het gebruik van het Advanced Message Queuing Protocol (AMQP) om de opstartvolgorde van het apparaat naar uw Device Provisioning Service-exemplaar te verzenden. Deze opstartvolgorde zorgt ervoor dat het apparaat wordt geregistreerd bij een IoT-hub die is gekoppeld aan het Device Provisioning Service-exemplaar.
Selecteer in Azure Portal het tabblad Overzicht voor Device Provisioning Service.
Kopieer de waarde van het id-bereik.
Navigeer in het venster Solution Explorer van Visual Studio naar de map Provision_Samples. Vouw het voorbeeldproject met de naam prov_dev_client_sample uit. Vouw bronbestanden uit en open prov_dev_client_sample.c.
Zoek boven aan het bestand de instructies
#define
op voor elk apparaatprotocol, zoals hieronder wordt weergegeven. Zorg ervoor dat alleenSAMPLE_AMQP
geen commentaar bevat.Momenteel wordt het MQTT-protocol niet ondersteund voor afzonderlijke TPM-inschrijvingen.
// // 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
Zoek de constante
id_scope
op en vervang de waarde door uw Id-bereik-waarde die u eerder hebt gekopieerd.static const char* id_scope = "0ne00002193";
Zoek de definitie voor de functie
main()
op in hetzelfde bestand. Zorg ervoor dat variabelehsm_type
is ingesteld opSECURE_DEVICE_TYPE_TPM
, zoals hieronder wordt weergegeven.SECURE_DEVICE_TYPE hsm_type; hsm_type = SECURE_DEVICE_TYPE_TPM; //hsm_type = SECURE_DEVICE_TYPE_X509; //hsm_type = SECURE_DEVICE_TYPE_SYMMETRIC_KEY;
Klik met de rechtermuisknop op het prov_dev_client_sample project en selecteer Instellen als opstartproject.
Selecteer in het menu van Visual Studio de optie Debug>Start without debugging om de oplossing uit te voeren. Selecteer Yes in de prompt voor het opnieuw maken van het project om het project opnieuw te maken voordat het wordt uitgevoerd.
De volgende uitvoer is een voorbeeld van de voorbeeldcode van de Provisioning Device-client die met succes opstart en verbinding maakt met het Device Provisioning Service-exemplaar om IoT hub-informatie op te halen en zich te registreren:
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
Selecteer in Azure Portal het tabblad Overzicht voor Device Provisioning Service.
Kopieer de waarde van het id-bereik.
Ga op een opdrachtprompt naar de projectmap met de voorbeeldcode voor het inrichten van het de TPM-apparaat.
cd '.\azure-iot-sdk-csharp\provisioning\device\samples\how to guides\TpmSample\'
Voer de volgende opdracht uit om uw apparaat te registreren. Vervang
<IdScope>
door de waarde voor de DPS die u hebt gekopieerd en<RegistrationId>
door de waarde die u hebt gebruikt bij het maken van de apparaatinschrijving.dotnet run -- -s <IdScope> -r <RegistrationId>
Als de apparaatregistratie is geslaagd, ziet u de volgende berichten:
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.
Selecteer in Azure Portal het tabblad Overzicht voor Device Provisioning Service.
Kopieer de waarde van het id-bereik.
Open een teksteditor naar keuze.
Maak in de map registerdevice een nieuw RegisterDevice.js-bestand .
Voeg de volgende
require
-instructies toe aan het begin van het bestand RegisterDevice.js:'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;
Notitie
Azure IoT SDK for Node.js ondersteunt aanvullende protocollen, zoals AMQP, AMQP WS en MQTT WS. Zie Device Provisioning Service SDK for Node.js samples (Device Provisioning Service-SDK voor Node.js-voorbeelden) voor meer voorbeelden.
Voeg de variabelen globalDeviceEndpoint en idScope toe en gebruik ze om een ProvisioningDeviceClient-exemplaar te maken. Vervang {globalDeviceEndpoint} en {idScope} door de waarden Global Device Endpoint en ID Scope uit Stap 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);
Voeg de volgende functie toe om de methode in het apparaat te implementeren:
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); }; } } });
Sla het bestand RegisterDevice.js op en sluit het.
Voer de volgende opdracht uit:
node RegisterDevice.js
De gegevens van uw IoT-hub leest u in de berichten die het opstarten van het apparaat en het verbinding maken met Device Provisioning Service simuleren.
Druk in het opdrachtvenster met de Java-voorbeeldcode op uw computer op Enter om door te gaan met het uitvoeren van de toepassing. De gegevens van uw IoT-hub leest u in de berichten die het opstarten van het apparaat en het verbinding maken met Device Provisioning Service simuleren.
De registratie van de apparaatinrichting bevestigen
Meld u aan bij het Azure-portaal.
Selecteer Alle resources in het linkermenu of op de portalpagina.
Selecteer de IoT-hub waaraan uw apparaat is toegewezen.
Selecteer IoT-apparaten in het menu Explorers.
Als uw apparaat is ingericht, moet de apparaat-id worden weergegeven in de lijst, waarbij status is ingesteld als ingeschakeld. Als u uw apparaat niet ziet, selecteert u Vernieuwen boven aan de pagina.
Als uw apparaat is ingericht, moet de apparaat-id worden weergegeven in de lijst, waarbij status is ingesteld als ingeschakeld. Als u uw apparaat niet ziet, selecteert u Vernieuwen boven aan de pagina.
Als uw apparaat is ingericht, moet de apparaat-id worden weergegeven in de lijst, waarbij status is ingesteld als ingeschakeld. Als u uw apparaat niet ziet, selecteert u Vernieuwen boven aan de pagina.
Als uw apparaat is ingericht, moet de apparaat-id worden weergegeven in de lijst, waarbij status is ingesteld als ingeschakeld. Als u uw apparaat niet ziet, selecteert u Vernieuwen boven aan de pagina.
Notitie
Als u de standaardwaarde van de initiële status van de apparaatdubbel hebt gewijzigd in de inschrijvingsvermelding voor uw apparaat, kan de gewenste status van de dubbel uit de hub worden gehaald en er dienovereenkomstig naar worden gehandeld. Zie Apparaatdubbels begrijpen en gebruiken in IoT Hub voor meer informatie.
Resources opschonen
Als u van plan bent om door te gaan met het voorbeeld van de apparaatclient, moet u de resources die in deze quickstart zijn gemaakt, niet opschonen. Als u niet van plan bent om door te gaan, gebruikt u de volgende stappen om alle resources te verwijderen die door deze quickstart zijn gemaakt.
Uw apparaatinschrijving verwijderen
Sluit het uitvoervenster van het voorbeeld van de apparaatclient op de computer.
Selecteer Alle resources in het linkermenu in Azure Portal.
Selecteer uw Device Provisioning Service.
Selecteer Inschrijvingen beheren in het menu Instellingen.
Selecteer het tabblad Afzonderlijke inschrijvingen .
Schakel het selectievakje in naast de registratie-id van het apparaat dat u in deze quickstart hebt ingeschreven.
Selecteer Verwijderen bovenaan de pagina.
Uw apparaatregistratie verwijderen uit IoT Hub
Selecteer Alle resources in het linkermenu in Azure Portal.
Selecteer uw IoT-hub.
Selecteer IoT-apparaten in het menu Explorers.
Schakel het selectievakje in naast de apparaat-id van het apparaat dat u in deze quickstart hebt geregistreerd.
Selecteer Verwijderen bovenaan de pagina.
Volgende stappen
In deze quickstart hebt u één apparaat ingericht voor uw IoT-hub met behulp van een afzonderlijke inschrijving. Leer vervolgens hoe u meerdere apparaten in meerdere hubs inricht.