Szybki start: aprowizuj symulowane urządzenie TPM

W tym przewodniku Szybki start utworzysz symulowane urządzenie na maszynie z systemem Windows. Symulowane urządzenie zostanie skonfigurowane do używania mechanizmu zaświadczania modułu TPM (Trusted Platform Module) na potrzeby uwierzytelniania. Po skonfigurowaniu urządzenia aprowizujesz je w centrum IoT przy użyciu usługi Azure IoT Hub Device Provisioning. Następnie przykładowy kod będzie używany do rejestrowania urządzenia w wystąpieniu usługi Device Provisioning Service.

Jeśli nie znasz procesu aprowizacji, zapoznaj się z omówieniem aprowizacji . Pamiętaj również, aby wcześniej wykonać kroki przedstawione w części Konfigurowanie usługi IoT Hub Device Provisioning za pomocą witryny Azure Portal.

Usługa Azure IoT Device Provisioning obsługuje dwa typy rejestracji:

  • Grupy rejestracji używane do rejestrowania wielu powiązanych urządzeń.

  • Rejestracje indywidualne używane do rejestrowania pojedynczego urządzenia.

W tym artykule przedstawiono rejestracje indywidualne.

Zaświadczenie modułu TPM (Trusted Platform Module) nie jest obsługiwane w zestawie SDK języka Python. Za pomocą języka Python można aprowizować urządzenie przy użyciu kluczy symetrycznych lub certyfikatów X.509.

Wymagania wstępne

Poniższe wymagania wstępne dotyczą środowiska deweloperskiego systemu Windows. W przypadku systemu Linux lub macOS zapoznaj się z odpowiednią sekcją w temacie Przygotowywanie środowiska projektowego w dokumentacji zestawu SDK.

  • Moduł zabezpieczeń sprzętowych modułu TPM 2.0 na maszynie z systemem Windows.

  • Zainstaluj zestaw .NET Core SDK 6.0 lub nowszy na maszynie z systemem Windows. Aby sprawdzić wersję, możesz użyć następującego polecenia.

    dotnet --info
    

przygotowywanie środowiska programistycznego

W tej sekcji przygotujesz środowisko programistyczne używane do tworzenia zestawu SDK języka C usługi Azure IoT i przykładowego symulatora urządzenia TPM .

  1. Pobierz najnowszy system kompilacji narzędzia CMake.

    Ważne

    Przed rozpoczęciem CMake instalacji upewnij się, że na maszynie są zainstalowane wymagania wstępne programu Visual Studio (Program Visual Studio i pakiet roboczy Programowanie aplikacji klasycznych z językiem C++). Gdy wymagania wstępne zostaną spełnione, a pobrane pliki zweryfikowane, zainstaluj system kompilacji CMake. Należy również pamiętać, że starsze wersje systemu kompilacji CMake nie mogą wygenerować pliku rozwiązania używanego w tym artykule. Upewnij się, że używasz najnowszej wersji narzędzia CMake.

  2. Otwórz przeglądarkę internetową i przejdź do strony Wydanie zestawu AZURE IoT C SDK.

  3. Wybierz kartę Tagi w górnej części strony.

  4. Skopiuj nazwę tagu dla najnowszej wersji zestawu AZURE IoT C SDK.

  5. Otwórz wiersz polecenia lub powłokę Git Bash. Uruchom następujące polecenia, aby sklonować najnowszą wersję zestawu AZURE IoT Device SDK for C GitHub. Zastąp <release-tag> ciąg tagiem skopiowanymi w poprzednim kroku, na przykład: 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
    

    Wykonanie tej operacji może potrwać kilka minut.

  6. Po zakończeniu operacji uruchom następujące polecenia z azure-iot-sdk-c katalogu:

    mkdir cmake
    cd cmake
    
  1. Otwórz środowisko wiersza polecenia git CMD lub Git Bash.

  2. Sklonuj repozytorium GitHub zestawu AZURE IoT SDK dla języka C# przy użyciu następującego polecenia:

    git clone https://github.com/Azure/azure-iot-sdk-csharp.git
    
  1. Otwórz środowisko wiersza polecenia git CMD lub Git Bash.

  2. Sklonuj repozytorium github azure-utpm-c przy użyciu następującego polecenia:

    git clone https://github.com/Azure/azure-utpm-c.git --recursive
    
  1. Otwórz środowisko wiersza polecenia git CMD lub Git Bash.

  2. Sklonuj repozytorium GitHub Java przy użyciu następującego polecenia:

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

Kompilowanie i uruchamianie symulatora urządzenia TPM

W tej sekcji skompilujesz i uruchomisz symulator modułu TPM. Ten symulator nasłuchuje przez gniazdo na portach 2321 i 2322. Nie zamykaj okna polecenia. Ten symulator należy zachować do końca tego przewodnika Szybki start.

  1. Uruchom następujące polecenie, aby skompilować zestaw SDK języka C usługi Azure IoT zawierający przykładowy kod symulatora urządzenia TPM. W katalogu jest generowane cmake rozwiązanie programu Visual Studio dla symulowanego urządzenia. W tym przykładzie przedstawiono mechanizm zaświadczania modułu TPM za pośrednictwem uwierzytelniania tokenu sygnatury dostępu współdzielonego (SAS).

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

    Napiwek

    Jeśli cmake nie znajdziesz kompilatora języka C++, podczas uruchamiania powyższego polecenia mogą wystąpić błędy kompilacji. W takim przypadku spróbuj uruchomić polecenie w wierszu polecenia programu Visual Studio.

  2. Po pomyślnym zakończeniu kompilacji ostatnie kilka wierszy wyjściowych będzie wyglądać podobnie do następujących danych wyjściowych:

    $ 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. Przejdź do folderu głównego sklonowanego repozytorium git.

  4. Uruchom symulator modułu TPM , korzystając ze ścieżki pokazanej poniżej.

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

    Symulator nie wyświetla żadnych danych wyjściowych. Niech będzie działać w miarę symulowania urządzenia TPM.

  1. Przejdź do folderu głównego usługi GitHub.

  2. Uruchom symulator modułu TPM, aby był modułem HSM dla symulowanego urządzenia.

    .\azure-utpm-c\tools\tpm_simulator\Simulator.exe
    
  3. Utwórz nowy, pusty folder o nazwie registerdevice. W folderze registerdevice utwórz plik package.json przy użyciu następującego polecenia w wierszu polecenia (pamiętaj, aby odpowiedzieć na wszystkie pytania zadawane przez npm program lub zaakceptować ustawienia domyślne, jeśli odpowiadają One):

    npm init
    
  4. Zainstaluj następujące pakiety prekursorów:

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

    Uwaga

    Istnieją znane problemy związane z instalowaniem powyższych pakietów. Aby je rozwiązać, uruchom polecenie npm install --global --production windows-build-tools przy użyciu wiersza polecenia w trybie Uruchom jako administrator, uruchom polecenie SET VCTargetsPath=C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140 po zastąpieniu ścieżki zainstalowaną wersją, a następnie uruchom ponownie powyższe polecenia instalacji.

  5. Zainstaluj wszystkie wymagane pakiety z następującym poleceniem w wierszu polecenia w folderze registerdevice :

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

    Polecenie instaluje następujące pakiety:

    • Klient zabezpieczeń, który współpracuje z modułem TPM: azure-iot-security-tpm

    • Transport urządzenia w celu nawiązania połączenia z usługą Device Provisioning Service: azure-iot-provisioning-device-http lub azure-iot-provisioning-device-amqp

    • Klient do korzystania z klienta transportu i zabezpieczeń: azure-iot-provisioning-device

    • Klient urządzenia: azure-iot-device

    • Transport: dowolny z azure-iot-device-amqp, azure-iot-device-mqttlub azure-iot-device-http

    • Zainstalowany już klient zabezpieczeń: azure-iot-security-tpm

      Uwaga

      Przykłady w tym przewodniku azure-iot-provisioning-device-http Szybki start korzystają z transportu i .azure-iot-device-mqtt

  6. Otwórz edytor tekstów wybranych opcji.

  7. W folderze registerdevice utwórz nowy plik ExtractDevice.js .

  8. Dodaj następujące instrukcje require na początku pliku 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. Dodaj następującą funkcję, aby wdrożyć metodę:

    
    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. Zapisz i zamknij plik ExtractDevice.js.

    node ExtractDevice.js
    
  11. Uruchom przykład.

  12. W oknie danych wyjściowych zostanie wyświetlony klucz poręczenia i identyfikator rejestracji wymagany do rejestracji urządzenia. Skopiuj te wartości.

  1. Uruchom symulator modułu TPM, aby był modułem HSM dla symulowanego urządzenia.

  2. Wybierz pozycję Zezwalaj na dostęp. Symulator nasłuchuje przez gniazdo na portach 2321 i 2322. Nie zamykaj tego okna polecenia; Ten symulator musi być uruchomiony do końca tego przewodnika Szybki start.

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

    TPM Simulator

  3. Otwórz drugi wiersz polecenia.

  4. W drugim wierszu polecenia przejdź do folderu głównego i skompiluj przykładowe zależności.

    cd azure-iot-sdk-java
    mvn install -DskipTests=true
    
  5. Przejdź do folderu przykładów.

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

Odczytywanie kluczy kryptograficznych z urządzenia TPM

W tej sekcji utworzysz i wykonasz przykład, który odczytuje klucz poręczenia i identyfikator rejestracji z symulatora modułu TPM, który został uruchomiony, i nadal nasłuchuje portów 2321 i 2322. Te wartości będą używane do rejestracji urządzenia z wystąpieniem usługi Device Provisioning Service.

  1. Uruchom program Visual Studio.

  2. Otwórz rozwiązanie wygenerowane w folderze cmake o nazwie azure_iot_sdks.sln.

  3. Z menu programu Visual Studio wybierz kolejno polecenia Kompiluj>Kompiluj rozwiązanie, aby skompilować wszystkie projekty w rozwiązaniu.

  4. W oknie Eksplorator rozwiązań programu Visual Studio przejdź do folderu Provision_Tools. Kliknij prawym przyciskiem myszy projekt tpm_device_provision i wybierz pozycję Ustaw jako projekt startowy.

  5. Z menu programu Visual Studio wybierz pozycję Debuguj>Uruchom bez debugowania, aby uruchomić rozwiązanie. Aplikacja odczytuje i wyświetla identyfikator rejestracji oraz klucz poręczenia. Zanotuj lub skopiuj te wartości. Zostaną one użyte w następnej sekcji na potrzeby rejestracji urządzeń.

  1. Zaloguj się do witryny Azure Portal, wybierz przycisk Wszystkie zasoby w menu po lewej stronie i otwórz usługę Device Provisioning Service. Zanotuj wartości Zakres identyfikatorów i Globalny punkt końcowy usługi Provisioning Service.

    Device Provisioning Service information

  2. Edytuj plik src/main/java/samples/com/microsoft/azure/sdk/iot/ProvisioningTpmSample.java, aby uwzględnić w nim wspomniane wcześniej wartości Identyfikatora zakresu i Globalnego punktu końcowego usługi aprowizacji.

    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. Zapisz plik.

  4. Użyj następujących poleceń, aby skompilować projekt, przejść do folderu docelowego i wykonać utworzony plik .jar (zastąp {version}element wersją środowiska Java):

    mvn clean install
    cd target
    java -jar ./provisioning-tpm-sample-{version}-with-deps.jar
    
  5. Po rozpoczęciu działania programu zostanie wyświetlony klucz poręczenia i identyfikator rejestracji. Skopiuj te wartości dla następnej sekcji. Pamiętaj, aby opuścić uruchomiony program.

W tej sekcji utworzysz i wykonasz przykład, który odczytuje klucz poręczenia z modułu zabezpieczeń sprzętowego modułu TPM 2.0. Ta wartość będzie używana do rejestracji urządzeń w wystąpieniu usługi Device Provisioning Service.

  1. W wierszu polecenia zmień katalogi na katalog projektu dla przykładu aprowizacji urządzenia TPM.

    cd '.\azure-iot-sdk-csharp\provisioning\device\samples\how to guides\TpmSample\'
    
  2. Wpisz następujące polecenie, aby skompilować i uruchomić przykład aprowizacji urządzenia TPM. Skopiuj klucz poręczenia zwrócony z modułu zabezpieczeń sprzętowego modułu TPM 2.0, aby użyć go później podczas rejestrowania urządzenia.

    dotnet run -- -e
    

Tworzenie wpisu rejestracji urządzenia

  1. Zaloguj się do witryny Azure Portal i przejdź do wystąpienia usługi Device Provisioning Service.

  2. Wybierz pozycję Zarządzaj rejestracjami w sekcji Ustawienia menu nawigacji.

  3. Wybierz kartę Rejestracje indywidualne, a następnie wybierz pozycję Dodaj rejestrację indywidualną.

    Screenshot that shows the add individual enrollment option.

  4. Na stronie Rejestracja i aprowizowaniedodaj rejestrację podaj następujące informacje, aby skonfigurować szczegóły rejestracji:

    Pole opis
    Zaświadczanie Wybierz pozycję Trusted Platform Module (TPM) jako mechanizm zaświadczania.
    Ustawienia modułu TPM (Trusted Platform Module) Podaj klucz poręczenia, który będzie używany do weryfikowania urządzenia na potrzeby tej rejestracji. Klucz poręczenia można pobrać z modułu TPM urządzenia.
    Identyfikator rejestracji Podaj unikatowy identyfikator rejestracji urządzenia. Identyfikator rejestracji można pobrać z modułu TPM urządzenia.
    Stan aprowizacji Zaznacz pole Włącz tę rejestrację, jeśli ta rejestracja ma być dostępna do aprowizacji urządzenia. Usuń zaznaczenie tego pola, jeśli chcesz, aby rejestracja została wyłączona. To ustawienie można zmienić później.
    Zasady ponownej aprowizacji Wybierz zasady ponownej aprowizacji, które odzwierciedlają sposób obsługi urządzeń, które żądają ponownej aprowizacji przez usługę DPS. Aby uzyskać więcej informacji, zobacz Zasady ponownej aprowizacji.
  5. Wybierz pozycję Dalej: centra IoT.

  6. Na karcie Centra IoT na stronie Dodawanie rejestracji podaj następujące informacje, aby określić, które centra IoT mogą aprowizować urządzenia:

    Pole opis
    Docelowe centra IoT Wybierz co najmniej jedno połączone centra IoT lub dodaj nowy link do centrum IoT. Aby dowiedzieć się więcej na temat łączenia centrów IoT z wystąpieniem usługi DPS, zobacz Jak połączyć centra IoT i zarządzać nimi.
    Zasady alokacji Jeśli wybrano więcej niż jedno połączone centrum IoT, wybierz sposób przypisywania urządzeń do różnych centrów. Aby dowiedzieć się więcej na temat zasad alokacji, zobacz Jak używać zasad alokacji.

    Jeśli wybrano tylko jedno połączone centrum IoT, zalecamy użycie zasad dystrybucji równomiernie ważonej.
  7. Wybierz pozycję Dalej: Ustawienia urządzenia

  8. Na karcie Ustawienia urządzenia na stronie Dodawanie rejestracji podaj następujące informacje, aby zdefiniować sposób konfigurowania nowo aprowizowania urządzeń:

    Pole opis
    Identyfikator urządzenia Podaj identyfikator urządzenia, który zostanie przypisany do aprowizowanego urządzenia w usłudze IoT Hub. Jeśli nie podasz identyfikatora urządzenia, zostanie użyty identyfikator rejestracji.
    IoT Edge Sprawdź włączanie usługi IoT Edge na aprowidowanych urządzeniach , jeśli aprowizowane urządzenie uruchomi usługę Azure IoT Edge. Usuń zaznaczenie tego pola, jeśli ta rejestracja dotyczy urządzenia z obsługą usługi IoT Edge.
    Tagi urządzeń Użyj tego pola tekstowego, aby podać tagi, które mają być stosowane do bliźniaczej reprezentacji urządzenia aprowizowanego urządzenia.
    Żądane właściwości Użyj tego pola tekstowego, aby podać żądane właściwości, które chcesz zastosować do bliźniaczej reprezentacji urządzenia aprowizowanego urządzenia.

    Aby uzyskać więcej informacji, zobacz Opis bliźniaczej reprezentacji urządzenia w usłudze IoT Hub oraz sposoby jej używania.

  9. Wybierz pozycję Dalej: Przeglądanie i tworzenie.

  10. Na karcie Przeglądanie i tworzenie sprawdź wszystkie wartości, a następnie wybierz pozycję Utwórz.

