Общие сведения о реестре удостоверений в Центре Интернета вещей

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

Удостоверения устройств и модулей, хранящиеся в реестре удостоверений, используются с учетом регистра.

На высоком уровне реестр удостоверений является коллекцией с поддержкой REST, состоящей из ресурсов удостоверений устройств и (или) модулей. Добавляя записи в реестр удостоверений, Центр Интернета вещей создает уникальные ресурсы устройства (например, очередь с сообщениями, отправленными из облака на устройство).

Используйте реестр удостоверений для выполнения следующих действий:

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

операции с реестром удостоверений.

Реестр удостоверений Центра Интернета вещей поддерживает такие операции:

  • создание удостоверения устройства или модуля;
  • обновление удостоверения устройства или модуля;
  • получение удостоверения устройства или модуля по его идентификатору;
  • удаление удостоверения устройства или модуля;
  • отображение списка, содержащего до 1000 удостоверений;
  • экспорт удостоверений устройств в хранилище BLOB-объектов Azure;
  • импорт удостоверений устройств из хранилища BLOB-объектов Azure.

Все эти операции могут использовать оптимистичный параллелизм (согласно RFC7232).

Важно!

Единственный способ получить все удостоверения, которые содержит реестр удостоверений Центра Интернета вещей, —использовать функцию Экспорт.

Реестр удостоверений Центра Интернета вещей:

  • Не содержит метаданных приложения.

Важно!

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

Примечание

Удостоверение устройства или модуля становится доступно для получения после создания в течение нескольких секунд. В случае сбоя повторите операцию get для удостоверения устройства или модуля.

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

Чтобы отключить устройства, обновите в реестре свойство status удостоверения. Обычно это свойство используется в двух сценариях.

  • В процессе оркестрации подготовки. Дополнительные сведения см. в разделе Подготовка устройств.

  • Если вы считаете, что устройство скомпрометировано или по какой-либо причине не авторизовано.

    Важно!

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

Эта функция недоступна для модулей.

Дополнительные сведения см. в статье Отключение или удаление устройства в Центре Интернета вещей.

Импорт и экспорт удостоверений устройств

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

Используя асинхронные операции в конечной точке поставщика ресурсов Центра Интернета вещей, вы можете выполнить массовый импорт удостоверений устройств в реестр удостоверений Центра Интернета вещей. Импорт —это долгосрочное задание, использующее данные в предоставленном клиентом контейнере больших двоичных объектов, необходимых для записи идентификационных данных об устройстве в реестр удостоверений.

Дополнительные сведения об интерфейсах API импорта и экспорта см. в статье о ресурсах Центра Интернета вещей. Дополнительные сведения о выполнении заданий импорта и экспорта см. в статье Управление удостоверениями устройств Центра Интернета вещей в пакетном режиме.

Удостоверения устройств также можно экспортировать и импортировать из Центра Интернета вещей с помощью API службы через REST API или один из пакетов SDK службы Центр Интернета вещей.

Подготовка устройств

Данные устройства, которые хранятся в заданном решении IoT, зависят от конкретных требований этого решения. Но в решении как минимум должны сохраняться удостоверения устройства и ключи проверки подлинности. Центр Интернета вещей Azure имеет реестр удостоверений, который может хранить значения для каждого устройства, например идентификаторы, ключи проверки подлинности и коды состояния. Решение может использовать другие службы Azure, такие как хранилище таблиц, хранилище BLOB-объектов или Azure Cosmos DB, для хранения других данных устройства.

Подготовка устройств —это процесс добавления исходных данных устройства в хранилища в решении. Чтобы предоставить новому устройству доступ к центру, необходимо добавить идентификатор и ключи устройства в реестр удостоверений Центра Интернета вещей. В рамках процесса подготовки может потребоваться инициализировать данные устройства в других хранилищах решения. Вы можете использовать службу подготовки устройств для Центра Интернета вещей, чтобы настроить автоматическую подготовку JIT для одного или нескольких центров Интернета вещей без вмешательства оператора. Дополнительные сведения см. в документации по подготовке службы.

