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


Управление доступом к Центр Интернета вещей с помощью идентификатора Microsoft Entra

Можно использовать Microsoft Entra ID для аутентификации запросов к сервисным API-интерфейсам Azure IoT Hub, таким как создать идентификатор устройства и вызов прямого метода. Вы также можете использовать управление доступом на основе ролей Azure (Azure RBAC) для авторизации этих же API-интерфейсов службы. Используя эти технологии вместе, вы можете предоставить разрешения на доступ к API-интерфейсам службы Центр Интернета вещей субъекту безопасности Microsoft Entra. Субъектами безопасности могут быть пользователь, группа или субъект-служба приложения.

Проверка подлинности доступа с помощью идентификатора Microsoft Entra и управления разрешениями с помощью Azure RBAC обеспечивает улучшенную безопасность и удобство использования маркеров безопасности. Чтобы свести к минимуму потенциальные проблемы безопасности, присущие маркерам безопасности, рекомендуется применять проверку подлинности Microsoft Entra каждый раз, когда это возможно.

Примечание.

Проверка подлинности с помощью идентификатора Microsoft Entra не поддерживается для API-интерфейсов устройств Центр Интернета вещей (таких как сообщения в облако и обновление сообщаемых свойств). Для проверки подлинности устройств в Центре Интернета вещей используйте симметричные ключи или X.509.

Проверка подлинности и авторизация

Проверка подлинности — это процесс подтверждения того, что вы действительно тот, за кого себя выдаёте. Аутентификация проверяет удостоверение пользователя или устройства для IoT Hub. Иногда проверка подлинности сокращается до authN.

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

Когда субъект безопасности Microsoft Entra запрашивает доступ к API службы Центр Интернета вещей, удостоверение субъекта сначала проходит проверку подлинности. Для проверки подлинности во время выполнения запрос должен содержать маркер доступа OAuth 2.0. Имя ресурса для запроса токена — https://iothubs.azure.net. Если приложение выполняется в ресурсе Azure, таком как виртуальная машина Azure, приложение функции Azure или приложение Службы приложений Azure, оно может быть представлено как управляемое удостоверение.

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

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

При использовании идентификатора Microsoft Entra и RBAC Центр Интернета вещей требует, чтобы субъект, запрашивающий API, имеет соответствующий уровень разрешений для авторизации. Чтобы предоставить принципалу разрешение, присвойте ему назначение роли.

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

Центр Интернета вещей предоставляет следующие встроенные роли Azure для авторизации доступа к API службы Центр Интернета вещей с помощью идентификатора Microsoft Entra и RBAC:

Роль Описание
Участник данных Центра Интернета вещей Обеспечивает полный доступ к операциям уровня данных IoT Hub.
Читатель данных Центра Интернета вещей Обеспечивает полный доступ на чтение свойств плоскости данных Центра Интернета вещей.
Участник реестра Центра Интернета вещей Обеспечивает полный доступ к реестру устройств Центра Интернета вещей.
Участник цифрового двойника Центра Интернета вещей Разрешает доступ на чтение и запись ко всем двойникам устройств и модулей Центра Интернета вещей.

Вы также можете определять настраиваемые роли для использования с Центром Интернета вещей, объединяя необходимые разрешения. Дополнительные сведения см. в статье Настраиваемые роли Azure.

Область ресурса

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

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

  • Центр Интернета вещей. В этой области назначение ролей применяется к Центру Интернета вещей. Области меньше отдельного Центра Интернета вещей не существует. Назначение ролей на меньших уровнях, например отдельной идентификации устройства, не поддерживается.
  • Группа ресурсов. В этой области назначение ролей применяется ко всем центрам Интернета вещей в группе ресурсов.
  • Подписка. В этой области назначение ролей применяется ко всем центрам Интернета вещей во всех группах ресурсов в подписке.
  • Группа управления. В этой области назначение ролей применяется ко всем IoT-хабам во всех группах ресурсов во всех подписках в группе управления.

Разрешения для API службы центра Интернета вещей

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

Действие RBAC Описание
Microsoft.Devices/IotHubs/devices/read Прочитайте идентификатор любого устройства или модуля.
Microsoft.Devices/IotHubs/devices/write Создание или обновление идентификатора устройства или модуля.
Microsoft.Devices/IotHubs/devices/delete Удаление удостоверения устройства или модуля.
Microsoft.Devices/IotHubs/twins/read Чтение двойника устройства или модуля.
Microsoft.Devices/IotHubs/twins/write Выполните запись двойника устройства или модуля.
Microsoft.Devices/IotHubs/jobs/read Возврат списка заданий.
Microsoft.Devices/IotHubs/jobs/write Создать или обновить любую работу.
Microsoft.Devices/IotHubs/jobs/delete Удалите любую задачу.
Microsoft.Devices/IotHubs/cloudToDeviceMessages/send/action Отправка сообщений из облака на любое устройство.
Microsoft.Devices/IotHubs/cloudToDeviceMessages/feedback/action Получение и завершение уведомлений об ответах на сообщения, отправленные из облака на устройство, а также отказ от них.
Microsoft.Devices/IotHubs/cloudToDeviceMessages/queue/purge/action Удаление всех ожидающих выполнения команд для устройства.
Microsoft.Devices/IotHubs/directMethods/invoke/action Вызов прямого метода на устройстве или модуле.
Microsoft.Devices/IotHubs/fileUpload/notifications/action Получение и завершение уведомлений о передаче файлов или отказ от них.
Microsoft.Devices/IotHubs/statistics/read Чтение статистики устройства и службы.
Microsoft.Devices/IotHubs/configurations/read Прочитайте конфигурации управления устройствами.
Microsoft.Devices/IotHubs/configurations/write Создание или обновление конфигураций управления устройствами.
Microsoft.Devices/IotHubs/configurations/delete Удаление конфигураций управления устройствами.
Microsoft.Devices/IotHubs/configurations/applyToEdgeDevice/action Применение содержимого конфигурации к пограничному устройству.
Microsoft.Devices/IotHubs/configurations/testQueries/action Проверка целевого условия и пользовательских запросов метрик для конфигурации.

Совет

Примечание.

Чтобы получить данные из IoT Hub с помощью Microsoft Entra ID, настройте маршрутизацию на пользовательскую конечную точку в Event Hubs. Для доступа к встроенной совместимой с Центром событий конечной точке используйте, как и раньше, метод строки подключения (общий ключ доступа).

Обеспечение проверки подлинности через Microsoft Entra

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

Предупреждение

Отклонив подключения с помощью политик общего доступа, все пользователи и службы, которые подключаются с помощью этого метода, немедленно теряют доступ. В частности, так как служба подготовки устройств (DPS) поддерживает связывание центров Интернета вещей только с помощью политик общего доступа, все потоки подготовки устройств сталкиваются с ошибкой "неавторизованный". Действуйте осторожно и планируйте замену текущего доступа на доступ на основе ролей Microsoft Entra.

Не продолжайте, если вы используете службу подготовки устройств.

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

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

  3. Выберите политики общего доступа в разделе параметров безопасности меню навигации .

  4. В разделе "Подключение" с помощью политик общего доступа выберите " Запретить" и просмотрите предупреждение.

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

  5. Выберите Сохранить.

Теперь доступ к API-интерфейсам службы Центр Интернета вещей можно получить только с помощью идентификатора Microsoft Entra и RBAC.

Доступ к Microsoft Entra ID из портала Azure

Вы можете предоставить доступ к IoT Hub из портала Azure с помощью политик общего доступа или разрешений Microsoft Entra.

При попытке доступа к Центру Интернета Вещей IoT Hub с портала Azure сначала проверяется, назначена ли вам роль Azure с Microsoft.Devices/iotHubs/listkeys/action. Если у вас есть, портал Azure использует ключи из политик общего доступа для доступа к IoT Hub. В противном случае портал Azure пытается получить доступ к данным с помощью вашей учетной записи Microsoft Entra.

Чтобы, используя учетную запись Microsoft Entra, получить доступ к Центру Интернета вещей из портала Azure, требуются разрешения на доступ к ресурсам данных Центра Интернета вещей (например, устройствам и двойникам). Также требуются разрешения на переход к ресурсу Центра Интернета вещей в портал Azure. Встроенные роли, предоставляемые Центром Интернета вещей, дают доступ к таким ресурсам, как устройства и двойник, но не дают доступ к ресурсу Центра Интернета вещей. Таким образом, доступ к порталу также требует назначения роли Azure Resource Manager, например роли Читатель. Роль читателя является хорошим выбором, так как это самая ограниченная роль, которая позволяет перемещаться по порталу. Он не включает разрешение Microsoft.Devices/iotHubs/listkeys/action (предоставляющее доступ ко всем ресурсам данных Центра Интернета вещей через политики общего доступа).

Чтобы гарантировать отсутствие у учетной записи доступа за пределами области действия назначенных разрешений, не включайте разрешение Microsoft.Devices/iotHubs/listkeys/action при создании настраиваемой роли. Например, чтобы создать настраиваемую роль, которая может считывать удостоверения устройств, но не может создавать или удалять устройства, создайте настраиваемую роль, у которой:

  • имеется действие с данными Microsoft.Devices/IotHubs/devices/read;
  • отсутствует действие с данными Microsoft.Devices/IotHubs/devices/write;
  • отсутствует действие с данными Microsoft.Devices/IotHubs/devices/delete;
  • отсутствует действие Microsoft.Devices/iotHubs/listkeys/action.

Затем убедитесь, что у учетной записи нет других ролей с разрешением Microsoft.Devices/iotHubs/listkeys/action, таких как Владелец или Участник. Чтобы разрешить учетной записи доступ к ресурсам и перемещение по порталу, назначьте ей роль Читатель.

Доступ к идентификатору Microsoft Entra из Azure CLI

Большинство команд для IoT Hub поддерживают аутентификацию Microsoft Entra. Тип проверки подлинности, используемый для выполнения команд, можно контролировать с помощью параметра --auth-type, который принимает значения key или login. Значение key является значением по умолчанию.

  • Если параметр --auth-type имеет значение key, CLI так же автоматически обнаруживает применимую политику при взаимодействии с Центром Интернета вещей.

  • Если для параметра --auth-type задано значение login, то в ходе этой операции используется маркер доступа от субъекта, выполнившего вход через Azure CLI.

Дополнительные сведения см. на странице выпуска расширения Azure для Интернета вещей Azure CLI.

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

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