Краткое руководство. Создание и подготовка к работе имитированного устройства доверенного платформенного модуля

С помощью этого краткого руководства вы создадите имитированное устройство на компьютере Windows. Имитированное устройство будет настроено для использования механизма аттестации доверенного платформенного модуля (TPM) для проверки подлинности. После настройки устройства вы подготовите его к центру Интернета вещей с помощью службы подготовки устройств Центр Интернета вещей Azure. Затем пример кода будет использоваться для регистрации устройства с помощью экземпляра службы подготовки устройств.

Если вы не знакомы с процессом подготовки, см. раздел Процесс подготовки. Кроме того, прежде чем продолжить, выполните инструкции по настройке службы "Подготовка устройств к добавлению в Центр Интернета вещей" на портале Azure.

Служба подготовки устройств Интернета вещей Azure поддерживает два типа регистрации:

В этой статье описана индивидуальная регистрация.

Аттестация доверенного платформенного модуля (TPM) не поддерживается в пакете SDK для Python. С помощью Python можно подготовить устройство с помощью симметричного ключа или сертификатов X.509.

Необходимые компоненты

Приведенные ниже предварительные требования касаются среды разработки Windows. При использовании Linux или macOS ознакомьтесь с соответствующим разделом в статье Подготовка среды разработки из документации к пакету SDK.

  • Модуль безопасности оборудования TPM 2.0 на компьютере под управлением Windows.

  • Установите пакет SDK для .NET Core 6.0 или более поздней версии на компьютере под управлением Windows. Вы можете проверить установленную версию с помощью приведенной ниже команды.

    dotnet --info
    
  • Установите последнюю версию Git. Обязательно добавьте GIT в переменные среды, доступные в командном окне. Последнюю версию средств git для установки, которая включает Git Bash (приложение командной строки для взаимодействия с локальным репозиторием GIT), можно найти на этой странице.

Подготовка среды разработки

При работе с этим разделом вы подготовите среду разработки, с помощью которой создается пакет SDK Интернета вещей Azure для С и пример симулятора устройства доверенного платформенного модуля.

  1. Скачайте последнюю версию системы сборки CMake.

    Внимание

    Перед установкой CMake важно установить на компьютер необходимые компоненты Visual Studio (Visual Studio и рабочую нагрузку "Разработка классических приложений на C++"). После установки компонентов и проверки загрузки установите систему сборки CMake. Кроме того, обратите внимание, что в предыдущих версиях системы сборки CMake нельзя создать файл решения, используемый в этой статье. Обязательно используйте последнюю версию CMake.

  2. Откройте веб-браузер и перейдите на страницу выпусков пакета SDK Интернета вещей Azure для C.

  3. Выберите вкладку Теги в верхней части страницы.

  4. Скопируйте имя тега для последнего выпуска пакета SDK Интернета вещей Azure для C.

  5. Откройте командную строку или оболочку Git Bash. Выполните следующие команды, чтобы клонировать последний выпуск пакета SDK для устройств Интернета вещей Azure для репозитория GitHub. Замените <release-tag> тегом, скопированным на предыдущем шаге, например: 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
    

    Выполнение этой операции займет несколько минут.

  6. После завершения операции выполните следующие команды в каталоге azure-iot-sdk-c:

    mkdir cmake
    cd cmake
    
  1. Откройте среду командной строки Git CMD или Git Bash.

  2. Клонируйте репозиторий Azure IoT SDK для C# GitHub с помощью следующей команды:

    git clone https://github.com/Azure/azure-iot-sdk-csharp.git
    
  1. Откройте среду командной строки Git CMD или Git Bash.

  2. Клонируйте репозиторий GitHub azure-utpm-c с помощью следующей команды:

    git clone https://github.com/Azure/azure-utpm-c.git --recursive
    
  1. Откройте среду командной строки Git CMD или Git Bash.

  2. Клонируйте репозиторий GitHub Java с помощью следующей команды:

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

Создание и запуск симулятора устройства доверенного платформенного модуля

