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 sadě IoT Hub. 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 ověřuje ve službě IoT Hub na základě přihlašovacích údajů uložených v registru identit.
ID zařízení nebo ID modulu uložené v registru identit se rozlišují malá a velká písmena.
Registr identit je kolekce prostředků identit podporující 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 k:
- Zřiďte zařízení nebo moduly, které se připojují k centru IoT.
- Řízení přístupu jednotlivých zařízení nebo modulů ke koncovým bodům centra
Operace registru identit
Registr identit služby IoT Hub zveřejňuje následující operace:
- Vytvoření identity
- Aktualizace identity
- Načtení identity podle ID
- Odstranění identity
- Výpis až 1 000 identit
- Export identit do úložiště objektů blob v Azure
- Import identit ze služby Azure Blob Storage
Všechny tyto operace můžou používat optimistickou souběžnost, jak je uvedeno v RFC7232.
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í
Jediným způsobem, jak načíst všechny identity v registru identit služby IoT Hub, je použít funkci exportu.
Pomocí asynchronních operací v koncovém bodu zprostředkovatele prostředků IoT Hubu můžete importovat nebo exportovat identity zařízení hromadně z registru identit služby IoT Hub. Importy a exporty jsou dlouhotrvající úlohy, které používají kontejner objektů blob zadaný zákazníkem.
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. Registr identit služby IoT Hub 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, aby se nové zařízení připojilo k vašemu centru, přidejte ID zařízení a klíče do registru identit služby IoT Hub. 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 také použít k povolení bezdotykového zřizování za běhu pro jedno nebo více center IoT. Další informace najdete v dokumentaci ke službě Device Provisioning.
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 Enabled nebo Disabled . Pokud Enabled se zařízení může připojit. Pokud Disabled zařízení nemá 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í: nebo Connected Disconnected . 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ě.
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: - . % _ * ? ! ( ) , : = @ $ ' . 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. |
managedBy | optional | Identifikuje, kdo tento modul spravuje. Tato hodnota je IoT Edge například v případě, že 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í: nebo Connected Disconnected . 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. |
Související obsah
Koncové body ioT Hubu popisují různé koncové body, které každé centrum IoT zveřejňuje pro operace běhu a správy.
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í.
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: