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

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

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

Примечание.

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

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

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

Авторизация — это процесс подтверждения разрешений для прошедшего проверку подлинности пользователя или устройства на Центр Интернета вещей. Он указывает, какие ресурсы и команды можно получить к доступу, а также какие возможности можно сделать с этими ресурсами и командами. Авторизация иногда сокращенно обозначается 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:

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

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

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

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

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

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

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

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

Действие RBAC Description
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 Проверка состояния целевого объекта и пользовательские запросы метрик для конфигурации.

Совет

Примечание.

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

Принудительное применение проверки подлинности Microsoft Entra

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

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

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

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

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

  2. Найдите нужный Центр Интернета вещей на портале Azure.

  3. На панели слева выберите Политики общего доступа.

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

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

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

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

Доступ к идентификатору Записи Майкрософт из портал Azure

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

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

Чтобы получить доступ к Центр Интернета вещей из портал Azure с помощью учетной записи Microsoft Entra, требуется разрешение на доступ к ресурсам данных Центр Интернета вещей (например, устройствам и двойникам). Также требуются разрешения на переход к ресурсу Центра Интернета вещей в портал 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

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

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

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

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

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

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