При работе с этим разделом вы создадите и запустите симулятор доверенного платформенного модуля. Симулятор ожидает передачи данных через сокет на портах 2321 и 2322. Не закрывайте командное окно. Симулятор должен работать, пока вы не выполните все инструкции из этого краткого руководства.

  1. Выполните приведенную ниже команду, чтобы создать пакет SDK Интернета вещей Azure для C, включающий пример кода симулятора устройства доверенного платформенного модуля. Эта команда также создает решение Visual Studio для имитированного устройства в каталоге cmake. Этот пример содержит механизм аттестации доверенного платформенного модуля с помощью проверки подлинности по маркерам подписанного URL-адреса (SAS).

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

    Совет

    Если cmake не может найти компилятор C++, могут возникнуть ошибки сборки во время выполнения приведенной выше команды. В этом случае попробуйте, выполнить эту команду в командной строке Visual Studio.

  2. После успешной сборки последние несколько строк выходных данных выглядят следующим образом.

    $ 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. Перейдите в корневую папку клонированного вами репозитория GIT.

  4. Запустите симулятор доверенного платформенного модуля, используя приведенный ниже путь.

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

    Симулятор не отображает никаких выходных данных. Пусть продолжает выполнять имитацию устройства доверенного платформенного модуля.

  1. Перейдите в корневую папку GitHub.

  2. Запустите симулятор TPM, который будет выполнять роль модуля HSM для имитированного устройства.

    .\azure-utpm-c\tools\tpm_simulator\Simulator.exe
    
  3. Создайте пустую папку с именем registerdevice. В папке registerdevice создайте файл package.json. Для этого введите следующую команду в командной строке (обязательно ответьте на все вопросы npm или примите значения по умолчанию, если они вам подходят):

    npm init
    
  4. Установите следующие основные пакеты:

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

    Примечание.

    При установке указанных выше пакетов могут возникнуть некоторые известные проблемы. Чтобы устранить их, выполните команду npm install --global --production windows-build-tools с помощью командной строки в режиме Запуск от имени администратора, а затем выполните SET VCTargetsPath=C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140, заменив путь на путь к текущей установленной версии, и повторно выполните указанные выше команды установки.

  5. Установите все необходимые пакеты, выполнив следующую команду в командной строке в папке registereddevice:

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

    Команда позволяет установить следующие пакеты:

    • Клиент безопасности, работающий с TPM: azure-iot-security-tpm

    • Транспорт для подключения устройства к службе подготовки устройств: azure-iot-provisioning-device-http или azure-iot-provisioning-device-amqp

    • Клиент для использования клиента транспорта и безопасности: azure-iot-provisioning-device

    • Клиент устройства: azure-iot-device

    • Транспорт: любой из azure-iot-device-amqp, azure-iot-device-mqttили azure-iot-device-http

    • Клиент безопасности, который вы уже установили: azure-iot-security-tpm

      Примечание.

      Примеры в этом кратком руководстве используют транспортировки azure-iot-provisioning-device-http и azure-iot-device-mqtt.

  6. Откройте текстовый редактор по своему усмотрению.

  7. Создайте файл ExtractDevice.js в папке registerdevice.

  8. Добавьте следующие инструкции require в начало файла 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. Добавьте следующую функцию, чтобы реализовать метод:

    
    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. Сохраните файл ExtractDevice.js и закройте его.

    node ExtractDevice.js
    
  11. Запустите образец.

  12. Окно выходных данных отображает ключ подтверждения и идентификатор регистрации, необходимые для регистрации устройства. Скопируйте эти значения.

  1. Запустите симулятор TPM, который будет выполнять роль модуля HSM для имитированного устройства.

  2. Выберите команду Разрешить доступ. Симулятор ожидает передачи данных через сокет на портах 2321 и 2322. Не закрывайте это командное окно; Этот симулятор должен работать до конца этого краткого руководства.

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

    TPM Simulator

  3. Откройте второе окно командной строки.

  4. Во втором окне командной строки перейдите к корневой папке и создайте зависимости для примера.

    cd azure-iot-sdk-java
    mvn install -DskipTests=true
    
  5. Перейдите к папке с примерами.

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

Чтение криптографических ключей из устройства доверенного платформенного модуля