Przykład modułu TPM języka C# dla tego przewodnika Szybki start nie zawiera identyfikatora rejestracji. Po wyświetleniu monitu o dodanie go dla rejestracji indywidualnej podaj własną wartość.

  1. Zaloguj się do witryny Azure Portal i przejdź do wystąpienia usługi Device Provisioning Service.

  2. Wybierz pozycję Zarządzaj rejestracjami w sekcji Ustawienia menu nawigacji.

  3. Wybierz kartę Rejestracje indywidualne, a następnie wybierz pozycję Dodaj rejestrację indywidualną.

    Screenshot that shows the add individual enrollment option.

  4. Na stronie Rejestracja i aprowizowaniedodaj rejestrację podaj następujące informacje, aby skonfigurować szczegóły rejestracji:

    Pole opis
    Zaświadczanie Wybierz pozycję Trusted Platform Module (TPM) jako mechanizm zaświadczania.
    Ustawienia modułu TPM (Trusted Platform Module) Podaj klucz poręczenia, który będzie używany do weryfikowania urządzenia na potrzeby tej rejestracji. Klucz poręczenia można pobrać z modułu TPM urządzenia.
    Identyfikator rejestracji Podaj unikatowy identyfikator rejestracji urządzenia. Identyfikator rejestracji można pobrać z modułu TPM urządzenia.
    Stan aprowizacji Zaznacz pole Włącz tę rejestrację, jeśli ta rejestracja ma być dostępna do aprowizacji urządzenia. Usuń zaznaczenie tego pola, jeśli chcesz, aby rejestracja została wyłączona. To ustawienie można zmienić później.
    Zasady ponownej aprowizacji Wybierz zasady ponownej aprowizacji, które odzwierciedlają sposób obsługi urządzeń, które żądają ponownej aprowizacji przez usługę DPS. Aby uzyskać więcej informacji, zobacz Zasady ponownej aprowizacji.
  5. Wybierz pozycję Dalej: centra IoT.

  6. Na karcie Centra IoT na stronie Dodawanie rejestracji podaj następujące informacje, aby określić, które centra IoT mogą aprowizować urządzenia:

    Pole opis
    Docelowe centra IoT Wybierz co najmniej jedno połączone centra IoT lub dodaj nowy link do centrum IoT. Aby dowiedzieć się więcej na temat łączenia centrów IoT z wystąpieniem usługi DPS, zobacz Jak połączyć centra IoT i zarządzać nimi.
    Zasady alokacji Jeśli wybrano więcej niż jedno połączone centrum IoT, wybierz sposób przypisywania urządzeń do różnych centrów. Aby dowiedzieć się więcej na temat zasad alokacji, zobacz Jak używać zasad alokacji.

    Jeśli wybrano tylko jedno połączone centrum IoT, zalecamy użycie zasad dystrybucji równomiernie ważonej.
  7. Wybierz pozycję Dalej: Ustawienia urządzenia

  8. Na karcie Ustawienia urządzenia na stronie Dodawanie rejestracji podaj następujące informacje, aby zdefiniować sposób konfigurowania nowo aprowizowania urządzeń:

    Pole opis
    Identyfikator urządzenia Podaj identyfikator urządzenia, który zostanie przypisany do aprowizowanego urządzenia w usłudze IoT Hub. Jeśli nie podasz identyfikatora urządzenia, zostanie użyty identyfikator rejestracji.
    IoT Edge Sprawdź włączanie usługi IoT Edge na aprowidowanych urządzeniach , jeśli aprowizowane urządzenie uruchomi usługę Azure IoT Edge. Usuń zaznaczenie tego pola, jeśli ta rejestracja dotyczy urządzenia z obsługą usługi IoT Edge.
    Tagi urządzeń Użyj tego pola tekstowego, aby podać tagi, które mają być stosowane do bliźniaczej reprezentacji urządzenia aprowizowanego urządzenia.
    Żądane właściwości Użyj tego pola tekstowego, aby podać żądane właściwości, które chcesz zastosować do bliźniaczej reprezentacji urządzenia aprowizowanego urządzenia.

    Aby uzyskać więcej informacji, zobacz Opis bliźniaczej reprezentacji urządzenia w usłudze IoT Hub oraz sposoby jej używania.

  9. Wybierz pozycję Dalej: Przeglądanie i tworzenie.

  10. Na karcie Przeglądanie i tworzenie sprawdź wszystkie wartości, a następnie wybierz pozycję Utwórz.

Rejestrowanie urządzenia

