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. De voorbeeldcode wordt vervolgens gebruikt om het apparaat in te schrijven 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 Git-clienthulpprogramma's van Software Freedom Conservancy voor de nieuwste versie van git de hulpprogramma's die moeten worden geïnstalleerd, 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 voor het bouwen van de Azure IoT C SDK en het voorbeeld van de TPM-apparaatsimulator.

  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 niet het oplossingsbestand kunnen genereren dat in dit artikel wordt gebruikt. Zorg ervoor dat u de nieuwste versie van CMake gebruikt.

  2. Open een webbrowser en ga naar de pagina Release 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 meest recente versie van de GitHub-opslagplaats Azure IoT Device SDK voor C te klonen. Vervang door <release-tag> 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
    

    Deze bewerking kan enkele minuten duren.

  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 GitHub-opslagplaats azure IoT SDK voor C# 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 gaat u de TPM-simulator bouwen en uitvoeren. 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 de 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 is voltooid, zien de laatste paar uitvoerregels 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 pad dat hieronder wordt weergegeven.

    cd ..
    .\provisioning_client\deps\utpm\tools\tpm_simulator\Simulator.exe
    

    De simulator geeft geen uitvoer weer. Laat deze blijven werken terwijl 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 worden gesteld door npm of accepteer de standaardwaarden als deze u uitkomt):

    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: een 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

      In de voorbeelden in deze quickstart worden de azure-iot-provisioning-device-http transporten en azure-iot-device-mqtt gebruikt.

  6. Open een teksteditor van uw keuze.

  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 uit de TPM-simulator die u actief hebt gelaten 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 de 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.

    Informatie over de Device Provisioning Service

  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 door {version}uw versie van Java):

    mvn clean install
    cd target
    java -jar ./provisioning-tpm-sample-{version}-with-deps.jar
    
  5. Wanneer het programma wordt uitgevoerd, worden de goedkeuringssleutel en registratie-id weergegeven. Kopieer deze waarden voor de volgende sectie. Zorg ervoor dat u het programma actief laat.

In deze sectie bouwt en voert u een voorbeeld uit dat de goedkeuringssleutel van de TPM 2.0-hardwarebeveiligingsmodule leest. 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 wordt geretourneerd door de TPM 2.0-hardwarebeveiligingsmodule voor later gebruik bij het inschrijven van uw apparaat.

    dotnet run -- -e
    

Een vermelding voor apparaatinschrijving maken

  1. Meld u aan bij de 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.

    Schermopname van de optie Afzonderlijke inschrijving toevoegen.

  4. Geef op de pagina Registratie en inrichting van de pagina Inschrijving toevoegen de volgende informatie op om de inschrijvingsgegevens te configureren:

    Veld Description
    Attestation 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 voor het inrichten van het apparaat. Schakel dit selectievakje uit als u wilt dat de inschrijving wordt uitgeschakeld. U kunt deze instelling later wijzigen.
    Beleid voor opnieuw inrichten Kies een herinrichtingsbeleid dat aangeeft hoe DPS apparaten verwerkt waarvoor een herinrichting wordt aangevraagd. Zie Beleid 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 Description
    Doel-IoT-hubs Selecteer een of meer van uw 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. Selecteer Volgende: Apparaatinstellingen

  8. Geef op het tabblad Apparaatinstellingen van de pagina Inschrijving toevoegen de volgende informatie op om te bepalen hoe nieuw ingerichte apparaten worden geconfigureerd:

    Veld Description
    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 Controleer de IoT Edge inschakelen op ingerichte apparaten als op het ingerichte apparaat Azure IoT Edge wordt uitgevoerd. Schakel dit selectievakje uit als deze inschrijving voor een niet-IoT Edge apparaat is ingeschakeld.
    Apparaattags Gebruik dit tekstvak om 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 al uw waarden op het tabblad Controleren en maken en selecteer vervolgens Maken.

Het C#TPM-voorbeeld voor deze quickstart biedt geen registratie-id. Wanneer u wordt gevraagd er een toe te voegen voor de afzonderlijke inschrijving, geeft u uw eigen waarde op.

  1. Meld u aan bij de 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.

    Schermopname van de optie Afzonderlijke inschrijving toevoegen.

  4. Geef op de pagina Registratie en inrichting van de pagina Inschrijving toevoegen de volgende informatie op om de inschrijvingsgegevens te configureren:

    Veld Description
    Attestation 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 voor het inrichten van het apparaat. Schakel dit selectievakje uit als u wilt dat de inschrijving wordt uitgeschakeld. U kunt deze instelling later wijzigen.
    Beleid voor opnieuw inrichten Kies een herinrichtingsbeleid dat aangeeft hoe DPS apparaten verwerkt waarvoor een herinrichting wordt aangevraagd. Zie Beleid 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 Description
    Doel-IoT-hubs Selecteer een of meer van uw 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. Selecteer Volgende: Apparaatinstellingen

  8. Geef op het tabblad Apparaatinstellingen van de pagina Inschrijving toevoegen de volgende informatie op om te bepalen hoe nieuw ingerichte apparaten worden geconfigureerd:

    Veld Description
    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 Controleer de IoT Edge inschakelen op ingerichte apparaten als op het ingerichte apparaat Azure IoT Edge wordt uitgevoerd. Schakel dit selectievakje uit als deze inschrijving voor een niet-IoT Edge apparaat is ingeschakeld.
    Apparaattags Gebruik dit tekstvak om 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 al uw waarden op het tabblad Controleren en maken en selecteer vervolgens Maken.

Apparaat registreren

In deze sectie configureert u voorbeeldcode om het Advanced Message Queuing Protocol (AMQP) te gebruiken om de opstartvolgorde van het apparaat te verzenden naar uw Device Provisioning Service-exemplaar. 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 de Azure Portal het tabblad Overzicht voor uw Device Provisioning Service.

  2. Kopieer de waarde van id-bereik .

    Device Provisioning Service-eindpuntgegevens uit de portal extraheren

  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. Klik in de prompt om het project opnieuw te bouwen op Yes om het project opnieuw te bouwen 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 de Azure Portal het tabblad Overzicht voor uw Device Provisioning Service.

  2. Kopieer de waarde van id-bereik .

    Bereik-id van provisioning-service kopiëren van 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 door <IdScope> 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 de Azure Portal het tabblad Overzicht voor uw Device Provisioning Service.

  2. Kopieer de waarde van id-bereik .

    Device Provisioning Service-eindpuntgegevens uit de portalblade extraheren

  3. Open een teksteditor van uw 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.

    Voltooien van Java TPM-apparaatprogramma

De registratie van uw apparaatinrichting bevestigen

  1. Meld u aan bij de Azure-portal.

  2. Selecteer alle resources in het menu aan de linkerkant of op de portalpagina.

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

  4. Selecteer In het menu Explorersde optie IoT-apparaten.

  1. Als uw apparaat is ingericht, moet de apparaat-id worden weergegeven in de lijst, met Status ingesteld als ingeschakeld. Als u uw apparaat niet ziet, selecteert u Vernieuwen boven aan de pagina.

    Het apparaat is geregistreerd bij de IoT-hub voor C

  1. Als uw apparaat is ingericht, moet de apparaat-id worden weergegeven in de lijst, met Status ingesteld als ingeschakeld. Als u uw apparaat niet ziet, selecteert u Vernieuwen boven aan de pagina.

    Het apparaat is geregistreerd bij de IoT-hub voor C#

  1. Als uw apparaat is ingericht, moet de apparaat-id worden weergegeven in de lijst, met Status ingesteld als ingeschakeld. Als u uw apparaat niet ziet, selecteert u Vernieuwen boven aan de pagina.

    Het apparaat is geregistreerd bij de IoT-hub voor Node.js

  1. Als uw apparaat is ingericht, moet de apparaat-id worden weergegeven in de lijst, met Status ingesteld als ingeschakeld. Als u uw apparaat niet ziet, selecteert u Vernieuwen boven aan de pagina.

    Apparaat wordt geregistreerd voor de 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 verder te werken aan en het voorbeeld van de apparaatclient te verkennen, 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 in 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 de Azure Portal.

  3. Selecteer 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 de 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 een gesimuleerd TPM-apparaat op de computer gemaakt en dit ingericht voor uw IoT-hub met IoT Hub Device Provisioning Service. Vervolgens leert u hoe u uw TPM-apparaat programmatisch kunt registreren.