Поделиться через


Начало работы с интеграцией ADR и поддерживаемым Microsoft управлением сертификатами X.509 в IoT Hub (предварительная версия)

В этой статье объясняется, как создать центр Интернета вещей с интеграцией реестра устройств Azure (ADR) и управлением сертификатами X.509, поддерживаемыми Корпорацией Майкрософт.

Это важно

Центр Интернета вещей Azure с интеграцией ADR и управлением сертификатами X.509, поддерживаемыми Корпорацией Майкрософт, находится в общедоступной предварительной версии и не рекомендуется для рабочих нагрузок. Дополнительные сведения см. в разделе часто задаваемых вопросов: что нового в Центре Интернета вещей?.

Предпосылки

  • Активная подписка Azure. Если у вас нет подписки Azure, создайте бесплатную учетную запись.

  • Если у вас нет azure CLI, выполните действия по установке Azure CLI.

  • Установите расширение Azure IoT CLI с включёнными предварительными версиями, чтобы получить доступ к функциям интеграции ADR и управления сертификатами для центра Интернета вещей.

    1. Проверьте наличие существующих установок расширений Azure CLI.

      az extension list
      
    2. Удалите все существующие установки Azure-iot.

      az extension remove --name azure-iot
      
    3. Установите расширение azure-iot из индекса с включенной поддержкой предварительных версий.

      az extension add --name azure-iot --allow-preview
      

      или скачайте whl-файл на странице выпусков GitHub, чтобы установить расширение вручную.

      az extension add --upgrade --source https://github.com/Azure/azure-iot-cli-extension/releases/download/v0.30.0b1/azure_iot-0.30.0b1-py3-none-any.whl
      
    4. После установки проверьте, что версия расширения Azure-IoT больше, чем 0.30.0b1.

      az extension list
      
  • Убедитесь, что у вас есть разрешение на выполнение назначений ролей в целевой области. Для выполнения назначений ролей в Azure требуется привилегированная роль, например владелец или администратор доступа пользователей в соответствующей области.

Выбор метода развертывания

Чтобы использовать управление сертификатами, необходимо также настроить Центр Интернета вещей, ADR и службу подготовки устройств (DPS). Если вы предпочитаете, вы можете не включить управление сертификатами и настроить только Центр Интернета вещей с помощью ADR.

Чтобы настроить Центр Интернета вещей с интеграцией ADR и управлением сертификатами, можно использовать Azure CLI или скрипт, который автоматизирует процесс установки.

Метод развертывания Description
Выберите Azure CLI в верхней части страницы Используйте Azure CLI для создания нового пространства имен Центра Интернета вещей, экземпляра DPS и пространства имен ADR и настройки всех необходимых параметров.
Выберите сценарий PowerShell в верхней части страницы Используйте скрипт PowerShell (только для Windows) для автоматизации создания нового IoT хаба, экземпляра DPS и пространства имен ADR и настройки всех необходимых параметров.

Обзор

Используйте команды Azure CLI для создания Центра Интернета вещей с интеграцией ADR и управлением сертификатами.

Процесс установки в этой статье включает следующие действия.

  1. Создайте группу ресурсов
  2. Настройка необходимых привилегий приложения
  3. Создание управляемой идентичности, назначаемой пользователем
  4. Создание пространства имен ADR с управляемым удостоверением, назначаемое системой
  5. Создайте удостоверение (корневой ЦС) и политику (выдающий ЦС), привязанные к этому пространству имен
  6. Создание Центра Интернета вещей (предварительная версия) с связанным пространством имен и управляемым удостоверением
  7. Создайте Устройство обеспечения безопасности (DPS) со связанным IoT Hub и пространством имен.
  8. Синхронизация учетных данных и политик (сертификатов ЦС) с пространством имен ADR
  9. Создайте группу регистрации и свяжите с вашей политикой для активации выдачи сертификатов.

Это важно

В течение периода предварительной версии Центр Интернета вещей с функциями интеграции ADR и управления сертификатами, включенными поверх Центра Интернета вещей, доступны бесплатно. Услуга настройки устройств (DPS) оплачивается отдельно и не включена в предварительный доступ. Для получения сведений о ценах на DPS см. страницу Цены на Azure IoT Hub.

Подготовьте вашу среду

