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


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

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

Идентификатор устройства или идентификатор модуля, хранящийся в реестре удостоверений, учитывает регистр.

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

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

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

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

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

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

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

Реестр удостоверений Центр Интернета вещей не содержит метаданных приложения.

Внимание

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

Примечание.

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

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

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

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

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

    Внимание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Свойство Параметры Description
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 в качестве шлюза: взаимосвязи родительских и дочерних устройств.
статус обязательно Индикатор доступа. Может иметь значение Enabled или Disabled. Если Enabledустройство разрешено подключаться. Если Disabledустройство не может получить доступ к конечной точке с устройством.
statusReason необязательно Строка длиной 128 знаков, указывающая причину, по которой выбран тот или иной статус удостоверения устройства. Разрешены все символы UTF-8.
statusUpdateTime только для чтения Временной индикатор, показывающий дату и время последнего обновления статуса.
connectionState только для чтения Поле, указывающее состояние подключения: либо Connected Disconnected. Это поле отображает состояние подключения устройства для Центра Интернета вещей. Важно. Это поле следует использовать только для целей разработки и отладки. Состояние подключения обновляется только для устройств, использующих протокол MQTT или AMQP. Кроме того, он основан на подключениях на уровне протокола (pings MQTT или AMQP pings), и он может иметь максимальную задержку всего 5 минут. По этим причинам могут быть ложные срабатывания, такие как отключенные устройства, сообщаемые как подключенные.
connectionStateUpdatedTime только для чтения Временной индикатор, показывающий дату и время последнего обновления состояния подключения.
lastActivityTime только для чтения Временной индикатор, показывающий дату и время последнего подключения устройства, получения сообщения на устройство и отправки сообщения с него. Это свойство является согласованным в конечном счете, но иногда для достижения согласованности нужно 5–10 минут. По этой причине его не следует использовать в рабочих сценариях.

Примечание.

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

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

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

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

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