Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym przewodniku Szybki start utworzysz symulowane urządzenie na maszynie z systemem Windows. Symulowane urządzenie jest 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. Przykładowy kod jest następnie używany do pomagania w rejestrowaniu urządzenia za pomocą instancji usługi Device Provisioning Service.
Jeśli nie znasz procesu aprowizacji, zapoznaj się z omówieniem aprowizacji . Przed kontynuowaniem upewnij się również, że wykonano kroki opisane w przewodniku Szybki start: konfigurowanie usługi IoT Hub Device Provisioning przy użyciu 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
Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
Wykonaj kroki opisane w przewodniku Szybki start: konfigurowanie usługi IoT Hub Device Provisioning przy użyciu witryny Azure Portal.
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.
- Visual Studio 2019 lub nowszy z włączonym obciążeniem "Tworzenie aplikacji klasycznych z C++". Obsługiwane są również programy Visual Studio 2015 i Visual Studio 2017.
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
- Zainstaluj program Node.js w wersji 4.0 lub nowszej.
Zainstaluj zestaw Java SE Development Kit 8 lub nowszy zainstalowany na maszynie.
Pobierz i zainstaluj pakiet Maven.
- Zainstaluj najnowszą wersję usługi Git. Upewnij się, że usługa Git jest dodawana do zmiennych środowiskowych dostępnych w oknie polecenia. Zobacz do zainstalowania, która obejmuje
git, aplikację wiersza polecenia, której można użyć do interakcji z lokalnym repozytorium Git.
przygotowywanie środowiska programistycznego
W tej sekcji przygotujesz środowisko programistyczne używane do kompilowania zestawu SDK języka C usługi Azure IoT i przykładowego symulatora urządzenia TPM .
Pobierz najnowszy system kompilacji narzędzia CMake.
Ważne
Przed rozpoczęciem instalacji upewnij się, że na maszynie
CMakesą 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. Ponadto starsze wersje systemu kompilacji narzędzia CMake nie mogą wygenerować pliku rozwiązania używanego w tym artykule. Upewnij się, że używasz najnowszej wersji narzędzia CMake.Otwórz przeglądarkę internetową i przejdź do strony Wydanie zestawu AZURE IoT C SDK.
Wybierz kartę Tagi w górnej części strony.
Skopiuj nazwę tagu dla najnowszej wersji zestawu AZURE IoT C SDK.
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_03_2025.git clone -b <release-tag> https://github.com/Azure/azure-iot-sdk-c.git cd azure-iot-sdk-c git submodule update --initWykonanie tej operacji może potrwać kilka minut.
Po zakończeniu operacji uruchom następujące polecenia z
azure-iot-sdk-ckatalogu:mkdir cmake cd cmake
Otwórz środowisko wiersza polecenia git CMD lub Git Bash.
Sklonuj repozytorium GitHub Azure IoT SDK dla .NET przy użyciu następującego polecenia:
git clone https://github.com/Azure/azure-iot-sdk-csharp.git
Otwórz środowisko wiersza polecenia git CMD lub Git Bash.
Sklonuj repozytorium github azure-utpm-c przy użyciu następującego polecenia:
git clone https://github.com/Azure/azure-utpm-c.git --recursive
Otwórz środowisko wiersza polecenia git CMD lub Git Bash.
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 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.
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
cmakerozwią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
cmakenie znajdziesz kompilatora języka C++, podczas uruchamiania poprzedniego polecenia mogą wystąpić błędy kompilacji. W takim przypadku spróbuj uruchomić polecenie w wierszu polecenia programu Visual Studio.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/cmakePrzejdź do folderu głównego sklonowanego repozytorium git.
Uruchom symulator TPM przy użyciu ścieżki pokazanej w poniższym przykładzie.
cd .. .\provisioning_client\deps\utpm\tools\tpm_simulator\Simulator.exeSymulator nie wyświetla żadnych danych wyjściowych. Niech będzie działać w miarę symulowania urządzenia TPM.
Przejdź do folderu głównego usługi GitHub.
Uruchom symulator modułu TPM, aby był modułem HSM dla symulowanego urządzenia.
.\azure-utpm-c\tools\tpm_simulator\Simulator.exeUtwó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
npmprogram lub zaakceptować ustawienia domyślne, jeśli odpowiadają One):npm initZainstaluj następujące pakiety prekursorów:
npm install node-gyp -g npm install ffi-napi -gUwaga
Istnieją znane problemy z instalowaniem poprzednich pakietów. Aby rozwiązać te problemy, uruchom
npm install --global --production windows-build-toolsw wierszu poleceń w trybie Uruchom jako administrator, uruchomSET VCTargetsPath=C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140po zastąpieniu ścieżki do zainstalowanej wersji, a następnie ponownie uruchom poprzednie polecenia instalacji.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-devicePolecenie instaluje następujące pakiety:
Klient zabezpieczeń, który współpracuje z modułem TPM:
azure-iot-security-tpmTransport urządzenia w celu nawiązania połączenia z usługą Device Provisioning Service:
azure-iot-provisioning-device-httplubazure-iot-provisioning-device-amqpKlient do korzystania z klienta transportu i zabezpieczeń:
azure-iot-provisioning-deviceKlient urządzenia:
azure-iot-deviceTransport: dowolny z
azure-iot-device-amqp,azure-iot-device-mqttlubazure-iot-device-httpZainstalowany już klient zabezpieczeń:
azure-iot-security-tpmUwaga
Przykłady w tym przewodniku
azure-iot-provisioning-device-httpSzybki start korzystają z transportu i .azure-iot-device-mqtt
Otwórz edytor tekstów wybranych opcji.
W folderze registerdevice utwórz nowy plik ExtractDevice.js .
Dodaj następujące instrukcje
requirena 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));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(); } }); } });Zapisz i zamknij plik ExtractDevice.js.
node ExtractDevice.jsUruchom przykład.
W oknie danych wyjściowych zostanie wyświetlony klucz poręczenia i identyfikator rejestracji wymagany do rejestracji urządzenia. Skopiuj te wartości.
Uruchom symulator modułu TPM, aby był modułem HSM dla symulowanego urządzenia.
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
Otwórz drugi wiersz polecenia.
W drugim wierszu polecenia przejdź do folderu głównego i skompiluj przykładowe zależności.
cd azure-iot-sdk-java mvn install -DskipTests=truePrzejdź do folderu przykładów.
cd provisioning/provisioning-samples/provisioning-tpm-sample
W tej sekcji utworzysz i wykonasz przykład, który odczytuje klucz poręczenia i identyfikator rejestracji z symulatora modułu TPM, który pozostawiłeś uruchomiony i który nadal nasłuchuje na portach 2321 i 2322. Te wartości są używane do rejestracji urządzeń w instancji usługi Device Provisioning Service.
Uruchom program Visual Studio.
Otwórz rozwiązanie wygenerowane w folderze cmake o nazwie
azure_iot_sdks.sln.Z menu programu Visual Studio wybierz kolejno polecenia Kompiluj>Kompiluj rozwiązanie, aby skompilować wszystkie projekty w rozwiązaniu.
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.
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. Te wartości są używane w następnej sekcji na potrzeby rejestracji urządzeń.
Zaloguj się do witryny Azure Portal, wybierz przycisk Wszystkie zasoby w menu po lewej stronie i otwórz wystąpienie usługi Device Provisioning Service. Zanotuj wartości zakres ID i globalny punkt końcowy urządzenia.
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;Zapisz plik.
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.jarPo 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 uruchomisz przykład, który odczytuje klucz uwierzytelniający z modułu zabezpieczeń sprzętowego TPM 2.0. Ta wartość jest używana do rejestracji urządzeń w instancji usługi Device Provisioning Service.
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\'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
Zaloguj się do witryny Azure Portal i przejdź do wystąpienia usługi Device Provisioning Service.
Wybierz pozycję Zarządzaj rejestracjami w sekcji Ustawienia w menu nawigacji.
Wybierz kartę Rejestracje indywidualne, a następnie wybierz pozycję Dodaj rejestrację indywidualną.
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 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. Wybierz pozycję Dalej: centra IoT.
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.Wybierz pozycję Dalej: Ustawienia urządzenia
Na karcie Ustawienia urządzenia na stronie Dodawanie rejestracji podaj następujące informacje, aby zdefiniować sposób konfigurowania nowo aprowizowanych urządzeń:
Pole opis Identyfikator urządzenia Podaj identyfikator urządzenia 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łączenie usługi IoT Edge na aprowizowanych urządzeniach, jeśli aprowizowane urządzenie uruchamia 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.
Wybierz pozycję Dalej: Przeglądanie i tworzenie.
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ść.
Zaloguj się do witryny Azure Portal i przejdź do wystąpienia usługi Device Provisioning Service.
Wybierz pozycję Zarządzaj rejestracjami w sekcji Ustawienia w menu nawigacji.
Wybierz kartę Rejestracje indywidualne, a następnie wybierz pozycję Dodaj rejestrację indywidualną.
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 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. Wybierz pozycję Dalej: centra IoT.
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.Wybierz pozycję Dalej: Ustawienia urządzenia
Na karcie Ustawienia urządzenia na stronie Dodawanie rejestracji podaj następujące informacje, aby zdefiniować sposób konfigurowania nowo aprowizowanych urządzeń:
Pole opis Identyfikator urządzenia Podaj identyfikator urządzenia 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łączenie usługi IoT Edge na aprowizowanych urządzeniach, jeśli aprowizowane urządzenie uruchamia 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.
Wybierz pozycję Dalej: Przeglądanie i tworzenie.
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 do używania protokołu AMQP (Advanced Message Queuing Protocol), aby wysłać sekwencję rozruchową urządzenia do instancji 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.
W portalu Azure wybierz kartę Przegląd dla instancji usługi Device Provisioning Service.
Skopiuj wartość Zakres identyfikatora.
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.
Znajdź w pobliżu początku pliku deklaracje
#definedla każdego protokołu urządzenia, jak pokazano w poniższym przykładzie. Upewnij się, że tylkoSAMPLE_AMQPjest 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_HTTPZnajdź stałą
id_scopei zastąp jej wartość wcześniej skopiowaną wartością Zakres identyfikatorów.static const char* id_scope = "0ne00002193";Znajdź definicję funkcji
main()w tym samym pliku. Upewnij się, że zmienna jest ustawionahsm_typenaSECURE_DEVICE_TYPE_TPM, jak pokazano w poniższym przykładzie.SECURE_DEVICE_TYPE hsm_type; hsm_type = SECURE_DEVICE_TYPE_TPM; //hsm_type = SECURE_DEVICE_TYPE_X509; //hsm_type = SECURE_DEVICE_TYPE_SYMMETRIC_KEY;Kliknij prawym przyciskiem myszy projekt prov_dev_client_sample i wybierz polecenie Ustaw jako projekt startowy.
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
W witrynie Azure Portal wybierz kartę Przegląd dla wystąpienia usługi Device Provisioning Service.
Skopiuj wartość Zakres identyfikatora.
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\'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, zobaczysz 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.
Na portalu Azure wybierz kartę Przegląd dla instancji usługi Device Provisioning Service.
Skopiuj wartość Zakres identyfikatora.
Otwórz wybrany edytor tekstów.
W folderze registerdevice utwórz nowy plik RegisterDevice.js .
Dodaj następujące instrukcje
requirena 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 SDK usługi Azure IoT dla Node.js obsługuje inne 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).
Dodaj zmienne globalDeviceEndpoint i idScope oraz użyj ich do utworzenia wystąpienia ProvisioningDeviceClient. Zamień {globalDeviceEndpoint} i {idScope} na wartości Globalny punkt końcowy urządzenia i Zakres identyfikatora 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);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); }; } } });Zapisz i zamknij plik RegisterDevice.js.
Uruchom następujące polecenie:
node RegisterDevice.jsZwróć uwagę na komunikaty symulujące uruchamianie urządzenia i łączenie z usługą Device Provisioning Service w celu pobrania informacji z Twojego centrum IoT.
W oknie polecenia z uruchomionym przykładowym kodem Java na maszynie naciśnij 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.
Potwierdzanie rejestracji aprowizacji urządzeń
Zaloguj się w witrynie Azure Portal.
W menu po lewej stronie lub na stronie portalu wybierz pozycję Wszystkie zasoby.
Wybierz centrum IoT Hub, do którego przypisano urządzenie.
W sekcji Zarządzanie urządzeniami wybierz pozycję Urządzenia.
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 okienka.
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
Zamknij okno danych wyjściowych przykładu klienta urządzenia na swojej maszynie.
W menu portalu w witrynie Azure Portal wybierz pozycję Wszystkie zasoby.
Wybierz wystąpienie usługi Device Provisioning Service.
W menu usługi w obszarze Ustawienia wybierz pozycję Zarządzaj rejestracjami.
W okienku roboczym wybierz kartę Rejestracje indywidualne .
Zaznacz pole wyboru obok identyfikatora rejestracji urządzenia zarejestrowanego w tym przewodniku Szybki start.
W górnej części okienka wybierz pozycję Usuń.
Usuwanie rejestracji urządzenia z usługi IoT Hub
W menu portalu w witrynie Azure Portal wybierz pozycję Wszystkie zasoby.
Wybierz centrum IoT Hub.
W menu usługi w obszarze Zarządzanie urządzeniami wybierz pozycję Urządzenia.
Zaznacz pole wyboru obok identyfikatora urządzenia zarejestrowanego w tym przewodniku Szybki start.
W górnej części okienka 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.