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

Функция управляемых удостоверений безопасным образом предоставляет службам Azure автоматически управляемые удостоверения в Microsoft Entra ID. За счет этого разработчикам не требуется предоставлять удостоверение для управления учетными данными. Существует два типа управляемых удостоверений: назначаемые системой и назначаемые пользователем. Центр Интернета вещей поддерживает оба типа.

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

Необходимые компоненты

Управляемое удостоверение, назначаемое системой

Управляемое удостоверение, назначаемое системой, можно включить или отключить в портал Azure

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

  2. Выберите удостоверение из раздела "Параметры безопасности" в меню навигации .

  3. Выберите вкладку Назначаемое системой.

  4. Задайте для управляемого удостоверения, назначаемого системой, значение "Включено" или "Отключить", а затем нажмите кнопку "Сохранить".

    Примечание.

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

    Снимок экрана: включение управляемого удостоверения, назначаемого системой, для Центра Интернета вещей.

Управляемое удостоверение, назначаемое пользователем

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

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

  2. Откройте центр Интернета вещей и перейдите в раздел Удостоверения на портале Центра Интернета вещей.

  3. На вкладке Назначено пользователем нажмите кнопку Привязать управляемое удостоверение, назначаемое пользователем. Выберите назначаемое пользователем управляемое удостоверение, которое необходимо добавить в центр, и нажмите кнопку Выбрать.

  4. Вы можете удалить назначаемое пользователем удостоверение из центра Интернета вещей. Выберите назначаемое пользователем удостоверение, которое необходимо удалить, и нажмите кнопку Удалить. Обратите внимание, что удостоверение удаляется только из центра Интернета вещей, но не в качестве ресурса. Чтобы удалить назначаемое пользователем удостоверение в качестве ресурса, следуйте инструкциям в разделе "Управление управляемыми удостоверениями, назначаемыми пользователем".

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

Исходящие подключения из Центра Интернета вещей к другим ресурсам Azure

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

Примечание.

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

Настройка маршрутизации сообщений с помощью управляемых удостоверений

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

  1. Перейдите в центр событий на портале Azure, чтобы назначить управляемому удостоверению необходимый доступ.

  2. Выберите Управление доступом (IAM).

  3. Выберите "Добавить" > "Добавить назначение ролей".

    Снимок экрана: страница

  4. На вкладке Роль выберите Отправитель данных Центров событий Azure.

    Примечание.

    В качестве роли для учетной записи хранения выберите Участник для данных BLOB-объектов хранилища (не участник или участник учетной записи хранения). Для служебной шины выберите Отправитель данных служебной шины Azure.

  5. На вкладке "Участники" выберите "Управляемое удостоверение" и нажмите "Выбрать участников".

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

  7. Для управляемых удостоверений, назначаемых системой, выберите свою подписку, затем выберите Все управляемые удостоверения, назначаемые системой, после чего выберите имя ресурса Центра Интернета вещей.

  8. Чтобы назначить роль, на вкладке Проверка и назначение выберите Проверка и назначение.

    Дополнительные сведения о назначениях ролей см. в статье "Назначение ролей Azure" с помощью портал Azure.

  9. Чтобы ограничить возможность подключения к пользовательской конечной точке через виртуальную сеть, необходимо активировать доверенное собственное исключение Майкрософт, которое предоставит центру Интернета вещей доступ к определенной конечной точке. Например, если вы добавляете пользовательскую конечную точку концентратора событий, откройте вкладку Брандмауэры и виртуальные сети в центре событий и включите параметр Разрешить доступ из выбранных сетей. В разделе Исключения установите флажок Разрешить доверенным службам Майкрософт доступ к этим концентраторам событий. Нажмите кнопку Сохранить. Это также относится к учетной записи хранения и служебной шине. Дополнительные сведения о поддержке виртуальных сетей в Центре Интернета вещей приведены здесь.

    Примечание.

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

  10. Затем перейдите в свой центр Интернета вещей. В центре перейдите к маршрутизации сообщений, а затем нажмите кнопку "Добавить".

  11. На вкладке "Конечная точка" создайте конечную точку для концентратора событий, указав следующие сведения:

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

    Снимок экрана: конечная точка концентратора событий с назначенной пользователем проверкой подлинности.

  12. Нажмите кнопку "Создать+ далее". Вы можете продолжить работу мастера, чтобы создать маршрут, указывающий на эту конечную точку, или закрыть мастер.

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

  1. В центре Интернета вещей выберите маршрутизацию сообщений в области навигации слева и пользовательские конечные точки.

  2. Установите флажок для пользовательской конечной точки, которую вы хотите изменить, и выберите "Изменить тип проверки подлинности".

  3. Выберите новый тип проверки подлинности для этой конечной точки, а затем нажмите кнопку "Сохранить".

