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


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

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

The device ID or module ID stored in the identity registry is case-sensitive.

Реестр удостоверений — это коллекция ресурсов удостоверений с поддержкой REST. When you add an entry in the identity registry, IoT Hub creates a set of per-device resources such as the queue that contains in-flight cloud-to-device messages.

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

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

операции с реестром идентификаций.

Реестр удостоверений IoT Хаба предоставляет следующие операции:

  • Создать идентичность
  • Обновить идентификацию
  • Извлечение идентичности по идентификатору
  • Delete identity
  • List up to 1,000 identities
  • Экспорт идентификаторов в хранилище BLOB-объектов Azure
  • Import identities from Azure blob storage

All these operations can use optimistic concurrency, as specified in RFC 7232.

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

Внимание

Реестр удостоверений следует использовать только для управления устройствами и операций настройки. High throughput operations at run time shouldn't depend on performing operations in the identity registry. For example, checking the connection state of a device before sending a command isn't a supported pattern. Make sure to check the throttling rates for the identity registry.

Примечание.

Идентификатор устройства или модуля может стать доступным для получения через несколько секунд после создания. If failures occur, you can retry the get operation of device or module identities.

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

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

  • During a provisioning orchestration process. Дополнительные сведения см. в разделе Подготовка устройств.

  • If you think a device is compromised or unauthorized for any reason.

    Внимание

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

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

For more information, see the Disable or delete a device section of Create and manage device identities.

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

Единственный способ извлечь все идентификации в реестре идентификаций IoT-центра — использовать функцию экспорта.

Используйте асинхронные операции на конечной точке поставщика ресурсов IoT Hub для массового импорта или экспорта идентификаций устройств из реестра идентификаций IoT Hub. Imports and exports are long-running jobs that use a customer-supplied blob container.

For more information about the import and export APIs, see IoT Hub Resource. To learn more about running import and export jobs, see Import and export IoT Hub device identities in bulk.

Device identities can also be exported and imported from an IoT hub by using the Service API through either the REST API or one of the IoT Hub service SDKs.

Device provisioning

Данные устройства, которые хранятся в заданном решении IoT, зависят от конкретных требований этого решения. But, as a minimum, a solution must store device identities and authentication keys. Реестр удостоверений Центра Интернета вещей может хранить значения для каждого устройства, например, идентификаторов, ключей проверки подлинности и кодов состояния. Решение может использовать другие службы Azure, такие как хранилище таблиц, хранилище BLOB-объектов или Azure Cosmos DB для хранения других данных устройства.

Подготовка устройств — это процесс добавления исходных данных устройства в хранилища в решении. Чтобы позволить новому устройству подключиться к вашей концентраторной сети, добавьте идентификатор устройства и ключи в реестр идентификации IoT Hub. As part of the provisioning process, you might need to initialize device-specific data in other solution stores. You can also use the Azure IoT Hub Device Provisioning Service to enable zero-touch, just-in-time provisioning to one or more IoT hubs. For more information, see Azure IoT Hub Device Provisioning Service Documentation.

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

IoT Hub может уведомить ваше решение IoT о создании или удалении идентификатора устройства, отправляя оповещения о жизненных циклах. Для этого решение Интернета вещей должно создать маршрут и задать источник данных, равный DeviceLifecycleEvents. By default, no lifecycle notifications are sent, that is, no such routes preexist. When you create a route with data source equal to DeviceLifecycleEvents, lifecycle events are sent for both device identities and module identities. The message contents differ depending on whether the events are generated for module identities or device identities. For more information about the properties and body returned in the notification message, see Azure IoT Hub non-telemetry event schemas.

Notifications for module identity creation are different for IoT Edge modules than for other modules. For IoT Edge modules, the creation notification is only sent if the corresponding IoT Edge device is running. Для всех остальных модулей уведомления о жизненном цикле отправляются при каждом обновлении удостоверения модуля на стороне Центра Интернета вещей.

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

Идентификаторы устройств представлены в виде JSON-документов со следующими свойствами.

