Řízení přístupu ke službě IoT Hub pomocí ID Microsoft Entra
Microsoft Entra ID můžete použít k ověřování požadavků na rozhraní API služby Azure IoT Hub, jako je vytvoření identity zařízení a vyvolání přímé metody. K autorizaci stejných rozhraní API služeb můžete použít také řízení přístupu na základě role v Azure (Azure RBAC). Pomocí těchto technologií můžete udělit oprávnění pro přístup k rozhraním API služby IoT Hub k instančnímu objektu Microsoft Entra. Tento objekt zabezpečení může být uživatel, skupina nebo instanční objekt aplikace.
Ověřování přístupu pomocí Microsoft Entra ID a řízení oprávnění pomocí Azure RBAC poskytuje lepší zabezpečení a snadné použití tokenů zabezpečení. Pokud chcete minimalizovat potenciální problémy zabezpečení spojené s tokeny zabezpečení, doporučujeme vynutit ověřování Microsoft Entra, kdykoli je to možné.
Poznámka:
Ověřování pomocí Microsoft Entra ID není podporováno pro rozhraní API zařízení služby IoT Hub (jako jsou zprávy typu zařízení-cloud a aktualizace ohlášených vlastností). K ověření zařízení ve službě IoT Hub použijte symetrické klíče nebo X.509 .
Ověřování a autorizace
Ověřování je proces prokázání toho, že jste tím, kdo říkáte. Ověřování ověřuje identitu uživatele nebo zařízení ve službě IoT Hub. Někdy se zkracuje na AuthN.
Autorizace je proces potvrzení oprávnění pro ověřeného uživatele nebo zařízení ve službě IoT Hub. Určuje, k jakým prostředkům a příkazům máte povolený přístup a co můžete s těmito prostředky a příkazy dělat. Autorizace se někdy zkracuje na AuthZ.
Když objekt zabezpečení Microsoft Entra požádá o přístup k rozhraní API služby IoT Hub, identita instančního objektu se nejprve ověří. Pro ověření musí požadavek obsahovat přístupový token OAuth 2.0 za běhu. Název prostředku pro vyžádání tokenu je https://iothubs.azure.net
. Pokud aplikace běží v prostředku Azure, jako je virtuální počítač Azure, aplikace Azure Functions nebo aplikace služby Aplikace Azure Service, může být reprezentovaná jako spravovaná identita.
Po ověření objektu zabezpečení Microsoft Entra je dalším krokem autorizace. V tomto kroku služba IoT Hub používá službu přiřazení role Microsoft Entra k určení oprávnění, která má instanční objekt. Pokud oprávnění objektu zabezpečení odpovídají požadovanému prostředku nebo rozhraní API, Služba IoT Hub žádost autorizuje. Tento krok proto vyžaduje přiřazení jedné nebo více rolí Azure k objektu zabezpečení. IoT Hub poskytuje některé předdefinované role, které mají společné skupiny oprávnění.
Správa přístupu ke službě IoT Hub pomocí přiřazení role Azure RBAC
U Microsoft Entra ID a RBAC vyžaduje Služba IoT Hub, aby objekt zabezpečení, který požaduje rozhraní API, měl odpovídající úroveň oprávnění pro autorizaci. Pokud chcete objektu zabezpečení udělit oprávnění, dejte mu přiřazení role.
- Pokud je objekt zabezpečení uživatelem, skupinou nebo instančním objektem aplikace, postupujte podle pokynů v tématu Přiřazení rolí Azure pomocí webu Azure Portal.
- Pokud je objekt zabezpečení spravovanou identitou, postupujte podle pokynů v tématu Přiřazení přístupu spravované identity k prostředku.
Abyste zajistili nejnižší úroveň oprávnění, vždy přiřaďte odpovídající roli s nejnižším možným oborem prostředků, což je pravděpodobně obor IoT Hubu.
IoT Hub poskytuje následující předdefinované role Azure pro autorizaci přístupu k rozhraním API služby IoT Hub pomocí Id Microsoft Entra a RBAC:
Role | Popis |
---|---|
Přispěvatel dat centra IoT | Umožňuje úplný přístup k operacím roviny dat centra IoT. |
Čtečka dat centra IoT | Umožňuje úplný přístup ke čtení k vlastnostem roviny dat centra IoT. |
Přispěvatel registru centra IoT | Umožňuje úplný přístup k registru zařízení centra IoT. |
Přispěvatel dvojčat centra IoT | Umožňuje přístup pro čtení a zápis ke všem dvojčatům zařízení a modulů centra IoT. |
Vlastní role, které se mají používat se službou IoT Hub, můžete také definovat kombinací potřebných oprávnění . Další informace najdete v tématu Vytvoření vlastních rolí pro řízení přístupu na základě role v Azure.
Obor prostředku
Před přiřazením role Azure RBAC k objektu zabezpečení určete rozsah přístupu, který má mít objekt zabezpečení. Vždy je nejlepší udělit pouze nejužší možný rozsah. Role Azure RBAC definované v širším rozsahu jsou zděděné prostředky pod nimi.
Tento seznam popisuje úrovně, na kterých můžete omezit přístup ke službě IoT Hub, počínaje nejužším oborem:
- Centrum IoT. V tomto oboru se přiřazení role vztahuje na centrum IoT. Rozsah není menší než jednotlivé centrum IoT. Přiřazení role v menších oborech, jako je identita jednotlivých zařízení, se nepodporuje.
- Požadovaná skupina prostředků. V tomto oboru se přiřazení role vztahuje na všechna centra IoT ve skupině prostředků.
- Předplatné. V tomto oboru se přiřazení role vztahuje na všechna centra IoT ve všech skupinách prostředků v předplatném.
- Skupina pro správu. V tomto oboru se přiřazení role vztahuje na všechny centra IoT ve všech skupinách prostředků ve všech předplatných ve skupině pro správu.
Oprávnění pro rozhraní API služby IoT Hub
Následující tabulka popisuje oprávnění dostupná pro operace rozhraní API služby IoT Hub. Pokud chcete klientovi povolit volání konkrétní operace, ujistěte se, že přiřazená role RBAC klienta nabízí dostatečná oprávnění pro danou operaci.
Akce RBAC | Popis |
---|---|
Microsoft.Devices/IotHubs/devices/read |
Přečtěte si jakoukoli identitu zařízení nebo modulu. |
Microsoft.Devices/IotHubs/devices/write |
Vytvořte nebo aktualizujte jakoukoli identitu zařízení nebo modulu. |
Microsoft.Devices/IotHubs/devices/delete |
Odstraňte všechny identity zařízení nebo modulu. |
Microsoft.Devices/IotHubs/twins/read |
Přečtěte si libovolné zařízení nebo dvojče modulu. |
Microsoft.Devices/IotHubs/twins/write |
Napište jakékoli zařízení nebo dvojče modulu. |
Microsoft.Devices/IotHubs/jobs/read |
Vrátí seznam úloh. |
Microsoft.Devices/IotHubs/jobs/write |
Vytvořte nebo aktualizujte jakoukoli úlohu. |
Microsoft.Devices/IotHubs/jobs/delete |
Odstraňte jakoukoli úlohu. |
Microsoft.Devices/IotHubs/cloudToDeviceMessages/send/action |
Odešlete zprávu typu cloud-zařízení do libovolného zařízení. |
Microsoft.Devices/IotHubs/cloudToDeviceMessages/feedback/action |
Příjem, dokončení nebo opuštění oznámení zpětné vazby ke zprávě typu cloud-zařízení |
Microsoft.Devices/IotHubs/cloudToDeviceMessages/queue/purge/action |
Odstraňte všechny čekající příkazy pro zařízení. |
Microsoft.Devices/IotHubs/directMethods/invoke/action |
Vyvolá přímou metodu na libovolném zařízení nebo modulu. |
Microsoft.Devices/IotHubs/fileUpload/notifications/action |
Příjem, dokončení nebo opuštění oznámení o nahrávání souborů |
Microsoft.Devices/IotHubs/statistics/read |
Čtení statistik zařízení a služeb |
Microsoft.Devices/IotHubs/configurations/read |
Čtení konfigurací správy zařízení |
Microsoft.Devices/IotHubs/configurations/write |
Vytvořte nebo aktualizujte konfigurace správy zařízení. |
Microsoft.Devices/IotHubs/configurations/delete |
Odstraňte všechny konfigurace správy zařízení. |
Microsoft.Devices/IotHubs/configurations/applyToEdgeDevice/action |
Použijte konfigurační obsah na hraniční zařízení. |
Microsoft.Devices/IotHubs/configurations/testQueries/action |
Ověřte cílovou podmínku a vlastní dotazy na metriky pro konfiguraci. |
Tip
- Operace hromadné aktualizace registru vyžaduje obojí
Microsoft.Devices/IotHubs/devices/write
iMicrosoft.Devices/IotHubs/devices/delete
. - Operace dvojčete dotazu vyžaduje
Microsoft.Devices/IotHubs/twins/read
. - Získat Digital Twin vyžaduje
Microsoft.Devices/IotHubs/twins/read
. Aktualizace služby Digital Twin vyžadujeMicrosoft.Devices/IotHubs/twins/write
. - Příkaz vyvolat komponentu i příkaz vyvolat kořenovou úroveň vyžaduje
Microsoft.Devices/IotHubs/directMethods/invoke/action
.
Poznámka:
Pokud chcete získat data ze služby IoT Hub pomocí ID Microsoft Entra, nastavte směrování na vlastní koncový bod služby Event Hubs. Pokud chcete získat přístup k integrovanému koncovému bodu kompatibilnímu se službou Event Hubs, použijte metodu připojovací řetězec (sdílený přístupový klíč) jako předtím.
Vynucení ověřování Microsoft Entra
IoT Hub ve výchozím nastavení podporuje přístup k rozhraní API služby prostřednictvím ID Microsoft Entra i zásad sdíleného přístupu a tokenů zabezpečení. Pokud chcete minimalizovat potenciální ohrožení zabezpečení spojená s tokeny zabezpečení, můžete zakázat přístup pomocí zásad sdíleného přístupu.
Upozorňující
Odepřením připojení pomocí zásad sdíleného přístupu ztratí přístup okamžitě všichni uživatelé a služby, které se připojují pomocí této metody. Zejména vzhledem k tomu, že služba Device Provisioning Service (DPS) podporuje propojení center IoT pomocí zásad sdíleného přístupu, všechny toky zřizování zařízení selžou s chybou "Neautorizováno". Pokračujte pečlivě a naplánujte nahrazení přístupu pomocí přístupu na základě role Microsoft Entra.
Nepokračujte, pokud používáte službu Device Provisioning.
Ujistěte se, že vaši klienti a uživatelé služeb mají dostatečný přístup k vašemu centru IoT. Dodržujte zásadu nejnižších oprávnění.
Na webu Azure Portal přejděte do centra IoT.
V levém podokně vyberte Zásady sdíleného přístupu.
V části Připojit pomocí zásad sdíleného přístupu vyberte Odepřít a zkontrolujte upozornění.
Zvolte Uložit.
K vašim rozhraním API služby IoT Hub je teď možné přistupovat pouze prostřednictvím ID Microsoft Entra a RBAC.
Přístup k ID Microsoft Entra z webu Azure Portal
Přístup ke službě IoT Hub můžete poskytnout z webu Azure Portal pomocí zásad sdíleného přístupu nebo oprávnění Microsoft Entra.
Když se pokusíte získat přístup ke službě IoT Hub z webu Azure Portal, azure Portal nejprve zkontroluje, jestli máte přiřazenou roli Azure.Microsoft.Devices/iotHubs/listkeys/action
Pokud ano, Azure Portal pro přístup k centru IoT používá klíče ze zásad sdíleného přístupu. Pokud ne, Azure Portal se pokusí získat přístup k datům pomocí vašeho účtu Microsoft Entra.
Pokud chcete získat přístup ke službě IoT Hub z webu Azure Portal pomocí účtu Microsoft Entra, potřebujete oprávnění pro přístup k datovým prostředkům služby IoT Hub (jako jsou zařízení a dvojčata). Potřebujete také oprávnění k přechodu na prostředek IoT Hubu na webu Azure Portal. Předdefinované role poskytované centrem IoT udělují přístup k prostředkům, jako jsou zařízení a dvojče, ale neudělují přístup k prostředku centrum IoT. Přístup k portálu proto také vyžaduje přiřazení role Azure Resource Manageru, jako je čtenář. Role čtenáře je dobrou volbou, protože je to nejvíce omezená role, která umožňuje navigaci na portálu. Nezahrnuje Microsoft.Devices/iotHubs/listkeys/action
oprávnění (která poskytuje přístup ke všem datovým prostředkům služby IoT Hub prostřednictvím zásad sdíleného přístupu).
Pokud chcete zajistit, aby účet neměl přístup mimo přiřazená oprávnění, nezahrnujte Microsoft.Devices/iotHubs/listkeys/action
oprávnění při vytváření vlastní role. Pokud chcete například vytvořit vlastní roli, která může číst identity zařízení, ale nemůže vytvářet nebo odstraňovat zařízení, vytvořte vlastní roli, která:
- Má akci s daty
Microsoft.Devices/IotHubs/devices/read
. - Nemá akci s daty
Microsoft.Devices/IotHubs/devices/write
. - Nemá akci s daty
Microsoft.Devices/IotHubs/devices/delete
. - Nemá akci
Microsoft.Devices/iotHubs/listkeys/action
.
Pak se ujistěte, že účet nemá žádné další role, které mají Microsoft.Devices/iotHubs/listkeys/action
oprávnění, jako je vlastník nebo přispěvatel. Pokud chcete účtu povolit přístup k prostředkům a procházet portál, přiřaďte čtenáře.
Přístup k ID Microsoft Entra z Azure CLI
Většina příkazů proti IoT Hubu podporuje ověřování Microsoft Entra. Typ ověřování, který se používá ke spouštění příkazů, můžete řídit pomocí parametru --auth-type
, který přijímá key
nebo login
hodnoty. Hodnota key
je výchozí.
Pokud
--auth-type
mákey
jako předtím hodnotu, rozhraní příkazového řádku automaticky zjistí vhodnou zásadu při interakci se službou IoT Hub.Pokud
--auth-type
málogin
hodnotu, použije se pro operaci přístupový token z Azure CLI přihlášeného v objektu zabezpečení.
Další informace najdete na stránce s rozšířením Azure IoT pro azure CLI.
Ukázky SDK
Další kroky
- Další informace o výhodách používání Microsoft Entra ID ve vaší aplikaci naleznete v tématu Integrace s platformou Microsoft Identity Platform.
- Informace o použití přístupových tokenů, obnovovacích tokenů a tokenů ID při autorizaci a ověřování najdete v tématu Tokeny zabezpečení.