W tej sekcji skonfigurujesz przykładowy kod, aby używać protokołu Advanced Message Queuing Protocol (AMQP) do wysyłania sekwencji rozruchowej urządzenia do wystąpienia usługi Device Provisioning Service. Ta sekwencja rozruchowa powoduje zarejestrowanie urządzenia w centrum IoT Hub połączonym z wystąpieniem usługi Device Provisioning Service.

  1. W witrynie Azure Portal wybierz kartę Przegląd dla usługi Device Provisioning Service.

  2. Skopiuj wartość Zakres identyfikatora.

    Extract Device Provisioning Service endpoint information from the portal

  3. W oknie Eksplorator rozwiązań programu Visual Studio przejdź do folderu Provision_Samples. Rozwiń przykładowy projekt o nazwie prov_dev_client_sample. Rozwiń węzeł Pliki źródłowe i otwórz plik prov_dev_client_sample.c.

  4. W górnej części pliku znajdź instrukcje #define dla każdego protokołu urządzenia, jak pokazano poniżej. Upewnij się, że tylko SAMPLE_AMQP jest pozbawiony komentarza.

    Obecnie protokół MQTT nie jest obsługiwany w przypadku rejestracji indywidualnej modułu TPM.

    //
    // 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. Znajdź stałą id_scope i zastąp jej wartość wcześniej skopiowaną wartością Zakres identyfikatorów.

    static const char* id_scope = "0ne00002193";
    
  6. Znajdź definicję funkcji main() w tym samym pliku. Upewnij się, że zmienna jest ustawiona hsm_type na SECURE_DEVICE_TYPE_TPM , jak pokazano poniżej.

    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. Kliknij prawym przyciskiem myszy projekt prov_dev_client_sample i wybierz polecenie Ustaw jako projekt startowy.

  8. Z menu programu Visual Studio wybierz pozycję Debuguj>Uruchom bez debugowania, aby uruchomić rozwiązanie. W wierszu polecenia ponownego kompilowania projektu wybierz pozycję Tak, aby ponownie skompilować projekt przed uruchomieniem.

    Następujące dane wyjściowe to przykład pomyślnego uruchomienia aprowizowanego urządzenia klienta oraz podłączenia do aprowizowanego wystąpienia usługi Device Provisioning Service w celu uzyskania informacji na temat usługi IoT Hub i jej rejestracji:

    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. W witrynie Azure Portal wybierz kartę Przegląd dla usługi Device Provisioning Service.

  2. Skopiuj wartość Zakres identyfikatora.

    Copy provisioning service Scope ID from the portal blade

  3. W wierszu polecenia zmień katalogi na katalog projektu dla przykładu aprowizacji urządzenia TPM.

     cd '.\azure-iot-sdk-csharp\provisioning\device\samples\how to guides\TpmSample\'
    
  4. Uruchom następujące polecenie, aby zarejestrować urządzenie. Zastąp <IdScope> wartość skopiowaną usługą DPS i <RegistrationId> wartością użytą podczas tworzenia rejestracji urządzenia.

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

    Jeśli rejestracja urządzenia zakończyła się pomyślnie, zostaną wyświetlone następujące komunikaty:

    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. W witrynie Azure Portal wybierz kartę Przegląd dla usługi Device Provisioning Service.

  2. Skopiuj wartość Zakres identyfikatora.

    Extract Device Provisioning Service endpoint information from the portal blade

  3. Otwórz wybrany edytor tekstów.

  4. W folderze registerdevice utwórz nowy plik RegisterDevice.js .

  5. Dodaj następujące instrukcje require na początku pliku 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;
    

    Uwaga

    Zestaw Azure IoT SDK dla środowiska Node.js obsługuje dodatkowe protokoły, takie jak AMQP, AMQP WS i MQTT WS. Aby uzyskać więcej przykładów, zobacz Device Provisioning Service SDK for Node.js samples (Przykłady zestawu SDK aprowizacji urządzeń dla środowiska Node.js).

  6. Dodaj zmienne globalDeviceEndpoint i idScope oraz użyj ich do utworzenia wystąpienia ProvisioningDeviceClient. Zastąp elementy {globalDeviceEndpoint} i {idScope} wartościami Globalny punkt końcowy urządzenia i Zakres identyfikatorów z kroku 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. Dodaj następującą funkcję, aby wdrożyć metodę na urządzeniu:

    
    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. Zapisz i zamknij plik RegisterDevice.js.

  9. Uruchom następujące polecenie:

    node RegisterDevice.js
    
  10. Zwróć uwagę na komunikaty symulujące uruchamianie urządzenia i łączenie z usługą Device Provisioning Service w celu pobrania informacji z Twojego centrum IoT.

  1. W oknie polecenia z uruchomionym przykładowym kodem Java na maszynie naciśnij klawisz Enter , aby kontynuować uruchamianie aplikacji. Zwróć uwagę na komunikaty symulujące uruchamianie urządzenia i łączenie z usługą Device Provisioning Service w celu pobrania informacji z Twojego centrum IoT.

    Java TPM device program final

