Microsoft Entra ID(미리 보기)를 사용하여 Azure IoT Hub DPS(Device Provisioning Service)에 대한 액세스 제어
Microsoft Entra ID를 사용하여 디바이스 ID 만들기 및 직접 메서드 호출과 같은 Azure IoT Hub DPS(Device Provisioning Service) API에 대한 요청을 인증할 수 있습니다. 또한 Azure RBAC(Azure 역할 기반 액세스 제어)를 사용하여 동일한 서비스 API에 권한을 부여할 수 있습니다. 이러한 기술을 함께 사용하면 Microsoft Entra 보안 주체에 대한 Azure IoT Hub DPS(Device Provisioning Service) API에 액세스할 수 있는 권한을 부여할 수 있습니다. 보안 주체는 사용자, 그룹 또는 애플리케이션 서비스 주체일 수 있습니다.
Microsoft Entra ID를 사용하여 액세스를 인증하고 Azure RBAC를 사용하여 권한을 제어하면 보안 토큰에 대한 보안 성능과 사용 편의성이 향상됩니다. 보안 토큰에 내재된 잠재적 보안 문제를 최소화하려면 가능한 경우 Azure IoT Hub DPS(Device Provisioning Service)와 함께 Microsoft Entra ID를 사용하는 것이 좋습니다.
참고 항목
Microsoft Entra ID를 사용한 인증은 Azure IoT Hub DPS(Device Provisioning Service) 디바이스 API(예: 디바이스 등록 또는 디바이스 등록 상태 조회)에 대해 지원되지 않습니다. 대칭 키, X.509 또는 TPM을 사용하여 Azure IoT Hub DPS(Device Provisioning Service)에 디바이스를 인증합니다.
인증 및 권한 부여
Microsoft Entra 보안 주체가 Azure IoT Hub DPS(Device Provisioning Service) API에 대한 액세스를 요청하면 보안 주체의 ID가 먼저 인증됩니다. 인증 시 요청에는 OAuth 2.0 액세스 토큰을 런타임에 포함해야 합니다. 토큰을 요청하는 리소스 이름은 https://azure-devices-provisioning.net
입니다. 애플리케이션이 Azure VM, Azure Function 앱 또는 App Service 앱 같은 Azure 리소스에서 실행되는 경우 관리 ID로 표시될 수 있습니다.
Microsoft Entra 보안 주체가 인증되면 다음 단계는 권한 부여입니다. 이 단계에서는 Azure IoT Hub DPS(Device Provisioning Service)가 Microsoft Entra 역할 할당 서비스를 사용하여 보안 주체가 보유한 권한을 확인합니다. 보안 주체의 권한이 요청된 리소스 또는 API와 일치하면 Azure IoT Hub DPS(Device Provisioning Service)가 요청에 권한을 부여합니다. 따라서 이 단계에서는 하나 이상의 Azure 역할을 보안 주체에 할당해야 합니다. Azure IoT Hub DPS(Device Provisioning Service)는 일반적인 권한 그룹이 있는 몇 가지 기본 제공 역할을 제공합니다.
Azure RBAC 역할 할당을 사용하여 Azure IoT Hub DPS(Device Provisioning Service)에 대한 액세스 관리
Microsoft Entra ID 및 RBAC를 사용하는 경우 Azure IoT Hub DPS(Device Provisioning Service)에서 API를 요청하는 보안 주체가 권한을 부여하는 데 적절한 수준의 권한을 갖도록 요구합니다. 권한을 보안 주체에 부여하려면 역할 할당을 부여합니다.
- 보안 주체가 사용자, 그룹 또는 애플리케이션 서비스 사용자인 경우 Azure Portal을 사용하여 Azure 역할 할당의 참고 자료를 따릅니다.
- 보안 주체가 관리 ID인 경우 Azure Portal을 사용하여 리소스에 대한 관리 ID 액세스 할당의 참고 자료를 따릅니다.
최소한의 권한을 보장하려면 항상 가능한 최저 리소스 범위(Azure IoT Hub DPS(Device Provisioning Service) 범위일 수 있음)에서 적절한 역할을 할당합니다.
Azure IoT Hub DPS(Device Provisioning Service)는 Microsoft Entra ID 및 RBAC를 사용하여 DPS API에 대한 액세스 권한을 부여하기 위해 다음과 같은 Azure 기본 제공 역할을 제공합니다.
역할 | 설명 |
---|---|
Device Provisioning Service 데이터 기여자 | Device Provisioning Service 데이터 평면 작업에 대한 전체 액세스를 허용합니다. |
Device Provisioning Service 데이터 읽기 권한자 | Device Provisioning Service 데이터 평면 속성에 대한 전체 읽기 액세스를 허용합니다. |
필요한 권한을 결합하여 Azure IoT Hub DPS(Device Provisioning Service)에서 사용할 사용자 지정 역할을 정의할 수도 있습니다. 자세한 내용은 Azure 역할 기반 액세스 제어에 대한 사용자 지정 역할 만들기를 참조하세요.
리소스 범위
Azure RBAC 역할을 보안 주체에 할당하기 전에 보안 주체에게 부여해야 하는 액세스 범위를 결정합니다. 항상 가능한 가장 좁은 범위만 부여하는 것이 가장 좋습니다. 더 광범위한 범위에서 정의된 Azure RBAC 역할은 그 아래에 있는 리소스에 상속됩니다.
이 목록에서는 IoT Hub에 대한 액세스 범위를 지정할 수 있는 수준에 대해 설명하며, 가장 좁은 범위부터 시작합니다.
- Azure IoT Hub DPS(Device Provisioning Service). 이 범위에서 역할 할당은 Azure IoT Hub DPS(Device Provisioning Service)에 적용됩니다. 등록 그룹 또는 개별 등록과 같은 더 작은 범위에서의 역할 할당은 지원되지 않습니다.
- 리소스 그룹. 이 범위에서 역할 할당은 리소스 그룹의 모든 IoT Hub에 적용됩니다.
- 구독. 이 범위에서 역할 할당은 구독의 전체 리소스 그룹에 있는 모든 IoT Hub에 적용됩니다.
- 관리 그룹. 이 범위에서 역할 할당은 관리 그룹의 모든 구독에 있는 전체 리소스 그룹의 모든 IoT Hub에 적용됩니다.
Azure IoT Hub DPS(Device Provisioning Service) API에 대한 권한
다음 표에서는 Azure IoT Hub DPS(Device Provisioning Service) API 작업에 사용할 수 있는 권한을 설명합니다. 클라이언트에서 특정 작업을 호출할 수 있도록 하려면, 클라이언트에 할당된 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 CLI용 Azure IoT 확장
Azure IoT Hub DPS(Device Provisioning Service)에 대한 대부분의 명령은 Microsoft Entra 인증을 지원합니다. key
또는 login
값을 허용하는 --auth-type
매개 변수를 사용하여 명령을 실행하는 데 사용되는 인증 유형을 제어할 수 있습니다. key
값이 기본값입니다.
--auth-type
에key
값이 있는 경우 CLI는 Azure IoT Hub DPS(Device Provisioning Service)와 상호 작용할 때 적절한 정책을 자동으로 검색합니다.--auth-type
에login
값이 있는 경우 Azure CLI 로그인 보안 주체의 액세스 토큰이 작업에 사용됩니다.다음 명령은 현재
--auth-type
을 지원합니다.az iot dps enrollment
az iot dps enrollment-group
az iot dps registration
자세한 내용은 Azure CLI 릴리스에 대한 Azure IoT 확장 페이지를 참조하세요.
SDK 및 샘플
- Node.js Provisioning Service용 Azure IoT SDK
- Java용 Azure IoT SDK 미리 보기 릴리스
- • .NET용 Microsoft Azure IoT SDK 미리 보기 릴리스
Azure Portal에서 Microsoft Entra ID 액세스
참고 항목
Azure Portal에서 Microsoft Entra ID 액세스는 현재 미리 보기 중에는 사용할 수 없습니다.
다음 단계
- 애플리케이션에서 Microsoft Entra ID를 사용하는 이점에 대한 자세한 내용은 Microsoft Entra ID와 통합을 참조하세요.
- 사용자 및 서비스 주체에 대해 Microsoft Entra ID에서 액세스 토큰을 요청하는 방법에 대한 자세한 내용은 Microsoft Entra ID에 대한 인증 시나리오를 참조하세요.