При работе с этим разделом вы создадите и выполните пример, с помощью которого будет считываться ключ подтверждения и идентификатор регистрации из симулятора доверенного платформенного модуля, все еще работающего и ожидающего передачи данных через порты 2321 и 2322. Эти значения будут использоваться для регистрации устройств в экземпляре службы подготовки устройств.

  1. Запустите Visual Studio.

  2. Откройте решение azure_iot_sdks.sln, созданное в папке cmake.

  3. В меню Visual Studio выберите Построить>Построить решение для создания всех проектов в решении.

  4. В окне Обозреватель решений Visual Studio перейдите в папку Provision_Tools. Щелкните проект tpm_device_provision правой кнопкой мыши и выберите параметр Назначить запускаемым проектом.

  5. В меню Visual Studio выберите Отладка>Запуск без отладки, чтобы запустить решение. Приложение считывает и отображает идентификатор регистрации и ключ подтверждения. Запишите или скопируйте эти значения. Они будут использоваться в следующем разделе для регистрации устройств.

  1. Войдите на портал Azure, нажмите кнопку Все ресурсы в меню слева и откройте службу подготовки устройств. Запишите значения параметров Область идентификатора и Provisioning Service Global Endpoint (Глобальная конечная точка службы подготовки).

    Device Provisioning Service information

  2. Измените src/main/java/samples/com/microsoft/azure/sdk/iot/ProvisioningTpmSample.java, добавив значения параметров Область идентификатора и Provisioning Service Global Endpoint (Глобальная конечная точка службы подготовки), как было указано ранее.

    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. Сохраните файл.

  4. Выполните следующие команды, чтобы выполнить сборку проекта, перейдите в целевую папку и выполните созданный JAR-файл (замените {version} вашей версией Java):

    mvn clean install
    cd target
    java -jar ./provisioning-tpm-sample-{version}-with-deps.jar
    
  5. Когда программа начнет работать, отобразится ключ подтверждения и идентификатор регистрации. Скопируйте эти значения для следующего раздела. Оставьте программу запущенной.

В этом разделе вы создадите и выполните пример, который считывает ключ подтверждения из модуля безопасности оборудования TPM 2.0. Это значение будет использоваться для регистрации устройств в экземпляре службы подготовки устройств.

  1. В окне командной строки замените каталоги на каталог проекта в примере подготовки устройства TPM.

    cd '.\azure-iot-sdk-csharp\provisioning\device\samples\how to guides\TpmSample\'
    
  2. Введите следующую команду, чтобы создать и запустить пример подготавливаемого устройства TPM. Скопируйте ключ подтверждения, возвращенный модулем безопасности оборудования TPM 2.0, чтобы использовать его позже при регистрации устройства.

    dotnet run -- -e
    