Чтобы подготовить среду к использованию реестра устройств Azure, выполните следующие действия.

  1. Откройте окно терминала.

  2. Чтобы войти в учетную запись Azure, выполните команду az login.

  3. Чтобы вывести список всех подписок и клиентов, к которых у вас есть доступ, выполните команду az account list.

  4. Если у вас есть доступ к нескольким подпискам Azure, задайте активную подписку, в которой создаются устройства Интернета вещей, выполнив следующую команду.

    az account set --subscription "<your subscription name or ID>"
    
  5. Чтобы отобразить сведения о текущей учетной записи, выполните команду az account show. Скопируйте оба следующих значения из выходных данных команды и сохраните их в безопасном расположении.

    • Идентификатор GUID id. Это значение используется для предоставления идентификатора подписки.
    • Идентификатор GUID tenantId. Это значение используется для обновления разрешений с помощью идентификатора клиента.

Настройте группу ресурсов, разрешения и управляемое удостоверение

Чтобы создать группу ресурсов, роль и разрешения для решения Интернета вещей, выполните следующие действия.

  1. Создайте группу ресурсов для вашей среды.

    az group create --name <RESOURCE_GROUP_NAME> --location <REGION>
    
  2. Назначьте роль участника Центру Интернета вещей на уровне группы ресурсов. Значение AppId , являющееся основным идентификатором Центра Интернета вещей, является 89d10474-74af-4874-99a7-c23c2f643083 одинаковым для всех приложений Центра.

    az role assignment create --assignee "89d10474-74af-4874-99a7-c23c2f643083" --role "Contributor" --scope "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP_NAME>"
    
  3. Создайте управляемое удостоверение, назначаемое пользователем (UAMI).

    az identity create --name <USER_IDENTITY> --resource-group <RESOURCE_GROUP_NAME> --location <REGION>
    
  4. Получите идентификатор ресурса управляемого удостоверения. Вам нужен идентификатор ресурса для назначения ролей, настройки политик доступа или связывания удостоверения с другими ресурсами.

    UAMI_RESOURCE_ID=$(az identity show --name <USER_IDENTITY> --resource-group <RESOURCE_GROUP_NAME> --query id -o tsv)
    

Создание нового пространства имен ADR

В этом разделе описано, как создать новое пространство имен ADR с управляемым удостоверением, назначаемое системой. Этот процесс автоматически создает сертификат корневого центра сертификации (ЦС) и политику выдачи ЦС для пространства имен. Дополнительные сведения о том, как учетные данные и политики используются для подписывания конечных сертификатов устройства во время подготовки, см. в разделе "Управление сертификатами".

Замечание

Учетные данные являются необязательными. Вы также можете создать пространство имен без управляемого удостоверения, опустив флаги --enable-credential-policy и --policy-name.

  1. Создайте новое пространство имен ADR. Пространство name имён может содержать только строчные буквы и дефисы ('-') в середине имени, но не в начале или в конце. Например, допустимое имя "msft-namespace".
    Команда --enable-credential-policy создает учетные данные (корневой ЦС) и политику по умолчанию (выдающий ЦС) для этого пространства имен. Имя этой политики можно настроить с помощью --policy-name команды. По умолчанию политика может выдавать сертификаты с сроком действия 30 дней.

    az iot adr ns create --name <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME> --location <REGION> --enable-credential-policy true --policy-name <POLICY_NAME>
    

    Подсказка

    При необходимости можно создать настраиваемую политику, добавив параметры --cert-subject и --cert-validity-days. Дополнительные сведения см. в статье "Создание настраиваемой политики".

    Замечание

    Создание пространства имен ADR с управляемым удостоверением, назначаемое системой, может занять до 5 минут.

  2. Убедитесь, что создано пространство имен с системным управляемым удостоверением или идентификатором субъекта.

    az iot adr ns show --name <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME>
    
  3. Убедитесь, что создаются учетные данные и политика с заданными именами.

    az iot adr ns credential show --namespace <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME>
    az iot adr ns policy show --namespace <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME> --name <POLICY_NAME>
    

    Замечание

    Если имя политики не назначено, политика создается с именем default.

Назначение роли UAMI для доступа к пространству имен ADR