Уведомления жизненного цикла устройств и модулей

Центр Интернета вещей может уведомлять решение Интернета вещей во время создания или удаления удостоверения устройства путем отправки уведомлений жизненного цикла. Для этого решению Интернета вещей необходимо создать маршрут и задать источник данных DeviceLifecycleEvents. По умолчанию уведомления жизненного цикла не отправляются, то есть такие маршруты не существуют. При создании маршрута с источником данных, равным DeviceLifecycleEvents, события жизненного цикла отправляются как для удостоверений устройств, так и для удостоверений модулей; Однако содержимое сообщения зависит от того, создаются ли события для удостоверений модулей или устройств. Следует отметить, что для модулей IoT Edge поток создания удостоверения модуля отличается от соответствующего процесса для других модулей. В результате модули IoT Edge отправляются только в том случае, если соответствующее устройство IoT Edge для обновленного удостоверения модуля IoT Edge работает. Для всех остальных модулей уведомления о жизненном цикле отправляются при каждом обновлении удостоверения модуля на стороне Центра Интернета вещей. Дополнительные сведения о свойствах и тексте, возвращаемых в сообщении уведомления, см. в Схемах нетелеметрических событий.

Свойства удостоверений устройств

Удостоверения устройств отображаются как JSON-документы с нижеуказанными свойствами.

Свойство Параметры Описание
deviceId Обязательно, при обновлениях доступно только для чтения Строка с учетом регистра (длиной до 128 знаков), состоящая из букв и цифр в 7-битовом формате ASCII, а также определенные специальные символы: - . % _ * ? ! ( ) , : = @ $ '. Специальные символы: + # не поддерживаются.
generationId Обязательно, только для чтения Созданная Центром Интернета вещей строка с учетом регистра (длиной до 128 знаков). Это значение позволяет различать устройства с одинаковым свойством deviceId, которые были удалены, а затем созданы повторно.
etag Обязательно, только для чтения Строка, выполняющая функцию ненадежного заголовка ETag для удостоверения устройства (согласно RFC7232).
проверка подлинности необязательно Составной объект, содержащий сведения об аутентификации и материалы безопасности. Дополнительные сведения см. в разделе Механизм проверки подлинности документации по REST API.
capabilities необязательно Набор возможностей устройства. Например, является ли устройство пограничным или нет. Дополнительные сведения см. в разделе Возможности устройства документации по REST API.
deviceScope необязательно Область действия устройства. В пограничных устройствах создается автоматически и не изменяется. Не рекомендуется для устройств, не являющихся пограничными. Однако на дочерних (конечных) устройствах этому свойству следует присвоить такое же значение, что и у свойства parentScopes (свойство deviceScope родительского устройства) для обеспечения обратной совместимости с предыдущими версиями API. Дополнительные сведения см. в разделе IoT Edge в качестве шлюза: взаимосвязи родительских и дочерних устройств.
parentScopes необязательно Область действия устройства, являющегося прямым родительским по отношению к дочернему устройству (значение свойства deviceScope родительского устройства). На пограничных устройствах значение пустое, если у устройства нет родителя. На неграничных устройствах свойство отсутствует, если устройство не имеет родительского элемента. Дополнительные сведения см. в разделе IoT Edge в качестве шлюза: взаимосвязи родительских и дочерних устройств.
status обязательно Индикатор доступа. Доступно два значения: Включено или Отключено. Если указано значение Включено, устройство может подключаться. Если параметр отключен, это устройство не сможет получить доступ к любой конечной точке, обращенной к устройству.
statusReason необязательно Строка длиной 128 знаков, указывающая причину, по которой выбран тот или иной статус удостоверения устройства. Разрешены все символы UTF-8.
statusUpdateTime Только для чтения Временной индикатор, показывающий дату и время последнего обновления статуса.
connectionState Только для чтения Поле, отображающее состояние подключения: Подключено или Отключено. Это поле отображает состояние подключения устройства для Центра Интернета вещей. Важно!Используйте это поле только в целях разработки и отладки. Состояние подключения обновляется только для устройств, использующих протокол MQTT или AMQP. Кроме того, он основан на проверки связи на уровне протокола (проверки связи MQTT или AMQP ping) и может иметь максимальную задержку всего 5 минут. По этим причинам могут возникать ложные срабатывания, например отключенные устройства, сообщаемые как подключенные.
connectionStateUpdatedTime Только для чтения Временной индикатор, показывающий дату и время последнего обновления состояния подключения.
lastActivityTime Только для чтения Временной индикатор, показывающий дату и время последнего подключения устройства, получения сообщения на устройство и отправки сообщения с него. Это свойство является согласованным в конечном счете, но иногда для достижения согласованности нужно 5–10 минут. По этой причине его не следует использовать в рабочих сценариях.