Создание записи о регистрации устройства

  1. Войдите на портал Azure и перейдите к своему экземпляру службы подготовки устройств.

  2. Выберите "Управление регистрацией" в разделе Параметры меню навигации.

  3. Перейдите на вкладку "Отдельные регистрации" , а затем нажмите кнопку "Добавить отдельную регистрацию".

    Screenshot that shows the add individual enrollment option.

  4. На странице "Регистрация и подготовка" страницы "Добавление регистрации" укажите следующие сведения, чтобы настроить сведения о регистрации:

    Поле Description
    Аттестации Выберите доверенный модуль платформы (TPM) в качестве механизма аттестации.
    Параметры доверенного платформенного модуля (TPM) Укажите ключ подтверждения, который будет использоваться для проверки устройства для этой регистрации. Ключ подтверждения можно получить из доверенного платформенного модуля устройства.
    Идентификатор регистрации. Укажите уникальный идентификатор регистрации для устройства. Вы можете получить идентификатор регистрации из доверенного платформенного модуля устройства.
    Состояние подготовки Установите флажок "Включить эту регистрацию", если вы хотите, чтобы эта регистрация была доступна для подготовки устройства. Если вы хотите отключить регистрацию проверка это поле. Этот параметр можно изменить позже.
    Политика повторной подготовки Выберите политику повторной подготовки, которая отражает способ обработки устройств, запрашивающих повторную подготовку. Дополнительные сведения см. в разделе "Политики повторной подготовки".
  5. Нажмите кнопку Далее: Центры Интернета вещей.

  6. На вкладке Центров Интернета вещей на странице "Добавление регистрации" укажите следующие сведения, чтобы определить, какие центры Интернета вещей могут подготавливать устройства для:

    Поле Description
    Целевые центры Интернета вещей Выберите один или несколько связанных центров Интернета вещей или добавьте новую ссылку на Центр Интернета вещей. Дополнительные сведения о связывании центров Интернета вещей с экземпляром DPS см. в статье "Как связать центры Интернета вещей и управлять ими".
    Политика выделения Если выбрано несколько связанных центров Интернета вещей, выберите способ назначения устройств разным центрам. Дополнительные сведения о политиках выделения см. в статье "Использование политик выделения".

    Если выбран только один связанный центр Интернета вещей, рекомендуется использовать политику равномерного распределения .
  7. Нажмите кнопку "Далее": параметры устройства

  8. На вкладке "Параметры устройства" на странице "Добавление регистрации " укажите следующие сведения, чтобы определить, как будут настроены недавно подготовленные устройства:

    Поле Description
    Идентификатор устройства Укажите идентификатор устройства, который будет назначен подготовленному устройству в Центр Интернета вещей. Если идентификатор устройства не указан, будет использоваться идентификатор регистрации.
    IoT Edge Проверьте включение IoT Edge на подготовленных устройствах, если подготовленное устройство будет запускать Azure IoT Edge. Не проверка это поле, если эта регистрация используется для устройства с поддержкой IoT Edge.
    Теги устройств Используйте это текстовое поле для предоставления тегов, которые необходимо применить к двойнику устройства подготовленного устройства.
    Требуемые свойства Используйте это текстовое поле для предоставления необходимых свойств, которые необходимо применить к двойнику устройства подготовленного устройства.

    См. общие сведения о двойниках устройств и их использовании в Центре Интернета вещей.

  9. По завершении выберите Next: Отзыв и создание.

  10. На вкладке "Просмотр и создание " проверьте все значения и нажмите кнопку "Создать".

Пример доверенного платформенного модуля C# для этого краткого руководства не предоставляет идентификатор регистрации. При появлении запроса на добавление одного для отдельной регистрации укажите собственное значение.

  1. Войдите на портал Azure и перейдите к своему экземпляру службы подготовки устройств.

  2. Выберите "Управление регистрацией" в разделе Параметры меню навигации.

  3. Перейдите на вкладку "Отдельные регистрации" , а затем нажмите кнопку "Добавить отдельную регистрацию".

    Screenshot that shows the add individual enrollment option.

  4. На странице "Регистрация и подготовка" страницы "Добавление регистрации" укажите следующие сведения, чтобы настроить сведения о регистрации:

    Поле Description
    Аттестации Выберите доверенный модуль платформы (TPM) в качестве механизма аттестации.
    Параметры доверенного платформенного модуля (TPM) Укажите ключ подтверждения, который будет использоваться для проверки устройства для этой регистрации. Ключ подтверждения можно получить из доверенного платформенного модуля устройства.
    Идентификатор регистрации. Укажите уникальный идентификатор регистрации для устройства. Вы можете получить идентификатор регистрации из доверенного платформенного модуля устройства.
    Состояние подготовки Установите флажок "Включить эту регистрацию", если вы хотите, чтобы эта регистрация была доступна для подготовки устройства. Если вы хотите отключить регистрацию проверка это поле. Этот параметр можно изменить позже.
    Политика повторной подготовки Выберите политику повторной подготовки, которая отражает способ обработки устройств, запрашивающих повторную подготовку. Дополнительные сведения см. в разделе "Политики повторной подготовки".
  5. Нажмите кнопку Далее: Центры Интернета вещей.

  6. На вкладке Центров Интернета вещей на странице "Добавление регистрации" укажите следующие сведения, чтобы определить, какие центры Интернета вещей могут подготавливать устройства для:

    Поле Description
    Целевые центры Интернета вещей Выберите один или несколько связанных центров Интернета вещей или добавьте новую ссылку на Центр Интернета вещей. Дополнительные сведения о связывании центров Интернета вещей с экземпляром DPS см. в статье "Как связать центры Интернета вещей и управлять ими".
    Политика выделения Если выбрано несколько связанных центров Интернета вещей, выберите способ назначения устройств разным центрам. Дополнительные сведения о политиках выделения см. в статье "Использование политик выделения".

    Если выбран только один связанный центр Интернета вещей, рекомендуется использовать политику равномерного распределения .
  7. Нажмите кнопку "Далее": параметры устройства

  8. На вкладке "Параметры устройства" на странице "Добавление регистрации " укажите следующие сведения, чтобы определить, как будут настроены недавно подготовленные устройства:

    Поле Description
    Идентификатор устройства Укажите идентификатор устройства, который будет назначен подготовленному устройству в Центр Интернета вещей. Если идентификатор устройства не указан, будет использоваться идентификатор регистрации.
    IoT Edge Проверьте включение IoT Edge на подготовленных устройствах, если подготовленное устройство будет запускать Azure IoT Edge. Не проверка это поле, если эта регистрация используется для устройства с поддержкой IoT Edge.
    Теги устройств Используйте это текстовое поле для предоставления тегов, которые необходимо применить к двойнику устройства подготовленного устройства.
    Требуемые свойства Используйте это текстовое поле для предоставления необходимых свойств, которые необходимо применить к двойнику устройства подготовленного устройства.

    См. общие сведения о двойниках устройств и их использовании в Центре Интернета вещей.

  9. По завершении выберите Next: Отзыв и создание.

  10. На вкладке "Просмотр и создание " проверьте все значения и нажмите кнопку "Создать".