В этом разделе вы назначаете роль участника реестра устройств Azure управляемому удостоверению и задаете ее в рамках пространства имен. Эта настраиваемая роль обеспечивает полный доступ к устройствам Интернета вещей в пространстве имен ADR.

  1. Получите principal ID управляемого удостоверения, назначенного пользователем. Этот идентификатор необходим для назначения ролей идентификатору.

    UAMI_PRINCIPAL_ID=$(az identity show --name <USER_IDENTITY> --resource-group <RESOURCE_GROUP> --query principalId -o tsv)
    
  2. Получите идентификатор ресурса пространства имен ADR. Этот идентификатор используется в качестве области назначения роли.

    NAMESPACE_RESOURCE_ID=$(az iot adr ns show --name <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP> --query id -o tsv)
    
  3. Назначьте роль участника реестра устройств Azure управляемому удостоверению. Эта роль предоставляет управляемому удостоверению необходимые разрешения, ограниченные пространством имен.

    az role assignment create --assignee $UAMI_PRINCIPAL_ID --role "a5c3590a-3a1a-4cd4-9648-ea0a32b15137" --scope $NAMESPACE_RESOURCE_ID
    

Создание Центра Интернета вещей с интеграцией ADR

  1. Создайте новый узел IoT, связанный с пространством имен ADR и ранее созданным UAMI.

    az iot hub create --name <HUB_NAME> --resource-group <RESOURCE_GROUP> --location <HUB_LOCATION> --sku GEN2 --mi-user-assigned $UAMI_RESOURCE_ID --ns-resource-id $NAMESPACE_RESOURCE_ID --ns-identity-id $UAMI_RESOURCE_ID
    

    Это важно

    Так как центр Интернета вещей будет общедоступен в качестве конечной точки DNS, убедитесь, что в его имени не фигурируют конфиденциальные или персональные сведения.

  2. Убедитесь, что в IoT Hub правильно настроены свойства удостоверения и ADR.

    az iot hub show --name <HUB_NAME> --resource-group <RESOURCE_GROUP> --query identity --output json
    

Назначение ролей Центра Интернета вещей для доступа к пространству имен ADR

  1. Получите главный идентификатор управляемого удостоверения для пространства имен ADR. Этому удостоверению требуются разрешения для взаимодействия с Центром Интернета вещей.

    ADR_PRINCIPAL_ID=$(az iot adr ns show --name <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP> --query identity.principalId -o tsv)
    
  2. Получение идентификатора ресурса Центра Интернета вещей. Этот идентификатор используется в качестве области назначения ролей.

    HUB_RESOURCE_ID=$(az iot hub show --name <HUB_NAME> --resource-group <RESOURCE_GROUP> --query id -o tsv)
    
  3. Назначьте идентификатору ADR роль "Участник". Это предоставляет управляемому участнику удостоверений управляемого пространства имен ADR доступ к Центру Интернета вещей. Эта роль обеспечивает широкий доступ, включая управление ресурсами, но не назначение ролей.

    az role assignment create --assignee $ADR_PRINCIPAL_ID --role "Contributor" --scope $HUB_RESOURCE_ID
    
  4. Назначьте роль "Участник реестра Центра Интернета вещей" идентификатору ADR. Это предоставляет более конкретные разрешения для управления идентификаторами устройств в IoT Hub. Это важно для ADR для регистрации устройств и управления ими в концентраторе.

    az role assignment create --assignee $ADR_PRINCIPAL_ID --role "IoT Hub Registry Contributor" --scope $HUB_RESOURCE_ID
    

Создайте экземпляр службы настройки устройств с интеграцией ADR

  1. Создайте новый экземпляр DPS, связанный с пространством имен ADR, созданным в предыдущих разделах. Экземпляр DPS должен находиться в том же регионе, что и пространство имен ADR.

    az iot dps create --name <DPS_NAME> --resource-group <RESOURCE_GROUP> --location <LOCATION> --mi-user-assigned $UAMI_RESOURCE_ID --ns-resource-id $NAMESPACE_RESOURCE_ID --ns-identity-id $UAMI_RESOURCE_ID
    
  2. Убедитесь, что DPS имеет верное удостоверение и правильно настроенные параметры ADR.

    az iot dps show --name <DPS_NAME> --resource-group <RESOURCE_GROUP> --query identity --output json
    
  1. Свяжите Центр Интернета вещей с DPS.

    az iot dps linked-hub create --dps-name <DPS_NAME> --resource-group <RESOURCE_GROUP> --hub-name <HUB_NAME>
    
  2. Убедитесь, что Центр Интернета вещей отображается в списке связанных центров для DPS.

    az iot dps linked-hub list --dps-name <DPS_NAME> --resource-group <RESOURCE_GROUP>
    