Настройка отправки файлов с помощью управляемых удостоверений

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

  1. Войдите в свою учетную запись хранения на портале Azure.

  2. Выберите Управление доступом (IAM).

  3. Выберите "Добавить" > "Добавить назначение ролей".

    Снимок экрана: страница

  4. На вкладке Роль выберите Участник для данных BLOB-объектов хранилища. (Не выбирайте Участник или Участник учетной записи хранения.)

  5. На вкладке "Участники" выберите "Управляемое удостоверение" и нажмите "Выбрать участников".

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

  7. Для управляемых удостоверений, назначаемых системой, выберите свою подписку, затем выберите Все управляемые удостоверения, назначаемые системой, после чего выберите имя ресурса Центра Интернета вещей.

  8. Чтобы назначить роль, на вкладке Проверка и назначение выберите Проверка и назначение.

    Дополнительные сведения о назначениях ролей см. в статье "Назначение ролей Azure" с помощью портал Azure.

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

    Примечание.

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

  9. На странице ресурсов центра Интернета вещей откройте вкладку Отправка файлов.

  10. На появившейся странице выберите контейнер, который планируете использовать в хранилище BLOB-объектов, и настройте параметры уведомлений о файлах, срок жизни SAS, срок жизни по умолчанию и максимальное число доставок. Выберите тип проверки подлинности и нажмите кнопку Сохранить. Если на этом этапе возникает ошибка, временно настройте учетную запись хранения, разрешающую доступ из всех сетей, а затем повторите попытку. Вы можете настроить брандмауэр в учетной записи хранения после завершения настройки передачи файлов.

    Снимок экрана, показывающий загрузку файла с помощью MSI.

    Примечание.

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

Настройка массового импорта и экспорта устройств с помощью управляемых удостоверений

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

  1. Войдите в свою учетную запись хранения на портале Azure.

  2. Выберите Управление доступом (IAM).

  3. Выберите "Добавить" > "Добавить назначение ролей".

    Снимок экрана: страница

  4. На вкладке Роль выберите Участник для данных BLOB-объектов хранилища. (Не выбирайте Участник или Участник учетной записи хранения.)

  5. На вкладке "Участники" выберите "Управляемое удостоверение" и нажмите "Выбрать участников".

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

  7. Для управляемых удостоверений, назначаемых системой, выберите свою подписку, затем выберите Все управляемые удостоверения, назначаемые системой, после чего выберите имя ресурса Центра Интернета вещей.

  8. Чтобы назначить роль, на вкладке Проверка и назначение выберите Проверка и назначение.

    Дополнительные сведения о назначении ролей см. в статье Назначение ролей Azure с помощью портала Azure

Использование REST API или пакета SDK для заданий импорта и экспорта

Теперь вы можете использовать REST API службы Интернета вещей Azure для создания заданий импорта и экспорта. В тексте запроса необходимо указать следующие свойства:

  • storageAuthenticationType: задайте значение identityBased.
  • inputBlobContainerUri: устанавливайте это свойство только в заданиях импорта.
  • outputBlobContainerUri: устанавливайте это свойство в заданиях как импорта, так и экспорта.
  • identity: задайте значение, которое будет использоваться управляемым удостоверением.

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

Фрагмент кода на C#

    // Create an export job
 
    JobProperties jobProperties = JobProperties.CreateForExportJob(
        outputBlobContainerUri: blobContainerUri,
        excludeKeysInExport: false,
        storageAuthenticationType: StorageAuthenticationType.IdentityBased,
        identity: new ManagedIdentity
        {
            userAssignedIdentity = userDefinedManagedIdentityResourceId
        });
    // Create an import job
    
    JobProperties jobProperties = JobProperties.CreateForImportJob(
        inputBlobContainerUri: blobContainerUri,
        outputBlobContainerUri: blobContainerUri,
        storageAuthenticationType: StorageAuthenticationType.IdentityBased,
        identity: new ManagedIdentity
        {
            userAssignedIdentity = userDefinedManagedIdentityResourceId
        });

Фрагмент кода на Python

# see note below
iothub_job_manager = IoTHubJobManager("<IoT Hub connection information>")

# Create an import job
result = iothub_job_manager.create_import_export_job(JobProperties(
    type="import",
    input_blob_container_uri="<input container URI>",
    output_blob_container_uri="<output container URI>",
    storage_authentication_type="identityBased",
    identity=ManagedIdentity(
        user_assigned_identity="<resource ID of user assigned managed identity>"
    )
))

# Create an export job
result = iothub_job_manager.create_import_export_job(JobProperties(
    type="export",
    output_blob_container_uri="<output container URI>",
    storage_authentication_type="identityBased",
    exclude_keys_in_export=True,
    identity=ManagedIdentity(
        user_assigned_identity="<resource ID of user assigned managed identity>"
    ) 
))

Примечание.

  • Если для storageAuthenticationType задано значение identityBased, а свойство userAssignedIdentity не равно null, задания будут использовать указанное управляемое удостоверение, назначаемое пользователем.
  • Если в центре Интернета вещей не настроено назначаемое пользователем управляемое удостоверение, заданное параметром userAssignedIdentity, задание завершится ошибкой.
  • Если для storageAuthenticationType задано значение identityBased, а свойство userAssignedIdentity равно null, задания будут использовать управляемое удостоверение, назначаемое системой.
  • Если в центре Интернета вещей не настроено назначаемое пользователем управляемое удостоверение, задание завершится ошибкой.
  • Если для storageAuthenticationType задано значение identityBased и в концентраторе не настроены ни назначаемые пользователем, ни назначаемые системой управляемые удостоверения, задание завершится ошибкой.

Примеры пакетов SDK

Следующие шаги

Используйте приведенные ниже ссылки для получения дополнительных сведений о функциях Центра Интернета вещей: