Ří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.

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

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.

  1. 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í.

  2. Na webu Azure Portal přejděte do centra IoT.

  3. V levém podokně vyberte Zásady sdíleného přístupu.

  4. V části Připojit pomocí zásad sdíleného přístupu vyberte Odepřít a zkontrolujte upozornění.

    Snímek obrazovky, který ukazuje, jak vypnout zásady sdíleného přístupu služby IoT Hub

  5. 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-typekey 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-typelogin 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í.