Запуск синхронизации учетных данных ADR

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

az iot adr ns credential sync --namespace <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP>

Проверка сертификата удостоверяющего центра концентратора

Убедитесь, что Центр Интернета вещей зарегистрировал сертификат ЦС.

az iot hub certificate list --hub-name <HUB_NAME> --resource-group <RESOURCE_GROUP>

Создание регистрации в DPS

Чтобы подготовить устройства с помощью конечных сертификатов, создайте группу регистрации в DPS и назначьте ее соответствующей политике учетных данных с параметром --credential-policy .

Следующая команда создает группу регистрации, используя аттестацию симметричного ключа по умолчанию:

Замечание

Если вы создали политику с другим именем по умолчанию, убедитесь, что вы используете это имя политики после --credential-policy параметра.

az iot dps enrollment-group create --dps-name <DPS_NAME> --resource-group <RESOURCE_GROUP> --enrollment-id <ENROLLMENT_ID> --credential-policy <POLICY_NAME>

Центр Интернета вещей с интеграцией ADR и управлением сертификатами теперь настроен и готов к использованию.

Необязательные команды

Следующие команды помогают управлять пространствами имен ADR, отключать устройства, создавать настраиваемые политики и удалять ресурсы, когда они больше не нужны.

Управление пространствами имен

  1. Перечислите все пространства имен в вашей группе ресурсов.

    az iot adr ns list --resource-group <RESOURCE_GROUP_NAME>
    
  2. Отображение сведений о определенном пространстве имен.

    az iot adr ns show --name <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME>
    
  3. Перечислите все политики в вашем пространстве имен.

    az iot adr ns policy list --namespace <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME>
    
  4. Отображение сведений о определенной политике.

    az iot adr ns policy show --namespace <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME> --name <POLICY_NAME>
    
  5. Перечислите все учетные данные в пространстве имен.

    az iot adr ns credential list --namespace <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME>
    

Отключение устройств

  1. Вывод списка всех устройств в Центре Интернета вещей.

    az iot hub device-identity list --hub-name <HUB_NAME> --resource-group <RESOURCE_GROUP_NAME>
    
  2. Отключите устройство, обновив его состояние до disabled. Обязательно замените <MY_DEVICE_ID>, указав идентификатор устройства, который вы хотите отключить.

    az iot hub device-identity update --hub-name <HUB_NAME> --resource-group <RESOURCE_GROUP_NAME> -d <MY_DEVICE_ID> --status disabled
    
  3. Запустите устройство еще раз и убедитесь, что не удается подключиться к Центру Интернета вещей.

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

Создайте настраиваемую политику с помощью az iot adr ns policy create команды. Задайте имя, тему сертификата, и срок действия политики безопасности в соответствии с правилами:

  • Значение политики name должно быть уникальным в пространстве имен. При попытке создать политику с именем, которое уже существует, вы получите сообщение об ошибке.
  • Значение субъекта cert-subject сертификата должно быть уникальным для всех политик в пространстве имен. Если вы пытаетесь создать политику с уже существующей темой, вы получите сообщение об ошибке.
  • Значение срока cert-validity-days действия должно составлять от 1 до 30 дней. Если вы пытаетесь создать политику с периодом действия за пределами этого диапазона, вы получите сообщение об ошибке.

В следующем примере создается политика с именем custom-policy с предметом CN=TestDevice и сроком действия 30 дней.

az iot adr ns policy create --name "custom-policy" --namespace <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME> --cert-subject "CN=TestDevice" --cert-validity-days "30"

Удаление ресурсов

Чтобы удалить пространство имен ADR, необходимо сначала удалить все связанные с ним узлы IoT и экземпляры DPS.

az iot hub delete --name <HUB_NAME> --resource-group <RESOURCE_GROUP_NAME>
az iot adr ns delete --name <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME>
az iot dps delete --name <DPS_NAME> --resource-group <RESOURCE_GROUP_NAME> 
az identity delete --name <USER_IDENTITY> --resource-group <RESOURCE_GROUP_NAME>

Обзор

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

  1. Создайте группу ресурсов
  2. Настройка необходимых привилегий приложения
  3. Создание управляемой идентичности, назначаемой пользователем
  4. Создание пространства имен ADR с управляемым удостоверением, назначаемое системой
  5. Создайте удостоверение (корневой ЦС) и политику (выдающий ЦС), привязанные к этому пространству имен
  6. Создание Центра Интернета вещей (предварительная версия) с связанным пространством имен и управляемым удостоверением
  7. Создайте Устройство обеспечения безопасности (DPS) со связанным IoT Hub и пространством имен.
  8. Синхронизация учетных данных и политик (сертификатов ЦС) с пространством имен ADR
  9. Создайте группу регистрации и свяжите с вашей политикой для активации выдачи сертификатов.

Это важно

В течение периода предварительной версии Центр Интернета вещей с функциями интеграции ADR и управления сертификатами, включенными поверх Центра Интернета вещей, доступны бесплатно. Услуга настройки устройств (DPS) оплачивается отдельно и не включена в предварительный доступ. Для получения сведений о ценах на DPS см. страницу Цены на Azure IoT Hub.

Подготовьте вашу среду

  1. Скачайте PowerShell 7 для Windows.
  2. Перейдите в репозиторий GitHub и скачайте папку Scripts, содержащую файл скрипта , iothub-adr-certs-setup-preview.ps1.

Настройка переменных скрипта

Откройте файл скрипта в текстовом редакторе и измените следующие переменные в соответствии с требуемой конфигурацией.

  • TenantId: идентификатор арендатора. Это значение можно найти, выполнив команду az account show в терминале.
  • SubscriptionId: идентификатор подписки. Это значение можно найти, выполнив команду az account show в терминале.
  • ResourceGroup: имя группы ресурсов.
  • Location: регион Azure, в котором требуется создать ресурсы. Ознакомьтесь с доступными локациями для функций предварительного просмотра в разделе Поддерживаемые регионы.
  • NamespaceName: имя пространства имен может содержать только строчные буквы и дефисы ('-) в середине имени, но не в начале или конце. Например, "msft-namespace" является допустимым именем.
  • HubName: имя концентратора может содержать только строчные буквы и цифры.
  • DpsName: название экземпляра службы подготовки устройств.
  • UserIdentity: назначаемое пользователем управляемое удостоверение для ваших ресурсов.
  • WorkingFolder: локальная папка, в которой находится скрипт.

Это важно

Так как центр Интернета вещей будет общедоступен в качестве конечной точки DNS, убедитесь, что в его имени не фигурируют конфиденциальные или персональные сведения.

Интерактивный запуск скрипта

  1. Откройте скрипт и запустите в PowerShell 7+ от имени администратора. Перейдите в папку, содержащую скрипт и выполните команду .\iothub-adr-certs-setup-preview.ps1.

  2. При возникновении проблемы с политикой выполнения попробуйте запустить powershell -ExecutionPolicy Bypass -File .\iothub-adr-certs-setup-preview.ps1.

  3. Следуйте пошаговым инструкциям.

    • Нажмите, Enter чтобы продолжить шаг
    • Нажмите s или S, чтобы пропустить шаг
    • Нажмите клавишу Ctrl + C , чтобы прервать

Замечание

Создание пространства имен ADR, Центра Интернета вещей, DPS и других ресурсов может занять до 5 минут.

Мониторинг выполнения и проверка ресурсов

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

  2. После завершения скрипта проверьте создание ресурсов, перейдя в новую группу ресурсов на портале Azure. Вы увидите, что созданы следующие ресурсы:

    • Экземпляр IoT-хаба
    • Экземпляр службы предоставления устройств (DPS)
    • Пространство имен реестра устройств Azure (ADR)
    • управляемое удостоверение с привязкой к пользователю (UAMI)

Дальнейшие шаги

На этом этапе Центр Интернета вещей с интеграцией ADR и управлением сертификатами настроен и готов к использованию. Теперь вы можете приступить к подключению ваших IoT-устройств к узлу с помощью экземпляра службы подготовки устройств (DPS) и безопасно управлять IoT-устройствами с помощью настроенных вами политик и регистраций.

Новое: управление сертификатами поддерживается для выбора пакетов SDK для устройств DPS. Теперь вы можете вводить устройства в эксплуатацию с использованием управления сертификатами X.509, поддерживаемого Microsoft, с помощью следующих примеров SDK:.