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:

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

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.

  • 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 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.

  1. 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.

  2. Open een webbrowser en ga naar de releasepagina van de Azure IoT C SDK.

  3. Selecteer het tabblad Tags boven aan de pagina.

  4. Kopieer de tagnaam voor de nieuwste versie van de Azure IoT C SDK.

  5. 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.

  6. Wanneer de bewerking is voltooid, voert u de volgende opdrachten uit vanuit de azure-iot-sdk-c map:

    mkdir cmake
    cd cmake
    
  1. Open een Git CMD- of Git Bash-opdrachtregelomgeving.

  2. 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
    
  1. Open een Git CMD- of Git Bash-opdrachtregelomgeving.

  2. Kloon de GitHub-opslagplaats azure-utpm-c met behulp van de volgende opdracht:

    git clone https://github.com/Azure/azure-utpm-c.git --recursive
    
  1. Open een Git CMD- of Git Bash-opdrachtregelomgeving.

  2. 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.

  1. 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.

  2. 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
    
  3. Ga naar de hoofdmap van de Git-opslagplaats die u hebt gekloond.

  4. 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.

  1. Ga naar de hoofdmap van GitHub.

  2. Voer de TPM-simulator uit als de HSM voor het gesimuleerde apparaat.

    .\azure-utpm-c\tools\tpm_simulator\Simulator.exe
    
  3. 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
    
  4. 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 u SET 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.

  5. 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-httpazure-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-mqttof azure-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 en azure-iot-device-mqtt transporten.

  6. Open een teksteditor van uw keuzes.

  7. Maak in de map registerdevice een nieuw ExtractDevice.js-bestand .

  8. 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));
    
  9. 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();
          }
        });
      }
    });
    
  10. Sla het bestand ExtractDevice.js op en sluit het.

    node ExtractDevice.js
    
  11. Voet het voorbeeld uit.

  12. In het uitvoervenster worden de voor apparaatinschrijving vereiste goedkeuringssleutel en registratie-id weergegeven. Kopieer deze waarden.

  1. Voer de TPM-simulator uit als de HSM voor het gesimuleerde apparaat.

  2. 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
    

    TPM Simulator

  3. Open een tweede opdrachtprompt.

  4. Navigeer in de tweede opdrachtprompt naar de hoofdmap en bouw de voorbeeldafhankelijkheden.

    cd azure-iot-sdk-java
    mvn install -DskipTests=true
    
  5. Navigeer naar de voorbeeldmap.

    cd provisioning/provisioning-samples/provisioning-tpm-sample
    

Cryptografische sleutels van het TPM-apparaat lezen

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.

  1. Start Visual Studio.

  2. Open de oplossing die is gegenereerd in de map cmake met de naam azure_iot_sdks.sln.

  3. Selecteer in het menu van Visual Studio, Build>Build Solution om alle projecten in de oplossing te bouwen.

  4. 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.

  5. 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.

  1. 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.

    Device Provisioning Service information

  2. 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;
    
  3. Sla het bestand op.

  4. 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
    
  5. 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.

  1. 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\'
    
  2. 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
    

Een vermelding voor apparaatinschrijving maken

  1. Meld u aan bij Azure Portal en navigeer naar uw Device Provisioning Service-exemplaar.

  2. Selecteer Inschrijvingen beheren in de sectie Instellingen van het navigatiemenu.

  3. Selecteer het tabblad Afzonderlijke inschrijvingen en selecteer vervolgens Afzonderlijke inschrijving toevoegen.

    Screenshot that shows the add individual enrollment option.

  4. 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.
  5. Selecteer Volgende: IoT-hubs.

  6. 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.
  7. Volgende selecteren: Apparaatinstellingen

  8. 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.

  9. Selecteer Volgende: Beoordelen en maken.

  10. 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.

  1. Meld u aan bij Azure Portal en navigeer naar uw Device Provisioning Service-exemplaar.

  2. Selecteer Inschrijvingen beheren in de sectie Instellingen van het navigatiemenu.

  3. Selecteer het tabblad Afzonderlijke inschrijvingen en selecteer vervolgens Afzonderlijke inschrijving toevoegen.

    Screenshot that shows the add individual enrollment option.

  4. 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.
  5. Selecteer Volgende: IoT-hubs.

  6. 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.
  7. Volgende selecteren: Apparaatinstellingen

  8. 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.

  9. Selecteer Volgende: Beoordelen en maken.

  10. 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.

  1. Selecteer in Azure Portal het tabblad Overzicht voor Device Provisioning Service.

  2. Kopieer de waarde van het id-bereik.

    Extract Device Provisioning Service endpoint information from the portal

  3. 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.

  4. Zoek boven aan het bestand de instructies #define op voor elk apparaatprotocol, zoals hieronder wordt weergegeven. Zorg ervoor dat alleen SAMPLE_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
    
  5. 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";
    
  6. Zoek de definitie voor de functie main() op in hetzelfde bestand. Zorg ervoor dat variabele hsm_type is ingesteld op SECURE_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;
    
  7. Klik met de rechtermuisknop op het prov_dev_client_sample project en selecteer Instellen als opstartproject.

  8. 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
    
  1. Selecteer in Azure Portal het tabblad Overzicht voor Device Provisioning Service.

  2. Kopieer de waarde van het id-bereik.

    Copy provisioning service Scope ID from the portal blade

  3. 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\'
    
  4. 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.
    
  1. Selecteer in Azure Portal het tabblad Overzicht voor Device Provisioning Service.

  2. Kopieer de waarde van het id-bereik.

    Extract Device Provisioning Service endpoint information from the portal blade

  3. Open een teksteditor naar keuze.

  4. Maak in de map registerdevice een nieuw RegisterDevice.js-bestand .

  5. 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.

  6. 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);
    
  7. 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);
          };
        }
      }
    });
    
  8. Sla het bestand RegisterDevice.js op en sluit het.

  9. Voer de volgende opdracht uit:

    node RegisterDevice.js
    
  10. 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.

  1. 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.

    Java TPM device program final

De registratie van de apparaatinrichting bevestigen

  1. Meld u aan bij het Azure-portaal.

  2. Selecteer Alle resources in het linkermenu of op de portalpagina.

  3. Selecteer de IoT-hub waaraan uw apparaat is toegewezen.

  4. Selecteer IoT-apparaten in het menu Explorers.

  1. 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.

    Device is registered with the IoT hub for C

  1. 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.

    Device is registered with the IoT hub for C#

  1. 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.

    Device is registered with the IoT hub for Node.js

  1. 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.

    Device is registered with the IoT hub

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

  1. Sluit het uitvoervenster van het voorbeeld van de apparaatclient op de computer.

  2. Selecteer Alle resources in het linkermenu in Azure Portal.

  3. Selecteer uw Device Provisioning Service.

  4. Selecteer Inschrijvingen beheren in het menu Instellingen.

  5. Selecteer het tabblad Afzonderlijke inschrijvingen .

  6. Schakel het selectievakje in naast de registratie-id van het apparaat dat u in deze quickstart hebt ingeschreven.

  7. Selecteer Verwijderen bovenaan de pagina.

Uw apparaatregistratie verwijderen uit IoT Hub

  1. Selecteer Alle resources in het linkermenu in Azure Portal.

  2. Selecteer uw IoT-hub.

  3. Selecteer IoT-apparaten in het menu Explorers.

  4. Schakel het selectievakje in naast de apparaat-id van het apparaat dat u in deze quickstart hebt geregistreerd.

  5. 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.