Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
В этой статье объясняется, как создать центр Интернета вещей с интеграцией реестра устройств Azure (ADR) и управлением сертификатами X.509, поддерживаемыми Корпорацией Майкрософт.
Это важно
Центр Интернета вещей Azure с интеграцией ADR и управлением сертификатами X.509, поддерживаемыми Корпорацией Майкрософт, находится в общедоступной предварительной версии и не рекомендуется для рабочих нагрузок. Дополнительные сведения см. в разделе часто задаваемых вопросов: что нового в Центре Интернета вещей?.
Предпосылки
Активная подписка Azure. Если у вас нет подписки Azure, создайте бесплатную учетную запись.
Если у вас нет azure CLI, выполните действия по установке Azure CLI.
Установите расширение Azure IoT CLI с включёнными предварительными версиями, чтобы получить доступ к функциям интеграции ADR и управления сертификатами для центра Интернета вещей.
Проверьте наличие существующих установок расширений Azure CLI.
az extension listУдалите все существующие установки Azure-iot.
az extension remove --name azure-iotУстановите расширение 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После установки проверьте, что версия расширения 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 и управлением сертификатами.
Процесс установки в этой статье включает следующие действия.
- Создайте группу ресурсов
- Настройка необходимых привилегий приложения
- Создание управляемой идентичности, назначаемой пользователем
- Создание пространства имен ADR с управляемым удостоверением, назначаемое системой
- Создайте удостоверение (корневой ЦС) и политику (выдающий ЦС), привязанные к этому пространству имен
- Создание Центра Интернета вещей (предварительная версия) с связанным пространством имен и управляемым удостоверением
- Создайте Устройство обеспечения безопасности (DPS) со связанным IoT Hub и пространством имен.
- Синхронизация учетных данных и политик (сертификатов ЦС) с пространством имен ADR
- Создайте группу регистрации и свяжите с вашей политикой для активации выдачи сертификатов.
Это важно
В течение периода предварительной версии Центр Интернета вещей с функциями интеграции ADR и управления сертификатами, включенными поверх Центра Интернета вещей, доступны бесплатно. Услуга настройки устройств (DPS) оплачивается отдельно и не включена в предварительный доступ. Для получения сведений о ценах на DPS см. страницу Цены на Azure IoT Hub.
Подготовьте вашу среду
Чтобы подготовить среду к использованию реестра устройств Azure, выполните следующие действия.
Откройте окно терминала.
Чтобы войти в учетную запись Azure, выполните команду
az login.Чтобы вывести список всех подписок и клиентов, к которых у вас есть доступ, выполните команду
az account list.Если у вас есть доступ к нескольким подпискам Azure, задайте активную подписку, в которой создаются устройства Интернета вещей, выполнив следующую команду.
az account set --subscription "<your subscription name or ID>"Чтобы отобразить сведения о текущей учетной записи, выполните команду
az account show. Скопируйте оба следующих значения из выходных данных команды и сохраните их в безопасном расположении.- Идентификатор GUID
id. Это значение используется для предоставления идентификатора подписки. - Идентификатор GUID
tenantId. Это значение используется для обновления разрешений с помощью идентификатора клиента.
- Идентификатор GUID
Настройте группу ресурсов, разрешения и управляемое удостоверение
Чтобы создать группу ресурсов, роль и разрешения для решения Интернета вещей, выполните следующие действия.
Создайте группу ресурсов для вашей среды.
az group create --name <RESOURCE_GROUP_NAME> --location <REGION>Назначьте роль участника Центру Интернета вещей на уровне группы ресурсов. Значение
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>"Создайте управляемое удостоверение, назначаемое пользователем (UAMI).
az identity create --name <USER_IDENTITY> --resource-group <RESOURCE_GROUP_NAME> --location <REGION>Получите идентификатор ресурса управляемого удостоверения. Вам нужен идентификатор ресурса для назначения ролей, настройки политик доступа или связывания удостоверения с другими ресурсами.
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.
Создайте новое пространство имен 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 минут.
Убедитесь, что создано пространство имен с системным управляемым удостоверением или идентификатором субъекта.
az iot adr ns show --name <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME>Убедитесь, что создаются учетные данные и политика с заданными именами.
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.
Получите principal ID управляемого удостоверения, назначенного пользователем. Этот идентификатор необходим для назначения ролей идентификатору.
UAMI_PRINCIPAL_ID=$(az identity show --name <USER_IDENTITY> --resource-group <RESOURCE_GROUP> --query principalId -o tsv)Получите идентификатор ресурса пространства имен ADR. Этот идентификатор используется в качестве области назначения роли.
NAMESPACE_RESOURCE_ID=$(az iot adr ns show --name <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP> --query id -o tsv)Назначьте роль участника реестра устройств Azure управляемому удостоверению. Эта роль предоставляет управляемому удостоверению необходимые разрешения, ограниченные пространством имен.
az role assignment create --assignee $UAMI_PRINCIPAL_ID --role "a5c3590a-3a1a-4cd4-9648-ea0a32b15137" --scope $NAMESPACE_RESOURCE_ID
Создание Центра Интернета вещей с интеграцией ADR
Создайте новый узел 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, убедитесь, что в его имени не фигурируют конфиденциальные или персональные сведения.
Убедитесь, что в IoT Hub правильно настроены свойства удостоверения и ADR.
az iot hub show --name <HUB_NAME> --resource-group <RESOURCE_GROUP> --query identity --output json
Назначение ролей Центра Интернета вещей для доступа к пространству имен ADR
Получите главный идентификатор управляемого удостоверения для пространства имен ADR. Этому удостоверению требуются разрешения для взаимодействия с Центром Интернета вещей.
ADR_PRINCIPAL_ID=$(az iot adr ns show --name <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP> --query identity.principalId -o tsv)Получение идентификатора ресурса Центра Интернета вещей. Этот идентификатор используется в качестве области назначения ролей.
HUB_RESOURCE_ID=$(az iot hub show --name <HUB_NAME> --resource-group <RESOURCE_GROUP> --query id -o tsv)Назначьте идентификатору ADR роль "Участник". Это предоставляет управляемому участнику удостоверений управляемого пространства имен ADR доступ к Центру Интернета вещей. Эта роль обеспечивает широкий доступ, включая управление ресурсами, но не назначение ролей.
az role assignment create --assignee $ADR_PRINCIPAL_ID --role "Contributor" --scope $HUB_RESOURCE_IDНазначьте роль "Участник реестра Центра Интернета вещей" идентификатору ADR. Это предоставляет более конкретные разрешения для управления идентификаторами устройств в IoT Hub. Это важно для ADR для регистрации устройств и управления ими в концентраторе.
az role assignment create --assignee $ADR_PRINCIPAL_ID --role "IoT Hub Registry Contributor" --scope $HUB_RESOURCE_ID
Создайте экземпляр службы настройки устройств с интеграцией ADR
Создайте новый экземпляр 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Убедитесь, что DPS имеет верное удостоверение и правильно настроенные параметры ADR.
az iot dps show --name <DPS_NAME> --resource-group <RESOURCE_GROUP> --query identity --output json
Свяжите Центр Интернета вещей с экземпляром службы подготовки устройств
Свяжите Центр Интернета вещей с DPS.
az iot dps linked-hub create --dps-name <DPS_NAME> --resource-group <RESOURCE_GROUP> --hub-name <HUB_NAME>Убедитесь, что Центр Интернета вещей отображается в списке связанных центров для 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, отключать устройства, создавать настраиваемые политики и удалять ресурсы, когда они больше не нужны.
Управление пространствами имен
Перечислите все пространства имен в вашей группе ресурсов.
az iot adr ns list --resource-group <RESOURCE_GROUP_NAME>Отображение сведений о определенном пространстве имен.
az iot adr ns show --name <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME>Перечислите все политики в вашем пространстве имен.
az iot adr ns policy list --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>Перечислите все учетные данные в пространстве имен.
az iot adr ns credential list --namespace <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME>
Отключение устройств
Вывод списка всех устройств в Центре Интернета вещей.
az iot hub device-identity list --hub-name <HUB_NAME> --resource-group <RESOURCE_GROUP_NAME>Отключите устройство, обновив его состояние до
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Запустите устройство еще раз и убедитесь, что не удается подключиться к Центру Интернета вещей.
Создание настраиваемой политики
Создайте настраиваемую политику с помощью 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. Скрипт выполняет все необходимые действия для создания необходимых ресурсов и связывания их вместе, включая:
- Создайте группу ресурсов
- Настройка необходимых привилегий приложения
- Создание управляемой идентичности, назначаемой пользователем
- Создание пространства имен ADR с управляемым удостоверением, назначаемое системой
- Создайте удостоверение (корневой ЦС) и политику (выдающий ЦС), привязанные к этому пространству имен
- Создание Центра Интернета вещей (предварительная версия) с связанным пространством имен и управляемым удостоверением
- Создайте Устройство обеспечения безопасности (DPS) со связанным IoT Hub и пространством имен.
- Синхронизация учетных данных и политик (сертификатов ЦС) с пространством имен ADR
- Создайте группу регистрации и свяжите с вашей политикой для активации выдачи сертификатов.
Это важно
В течение периода предварительной версии Центр Интернета вещей с функциями интеграции ADR и управления сертификатами, включенными поверх Центра Интернета вещей, доступны бесплатно. Услуга настройки устройств (DPS) оплачивается отдельно и не включена в предварительный доступ. Для получения сведений о ценах на DPS см. страницу Цены на Azure IoT Hub.
Подготовьте вашу среду
- Скачайте PowerShell 7 для Windows.
- Перейдите в репозиторий 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, убедитесь, что в его имени не фигурируют конфиденциальные или персональные сведения.
Интерактивный запуск скрипта
Откройте скрипт и запустите в PowerShell 7+ от имени администратора. Перейдите в папку, содержащую скрипт и выполните команду
.\iothub-adr-certs-setup-preview.ps1.При возникновении проблемы с политикой выполнения попробуйте запустить
powershell -ExecutionPolicy Bypass -File .\iothub-adr-certs-setup-preview.ps1.Следуйте пошаговым инструкциям.
- Нажмите,
Enterчтобы продолжить шаг - Нажмите
sилиS, чтобы пропустить шаг - Нажмите клавишу
Ctrl+C, чтобы прервать
- Нажмите,
Замечание
Создание пространства имен ADR, Центра Интернета вещей, DPS и других ресурсов может занять до 5 минут.
Мониторинг выполнения и проверка ресурсов
Скрипт продолжает выполнение, когда возникают предупреждения и останавливается только в том случае, если команда возвращает код выхода без нуля. Отслеживайте консоль для красных сообщений ERROR , которые указывают на проблемы, требующие внимания.
После завершения скрипта проверьте создание ресурсов, перейдя в новую группу ресурсов на портале Azure. Вы увидите, что созданы следующие ресурсы:
- Экземпляр IoT-хаба
- Экземпляр службы предоставления устройств (DPS)
- Пространство имен реестра устройств Azure (ADR)
- управляемое удостоверение с привязкой к пользователю (UAMI)
Дальнейшие шаги
На этом этапе Центр Интернета вещей с интеграцией ADR и управлением сертификатами настроен и готов к использованию. Теперь вы можете приступить к подключению ваших IoT-устройств к узлу с помощью экземпляра службы подготовки устройств (DPS) и безопасно управлять IoT-устройствами с помощью настроенных вами политик и регистраций.
Новое: управление сертификатами поддерживается для выбора пакетов SDK для устройств DPS. Теперь вы можете вводить устройства в эксплуатацию с использованием управления сертификатами X.509, поддерживаемого Microsoft, с помощью следующих примеров SDK:.