Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Microsoft Entra ID umożliwia uwierzytelnianie żądań do interfejsów API usługi Azure IoT Hub, 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. Korzystając ze sobą z tych technologii, można udzielić uprawnień dostępu do interfejsów API usługi IoT Hub do podmiotu zabezpieczeń firmy Microsoft Entra. Ten podmiot zabezpieczeń może być użytkownikiem, grupą lub jednostką usługi aplikacji.
Uwierzytelnianie dostępu za pomocą Microsoft Entra ID i kontrola uprawnień poprzez Azure RBAC zapewnia lepsze zabezpieczenia i większą łatwość użycia niż tokeny zabezpieczające. Aby zminimalizować potencjalne problemy z zabezpieczeniami związane z tokenami zabezpieczającymi, zalecamy wymuszanie uwierzytelniania Microsoft Entra w miarę możliwości.
Uwaga
Uwierzytelnianie za pomocą identyfikatora Entra firmy Microsoft nie jest obsługiwane w przypadku interfejsów API urządzeń usługi IoT Hub (takich jak komunikaty z urządzenia do chmury i aktualizowanie zgłoszonych właściwości). Użyj kluczy symetrycznych lub X.509 do uwierzytelniania urządzeń w usłudze IoT Hub.
Uwierzytelnianie i autoryzacja
Uwierzytelnianie to proces potwierdzania, że jesteś tym, kim jesteś. Uwierzytelnianie weryfikuje tożsamość użytkownika lub urządzenia w usłudze IoT Hub. Uwierzytelnianie jest czasami skracane do AuthN.
Autoryzacja to proces potwierdzania uprawnień dla uwierzytelnionego użytkownika lub urządzenia w usłudze IoT Hub. Autoryzacja określa zasoby i polecenia, do których masz dostęp, oraz czynności, które można wykonać za pomocą tych zasobów i poleceń. Autoryzacja jest czasami skracana do AuthZ.
Gdy podmiot zabezpieczeń firmy Microsoft Entra żąda dostępu do interfejsu API usługi IoT Hub, tożsamość jednostki jest najpierw uwierzytelniana. W przypadku uwierzytelniania żądanie musi zawierać token dostępu OAuth 2.0 w czasie wykonywania. Nazwa zasobu żądania tokenu to https://iothubs.azure.net
. Jeśli aplikacja działa w zasobie platformy Azure, na przykład maszynie wirtualnej platformy Azure, aplikacji Azure Functions lub aplikacji Azure App Service, może być reprezentowana jako tożsamość zarządzana.
Po uwierzytelnieniu jednostki Microsoft Entra, następnym krokiem jest autoryzacja. W tym kroku usługa IoT Hub używa usługi przypisania roli Entra firmy Microsoft, aby określić, jakie uprawnienia ma podmiot zabezpieczeń. Jeśli uprawnienia podmiotu są zgodne z żądanym zasobem lub API, IoT Hub autoryzuje żądanie. Dlatego ten krok wymaga, aby podmiotowi zabezpieczeń przypisano jedną lub więcej ról platformy Azure. Usługa IoT Hub udostępnia wbudowane role, które mają wspólne grupy uprawnień.
Zarządzanie dostępem do IoT Hub przy użyciu przypisania roli RBAC w Azure
W przypadku identyfikatora Entra firmy Microsoft i kontroli dostępu opartej na rolach usługa IoT Hub wymaga, aby podmiot zabezpieczeń żądający interfejsu API miał odpowiedni poziom uprawnień do autoryzacji. Aby nadać podmiotowi uprawnienia, nadaj mu przypisanie roli.
- Jeśli podmiot zabezpieczeń jest użytkownikiem, grupą lub jednostką usługi aplikacji, postępuj zgodnie ze wskazówkami w temacie Przypisywanie ról platformy Azure przy użyciu witryny Azure Portal.
- Jeśli podmiot zabezpieczeń jest tożsamością zarządzaną, postępuj zgodnie ze wskazówkami w artykule Przypisywanie dostępu tożsamości zarządzanej do zasobu platformy Azure lub innego zasobu.
Aby zapewnić najmniejsze uprawnienia, zawsze przypisz odpowiednią rolę w najniższym możliwym zakresie zasobów, co prawdopodobnie jest zakresem usługi IoT Hub.
Usługa IoT Hub udostępnia następujące wbudowane role platformy Azure umożliwiające autoryzowanie dostępu do interfejsów API usługi IoT Hub przy użyciu identyfikatora Entra firmy Microsoft i kontroli dostępu opartej na rolach:
Rola | opis |
---|---|
Uczestnik danych centrum IoT | Umożliwia pełny dostęp do operacji dla płaszczyzny danych centrum IoT. |
Czytelnik danych centrum IoT | Umożliwia pełny dostęp do odczytu parametrów płaszczyzny danych centrum IoT. |
Uczestnik rejestru centrum IoT | Umożliwia pełny dostęp do rejestru urządzeń centrum IoT. |
Kontrybutor bliźniaka centrum IoT | Umożliwia dostęp do odczytu i zapisu do wszystkich bliźniaków urządzeń i modułów w Centrum IoT. |
Możesz również zdefiniować role niestandardowe do użycia z usługą IoT Hub, łącząc potrzebne uprawnienia . Aby uzyskać więcej informacji, zobacz Niestandardowe role platformy Azure.
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 pod nimi zasoby.
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:
- Centrum IoT. W tym zakresie przypisanie roli dotyczy centrum IoT. Nie ma zakresu mniejszego niż pojedyncze centrum IoT. Przypisanie roli w mniejszych zakresach, takich jak tożsamość poszczególnych urządzeń, 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 dla interfejsów API usługi IoT Hub
W poniższej tabeli opisano uprawnienia dostępne dla operacji interfejsu API usługi IoT Hub. 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/IotHubs/devices/read |
Odczytywanie tożsamości dowolnego urządzenia lub modułu. |
Microsoft.Devices/IotHubs/devices/write |
Utwórz lub zaktualizuj dowolną tożsamość urządzenia lub modułu. |
Microsoft.Devices/IotHubs/devices/delete |
Usuń dowolną tożsamość urządzenia lub modułu. |
Microsoft.Devices/IotHubs/twins/read |
Odczytywanie dowolnego urządzenia lub bliźniaczej reprezentacji modułu. |
Microsoft.Devices/IotHubs/twins/write |
Napisz dowolne urządzenie lub bliźniaka modułu. |
Microsoft.Devices/IotHubs/jobs/read |
Zwróć listę zadań. |
Microsoft.Devices/IotHubs/jobs/write |
Utwórz lub zaktualizuj dowolne zadanie. |
Microsoft.Devices/IotHubs/jobs/delete |
Usuń dowolne zadanie. |
Microsoft.Devices/IotHubs/cloudToDeviceMessages/send/action |
Wysyłanie komunikatu z chmury do urządzenia do dowolnego urządzenia. |
Microsoft.Devices/IotHubs/cloudToDeviceMessages/feedback/action |
Otrzymywanie, uzupełnianie lub porzucanie powiadomienia o wiadomościach z chmury do urządzenia. |
Microsoft.Devices/IotHubs/cloudToDeviceMessages/queue/purge/action |
Usuń wszystkie oczekujące polecenia dla urządzenia. |
Microsoft.Devices/IotHubs/directMethods/invoke/action |
Wywołaj metodę bezpośrednią na dowolnym urządzeniu lub module. |
Microsoft.Devices/IotHubs/fileUpload/notifications/action |
Otrzymywanie, uzupełnianie lub porzucanie powiadomień o przekazaniu plików. |
Microsoft.Devices/IotHubs/statistics/read |
Odczytywanie statystyk dotyczących urządzeń i usług. |
Microsoft.Devices/IotHubs/configurations/read |
Odczytywanie konfiguracji zarządzania urządzeniami. |
Microsoft.Devices/IotHubs/configurations/write |
Tworzenie lub aktualizowanie konfiguracji zarządzania urządzeniami. |
Microsoft.Devices/IotHubs/configurations/delete |
Usuń dowolną konfigurację zarządzania urządzeniami. |
Microsoft.Devices/IotHubs/configurations/applyToEdgeDevice/action |
Zastosuj zawartość konfiguracji do urządzenia brzegowego. |
Microsoft.Devices/IotHubs/configurations/testQueries/action |
Zweryfikuj warunek docelowy i zapytania dotyczące metryk niestandardowych dla konfiguracji. |
Napiwek
- Operacja Update Registry wymaga zarówno
Microsoft.Devices/IotHubs/devices/write
, jak iMicrosoft.Devices/IotHubs/devices/delete
. - Operacja Get Twins wymaga polecenia
Microsoft.Devices/IotHubs/twins/read
. -
Bliźniak cyfrowy wymaga
Microsoft.Devices/IotHubs/twins/read
. Aktualizacja usługi Digital Twin wymaga programuMicrosoft.Devices/IotHubs/twins/write
. - Zarówno wywołaj polecenie składnika, jak i wywołaj polecenie na poziomie głównym wymaga polecenia
Microsoft.Devices/IotHubs/directMethods/invoke/action
.
Uwaga
Aby pobrać dane z usługi IoT Hub przy użyciu identyfikatora Entra firmy Microsoft, skonfiguruj routing do niestandardowego punktu końcowego usługi Event Hubs. Aby uzyskać dostęp do wbudowanego punktu końcowego zgodnego z usługą Event Hubs, użyj metody ciągu połączenia (klucza dostępu współdzielonego), tak jak wcześniej.
Wymuszanie uwierzytelniania w usłudze Microsoft Entra
Domyślnie usługa IoT Hub obsługuje dostęp do interfejsu API usług za pośrednictwem zarówno identyfikatora Entra firmy Microsoft, jak i zasad dostępu współdzielonego oraz tokenów zabezpieczających. Aby zminimalizować potencjalne luki w zabezpieczeniach związane z tokenami zabezpieczającymi, możesz wyłączyć dostęp za pomocą zasad dostępu współdzielonego.
Ostrzeżenie
Odmawiając połączeń przy użyciu zasad dostępu współdzielonego, wszyscy użytkownicy i usługi łączące się przy użyciu tej metody natychmiast utracą dostęp. W szczególności, ponieważ usługa Device Provisioning Service (DPS) obsługuje tylko łączenie centrów IoT przy użyciu zasad dostępu współdzielonego, wszystkie przepływy aprowizacji urządzeń kończą się niepowodzeniem z powodu błędu "nieautoryzowane". Zachowaj ostrożność i zaplanuj zastąpienie dostępu dostępem opartym na rolach Microsoft Entra.
Nie kontynuuj, jeśli używasz usługi Device Provisioning Service.
Upewnij się, że klienci usługi i użytkownicy mają wystarczający dostęp do centrum IoT Hub. Przestrzegaj zasady najniższych uprawnień.
Zaloguj się do witryny Azure Portal i przejdź do centrum IoT Hub.
Wybierz pozycję Zasady dostępu współdzielonego w sekcji Ustawienia zabezpieczeń menu nawigacji.
W obszarze Połącz przy użyciu zasad dostępu współdzielonego wybierz opcję Odmów i przejrzyj ostrzeżenie.
Wybierz pozycję Zapisz.
Do interfejsów API usługi IoT Hub można teraz uzyskać dostęp wyłącznie za pośrednictwem Microsoft Entra ID i kontroli dostępu opartej na rolach (RBAC).
Dostęp do identyfikatora Entra firmy Microsoft z witryny Azure Portal
Dostęp do usługi IoT Hub można zapewnić w witrynie Azure Portal przy użyciu zasad dostępu współdzielonego lub uprawnień firmy Microsoft Entra.
Podczas próby uzyskania dostępu do usługi IoT Hub z witryny Azure Portal witryna Azure Portal najpierw sprawdza, czy masz przypisaną rolę platformy Azure za pomocą Microsoft.Devices/iotHubs/listkeys/action
polecenia . Jeśli masz zdefiniowane polityki dostępu, portal Azure używa kluczy z tych polityk do uzyskania dostępu do centrum IoT. Jeśli nie, witryna Azure Portal próbuje uzyskać dostęp do danych przy użyciu konta Microsoft Entra.
Aby uzyskać dostęp do usługi IoT Hub z witryny Azure Portal przy użyciu konta Microsoft Entra, musisz mieć uprawnienia dostępu do zasobów danych usługi IoT Hub (takich jak urządzenia i bliźniacze reprezentacje). Potrzebujesz również uprawnień, aby przejść do zasobu usługi IoT Hub w witrynie Azure Portal. Role wbudowane udostępniane przez centrum IoT udzielają dostępu do zasobów, takich jak urządzenia i reprezentacje bliźniacze, ale nie udzielają dostępu do zasobu centrum IoT. Dlatego dostęp do portalu wymaga również przypisania roli usługi Azure Resource Manager, takiej jak Czytelnik. Rola czytelnika jest dobrym wyborem, ponieważ jest to najbardziej ograniczona rola umożliwiająca nawigowanie po portalu. Nie zawiera Microsoft.Devices/iotHubs/listkeys/action
uprawnień (które zapewniają dostęp do wszystkich zasobów danych usługi IoT Hub za pośrednictwem zasad dostępu współdzielonego).
Aby upewnić się, że konto nie ma dostępu poza przypisanymi uprawnieniami, nie dołączaj Microsoft.Devices/iotHubs/listkeys/action
uprawnień podczas tworzenia roli niestandardowej. Aby na przykład utworzyć rolę niestandardową, która może odczytywać tożsamości urządzeń, ale nie może tworzyć ani usuwać urządzeń, utwórz rolę niestandardową, która:
-
Microsoft.Devices/IotHubs/devices/read
Zawiera akcję danych. - Nie ma
Microsoft.Devices/IotHubs/devices/write
operacji danych. - Nie ma czynności dotyczącej
Microsoft.Devices/IotHubs/devices/delete
danych. - Nie ma
Microsoft.Devices/iotHubs/listkeys/action
działania.
Następnie upewnij się, że konto nie ma żadnych innych ról, które mają Microsoft.Devices/iotHubs/listkeys/action
uprawnienia, takie jak Właściciel lub Współautor. Aby zezwolić kontu na dostęp do zasobów i nawigować po portalu, przypisz czytelnika.
Dostęp do Microsoft Entra ID z Azure CLI
Większość poleceń w usłudze IoT Hub obsługuje uwierzytelnianie firmy 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
makey
wartość, tak jak poprzednio, interfejs wiersza polecenia automatycznie odnajduje odpowiednie zasady podczas interakcji z usługą IoT Hub.Jeśli
--auth-type
ma wartośćlogin
, do operacji używany jest token dostępu zarejestrowany w interfejsie wiersza polecenia Azure przez zalogowaną jednostkę.
Aby uzyskać więcej informacji, zobacz stronę wydania rozszerzenia usługi Azure IoT dla interfejsu wiersza polecenia platformy Azure.
Przykłady dla zestawu SDK
Następne kroki
- Aby uzyskać więcej informacji na temat zalet korzystania z identyfikatora Entra firmy Microsoft w aplikacji, zobacz Integrowanie z Platforma tożsamości Microsoft.
- Aby dowiedzieć się, jak tokeny dostępu, tokeny odświeżania i tokeny identyfikatorów są używane w autoryzacji i uwierzytelnianiu, zobacz Tokeny i oświadczenia — omówienie.