Управление доступом к службе подготовки устройств Центра Интернета вещей Azure (DPS) с помощью Microsoft Entra ID (предварительная версия)

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

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

Примечание.

Аутентификация с помощью Microsoft Entra ID не поддерживается для API устройств Службы подготовки устройств Центр Интернета вещей Azure (DPS) (например, регистрации устройства или поиска состояния регистрации устройства). Используйте симметричные ключи, X.509 или TPM для аутентификации устройств в Службе подготовки устройств Центр Интернета вещей Azure (DPS).

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

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

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

Управление доступом к Службе подготовки устройств (DPS) Центра Интернета вещей Azure с помощью назначения ролей Azure RBAC

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

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

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

Роль Описание
Участник данных службы подготовки устройств Обеспечивает полный доступ к операциям службы подготовки устройств.
Читатель данных службы подготовки устройств Предоставляет полный доступ для чтения к свойствам плоскости данных Службы подготовки устройств.

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

Ключи записи для плоскости управления и ключи политик общего доступа

Действие Microsoft.Devices/provisioningServices/write позволяет принципалу создавать или обновлять любое свойство ресурса DPS, включая коллекцию authorizationPolicies . Поскольку контракт Azure Resource Manager (ARM) для CreateOrUpdate принимает предоставляемые вызывающей стороной значения primaryKey и secondaryKey для каждой политики, субъект, имеющий write на ресурсе DPS, может:

  • Установите первичный или вторичный ключ любой политики общего доступа (включая корневую provisioningserviceowner политику) на выбранное ими значение и затем аутентифицируйтесь как эту политику.
  • Вращайте ключи любой политики совместного доступа, что аннулирует существующих пользователей.
  • Добавьте новую именованную политику совместного доступа с выбранным значением ключа.

По этой причине Microsoft.Devices/provisioningServices/write фактически равнозначно полному администрированию учетных данных политики общего доступа ресурса независимо от того, есть ли у субъекта безопасности также Microsoft.Devices/provisioningServices/listkeys/action или Microsoft.Devices/provisioningServices/listkey/action.

Important

Пользовательская роль, предоставляющая Microsoft.Devices/provisioningServices/write для ресурса DPS без предоставления listkeys/action, не изолирует управление учетными данными от конфигурации ресурса. Принципал по-прежнему полностью контролирует ключевой материал политики совместного доступа через механизм записи. Не полагайтесь на этот шаблон для конфигурации с наименьшими привилегиями.

Если нужно отделить конфигурацию ресурсов от администрирования политики общего доступа, используйте один из следующих шаблонов:

  • Отдавайте предпочтение аутентификации Microsoft Entra ID в плоскости данных. Назначьте встроенные роли Device Provisioning Service Data Contributor или Device Provisioning Service Data Reader для управления регистрацией и отключите доступ с использованием общего доступа и подписи на ресурсе, где это возможно.
  • Ограничить write по объёму ресурсов. Поскольку write подразумевает контроль над ключами, предоставляйте его только тем субъектам, которым вы доверяете учетные данные политики общего доступа.
  • Проверьте активность управляющей плоскости. Изменения, внесённые в authorizationPolicies через операцию PUT в плоскости управления, записываются в журнал действий Azure в рамках операции Microsoft.Devices/provisioningServices/write. Рассматривайте эти события вместе с событиями listkeys/action при аудите доступа к учетным данным.

Те же соображения применимы и к Центр Интернета вещей Azure. Для подробностей см. Контроль доступа к Центр Интернета вещей с помощью Microsoft Entra ID.

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

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

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

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

Разрешения для API службы подготовки устройств Центр Интернета вещей Azure (DPS)

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

Действие RBAC Описание
Microsoft.Devices/provisioningServices/attestationmechanism/details/action Получить подробные сведения о механизме аттестации
Microsoft.Devices/provisioningServices/enrollmentGroups/read Просмотр групп зачисления
Microsoft.Devices/provisioningServices/enrollmentGroups/write Изменение групп регистрации
Microsoft.Devices/provisioningServices/enrollmentGroups/delete Удаление групп регистрации
Microsoft.Devices/provisioningServices/enrollments/read Просмотр данных о зачислении
Microsoft.Devices/provisioningServices/enrollments/write Запись регистраций
Microsoft.Devices/provisioningServices/enrollments/delete Удаление регистраций
Microsoft.Devices/provisioningServices/registrationStates/read Чтение состояний регистрации
Microsoft.Devices/provisioningServices/registrationStates/delete Удаление состояний регистрации

Расширение Интернета вещей Azure для Azure CLI

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

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

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

  • Следующие команды в настоящее время поддерживают --auth-type:

    • az iot dps enrollment
    • az iot dps enrollment-group
    • az iot dps registration

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

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

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

Примечание.

Доступ к Microsoft Entra ID через портал Azure в настоящее время недоступен на этапе предварительной версии.

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