Potwierdzanie rejestracji aprowizacji urządzeń

  1. Zaloguj się w witrynie Azure Portal.

  2. W menu po lewej stronie lub na stronie portalu wybierz pozycję Wszystkie zasoby.

  3. Wybierz centrum IoT Hub, do którego przypisano urządzenie.

  4. W menu Eksploratory wybierz pozycję Urządzenia IoT.

  1. Jeśli urządzenie zostało pomyślnie aprowizowane, identyfikator urządzenia powinien pojawić się na liście z ustawionym stanem ustawionym jako włączone. Jeśli urządzenie nie jest widoczne, wybierz pozycję Odśwież w górnej części strony.

    Device is registered with the IoT hub for C

  1. Jeśli urządzenie zostało pomyślnie aprowizowane, identyfikator urządzenia powinien pojawić się na liście z ustawionym stanem ustawionym jako włączone. Jeśli urządzenie nie jest widoczne, wybierz pozycję Odśwież w górnej części strony.

    Device is registered with the IoT hub for C#

  1. Jeśli urządzenie zostało pomyślnie aprowizowane, identyfikator urządzenia powinien pojawić się na liście z ustawionym stanem ustawionym jako włączone. Jeśli urządzenie nie jest widoczne, wybierz pozycję Odśwież w górnej części strony.

    Device is registered with the IoT hub for Node.js

  1. Jeśli urządzenie zostało pomyślnie aprowizowane, identyfikator urządzenia powinien pojawić się na liście z ustawionym stanem ustawionym jako włączone. Jeśli urządzenie nie jest widoczne, wybierz pozycję Odśwież w górnej części strony.

    Device is registered with the IoT hub

Uwaga

Jeśli zmienisz wartość w polu Początkowy stan bliźniaczej reprezentacji urządzenia z domyślnej na inną we wpisie rejestracji dla Twojego urządzenia, może to spowodować pobranie z centrum żądanego stanu reprezentacji bliźniaczej i odpowiednie do niego działanie. Aby uzyskać więcej informacji, zobacz Opis bliźniaczej reprezentacji urządzenia w usłudze IoT Hub oraz sposoby jej używania.

Czyszczenie zasobów

Jeśli planujesz kontynuować pracę i eksplorujesz przykład klienta urządzenia, nie usuwaj zasobów utworzonych w tym przewodniku Szybki start. Jeśli nie planujesz kontynuować, wykonaj następujące kroki, aby usunąć wszystkie zasoby utworzone w tym przewodniku Szybki start.

Usuwanie rejestracji urządzenia

  1. Zamknij okno danych wyjściowych przykładu klienta urządzenia na swojej maszynie.

  2. W menu po lewej stronie w witrynie Azure Portal wybierz pozycję Wszystkie zasoby.

  3. Wybierz usługę Device Provisioning Service.

  4. W menu Ustawienia wybierz pozycję Zarządzaj rejestracjami.

  5. Wybierz kartę Rejestracje indywidualne.

  6. Zaznacz pole wyboru obok identyfikatora rejestracji urządzenia zarejestrowanego w tym przewodniku Szybki start.

  7. W górnej części strony wybierz pozycję Usuń.

Usuwanie rejestracji urządzenia z usługi IoT Hub

  1. W menu po lewej stronie w witrynie Azure Portal wybierz pozycję Wszystkie zasoby.

  2. Wybierz centrum IoT Hub.

  3. W menu Eksploratory wybierz pozycję Urządzenia IoT.

  4. Zaznacz pole wyboru obok identyfikatora urządzenia zarejestrowanego w tym przewodniku Szybki start.

  5. W górnej części strony wybierz pozycję Usuń.

Następne kroki

W tym przewodniku Szybki start zainicjowano aprowizację pojedynczego urządzenia w centrum IoT przy użyciu rejestracji indywidualnej. Następnie dowiedz się, jak aprowizować wiele urządzeń w wielu centrach.