Регистрация устройства

При работе с этим разделом вы настроите пример кода для использования Расширенного протокола управления очередью сообщений (AMQP), чтобы отправить последовательность загрузки устройства в экземпляр службы подготовки устройств. Эта последовательность загрузки обеспечит регистрацию устройства в Центре Интернета вещей, связанном с экземпляром Службы подготовки устройств.

  1. На портале Azure выберите вкладку Обзор службы подготовки устройств.

  2. Скопируйте значение параметра Область идентификатора.

    Extract Device Provisioning Service endpoint information from the portal

  3. В окне Обозреватель решений Visual Studio перейдите в папку Provision_Samples. Разверните пример проекта с именем prov_dev_client_sample. Разверните исходные файлы и откройте prov_dev_client_sample.c.

  4. В верхней части файла найдите операторы #define для каждого протокола устройства, как показано ниже. Убедитесь, что раскомментирован только параметр SAMPLE_AMQP.

    В настоящее время протокол MQTT не поддерживается для индивидуальной регистрации доверенного платформенного модуля.

    //
    // 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. Найдите константу id_scope и замените ее значение ранее скопированным значением области идентификатора.

    static const char* id_scope = "0ne00002193";
    
  6. Найдите определение функции main() в том же файле. Убедитесь, чтобы переменной hsm_type было присвоено значение SECURE_DEVICE_TYPE_TPM, как показано ниже.

    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. Щелкните правой кнопкой мыши проект prov_dev_client_sample и выберите "Задать в качестве запускаемого проекта".

  8. В меню Visual Studio выберите Отладка>Запуск без отладки, чтобы запустить решение. При появлении запроса перестроить проект щелкните Да, чтобы перестроить его перед запуском.

    Следующий результат является примером успешной загрузки примера клиента устройства подготовки и подключения к экземпляру службы подготовки устройств для получения сведений о Центре Интернета вещей и регистрации:

    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. На портале Azure выберите вкладку Обзор службы подготовки устройств.

  2. Скопируйте значение параметра Область идентификатора.

    Copy provisioning service Scope ID from the portal blade

  3. В окне командной строки замените каталоги на каталог проекта в примере подготовки устройства TPM.

     cd '.\azure-iot-sdk-csharp\provisioning\device\samples\how to guides\TpmSample\'
    
  4. Выполните следующую команду, чтобы зарегистрировать устройство. Замените <IdScope> значением, скопированным DPS, и <RegistrationId> значением, которое вы использовали при создании регистрации устройства.

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

    Если регистрация устройства прошла успешно, вы увидите следующие сообщения:

    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. На портале Azure выберите вкладку Обзор службы подготовки устройств.

  2. Скопируйте значение параметра Область идентификатора.

    Extract Device Provisioning Service endpoint information from the portal blade

  3. Откройте текстовый редактор по своему усмотрению.

  4. Создайте файл RegisterDevice.js в папке registerdevice.

  5. Добавьте следующие инструкции require в начало файла 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;
    

    Примечание.

    Пакет SDK Центра Интернета вещей Azure для Node.js поддерживает дополнительные протоколы, такие как AMQP, AMQP WS и MQTT WS. Дополнительные примеры на Node.js см. в разделе для пакета SDK службы подготовки устройств.

  6. Добавьте переменные globalDeviceEndpoint и idScope и используйте их для создания экземпляра ProvisioningDeviceClient. Замените {globalDeviceEndpoint} и {idScope} значениями глобальной конечной точки устройства и идентификатором области из шага 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. Добавьте следующую функцию, чтобы реализовать метод на устройстве:

    
    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. Сохраните файл RegisterDevice.js и закройте его.

  9. Выполните следующую команду:

    node RegisterDevice.js
    
  10. Обратите внимание на сообщения, которые имитируют загрузку устройства и его подключение к службе подготовки устройств для получения информации Центра Интернета вещей.

  1. В окне командной строки, в котором выполняется пример кода Java на компьютере, нажмите клавишу ВВОД, чтобы приложение продолжило работу. Обратите внимание на сообщения, которые имитируют загрузку устройства и его подключение к службе подготовки устройств для получения информации Центра Интернета вещей.

    Java TPM device program final

Проверка регистрации подготовки устройств

  1. Войдите на портал Azure.

  2. В меню слева на портале нажмите Все ресурсы.

  3. Выберите центр Интернета вещей, которому назначено устройство.

  4. В меню Проводники выберите элемент Устройства Интернета вещей.

  1. Если устройство успешно подготовлено, его идентификатор должен появиться в списке и параметр Состояние будет иметь значение Включено. Если устройство не отображается, выберите команду Обновить в верхней части страницы.

    Device is registered with the IoT hub for C

  1. Если устройство успешно подготовлено, его идентификатор должен появиться в списке и параметр Состояние будет иметь значение Включено. Если устройство не отображается, выберите команду Обновить в верхней части страницы.

    Device is registered with the IoT hub for C#

  1. Если устройство успешно подготовлено, его идентификатор должен появиться в списке и параметр Состояние будет иметь значение Включено. Если устройство не отображается, выберите команду Обновить в верхней части страницы.

    Device is registered with the IoT hub for Node.js

  1. Если устройство успешно подготовлено, его идентификатор должен появиться в списке и параметр Состояние будет иметь значение Включено. Если устройство не отображается, выберите команду Обновить в верхней части страницы.

    Device is registered with the IoT hub

Примечание.

Если в записи регистрации для своего устройства вы изменили значение по умолчанию для начального состояния двойника устройства, требуемое состояние двойника будет извлечено из концентратора с последующим выполнением соответствующих действий. См. общие сведения о двойниках устройств и их использовании в Центре Интернета вещей.

Очистка ресурсов

Если вы планируете продолжить работу с примером клиентского устройства, не удаляйте ресурсы, созданные в ходе работы с этим кратким руководством. Если вы не планируете продолжать работу, следуйте инструкциям ниже, чтобы удалить все созданные ресурсы.

Удаление регистрации устройства

  1. Закройте окно выходных данных примера клиентского устройства на компьютере.

  2. На портале Azure в меню слева выберите элемент Все ресурсы.

  3. Выберите службу Подготовки устройств.

  4. В меню Параметры выберите Управление регистрациями.

  5. Перейдите на вкладку "Отдельные регистрации ".

  6. Выберите поле проверка рядом с идентификатором регистрации устройства, зарегистрированного в этом кратком руководстве.

  7. В верхней части страницы выберите команду Удалить.

Удаление регистрации устройства из Центра Интернета вещей

  1. На портале Azure в меню слева выберите элемент Все ресурсы.

  2. Выберите нужный Центр Интернета вещей.

  3. В меню Обозреватели выберите Устройства Интернета вещей.

  4. Выберите поле проверка рядом с идентификатором устройства, зарегистрированного в этом кратком руководстве.

  5. В верхней части страницы выберите команду Удалить.

Следующие шаги

В этом кратком руководстве вы подготовили одно устройство в Центре Интернета вещей с помощью отдельной регистрации. Далее вы узнаете, как подготовить несколько устройств в нескольких центрах.