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

Každé centrum IoT má registr identit, do kterého se ukládají informace o zařízeních a modulech, které mají povolené připojení ke službě IoT Hub. Aby se zařízení nebo modul mohly připojit k centru IoT Hub, musí existovat záznam pro toto zařízení nebo modul v registru identit služby IoT Hub. Zařízení nebo modul se také musí ověřit ve službě IoT Hub na základě přihlašovacích údajů uložených v registru identit.

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

Na vysoké úrovni je registr identit kolekce prostředků identit zařízení nebo modulu podporující REST. Když přidáte položku do registru identit, IoT Hub vytvoří sadu prostředků pro jednotlivá zařízení, například frontu, která obsahuje zprávy typu cloud-zařízení.

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

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

Operace registru identit

Registr identit 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í z úložiště objektů blob v Azure

Všechny tyto operace můžou používat optimistickou souběžnost, jak je uvedeno v DOKUMENTU 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 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í za 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í pro registr identit.

Poznámka

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

Zakázání zařízení

Zařízení můžete zakázat aktualizací vlastnosti status identity v registru identit. Obvykle se tato vlastnost používá 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žené nebo se z nějakého důvodu stalo neoprávněným.

    Důležité

    IoT Hub při ověřování zařízení pomocí ověřování pomocí certifikátů nekontroluje seznamy odvolaných certifikátů. Pokud máte zařízení, u kterého je potřeba zablokovat připojení k IoT Hub kvůli potenciálně napadenému certifikátu, měli byste ho zakázat v registru identit.

Tato funkce není dostupná 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í

K hromadnému exportu identit zařízení z registru identit služby IoT Hub použijte asynchronní operace na koncovém bodu poskytovatele prostředků IoT Hub. Exporty jsou dlouhotrvající úlohy, které pomocí kontejneru objektů blob dodaného zákazníkem ukládají data identity zařízení načtená z registru identit.

Pomocí asynchronních operací na koncovém bodu poskytovatele prostředků IoT Hub 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 IoT Hub poskytovatele prostředků. Další informace o spouštění úloh importu a exportu najdete v tématu Hromadná správa identit IoT Hub zařízení.

Identity zařízení je také možné exportovat a importovat ze služby IoT Hub 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í přinejmenším ukládat identity zařízení a ověřovací klíče. Azure IoT Hub zahrnuje registr identit, do kterého se můžou 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žívat 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 připojení nového zařízení k centru, musíte do registru identit 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í. Můžete také použít službu Azure IoT Hub Device Provisioning a povolit tak bezobslužné zřizování za běhu pro jedno nebo více center IoT bez nutnosti zásahu č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 řešení IoT upozornit na vytvoření nebo odstranění identity zařízení odesláním oznámení o životním cyklu. K tomu musí vaše řešení IoT vytvořit trasu a nastavit 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 ale liší v závislosti na tom, jestli se události generují pro identity modulů nebo identit zařízení. Je třeba poznamenat, že pro IoT Edge moduly se tok vytvoření identity modulu liší od jiných modulů. V důsledku toho se u IoT Edge modulů oznámení o vytvoření odešle pouze v případě, že je spuštěné odpovídající IoT Edge zařízení pro aktualizovanou identitu modulu IoT Edge. U všech ostatních modulů se oznámení o životním cyklu odesílají vždy, když se na IoT Hub straně aktualizuje identita modulu. Další informace o vlastnostech a textu vrácených v oznamovací zprávě najdete v tématu Schémata událostí bez telemetrie.

Vlastnosti identity zařízení

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

Vlastnost Možnosti Description
deviceId povinné, u aktualizací jen pro čtení Řetězec 7bitových alfanumerických znaků ASCII rozlišující velká a malá písmena (až 128 znaků) plus určité speciální znaky: - . % _ * ? ! ( ) , : = @ $ '. Speciální znaky: + # nejsou podporovány.
id generace povinné, jen pro čtení Řetězec vygenerovaný službou IoT Hub, který rozlišuje velká a malá písmena o délce až 128 znaků. Tato hodnota se používá k odlišení zařízení se stejným id zařízení, když byla odstraněna a znovu vytvořena.
Etag povinné, jen pro čtení Řetězec představující slabou 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 se jedná o hraniční zařízení 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 jsou automaticky generované a neměnné. Zastaralé na jiných než hraničních zařízeních. U podřízených zařízení (zařízení typu list) však nastavte tuto vlastnost na stejnou hodnotu jako vlastnost parentScopes ( deviceScope nadřazeného zařízení) kvůli zpětné kompatibilitě 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 zařízení 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. Na zařízeních, která nejsou hraniční zařízení, vlastnost neexistuje, pokud zařízení nemá žádný nadřazený objekt. Další informace najdete v tématu IoT Edge jako brána: Vztahy nadřazenosti a podřízenosti.
status vyžadováno 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ázáno, toto zařízení nemá přístup k žádnému koncovému bodu zařízení.
statusReason optional Řetězec dlouhý 128 znaků, ve kterém je uložen důvod stavu identity zařízení. Jsou povoleny všechny znaky UTF-8.
stavUpdateTime 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 IoT Hub zobrazení stavu připojení zařízení. Důležité: Toto pole by mělo být použito pouze pro účely vývoje a ladění. Stav připojení se aktualizuje jenom pro zařízení, která používají MQTT nebo AMQP. Je také založená na příkazech Ping na úrovni protokolu (příkazy ping MQTT nebo 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, kdy se zařízení připojilo, přijalo nebo odeslalo zprávu. Tato vlastnost je nakonec konzistentní, ale může se zpozdit až o 5 až 10 minut. Z tohoto důvodu by se neměla používat v produkčních scénářích.

Poznámka

Stav připojení může představovat pouze IoT Hub zobrazení stavu připojení. Aktualizace do tohoto stavu může být zpožděné v závislosti na podmínkách a konfiguraci sítě.

Poznámka

Sady SDK zařízení v současné době nepodporují použití + znaků a # v identifikátoru deviceId.

Vlastnosti identity modulu

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

Vlastnost Možnosti Description
deviceId povinné, u aktualizací jen pro čtení Řetězec 7bitových alfanumerických znaků ASCII rozlišující velká a malá písmena (až 128 znaků) plus určité speciální znaky: - . + % _ # * ? ! ( ) , : = @ $ '.
id modulu povinné, u aktualizací jen pro čtení Řetězec 7bitových alfanumerických znaků ASCII rozlišující velká a malá písmena (až 128 znaků) plus určité speciální znaky: - . + % _ # * ? ! ( ) , : = @ $ '.
id generace povinné, jen pro čtení Řetězec vygenerovaný službou IoT Hub, který rozlišuje velká a malá písmena o délce až 128 znaků. Tato hodnota se používá k rozlišení zařízení se stejným id zařízení, když byla odstraněna a znovu vytvořena.
Etag povinné, jen pro čtení Řetězec představující slabou 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 Určuje, kdo spravuje tento modul. Tato hodnota je například "IoT Edge", pokud modul runtime Edge vlastní tento modul.
cloudToDeviceMessageCount jen pro čtení Počet zpráv typu cloud-modul, které jsou aktuálně ve frontě k odeslání do modulu.
connectionState jen pro čtení Pole označující stav připojení: Připojeno nebo Odpojeno. Toto pole představuje IoT Hub zobrazení stavu připojení zařízení. Důležité: Toto pole by mělo být použito pouze pro účely vývoje a ladění. Stav připojení se aktualizuje jenom pro zařízení, která používají MQTT nebo AMQP. Je také založená na příkazech Ping na úrovni protokolu (příkazy ping MQTT nebo 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, kdy se zařízení připojilo, přijalo nebo odeslalo zprávu.

Poznámka

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

Další referenční materiály

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

  • IoT Hub koncových bodů popisuje různé koncové body, které každé centrum IoT zpřístupňuje pro běhové operace a operace 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 obsahuje seznam různých jazykových sad SDK, které můžete použít při vývoji aplikací zařízení i služeb, které komunikují s IoT Hub.

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

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

Další kroky

Teď, když jste se naučili používat registr identit IoT Hub, by vás mohly zajímat následující články IoT Hub s příručkou pro vývojáře:

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