Snabbstart: Etablera en simulerad TPM-enhet

I den här snabbstarten skapar du en simulerad enhet på din Windows-dator. Den simulerade enheten konfigureras att använda en TPM-attesteringsmekanism (Trusted Platform Module) för autentisering. När du har konfigurerat enheten etablerar du den till din IoT-hubb med hjälp av Azure IoT Hub Device Provisioning Service. Exempelkoden används sedan för att registrera enheten med en instans av enhetsetableringstjänsten.

Om du inte känner till etableringsprocessen kan du läsa etableringsöversikten. Se också till att slutföra stegen i Set up IoT Hub Device Provisioning Service with the Azure portal (Konfigurera IoT Hub Device Provisioning-tjänsten med Azure-portalen) innan du fortsätter.

Azure IoT Device Provisioning Service stöder två typer av registreringar:

Den här artikeln visar enskilda registreringar.

TPM-attestering (Trusted Platform Module) stöds inte i Python SDK. Med Python kan du etablera en enhet med symmetriska nycklar eller X.509-certifikat.

Förutsättningar

Följande krav gäller för en Windows-utvecklingsmiljö. För Linux eller macOS, se lämpligt avsnitt i Förbereda utvecklingsmiljön i SDK-dokumentationen.

  • En TPM 2.0-maskinvarusäkerhetsmodul på din Windows-baserade dator.

  • Installera .NET Core SDK 6.0 eller senare på din Windows-baserade dator. Du kan använda följande kommando för att kontrollera din version.

    dotnet --info
    
  • Installera den senaste versionen av Git. Kontrollera att Git har lagts till i de miljövariabler som är tillgängliga för kommandofönstret. Se Software Freedom Conservancys Git-klientverktyg för den senaste versionen av git verktyg som ska installeras, vilket inkluderar Git Bash, kommandoradsappen som du kan använda för att interagera med din lokala Git-lagringsplats.

Förbereda utvecklingsmiljön

I det här avsnittet förbereder du en utvecklingsmiljö som används för att skapa Azure IoT C SDK och TPM-enhetssimulatorexemplet .

  1. Ladda ned det senaste CMake-byggsystemet.

    Viktigt!

    Kontrollera att Visual Studio-kraven (Visual Studio och arbetsbelastningen Skrivbordsutveckling med C++) är installerade på datorn innan du CMake startar installationen. När förutsättningarna är uppfyllda och nedladdningen har verifierats installerar du CMake-byggesystemet. Tänk också på att äldre versioner av CMake-byggsystemet inte kan generera lösningsfilen som används i den här artikeln. Se till att använda den senaste versionen av CMake.

  2. Öppna en webbläsare och gå till versionssidan för Azure IoT C SDK.

  3. Välj fliken Taggar överst på sidan.

  4. Kopiera taggnamnet för den senaste versionen av Azure IoT C SDK.

  5. Öppna en kommandotolk eller Git Bash-gränssnittet. Kör följande kommandon för att klona den senaste versionen av Azure IoT Device SDK för C GitHub-lagringsplatsen. Ersätt <release-tag> med taggen som du kopierade i föregående steg, till exempel: 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
    

    Den här åtgärden kan ta flera minuter att slutföra.

  6. När åtgärden är klar kör du följande kommandon från azure-iot-sdk-c katalogen:

    mkdir cmake
    cd cmake
    
  1. Öppna en Git CMD- eller Git Bash-kommandoradsmiljö.

  2. Klona Azure IoT SDK för C# GitHub-lagringsplatsen med följande kommando:

    git clone https://github.com/Azure/azure-iot-sdk-csharp.git
    
  1. Öppna en Git CMD- eller Git Bash-kommandoradsmiljö.

  2. Klona GitHub-lagringsplatsen azure-utpm-c med följande kommando:

    git clone https://github.com/Azure/azure-utpm-c.git --recursive
    
  1. Öppna en Git CMD- eller Git Bash-kommandoradsmiljö.

  2. Klona Java GitHub-lagringsplatsen med följande kommando:

    git clone https://github.com/Azure/azure-iot-sdk-java.git --recursive
    

Skapa och köra TPM-enhetssimulatorn

I det här avsnittet ska du skapa och köra TPM-simulatorn. Den här simulatorn lyssnar via en socket på portarna 2321 och 2322. Stäng inte kommandofönstret. Du måste hålla simulatorn igång till slutet av den här snabbstarten.

  1. Kör följande kommando för att skapa Azure IoT C SDK som innehåller exempelkoden för TPM-enhetssimulatorn. En Visual Studio-lösning för den simulerade enheten genereras i cmake katalogen. Det här exemplet tillhandahåller en TPM-attesteringsmekanism via SAS-tokenautentisering (signatur för delad åtkomst).

    cmake -Duse_prov_client:BOOL=ON -Duse_tpm_simulator:BOOL=ON ..
    

    Dricks

    Om cmake du inte hittar C++-kompilatorn kan du få byggfel när du kör kommandot ovan. Om det händer kan du prova att köra kommandot i Visual Studio-kommandotolken.

  2. När bygget lyckas ser de sista utdataraderna ut ungefär som följande utdata:

    $ 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. Gå till rotmappen för git-lagringsplatsen som du klonade.

  4. Kör TPM-simulatorn med hjälp av sökvägen som visas nedan.

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

    Simulatorn visar inga utdata. Låt den fortsätta att köras när den simulerar en TPM-enhet.

  1. Gå till GitHub-rotmappen.

  2. Kör TPM-simulatorn för att vara HSM för den simulerade enheten.

    .\azure-utpm-c\tools\tpm_simulator\Simulator.exe
    
  3. Skapa en ny tom mapp med namnet registerdevice. I mappen registerdevice skapar du en package.json fil med hjälp av följande kommando i kommandotolken (se till att besvara alla frågor som ställs av npm eller acceptera standardvärdena om de passar dig):

    npm init
    
  4. Installera följande tidigare paket:

    npm install node-gyp -g
    npm install ffi-napi -g
    

    Kommentar

    Det finns några kända problem som kan uppstå när du installerar ovanstående paket. För att lösa dessa problem kan du köra npm install --global --production windows-build-tools med hjälp av en kommandotolk i läget Kör som administratör. Kör SET VCTargetsPath=C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140 efter att du ersatt sökvägen med den installerade versionen och kör sedan installationskommandona igen.

  5. Installera alla nödvändiga paket som kör följande kommando i kommandotolken i mappen registerdevice :

    npm install --save azure-iot-device azure-iot-device-mqtt azure-iot-security-tpm azure-iot-provisioning-device-http azure-iot-provisioning-device
    

    Kommandot installerar följande paket:

    • En säkerhetsklient som fungerar med TPM: azure-iot-security-tpm

    • En transport för enheten för att ansluta till Enhetsetableringstjänsten: antingen azure-iot-provisioning-device-http eller azure-iot-provisioning-device-amqp

    • En klient som ska använda transport- och säkerhetsklienten: azure-iot-provisioning-device

    • Enhetsklienten: azure-iot-device

    • En transport: någon av azure-iot-device-amqp, azure-iot-device-mqtteller azure-iot-device-http

    • Den säkerhetsklient som du redan har installerat: azure-iot-security-tpm

      Kommentar

      Exemplen i den här snabbstarten använder transporterna azure-iot-provisioning-device-http och azure-iot-device-mqtt .

  6. Öppna en textredigerare med dina val.

  7. I mappen registerdevice skapar du en ny ExtractDevice.js fil.

  8. Lägg till följande require-instruktioner i början av ExtractDevice.js-filen:

    
    '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. Lägg till följande funktion för att implementera metoden:

    
    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. Spara och stäng ExtractDevice.js-filen.

    node ExtractDevice.js
    
  11. Kör exemplet.

  12. Utdatafönstret visar bekräftelsenyckeln och registrerings-ID:t som behövs för enhetsregistrering. Kopiera de här värdena.

  1. Kör TPM-simulatorn för att vara HSM för den simulerade enheten.

  2. Välj Tillåt åtkomst. Simulatorn lyssnar över ett uttag på portarna 2321 och 2322. Stäng inte det här kommandofönstret. du måste hålla den här simulatorn igång till slutet av den här snabbstartsguiden.

    .\azure-iot-sdk-java\provisioning\provisioning-tools\tpm-simulator\Simulator.exe
    

    TPM Simulator

  3. Öppna en andra kommandotolk.

  4. I den andra kommandotolken navigerar du till rotmappen och skapar exempelberoendena.

    cd azure-iot-sdk-java
    mvn install -DskipTests=true
    
  5. Navigera till exempelmappen.

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

Läsa kryptografiska nycklar från TPM-enheten

I det här avsnittet skapar och kör du ett exempel som läser bekräftelsenyckeln och registrerings-ID:t från TPM-simulatorn som du lämnade igång och fortfarande lyssnar via portarna 2321 och 2322. Dessa värden används för enhetsregistrering med din instans för enhetsetableringstjänst.

  1. Starta Visual Studio.

  2. Öppna lösningen som genererats i mappen cmake med namnet azure_iot_sdks.sln.

  3. I Visual Studio-menyn väljer du Build (Skapa)>Build Solution (Skapa lösning) för att skapa alla projekt i lösningen.

  4. I Solution Explorer-fönstret i Visual Studio navigerar du till mappen Provision_Tools. Högerklicka på projektet tpm_device_provision och markera Set as Startup Project (Ange som startprojekt).

  5. I Visual Studio-menyn väljer du Felsökning>Starta utan felsökning för att köra lösningen. Appen läser och visar ett registrerings-ID och en bekräftelsenyckel. Anteckna eller kopiera dessa värden. Dessa används i nästa avsnitt för enhetsregistrering.

  1. Logga in på Azure-portalen, välj knappen Alla resurser på den vänstra menyn och öppna enhetsetableringstjänsten. Kom ihåg ID-omfång och Global slutpunkt för etableringstjänsten.

    Device Provisioning Service information

  2. Redigera src/main/java/samples/com/microsoft/azure/sdk/iot/ProvisioningTpmSample.java så att ID-omfång och Global slutpunkt för etableringstjänsten inkluderas enligt tidigare notering.

    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. Spara filen.

  4. Använd följande kommandon för att skapa projektet, navigera till målmappen och köra den skapade .jar -filen (ersätt {version}med din version av Java):

    mvn clean install
    cd target
    java -jar ./provisioning-tpm-sample-{version}-with-deps.jar
    
  5. När programmet börjar köras visas bekräftelsenyckeln och registrerings-ID:t. Kopiera dessa värden för nästa avsnitt. Se till att låta programmet vara igång.

I det här avsnittet ska du skapa och köra ett exempel som läser bekräftelsenyckeln från maskinvarusäkerhetsmodulen TPM 2.0. Det här värdet används för enhetsregistrering med enhetsetableringstjänstens instans.

  1. I en kommandotolk ändrar du kataloger till projektkatalogen för TPM-enhetsetableringsexemplet.

    cd '.\azure-iot-sdk-csharp\provisioning\device\samples\how to guides\TpmSample\'
    
  2. Skriv följande kommando för att skapa och köra TPM-enhetsetableringsexemplet. Kopiera bekräftelsenyckeln som returneras från din TPM 2.0-maskinvarusäkerhetsmodul för senare registrering när du registrerar enheten.

    dotnet run -- -e
    

Skapa en post för enhetsregistrering

  1. Logga in på Azure-portalen och gå till instansen av enhetsetableringstjänsten.

  2. Välj Hantera registreringar i avsnittet Inställningar i navigeringsmenyn.

  3. Välj fliken Enskilda registreringar och välj sedan Lägg till enskild registrering.

    Screenshot that shows the add individual enrollment option.

  4. På sidan Registrering + etablering av sidan Lägg till registrering anger du följande information för att konfigurera registreringsinformationen:

    Fält beskrivning
    Intyg Välj TPM (Trusted Platform Module) som attesteringsmekanism.
    TPM-inställningar (Trusted Platform Module) Ange bekräftelsenyckeln som ska användas för att verifiera enheten för den här registreringen. Du kan hämta bekräftelsenyckeln från enhetens TPM.
    Registrerings-ID Ange det unika registrerings-ID:t för enheten. Du kan hämta registrerings-ID:t från enhetens TPM.
    Etableringsstatus Markera kryssrutan Aktivera den här registreringen om du vill att den här registreringen ska vara tillgänglig för att etablera enheten. Avmarkera den här rutan om du vill att registreringen ska inaktiveras. Du kan ändra den här inställningen senare.
    Ometableringsprincip Välj en återetableringsprincip som visar hur du vill att DPS ska hantera enheter som begär ometablering. Mer information finns i Ometablera principer.
  5. Välj Nästa: IoT-hubbar.

  6. På fliken IoT-hubbarsidan Lägg till registrering anger du följande information för att avgöra vilka IoT-hubbar som registreringen kan etablera enheter till:

    Fält beskrivning
    IoT-målhubbar Välj en eller flera av dina länkade IoT-hubbar eller lägg till en ny länk till en IoT-hubb. Mer information om hur du länkar IoT-hubbar till din DPS-instans finns i Länka och hantera IoT-hubbar.
    Allokeringsprincip Om du har valt fler än en länkad IoT-hubb väljer du hur du vill tilldela enheter till de olika hubbarna. Mer information om allokeringsprinciper finns i Använda allokeringsprinciper.

    Om du bara valde en länkad IoT-hubb rekommenderar vi att du använder principen för jämnt viktad distribution .
  7. Välj Nästa: Enhetsinställningar

  8. På fliken Enhetsinställningarsidan Lägg till registrering anger du följande information för att definiera hur nyligen etablerade enheter ska konfigureras:

    Fält beskrivning
    Enhets-ID Ange ett enhets-ID som ska tilldelas till den etablerade enheten i IoT Hub. Om du inte anger något enhets-ID används registrerings-ID:t.
    IoT Edge Kontrollera Aktivera IoT Edge på etablerade enheter om den etablerade enheten ska köra Azure IoT Edge. Avmarkera den här rutan om den här registreringen gäller för en enhet som inte är IoT Edge-aktiverad.
    Enhetstaggar Använd den här textrutan om du vill ange eventuella taggar som du vill använda för enhetstvillingen för den etablerade enheten.
    Önskade egenskaper Använd den här textrutan om du vill ange önskade egenskaper som du vill använda för enhetstvillingen för den etablerade enheten.

    Mer information finns i Understand and use device twins in IoT Hub (Förstå och använda enhetstvillingar i IoT Hub).

  9. Välj Nästa: Granska + skapa.

  10. På fliken Granska + skapa kontrollerar du alla dina värden och väljer sedan Skapa.

C#TPM-exemplet för den här snabbstarten innehåller inget registrerings-ID. När du uppmanas att lägga till en för den enskilda registreringen anger du ditt eget värde.

  1. Logga in på Azure-portalen och gå till instansen av enhetsetableringstjänsten.

  2. Välj Hantera registreringar i avsnittet Inställningar i navigeringsmenyn.

  3. Välj fliken Enskilda registreringar och välj sedan Lägg till enskild registrering.

    Screenshot that shows the add individual enrollment option.

  4. På sidan Registrering + etablering av sidan Lägg till registrering anger du följande information för att konfigurera registreringsinformationen:

    Fält beskrivning
    Intyg Välj TPM (Trusted Platform Module) som attesteringsmekanism.
    TPM-inställningar (Trusted Platform Module) Ange bekräftelsenyckeln som ska användas för att verifiera enheten för den här registreringen. Du kan hämta bekräftelsenyckeln från enhetens TPM.
    Registrerings-ID Ange det unika registrerings-ID:t för enheten. Du kan hämta registrerings-ID:t från enhetens TPM.
    Etableringsstatus Markera kryssrutan Aktivera den här registreringen om du vill att den här registreringen ska vara tillgänglig för att etablera enheten. Avmarkera den här rutan om du vill att registreringen ska inaktiveras. Du kan ändra den här inställningen senare.
    Ometableringsprincip Välj en återetableringsprincip som visar hur du vill att DPS ska hantera enheter som begär ometablering. Mer information finns i Ometablera principer.
  5. Välj Nästa: IoT-hubbar.

  6. På fliken IoT-hubbarsidan Lägg till registrering anger du följande information för att avgöra vilka IoT-hubbar som registreringen kan etablera enheter till:

    Fält beskrivning
    IoT-målhubbar Välj en eller flera av dina länkade IoT-hubbar eller lägg till en ny länk till en IoT-hubb. Mer information om hur du länkar IoT-hubbar till din DPS-instans finns i Länka och hantera IoT-hubbar.
    Allokeringsprincip Om du har valt fler än en länkad IoT-hubb väljer du hur du vill tilldela enheter till de olika hubbarna. Mer information om allokeringsprinciper finns i Använda allokeringsprinciper.

    Om du bara valde en länkad IoT-hubb rekommenderar vi att du använder principen för jämnt viktad distribution .
  7. Välj Nästa: Enhetsinställningar

  8. På fliken Enhetsinställningarsidan Lägg till registrering anger du följande information för att definiera hur nyligen etablerade enheter ska konfigureras:

    Fält beskrivning
    Enhets-ID Ange ett enhets-ID som ska tilldelas till den etablerade enheten i IoT Hub. Om du inte anger något enhets-ID används registrerings-ID:t.
    IoT Edge Kontrollera Aktivera IoT Edge på etablerade enheter om den etablerade enheten ska köra Azure IoT Edge. Avmarkera den här rutan om den här registreringen gäller för en enhet som inte är IoT Edge-aktiverad.
    Enhetstaggar Använd den här textrutan om du vill ange eventuella taggar som du vill använda för enhetstvillingen för den etablerade enheten.
    Önskade egenskaper Använd den här textrutan om du vill ange önskade egenskaper som du vill använda för enhetstvillingen för den etablerade enheten.

    Mer information finns i Understand and use device twins in IoT Hub (Förstå och använda enhetstvillingar i IoT Hub).

  9. Välj Nästa: Granska + skapa.

  10. På fliken Granska + skapa kontrollerar du alla dina värden och väljer sedan Skapa.

Registrera enheten

I det här avsnittet konfigurerar du exempelkoden så att den använder ADVANCED Message Queuing Protocol (AMQP) för att skicka enhetens startsekvens till enhetsetableringstjänstens instans. Den här startsekvensen gör att enheten registreras till en IoT-hubb som är länkad till enhetsetableringstjänstens instans.

  1. I Azure-portalen väljer du fliken Översikt för enhetsetableringstjänsten.

  2. Kopiera ID-omfångsvärdet.

    Extract Device Provisioning Service endpoint information from the portal

  3. I Fönstret Solution Explorer i Visual Studio går du till mappen Provision_Samples. Expandera exempelprojektet med namnet prov_dev_client_sample. Expandera Källfiler och öppna prov_dev_client_sample.c.

  4. Längst upp i filen hittar du #define-uttrycken för varje enhetsprotokoll enligt nedan. Se till att endast SAMPLE_AMQP saknar kommentarer.

    För närvarande stöds inte MQTT-protokollet för individuell TPM-registrering.

    //
    // 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. Hitta konstanten id_scope och ersätt värdet med ditt värde för ID-omfång som du kopierade tidigare.

    static const char* id_scope = "0ne00002193";
    
  6. Hitta definitionen för funktionen main() i samma fil. Kontrollera att variabeln hsm_type är inställd på SECURE_DEVICE_TYPE_TPM enligt nedan.

    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. Högerklicka på projektet prov_dev_client_sample och välj Ange som startprojekt.

  8. I Visual Studio-menyn väljer du Felsökning>Starta utan felsökning för att köra lösningen. I kommandotolken för att återskapa projektet väljer du Ja, för att återskapa projektet innan du kör det.

    Följande utdata är ett exempel på när etableringsenhetens klientprov lyckas med starten och ansluter till en instans av enhetsetableringstjänst för att hämta IoT-hubbinformation och registrera:

    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. I Azure-portalen väljer du fliken Översikt för enhetsetableringstjänsten.

  2. Kopiera ID-omfångsvärdet.

    Copy provisioning service Scope ID from the portal blade

  3. I en kommandotolk ändrar du kataloger till projektkatalogen för TPM-enhetsetableringsexemplet.

     cd '.\azure-iot-sdk-csharp\provisioning\device\samples\how to guides\TpmSample\'
    
  4. Kör följande kommando för att registrera enheten. Ersätt <IdScope> med värdet för den DPS som du kopierade och <RegistrationId> med det värde som du använde när du skapade enhetsregistreringen.

    dotnet run -- -s <IdScope> -r <RegistrationId>
    

    Om enhetsregistreringen lyckades visas följande meddelanden:

    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. I Azure-portalen väljer du fliken Översikt för enhetsetableringstjänsten.

  2. Kopiera ID-omfångsvärdet.

    Extract Device Provisioning Service endpoint information from the portal blade

  3. Öppna valfri textredigerare.

  4. I mappen registerdevice skapar du en ny RegisterDevice.js fil.

  5. Lägg till följande require-instruktioner i början av RegisterDevice.js-filen:

    
    '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;
    

    Kommentar

    Azure IoT SDK för Node.js har stöd för fler protokoll, exempelvis AMQP, AMQP WS och MQTT WS. Fler exempel finns i Exempel på enhetsetableringstjänstens SDK för Node.js.

  6. Lägg till variablerna globalDeviceEndpoint och idScope och använd dem för att skapa en ProvisioningDeviceClient-instans. Ersätt {globalDeviceEndpoint} och {idScope} med värdena i Global enhetsslutpunkt och ID-omfång från Steg 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. Lägg till följande funktion för att implementera metoden på enheten:

    
    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. Spara och stäng RegisterDevice.js-filen.

  9. Kör följande kommando:

    node RegisterDevice.js
    
  10. Lägg märke till de meddelanden som simulerar enhetsstart och anslutning till Device Provisioning-tjänsten för att hämta IoT-hubinformationen.

  1. I kommandofönstret som kör Java-exempelkoden på datorn trycker du på Retur för att fortsätta köra programmet. Lägg märke till de meddelanden som simulerar enhetsstart och anslutning till Device Provisioning-tjänsten för att hämta IoT-hubinformationen.

    Java TPM device program final

Bekräfta registreringen av enhetsetablering

  1. Logga in på Azure-portalen.

  2. På den vänstra menyn eller på portalsidan väljer du Alla resurser.

  3. Välj den IoT-hubb som enheten tilldelades till.

  4. I menyn Utforskareväljer du IoT-enheter.

  1. Om enheten har etablerats bör enhets-ID:t visas i listan med Status inställd som aktiverad. Om du inte ser enheten väljer du Uppdatera överst på sidan.

    Device is registered with the IoT hub for C

  1. Om enheten har etablerats bör enhets-ID:t visas i listan med Status inställd som aktiverad. Om du inte ser enheten väljer du Uppdatera överst på sidan.

    Device is registered with the IoT hub for C#

  1. Om enheten har etablerats bör enhets-ID:t visas i listan med Status inställd som aktiverad. Om du inte ser enheten väljer du Uppdatera överst på sidan.

    Device is registered with the IoT hub for Node.js

  1. Om enheten har etablerats bör enhets-ID:t visas i listan med Status inställd som aktiverad. Om du inte ser enheten väljer du Uppdatera överst på sidan.

    Device is registered with the IoT hub

Kommentar

Om du ändrade din inledande enhetstvillingstatus från standardvärdet i registreringsposten för din enhet kan den hämta önskad tvillingstatus från hubben och agera utifrån det. Mer information finns i Understand and use device twins in IoT Hub (Förstå och använda enhetstvillingar i IoT Hub).

Rensa resurser

Om du planerar att fortsätta arbeta med och utforska enhetsklientexemplet ska du inte rensa resurserna som skapades i den här snabbstarten. Om du inte planerar att fortsätta använder du följande steg för att ta bort alla resurser som skapats av den här snabbstarten.

Ta bort enhetsregistreringen

  1. Stäng utdatafönstret för enhetsklientexemplet på datorn.

  2. På den vänstra menyn i Azure-portalen väljer du Alla resurser.

  3. Välj enhetsetableringstjänsten.

  4. På menyn Inställningar väljer du Hantera registreringar.

  5. Välj fliken Enskilda registreringar .

  6. Markera kryssrutan bredvid registrerings-ID:t för den enhet som du registrerade i den här snabbstarten.

  7. Välj Ta bort längst upp på sidan.

Ta bort enhetsregistreringen från IoT Hub

  1. På den vänstra menyn i Azure-portalen väljer du Alla resurser.

  2. Välj din IoT-hubb.

  3. I menyn Utforskareväljer du IoT-enheter.

  4. Markera kryssrutan bredvid enhets-ID:t för den enhet som du registrerade i den här snabbstarten.

  5. Välj Ta bort längst upp på sidan.

Nästa steg

I den här snabbstarten etablerade du en enda enhet till din IoT-hubb med hjälp av en enskild registrering. Lär dig sedan hur du etablerar flera enheter över flera hubbar.