Property Options Описание
идентификатор устройства required, read-only on updates A case-sensitive string (up to 128 characters long) of ASCII 7-bit alphanumeric characters plus certain special characters: - . % _ * ? ! ( ) , : = @ $ '. The special characters + # aren't supported.
generationId Обязательно, только для чтения An IoT Hub-generated, case-sensitive string up to 128 characters long. This value is used to distinguish devices with the same deviceId, when they're deleted and re-created.
etag Обязательно, только для чтения A string representing a weak ETag for the device identity, as per RFC 7232.
проверка подлинности необязательно Составной объект, содержащий сведения об аутентификации и материалы безопасности. For more information, see AuthenticationMechanism in the REST API documentation.
возможности необязательно Набор возможностей устройства. Например, является ли устройство периферийным или нет. For more information, see DeviceCapabilities in the REST API documentation.
deviceScope необязательно Область действия устройства. In edge devices, auto generated and immutable. Deprecated in nonedge devices. Однако на дочерних (конечных) устройствах этому свойству следует присвоить такое же значение, что и у свойства parentScopes (свойство deviceScope родительского устройства) для обеспечения обратной совместимости с предыдущими версиями API. For more information, see the Parent and child relationships section of How an IoT Edge device can be used as a gateway.
parentScopes необязательно Область действия устройства, которое является прямым родителем для дочернего устройства (значение свойства deviceScope родительского устройства). In edge devices, the value is empty if the device has no parent. In nonedge devices, the property isn't present if the device has no parent. For more information, see the Parent and child relationships section of How an IoT Edge device can be used as a gateway.
status обязательно Индикатор доступа. Может иметь значение Enabled или Disabled. Если Enabled, устройству разрешено подключаться. If Disabled, the device can't access any device-facing endpoint.
причина статуса необязательно A 128 character-long string that stores the reason for the device identity status. Разрешены все символы UTF-8.
времяОбновленияСтатуса read-only Временной индикатор, показывающий дату и время последнего обновления статуса.
состояние подключения read-only Поле, указывающее состояние подключения: либо ConnectedDisconnected. Это поле отображает состояние подключения устройства для Центра Интернета вещей. Важно. Это поле следует использовать только для целей разработки и отладки. Состояние подключения обновляется только для устройств, использующих протокол MQTT или AMQP. Кроме того, он основан на пингах на уровне протокола (пинги MQTT или пинги AMQP), и максимальная задержка составляет всего 5 минут. For these reasons, there can be false positives, such as disconnected devices reported as connected.
connectionStateUpdatedTime read-only Временной индикатор, показывающий дату и время последнего обновления состояния подключения.
lastActivityTime read-only Временной индикатор, показывающий дату и время последнего подключения устройства, получения сообщения на устройство и отправки сообщения с него. This property is eventually consistent, but could be delayed up to 5 to 10 minutes. По этой причине его не следует использовать в рабочих сценариях.

Примечание.

Состояние подключения может отражать только восприятие состояния подключения с точки зрения Центра Интернета вещей. Updates to this state might be delayed, depending on network conditions and configurations.

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

Идентификаторы модулей представлены в виде JSON-документов со следующими свойствами:

Property Options Описание
идентификатор устройства required, read-only on updates A case-sensitive string (up to 128 characters long) of ASCII 7-bit alphanumeric characters plus certain special characters: - . % _ * ? ! ( ) , : = @ $ '.
moduleId required, read-only on updates A case-sensitive string (up to 128 characters long) of ASCII 7-bit alphanumeric characters plus certain special characters: - . % _ * ? ! ( ) , : = @ $ '. The special characters + # aren't supported.
generationId Обязательно, только для чтения An IoT hub-generated, case-sensitive string up to 128 characters long. This value is used to distinguish devices with the same deviceId, when they're deleted and re-created.
etag Обязательно, только для чтения A string representing a weak ETag for the device identity, as per RFC 7232.
проверка подлинности необязательно Составной объект, содержащий сведения об аутентификации и материалы безопасности. For more information, see AuthenticationMechanism in the REST API documentation.
managedBy необязательно Определяет, кто управляет этим модулем. For instance, this value is IoT Edge if the edge runtime owns this module.
cloudToDeviceMessageCount read-only Количество сообщений, передаваемых из облака в модуль, которые в данный момент находятся в очереди для отправки в модуль.
состояние подключения read-only Поле, указывающее состояние подключения: либо ConnectedDisconnected. Это поле отображает состояние подключения устройства для Центра Интернета вещей. Важно. Это поле следует использовать только для целей разработки и отладки. Состояние подключения обновляется только для устройств, использующих протокол MQTT или AMQP. Кроме того, он основан на пингах на уровне протокола (пинги MQTT или пинги AMQP), и максимальная задержка составляет всего 5 минут. For these reasons, there can be false positives, such as disconnected devices reported as connected.
connectionStateUpdatedTime read-only Временной индикатор, показывающий дату и время последнего обновления состояния подключения.
lastActivityTime read-only Временной индикатор, показывающий дату и время последнего подключения устройства, получения сообщения на устройство и отправки сообщения с него.

To explore using the IoT Hub Device Provisioning Service to enable zero-touch, just-in-time provisioning, see: