Sdílet prostřednictvím


Vysvětlení registru identit ve službě IoT Hub

Každé centrum IoT má registr identit, který ukládá informace o zařízeních a modulech povolených pro připojení k ioT Hubu. Než se zařízení nebo modul může připojit k centru IoT, musí existovat položka pro toto zařízení nebo modul v registru identit služby IoT Hub. Zařízení nebo modul se musí také ověřovat v IoT Hubu na základě přihlašovacích údajů uložených v registru identit.

U zařízení nebo modulu uloženého v registru identit se rozlišují malá a velká písmena.

Registr identit je na vysoké úrovni kolekcí prostředků identit nebo prostředků identit s podporou REST. Když přidáte položku do registru identit, IoT Hub vytvoří sadu prostředků pro jednotlivá zařízení, jako je fronta, která obsahuje zprávy typu cloud-zařízení v testovacím prostředí.

Registr identit použijte, když potřebujete:

  • Zřiďte zařízení nebo moduly, které se připojují k centru IoT.
  • Řízení přístupu jednotlivých zařízení nebo modulů k zařízením nebo koncovým bodům, které jsou přístupné pro jednotlivé zařízení nebo moduly.

Operace registru identit

Registr identit služby IoT Hub zveřejňuje následující operace:

  • Vytvoření identity zařízení nebo modulu
  • Aktualizace identity zařízení nebo modulu
  • Načtení identity zařízení nebo modulu podle ID
  • Odstranění identity zařízení nebo modulu
  • Výpis až 1 000 identit
  • Export identit zařízení do úložiště objektů blob v Azure
  • Import identit zařízení ze služby Azure Blob Storage

Všechny tyto operace můžou používat optimistickou souběžnost, jak je uvedeno v RFC7232.

Důležité

Jediným způsobem, jak načíst všechny identity v registru identit služby IoT Hub, je použít funkci exportu.

Registr identit služby IoT Hub:

  • Neobsahuje žádná metadata aplikace.

Důležité

Registr identit používejte jenom pro operace správy a zřizování zařízení. Operace s vysokou propustností v době běhu by neměly záviset na provádění operací v registru identit. Například kontrola stavu připojení zařízení před odesláním příkazu není podporovaným vzorem. Nezapomeňte zkontrolovat míru omezování registru identit.

Poznámka:

Může trvat několik sekund, než bude identita zařízení nebo modulu dostupná pro načtení po vytvoření. V případě selhání zkuste get operaci identit zařízení nebo modulů zopakovat.

Zakázání zařízení

Zařízení můžete zakázat aktualizací vlastnosti stavu identity v registru identit. Tuto vlastnost obvykle používáte ve dvou scénářích:

  • Během procesu orchestrace zřizování. Další informace najdete v tématu Device Provisioning.

  • Pokud se domníváte, že je zařízení ohroženo nebo se z nějakého důvodu stalo neoprávněným.

    Důležité

    IoT Hub nekontroluje seznamy odvolaných certifikátů při ověřování zařízení pomocí ověřování založeného na certifikátech. Pokud máte zařízení, které je potřeba zablokovat v připojení ke službě IoT Hub z důvodu potenciálně ohroženého certifikátu, měli byste zařízení v registru identit zakázat.

Tato funkce není k dispozici pro moduly.

Další informace najdete v tématu Zakázání nebo odstranění zařízení v centru IoT.

Import a export identit zařízení

Pomocí asynchronních operací v koncovém bodu zprostředkovatele prostředků IoT Hubu můžete exportovat identity zařízení hromadně z registru identit služby IoT Hub. Exporty jsou dlouhotrvající úlohy, které používají kontejner objektů blob zadaný zákazníkem k ukládání dat identity zařízení načtených z registru identit.

Pomocí asynchronních operací v koncovém bodu zprostředkovatele prostředků IoT Hubu můžete hromadně importovat identity zařízení do registru identit služby IoT Hub. Importy jsou dlouhotrvající úlohy, které používají data v kontejneru objektů blob dodaném zákazníkem k zápisu dat identity zařízení do registru identit.

Další informace o rozhraních API pro import a export najdete v tématu Rozhraní REST API poskytovatele prostředků služby IoT Hub. Další informace o spouštění úloh importu a exportu najdete v tématu Hromadná správa identit zařízení ioT Hubu.

Identity zařízení je také možné exportovat a importovat z centra IoT pomocí rozhraní API služby prostřednictvím rozhraní REST API nebo jedné ze sad SDK služby IoT Hub.

Zřizování zařízení

Data zařízení, která dané řešení IoT ukládá, závisí na konkrétních požadavcích tohoto řešení. Řešení ale musí jako minimum ukládat identity zařízení a ověřovací klíče. Azure IoT Hub obsahuje registr identit, který může ukládat hodnoty pro každé zařízení, jako jsou ID, ověřovací klíče a stavové kódy. Řešení může k ukládání dalších dat zařízení použít jiné služby Azure, jako je Table Storage, Blob Storage nebo Azure Cosmos DB.

Zřizování zařízení je proces přidání počátečních dat zařízení do úložišť ve vašem řešení. Pokud chcete povolit nové zařízení pro připojení k centru, musíte do registru identit služby IoT Hub přidat ID zařízení a klíče. V rámci procesu zřizování možná budete muset inicializovat data specifická pro zařízení v jiných úložištích řešení. Službu Azure IoT Hub Device Provisioning můžete použít také k povolení zřizování za běhu v jednom nebo několika centrech IoT, aniž by bylo nutné zásah člověka. Další informace najdete v dokumentaci ke službě zřizování.

Oznámení o životním cyklu zařízení a modulů

IoT Hub může vaše řešení IoT upozornit, když se identita zařízení vytvoří nebo odstraní odesláním oznámení o životním cyklu. K tomu je potřeba, aby vaše řešení IoT vytvořilo trasu a nastavil zdroj dat na hodnotu DeviceLifecycleEvents. Ve výchozím nastavení se neposílají žádná oznámení o životním cyklu, to znamená, že žádné takové trasy neexistují. Vytvořením trasy se zdrojem dat, který se rovná deviceLifecycleEvents, se události životního cyklu odesílají pro identity zařízení i identity modulů. Obsah zprávy se liší v závislosti na tom, jestli se události generují pro identity modulů nebo identity zařízení. Další informace o vlastnostech a textu vrácených ve zprávě oznámení najdete v tématu Schémata událostí bez telemetrie.

Oznámení pro vytváření identit modulů se liší pro moduly IoT Edge než pro jiné moduly. U modulů IoT Edge se oznámení o vytvoření odešle jenom v případě, že je spuštěné odpovídající zařízení IoT Edge. U všech ostatních modulů se oznámení o životním cyklu odesílají při každé aktualizaci identity modulu na straně ioT Hubu.

Vlastnosti identity zařízení

Identity zařízení jsou reprezentovány jako dokumenty JSON s následujícími vlastnostmi:

Vlastnost Možnosti Popis
deviceId required, read-only on updates Řetězec rozlišující velká a malá písmena (o délce až 128 znaků) 7bitové alfanumerické znaky ASCII a určité speciální znaky: - . % _ * ? ! ( ) , : = @ $ '. Speciální znaky: + # nejsou podporovány.
generationId povinné, jen pro čtení Vygenerovaný řetězec rozlišující velká a malá písmena ve službě IoT Hub o délce až 128 znaků. Tato hodnota se používá k rozlišení zařízení se stejným ID zařízení, když byly odstraněny a znovu vytvořeny.
etag povinné, jen pro čtení Řetězec představující slabou značku ETag pro identitu zařízení podle RFC7232
ověřování optional Složený objekt obsahující ověřovací informace a bezpečnostní materiály. Další informace najdete v tématu Mechanismus ověřování v dokumentaci k rozhraní REST API.
možnosti optional Sada funkcí zařízení. Například jestli je zařízení hraničním zařízením, nebo ne. Další informace najdete v tématu Možnosti zařízení v dokumentaci k rozhraní REST API.
deviceScope optional Rozsah zařízení. V hraničních zařízeních se automaticky generují a neměnně. Zastaralé v zařízeních, která nejsou hraniční zařízení. V podřízených zařízeních (list) však nastavte tuto vlastnost na stejnou hodnotu jako parentScopes vlastnost ( deviceScope nadřazeného zařízení) pro zpětnou kompatibilitu s předchozími verzemi rozhraní API. Další informace najdete v tématu IoT Edge jako brána: Vztahy nadřazenosti a podřízenosti.
parentScopes optional Rozsah přímého nadřazeného podřízeného zařízení (hodnota vlastnosti deviceScope nadřazeného zařízení) V hraničních zařízeních je hodnota prázdná, pokud zařízení nemá nadřazený objekt. Pokud zařízení nemá nadřazený objekt, vlastnost není v hraničních zařízeních k dispozici. Další informace najdete v tématu IoT Edge jako brána: Vztahy nadřazenosti a podřízenosti.
stav povinné Indikátor přístupu. Může být povoleno nebo zakázáno. Pokud je povoleno, zařízení se může připojit. Pokud je zakázané, nebude mít toto zařízení přístup k žádnému koncovému bodu přístupnému ze zařízení.
statusReason optional Řetězec s délkou 128 znaků, který ukládá důvod stavu identity zařízení. Jsou povoleny všechny znaky UTF-8.
statusUpdateTime jen pro čtení Dočasný indikátor zobrazující datum a čas poslední aktualizace stavu.
connectionState jen pro čtení Pole označující stav připojení: Připojeno nebo Odpojeno. Toto pole představuje zobrazení ioT Hubu o stavu připojení zařízení. Důležité: Toto pole by se mělo používat jenom pro účely vývoje a ladění. Stav připojení se aktualizuje jenom pro zařízení používající MQTT nebo AMQP. Je také založená na příkazech ping na úrovni protokolu (příkazy ping MQTT nebo příkazy ping AMQP) a může mít maximální zpoždění pouze 5 minut. Z těchto důvodů můžou být falešně pozitivní, například odpojená zařízení hlášená jako připojená.
connectionStateUpdatedTime jen pro čtení Dočasný indikátor zobrazující datum a čas poslední aktualizace stavu připojení.
lastActivityTime jen pro čtení Dočasný indikátor zobrazující datum a čas posledního připojení zařízení, přijetí nebo odeslání zprávy. Tato vlastnost je nakonec konzistentní, ale může být zpožděna až 5 až 10 minut. Z tohoto důvodu by se nemělo používat v produkčních scénářích.

Poznámka:

Stav připojení může představovat jenom zobrazení služby IoT Hub o stavu připojení. Aktualizace tohoto stavu můžou být zpožděné v závislosti na podmínkách a konfiguracích sítě.

Poznámka:

Sady SDK zařízení v současné době nepodporují použití + znaků # v id zařízení.

Vlastnosti identity modulu

Identity modulů jsou reprezentovány jako dokumenty JSON s následujícími vlastnostmi:

Vlastnost Možnosti Popis
deviceId required, read-only on updates Řetězec rozlišující velká a malá písmena (o délce až 128 znaků) 7bitové alfanumerické znaky ASCII a určité speciální znaky: - . + % _ # * ? ! ( ) , : = @ $ '.
moduleId required, read-only on updates Řetězec rozlišující velká a malá písmena (o délce až 128 znaků) 7bitové alfanumerické znaky ASCII a určité speciální znaky: - . + % _ # * ? ! ( ) , : = @ $ '.
generationId povinné, jen pro čtení Vygenerovaný řetězec rozlišující velká a malá písmena ve službě IoT Hub o délce až 128 znaků. Tato hodnota se používá k rozlišení zařízení se stejným ID zařízení, když byly odstraněny a znovu vytvořeny.
etag povinné, jen pro čtení Řetězec představující slabou značku ETag pro identitu zařízení podle RFC7232
ověřování optional Složený objekt obsahující ověřovací informace a bezpečnostní materiály. Další informace najdete v tématu Mechanismus ověřování v dokumentaci k rozhraní REST API.
managedBy optional Identifikuje, kdo tento modul spravuje. Tato hodnota je například IoT Edge, pokud modul runtime Edge vlastní tento modul.
cloudToDeviceMessageCount jen pro čtení Počet zpráv cloud-to-module, které se mají do modulu odeslat do fronty.
connectionState jen pro čtení Pole označující stav připojení: Připojeno nebo Odpojeno. Toto pole představuje zobrazení ioT Hubu o stavu připojení zařízení. Důležité: Toto pole by se mělo používat jenom pro účely vývoje a ladění. Stav připojení se aktualizuje jenom pro zařízení používající MQTT nebo AMQP. Je také založená na příkazech ping na úrovni protokolu (příkazy ping MQTT nebo příkazy ping AMQP) a může mít maximální zpoždění pouze 5 minut. Z těchto důvodů můžou být falešně pozitivní, například odpojená zařízení hlášená jako připojená.
connectionStateUpdatedTime jen pro čtení Dočasný indikátor zobrazující datum a čas poslední aktualizace stavu připojení.
lastActivityTime jen pro čtení Dočasný indikátor zobrazující datum a čas posledního připojení zařízení, přijetí nebo odeslání zprávy.

Poznámka:

Sady SDK zařízení v současné době nepodporují použití + znaků # v id zařízení a moduleId.

Další referenční materiál

Mezi další referenční články v příručce pro vývojáře ioT Hubu patří:

  • Koncové body ioT Hubu popisují různé koncové body, které každé centrum IoT zveřejňuje pro operace běhu a správy.

  • Omezení a kvóty popisují kvóty a chování omezování, které se vztahují na službu IoT Hub.

  • Sady SDK pro zařízení a služby Azure IoT uvádí seznam různých jazykových sad SDK, které můžete použít při vývoji aplikací pro zařízení i služby, které pracují se službou IoT Hub.

  • Dotazovací jazyk ioT Hubu popisuje dotazovací jazyk, který můžete použít k načtení informací ze služby IoT Hub o dvojčatech a úlohách zařízení.

  • Podpora IoT Hub MQTT poskytuje další informace o podpoře ioT Hubu pro protokol MQTT.

Další kroky

Teď, když jste se dozvěděli, jak používat registr identit služby IoT Hub, vás můžou zajímat následující články příručky pro vývojáře ioT Hubu:

Pokud chcete prozkoumat použití služby IoT Hub Device Provisioning k povolení bezdotykového zřizování za běhu, přečtěte si téma: