Kontrolowanie dostępu do usługi Azure IoT Hub Device Provisioning Service (DPS) przy użyciu identyfikatora Entra firmy Microsoft (wersja zapoznawcza)

Identyfikator Entra firmy Microsoft umożliwia uwierzytelnianie żądań w interfejsach API usługi Azure IoT Hub Device Provisioning Service (DPS), takich jak tworzenie tożsamości urządzenia i wywoływanie metody bezpośredniej. Możesz również użyć kontroli dostępu opartej na rolach (RBAC) platformy Azure, aby autoryzować te same interfejsy API usług. Łącząc te technologie, możesz przyznać podmiotowi zabezpieczeń Microsoft Entra uprawnienia dostępu do interfejsów API usługi Azure IoT Hub Device Provisioning Service (DPS). Ten podmiot zabezpieczeń może być użytkownikiem, grupą lub jednostką usługi aplikacji.

Uwierzytelnianie dostępu przy użyciu Microsoft Entra ID oraz kontrolowanie uprawnień przy użyciu usługi Azure RBAC zapewniają wyższy poziom bezpieczeństwa i większą łatwość użycia niż tokeny zabezpieczające. Aby zminimalizować potencjalne problemy z zabezpieczeniami związane z tokenami zabezpieczającymi, zalecamy używanie identyfikatora Entra firmy Microsoft z usługą Azure IoT Hub Device Provisioning Service (DPS), jeśli jest to możliwe.

Uwaga

Uwierzytelnianie za pomocą Microsoft Entra ID nie jest obsługiwane dla usługi Azure IoT Hub Device Provisioning Service (DPS) interfejsów API urządzeń (takich jak rejestrowanie urządzenia lub sprawdzanie stanu rejestracji urządzenia). Użyj kluczy symetrycznych, X.509 lub TPM do uwierzytelniania urządzeń w usłudze Azure IoT Hub Device Provisioning Service (DPS).

Uwierzytelnianie i autoryzacja

Gdy podmiot zabezpieczeń firmy Microsoft Entra żąda dostępu do interfejsu API usługi Azure IoT Hub Device Provisioning Service (DPS), tożsamość podmiotu zabezpieczeń jest najpierw uwierzytelniana. W przypadku uwierzytelniania żądanie musi zawierać token dostępu OAuth 2.0 w czasie wykonywania. Nazwa zasobu służącego do żądania tokenu to https://azure-devices-provisioning.net. Jeśli aplikacja działa w zasobie platformy Azure, takim jak maszyna wirtualna platformy Azure, aplikacja usługi Azure Functions lub aplikacja usługi Azure App Service, może być reprezentowana przez tożsamość zarządzaną.

Po uwierzytelnieniu podmiotu Microsoft Entra następnym krokiem jest autoryzacja. W tym kroku usługa Azure IoT Hub Device Provisioning Service (DPS) używa usługi przypisania roli Entra firmy Microsoft, aby określić, jakie uprawnienia ma podmiot zabezpieczeń. Jeśli uprawnienia podmiotu zabezpieczeń są zgodne z żądanym zasobem lub interfejsem API, usługa Azure IoT Hub Device Provisioning Service (DPS) autoryzuje żądanie. Zatem ten krok wymaga przypisania co najmniej jednej roli platformy Azure podmiotowi zabezpieczeń. Usługa Azure IoT Hub Device Provisioning Service (DPS) udostępnia wbudowane role, które mają wspólne grupy uprawnień.

Zarządzanie dostępem do usługi Azure IoT Hub Device Provisioning Service (DPS) za pomocą przypisania roli RBAC na platformie Azure

W przypadku użycia Microsoft Entra ID i RBAC usługa Azure IoT Hub Device Provisioning Service (DPS) wymaga, aby podmiot wysyłający żądanie do interfejsu API miał odpowiedni poziom uprawnień wymagany do autoryzacji. Aby udzielić podmiotowi uprawnienia, przypisz mu rolę.

Aby zapewnić najmniejsze uprawnienia, zawsze przypisz odpowiednią rolę w najniższym możliwym zakresie zasobów, co prawdopodobnie jest zakresem usługi Azure IoT Hub Device Provisioning Service (DPS).

Usługa Azure IoT Hub Device Provisioning Service (DPS) zapewnia następujące wbudowane role platformy Azure służące do autoryzowania dostępu do interfejsów API usługi DPS przy użyciu Microsoft Entra ID i kontroli dostępu opartej na rolach (RBAC):

Rola Opis
Współautor danych usługi Device Provisioning Service Umożliwia pełny dostęp do operacji w płaszczyźnie danych usługi Device Provisioning Service.
Czytnik danych usługi Device Provisioning Service Umożliwia pełny dostęp odczytu do właściwości płaszczyzny danych usługi Device Provisioning Service.

Możesz również zdefiniować role niestandardowe do użycia z usługą Azure IoT Hub Device Provisioning Service (DPS), łącząc potrzebne uprawnienia . Aby uzyskać więcej informacji, zobacz Tworzenie ról niestandardowych dla kontroli dostępu opartej na rolach platformy Azure.

Klucze polityki zapisu na płaszczyźnie sterowania i współdzielonego dostępu

Akcja Microsoft.Devices/provisioningServices/write umożliwia podmiotowi zabezpieczeń utworzenie lub zaktualizowanie dowolnej właściwości zasobu DPS, w tym kolekcji authorizationPolicies. Ponieważ kontrakt usługi Azure Resource Manager (ARM) dla CreateOrUpdate akceptuje dostarczane przez wywołującego wartości primaryKey i secondaryKey dla każdej polityki, podmiot, który ma write do zasobu DPS, może:

  • Ustaw klucz główny lub wtórny każdej polityki współdzielonego dostępu (w tym polityki głównej provisioningserviceowner ) na wybraną przez siebie wartość, a następnie uwierzytelniaj się jako ta polityka.
  • Zresetuj klucze dowolnej zasady dostępu współdzielonego, co spowoduje unieważnienie istniejących klientów.
  • Dodaj nową nazwaną zasadę dostępu współdzielonego z wybraną wartością klucza.

Z tego powodu Microsoft.Devices/provisioningServices/write jest funkcjonalnie równoważny pełnej administracji poświadczeniami zasad dostępu współdzielonego zasobu, niezależnie od tego, czy podmiot posiada również Microsoft.Devices/provisioningServices/listkeys/action lub Microsoft.Devices/provisioningServices/listkey/action.

Ważna

Rola niestandardowa, która przyznaje Microsoft.Devices/provisioningServices/write do zasobu DPS bez przyznawania listkeys/action, nie izoluje administrowania poświadczeniami od konfiguracji zasobu. Podmiot nadal ma pełną kontrolę nad materiałem kluczowym zasad dostępu współdzielonego za pośrednictwem ścieżki zapisu. Nie polegaj na tym wzorcu przy konfiguracji z najmniejszą liczbą uprawnień.

Jeśli musisz oddzielić konfigurację zasobów od administracji zasad poświadczeń współdostępu, użyj jednego z następujących wzorców:

  • Preferuj uwierzytelnianie Microsoft Entra ID w płaszczyźnie danych. Przypisz wbudowane role Device Provisioning Service Data Contributor lub Device Provisioning Service Data Reader na potrzeby zarządzania rejestracją i wyłącz dostęp oparty na sygnaturze dostępu współdzielonego dla zasobu, jeśli to możliwe.
  • Ogranicz write do zakresu zasobu. Ponieważ write oznacza kontrolę nad kluczem, przyznaj ją tylko podmiotom, którym ufasz w kwestii zasad polityki współdzielonego dostępu.
  • Audytuj aktywność płaszczyzny sterowania. Zmiany wprowadzone do authorizationPolicies za pomocą operacji PUT w płaszczyźnie sterowania są rejestrowane w dzienniku aktywności platformy Azure w ramach operacji Microsoft.Devices/provisioningServices/write. Przeglądaj te zdarzenia razem ze zdarzeniami listkeys/action podczas inspekcji dostępu do poświadczeń.

Te same kwestie dotyczą Azure IoT Hub. Szczegóły można znaleźć w artykule Kontroluj dostęp do IoT Hub za pomocą Microsoft Entra ID.

Zakres zasobu

Przed przypisaniem roli RBAC platformy Azure do podmiotu zabezpieczeń określ zakres dostępu, który powinien mieć podmiot zabezpieczeń. Zawsze najlepiej przyznać tylko najwęższy możliwy zakres. Role RBAC platformy Azure zdefiniowane w szerszym zakresie są dziedziczone przez zasoby znajdujące się poniżej.

Ta lista zawiera opis poziomów, na których można określić zakres dostępu do usługi IoT Hub, począwszy od najwęższego zakresu:

  • Usługa Azure IoT Hub Device Provisioning Service (DPS). W tym zakresie przypisanie roli ma zastosowanie do usługi Azure IoT Hub Device Provisioning Service (DPS). Przypisywanie ról w węższych zakresach, takich jak grupa rejestracji lub pojedyncza rejestracja, nie jest obsługiwane.
  • grupa zasobów. W tym zakresie przypisanie roli ma zastosowanie do wszystkich centrów IoT w grupie zasobów.
  • Subskrypcja. W tym zakresie przypisanie roli ma zastosowanie do wszystkich centrów IoT we wszystkich grupach zasobów w subskrypcji.
  • Grupa zarządzania. W tym zakresie przypisanie roli ma zastosowanie do wszystkich centrów IoT we wszystkich grupach zasobów we wszystkich subskrypcjach w grupie zarządzania.

Uprawnienia do interfejsów API usługi Azure IoT Hub Device Provisioning Service (DPS)

W poniższej tabeli opisano uprawnienia dostępne dla operacji interfejsu API usługi Azure IoT Hub Device Provisioning Service (DPS). Aby umożliwić klientowi wywołanie określonej operacji, upewnij się, że przypisana rola RBAC klienta oferuje wystarczające uprawnienia dla operacji.

Akcja RBAC Opis
Microsoft.Devices/provisioningServices/attestationmechanism/details/action Pobierz szczegóły mechanizmu atestacji
Microsoft.Devices/provisioningServices/enrollmentGroups/read Odczytaj grupy rejestracji
Microsoft.Devices/provisioningServices/enrollmentGroups/write Zapisz grupy rejestracji
Microsoft.Devices/provisioningServices/enrollmentGroups/delete Usuwanie grup rejestracji
Microsoft.Devices/provisioningServices/enrollments/read Odczyt rejestracji
Microsoft.Devices/provisioningServices/enrollments/write Zapisz rejestracje
Microsoft.Devices/provisioningServices/enrollments/delete Usuwanie rejestracji
Microsoft.Devices/provisioningServices/registrationStates/read Odczytywanie stanów rejestracji
Microsoft.Devices/provisioningServices/registrationStates/delete Usuwanie stanów rejestracji

Rozszerzenie usługi Azure IoT dla interfejsu wiersza polecenia platformy Azure

Większość poleceń dla usługi Azure IoT Hub Device Provisioning Service (DPS) obsługuje uwierzytelnianie Microsoft Entra. Typ uwierzytelniania używanego do uruchamiania poleceń można kontrolować przy użyciu parametru --auth-type , który akceptuje key lub login wartości. Wartość key jest wartością domyślną.

  • Gdy --auth-type ma wartość key, interfejs CLI automatycznie wykrywa odpowiednią zasadę podczas komunikacji z usługą Azure IoT Hub Device Provisioning Service (DPS).

  • Gdy --auth-type ma wartość login, do wykonania operacji zostanie użyty token dostępu z interfejsu wiersza polecenia platformy Azure dla zalogowanej jednostki.

  • Następujące polecenia obecnie obsługują --auth-type:

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

Aby uzyskać więcej informacji, zobacz stronę informacji o wersjach rozszerzenia Azure IoT dla Azure CLI.

Zestawy SDK i przykłady

Dostęp do identyfikatora Entra firmy Microsoft z witryny Azure Portal

Uwaga

Dostęp do identyfikatora Entra firmy Microsoft z witryny Azure Portal jest obecnie niedostępny w wersji zapoznawczej.

Następne kroki

  • Aby uzyskać więcej informacji na temat zalet używania identyfikatora Entra firmy Microsoft w aplikacji, zobacz Integrowanie z identyfikatorem Entra firmy Microsoft.
  • Aby uzyskać więcej informacji na temat żądania tokenów dostępu z identyfikatora Entra firmy Microsoft dla użytkowników i jednostek usługi, zobacz Scenariusze uwierzytelniania dla identyfikatora Entra firmy Microsoft.