Примечание

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

Примечание

В настоящее время пакеты SDK для устройств не поддерживают использование символов + и # в deviceId.

Свойства удостоверений модулей

Удостоверения модулей отображаются как JSON-документы с указанными ниже свойствами:

Свойство Параметры Описание
deviceId Обязательно, при обновлениях доступно только для чтения Строка с учетом регистра (длиной до 128 знаков), состоящая из букв и цифр в 7-битовом формате ASCII, а также определенные специальные символы: - . + % _ # * ? ! ( ) , : = @ $ '.
moduleId Обязательно, при обновлениях доступно только для чтения Строка с учетом регистра (длиной до 128 знаков), состоящая из букв и цифр в 7-битовом формате ASCII, а также определенные специальные символы: - . + % _ # * ? ! ( ) , : = @ $ '.
generationId Обязательно, только для чтения Созданная Центром Интернета вещей строка с учетом регистра (длиной до 128 знаков). Это значение используется для различения устройств с одинаковым идентификатором deviceId при их удалении и повторном создании.
etag Обязательно, только для чтения Строка, выполняющая функцию ненадежного заголовка ETag для удостоверения устройства (согласно RFC7232).
проверка подлинности необязательно Составной объект, содержащий сведения об аутентификации и материалы безопасности. Дополнительные сведения см. в разделе Механизм проверки подлинности документации по REST API.
managedBy необязательно Определяет, кто управляет этим модулем. Например, это значение равно "IoT Edge", если этим модулем владеет среда выполнения edge.
cloudToDeviceMessageCount Только для чтения Количество сообщений, передаваемых из облака в модуль, которые в данный момент находятся в очереди для отправки в модуль.
connectionState Только для чтения Поле, отображающее состояние подключения: Подключено или Отключено. Это поле отображает состояние подключения устройства для Центра Интернета вещей. Важно!Используйте это поле только в целях разработки и отладки. Состояние подключения обновляется только для устройств, использующих протокол MQTT или AMQP. Кроме того, он основан на проверки связи на уровне протокола (проверки связи MQTT или AMQP ping) и может иметь максимальную задержку всего 5 минут. По этим причинам могут возникать ложные срабатывания, например отключенные устройства, сообщаемые как подключенные.
connectionStateUpdatedTime Только для чтения Временной индикатор, показывающий дату и время последнего обновления состояния подключения.
lastActivityTime Только для чтения Временной индикатор, показывающий дату и время последнего подключения устройства, получения сообщения на устройство и отправки сообщения с него.

Примечание

В настоящее время пакеты SDK для устройств не поддерживают использование символов + и # в deviceId и moduleId.

Дополнительные справочные материалы

Другие справочные статьи в руководстве разработчика по Центр Интернета вещей:

Дальнейшие действия

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

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