Omówienie rejestru tożsamości w centrum IoT
Każde centrum IoT ma rejestr tożsamości, który przechowuje informacje o urządzeniach i modułach, które mogą łączyć się z centrum IoT. Aby urządzenie lub moduł mógł nawiązać połączenie z centrum IoT Hub, musi istnieć wpis dla tego urządzenia lub modułu w rejestrze tożsamości centrum IoT. Urządzenie lub moduł musi również uwierzytelniać się w centrum IoT na podstawie poświadczeń przechowywanych w rejestrze tożsamości.
Identyfikator urządzenia lub modułu przechowywany w rejestrze tożsamości uwzględnia wielkość liter.
Na wysokim poziomie rejestr tożsamości jest kolekcją zasobów tożsamości urządzeń lub modułów obsługujących architekturę REST. Po dodaniu wpisu w rejestrze tożsamości usługa IoT Hub tworzy zestaw zasobów dla poszczególnych urządzeń, takich jak kolejka zawierająca komunikaty z chmury do urządzenia w locie.
W razie potrzeby użyj rejestru tożsamości:
- Aprowizuj urządzenia lub moduły łączące się z centrum IoT Hub.
- Kontrolowanie dostępu poszczególnych urządzeń/modułów do urządzeń lub punktów końcowych centrum.
Operacje rejestru tożsamości
Rejestr tożsamości usługi IoT Hub uwidacznia następujące operacje:
- Tworzenie tożsamości urządzenia lub modułu
- Aktualizowanie tożsamości urządzenia lub modułu
- Pobieranie tożsamości urządzenia lub modułu według identyfikatora
- Usuwanie tożsamości urządzenia lub modułu
- Wyświetlanie listy do 1000 tożsamości
- Eksportowanie tożsamości urządzeń do usługi Azure Blob Storage
- Importowanie tożsamości urządzeń z usługi Azure Blob Storage
Wszystkie te operacje mogą używać optymistycznej współbieżności, jak określono w RFC7232.
Ważne
Jedynym sposobem pobrania wszystkich tożsamości w rejestrze tożsamości centrum IoT jest użycie funkcji Eksportuj.
Rejestr tożsamości usługi IoT Hub:
- Nie zawiera żadnych metadanych aplikacji.
Ważne
Rejestru tożsamości należy używać tylko do zarządzania urządzeniami i aprowizacji operacji. Operacje o wysokiej przepływności w czasie wykonywania nie powinny zależeć od wykonywania operacji w rejestrze tożsamości. Na przykład sprawdzenie stanu połączenia urządzenia przed wysłaniem polecenia nie jest obsługiwanym wzorcem. Upewnij się, że sprawdzanie szybkości ograniczania dla rejestru tożsamości.
Uwaga
Pobranie tożsamości urządzenia lub modułu może potrwać kilka sekund. Spróbuj ponownie wykonać get
operację tożsamości urządzenia lub modułu w przypadku awarii.
Wyłączanie urządzeń
Urządzenia można wyłączyć, aktualizując właściwość stanu tożsamości w rejestrze tożsamości. Zazwyczaj ta właściwość jest używana w dwóch scenariuszach:
Podczas procesu aranżacji aprowizacji. Aby uzyskać więcej informacji, zobacz Device Provisioning (Aprowizowanie urządzeń).
Jeśli uważasz, że urządzenie zostało naruszone lub nieautoryzowane z jakiegokolwiek powodu.
Ważne
Usługa IoT Hub nie sprawdza list odwołania certyfikatów podczas uwierzytelniania urządzeń przy użyciu uwierzytelniania opartego na certyfikatach. Jeśli masz urządzenie, które musi zostać zablokowane z połączeniem z usługą IoT Hub z powodu potencjalnie naruszonego certyfikatu, należy wyłączyć urządzenie w rejestrze tożsamości.
Ta funkcja nie jest dostępna dla modułów.
Aby uzyskać więcej informacji, zobacz Wyłączanie lub usuwanie urządzenia w centrum IoT.
Importowanie i eksportowanie tożsamości urządzeń
Użyj operacji asynchronicznych w punkcie końcowym dostawcy zasobów usługi IoT Hub, aby wyeksportować tożsamości urządzeń zbiorczo z rejestru tożsamości centrum IoT. Eksporty to długotrwałe zadania, które używają kontenera obiektów blob dostarczonych przez klienta do zapisywania danych tożsamości urządzenia odczytanych z rejestru tożsamości.
Użyj operacji asynchronicznych w punkcie końcowym dostawcy zasobów usługi IoT Hub, aby zbiorczo zaimportować tożsamości urządzeń do rejestru tożsamości centrum IoT. Importy to długotrwałe zadania, które używają danych w kontenerze obiektów blob dostarczonych przez klienta do zapisywania danych tożsamości urządzenia w rejestrze tożsamości.
Aby uzyskać więcej informacji na temat interfejsów API importowania i eksportowania, zobacz Interfejsy API REST dostawcy zasobów usługi IoT Hub. Aby dowiedzieć się więcej na temat uruchamiania zadań importowania i eksportowania, zobacz Zbiorcze zarządzanie tożsamościami urządzeń usługi IoT Hub.
Tożsamości urządzeń można również eksportować i importować z centrum IoT Hub przy użyciu interfejsu API usługi za pośrednictwem interfejsu API REST lub jednego z zestawów SDK usługi IoT Hub.
Aprowizowanie urządzeń
Dane urządzenia, które są przechowywane w danym rozwiązaniu IoT, zależą od konkretnych wymagań tego rozwiązania. Jednak co najmniej rozwiązanie musi przechowywać tożsamości urządzeń i klucze uwierzytelniania. Usługa Azure IoT Hub zawiera rejestr tożsamości, który może przechowywać wartości dla każdego urządzenia, takiego jak identyfikatory, klucze uwierzytelniania i kody stanu. Rozwiązanie może używać innych usług platformy Azure, takich jak Table Storage, Blob Storage lub Azure Cosmos DB do przechowywania innych danych urządzenia.
Aprowizowanie urządzeń to proces dodawania początkowych danych urządzenia do magazynów w rozwiązaniu. Aby umożliwić nowemu urządzeniu nawiązywanie połączenia z centrum, należy dodać identyfikator urządzenia i klucze do rejestru tożsamości usługi IoT Hub. W ramach procesu aprowizacji może być konieczne zainicjowanie danych specyficznych dla urządzenia w innych magazynach rozwiązań. Możesz również użyć usługi Azure IoT Hub Device Provisioning, aby umożliwić bezobsługową aprowizację just in time w co najmniej jednym centrum IoT bez konieczności interwencji człowieka. Aby dowiedzieć się więcej, zobacz dokumentację usługi aprowizacji.
Powiadomienia dotyczące cyklu życia urządzenia i modułu
Usługa IoT Hub może powiadamiać rozwiązanie IoT po utworzeniu lub usunięciu tożsamości urządzenia, wysyłając powiadomienia dotyczące cyklu życia. Aby to zrobić, rozwiązanie IoT musi utworzyć trasę i ustawić źródło danych równe DeviceLifecycleEvents. Domyślnie nie są wysyłane żadne powiadomienia o cyklu życia, czyli nie istnieją żadne takie trasy. Tworząc trasę ze źródłem danych równym DeviceLifecycleEvents, zdarzenia cyklu życia są wysyłane zarówno dla tożsamości urządzeń, jak i tożsamości modułów. Zawartość komunikatu różni się w zależności od tego, czy zdarzenia są generowane dla tożsamości modułu, czy tożsamości urządzeń. Aby dowiedzieć się więcej o właściwościach i treści zwracanych w komunikacie powiadomienia, zobacz Schematy zdarzeń nie telemetrii.
Powiadomienia dotyczące tworzenia tożsamości modułu różnią się w przypadku modułów usługi IoT Edge niż w przypadku innych modułów. W przypadku modułów usługi IoT Edge powiadomienie tworzenia jest wysyłane tylko wtedy, gdy odpowiednie urządzenie usługi IoT Edge jest uruchomione. W przypadku wszystkich innych modułów powiadomienia o cyklu życia są wysyłane za każdym razem, gdy tożsamość modułu zostanie zaktualizowana po stronie usługi IoT Hub.
Właściwości tożsamości urządzenia
Tożsamości urządzeń są reprezentowane jako dokumenty JSON z następującymi właściwościami:
Właściwości | Opcje | opis |
---|---|---|
deviceId | wymagane, tylko do odczytu dotyczące aktualizacji | Ciąg uwzględniający wielkość liter (maksymalnie 128 znaków) znaków alfanumerycznych ASCII 7-bitowych oraz niektóre znaki specjalne: - . % _ * ? ! ( ) , : = @ $ ' . Znaki specjalne: + # nie są obsługiwane. |
generationId | wymagane, tylko do odczytu | Wygenerowany przez centrum IoT ciąg z uwzględnieniem wielkości liter do 128 znaków. Ta wartość służy do rozróżniania urządzeń o tym samym identyfikatorze deviceId, gdy zostały usunięte i utworzone ponownie. |
etag | wymagane, tylko do odczytu | Ciąg reprezentujący słaby element ETag dla tożsamości urządzenia zgodnie z RFC7232. |
uwierzytelnianie | optional | Obiekt złożony zawierający informacje o uwierzytelnianiu i materiały zabezpieczające. Aby uzyskać więcej informacji, zobacz Mechanizm uwierzytelniania w dokumentacji interfejsu API REST. |
możliwości | optional | Zestaw możliwości urządzenia. Na przykład niezależnie od tego, czy urządzenie jest urządzeniem brzegowym, czy nie. Aby uzyskać więcej informacji, zobacz Możliwości urządzeń w dokumentacji interfejsu API REST. |
deviceScope | optional | Zakres urządzenia. Na urządzeniach brzegowych generowane automatycznie i niezmienne. Przestarzałe w urządzeniach innych niż brzegowe. Jednak w urządzeniach podrzędnych (liścia) ustaw tę właściwość na taką samą wartość jak właściwość parentScopes ( deviceScope urządzenia nadrzędnego) w celu zapewnienia zgodności z poprzednimi wersjami interfejsu API. Aby uzyskać więcej informacji, zobacz Usługa IoT Edge jako brama: relacje nadrzędne i podrzędne. |
parentScopes | optional | Zakres bezpośredniego elementu nadrzędnego urządzenia podrzędnego (wartość właściwości deviceScope urządzenia nadrzędnego). Na urządzeniach brzegowych wartość jest pusta, jeśli urządzenie nie ma elementu nadrzędnego. Na urządzeniach innych niż brzegowe właściwość nie jest obecna, jeśli urządzenie nie ma elementu nadrzędnego. Aby uzyskać więcej informacji, zobacz Usługa IoT Edge jako brama: relacje nadrzędne i podrzędne. |
status | wymagane | Wskaźnik dostępu. Można włączyć lub wyłączyć. W przypadku włączenia urządzenie może nawiązać połączenie. Jeśli to urządzenie jest wyłączone, nie będzie mogło uzyskać dostępu do żadnego punktu końcowego dostępnego na urządzeniu. |
statusReason | optional | 128-znakowy ciąg, który przechowuje przyczynę stanu tożsamości urządzenia. Dozwolone są wszystkie znaki UTF-8. |
statusUpdateTime | tylko do odczytu | Wskaźnik czasowy przedstawiający datę i godzinę ostatniej aktualizacji stanu. |
connectionState | tylko do odczytu | Pole wskazujące stan połączenia: Połączono lub Rozłączono. To pole reprezentuje widok usługi IoT Hub stanu połączenia urządzenia. Ważne: to pole powinno być używane tylko w celach programistycznych/debugowania. Stan połączenia jest aktualizowany tylko dla urządzeń korzystających z protokołu MQTT lub AMQP. Ponadto jest on oparty na poleceniach ping na poziomie protokołu (pingi MQTT lub pingi AMQP) i może mieć maksymalne opóźnienie tylko 5 minut. Z tych powodów mogą występować wyniki fałszywie dodatnie, takie jak urządzenia rozłączone zgłoszone jako połączone. |
connectionStateUpdatedTime | tylko do odczytu | Wskaźnik czasowy pokazujący datę i godzinę ostatniej aktualizacji stanu połączenia. |
lastActivityTime | tylko do odczytu | Wskaźnik czasowy pokazujący datę i godzinę ostatniego połączenia, odebrania lub wysłania komunikatu. Ta właściwość jest ostatecznie spójna, ale może być opóźniona do 5 do 10 minut. Z tego powodu nie należy jej używać w scenariuszach produkcyjnych. |
Uwaga
Stan połączenia może reprezentować tylko widok usługi IoT Hub stanu połączenia. Aktualizacje tego stanu mogą być opóźnione w zależności od warunków sieciowych i konfiguracji.
Uwaga
Obecnie zestawy SDK urządzeń nie obsługują używania +
znaków i #
w identyfikatorze deviceId.
Właściwości tożsamości modułu
Tożsamości modułów są reprezentowane jako dokumenty JSON z następującymi właściwościami:
Właściwości | Opcje | opis |
---|---|---|
deviceId | wymagane, tylko do odczytu dotyczące aktualizacji | Ciąg uwzględniający wielkość liter (maksymalnie 128 znaków) znaków alfanumerycznych ASCII 7-bitowych oraz niektóre znaki specjalne: - . + % _ # * ? ! ( ) , : = @ $ ' . |
moduleId | wymagane, tylko do odczytu dotyczące aktualizacji | Ciąg uwzględniający wielkość liter (maksymalnie 128 znaków) znaków alfanumerycznych ASCII 7-bitowych oraz niektóre znaki specjalne: - . + % _ # * ? ! ( ) , : = @ $ ' . |
generationId | wymagane, tylko do odczytu | Wygenerowany przez centrum IoT ciąg z uwzględnieniem wielkości liter do 128 znaków. Ta wartość służy do rozróżniania urządzeń przy użyciu tego samego identyfikatora deviceId, gdy zostały usunięte i ponownie utworzone. |
etag | wymagane, tylko do odczytu | Ciąg reprezentujący słaby element ETag dla tożsamości urządzenia zgodnie z RFC7232. |
uwierzytelnianie | optional | Obiekt złożony zawierający informacje o uwierzytelnianiu i materiały zabezpieczające. Aby uzyskać więcej informacji, zobacz Mechanizm uwierzytelniania w dokumentacji interfejsu API REST. |
managedBy | optional | Określa, kto zarządza tym modułem. Na przykład ta wartość to "IoT Edge", jeśli środowisko uruchomieniowe brzegowe jest właścicielem tego modułu. |
cloudToDeviceMessageCount | tylko do odczytu | Liczba komunikatów z chmury do modułu, które mają być obecnie wysyłane do modułu. |
connectionState | tylko do odczytu | Pole wskazujące stan połączenia: Połączono lub Rozłączono. To pole reprezentuje widok usługi IoT Hub stanu połączenia urządzenia. Ważne: to pole powinno być używane tylko w celach programistycznych/debugowania. Stan połączenia jest aktualizowany tylko dla urządzeń korzystających z protokołu MQTT lub AMQP. Ponadto jest on oparty na poleceniach ping na poziomie protokołu (pingi MQTT lub pingi AMQP) i może mieć maksymalne opóźnienie tylko 5 minut. Z tych powodów mogą występować wyniki fałszywie dodatnie, takie jak urządzenia rozłączone zgłoszone jako połączone. |
connectionStateUpdatedTime | tylko do odczytu | Wskaźnik czasowy pokazujący datę i godzinę ostatniej aktualizacji stanu połączenia. |
lastActivityTime | tylko do odczytu | Wskaźnik czasowy pokazujący datę i godzinę ostatniego połączenia, odebrania lub wysłania komunikatu. |
Uwaga
Obecnie zestawy SDK urządzeń nie obsługują używania +
znaków i #
w identyfikatorze deviceId i moduleId.
Dodatkowy materiał referencyjny
Inne artykuły referencyjne w przewodniku dewelopera usługi IoT Hub obejmują:
Punkty końcowe usługi IoT Hub opisują różne punkty końcowe udostępniane przez każde centrum IoT na potrzeby operacji w czasie wykonywania i zarządzania.
Ograniczanie przepustowości i limity przydziału opisuje limity przydziału i zachowania ograniczania, które mają zastosowanie do usługi IoT Hub.
Zestawy SDK urządzeń i usług azure IoT zawiera listę różnych zestawów SDK języka, których można używać podczas tworzenia aplikacji urządzeń i usług, które współdziałają z usługą IoT Hub.
Język zapytań usługi IoT Hub opisuje język zapytań, którego można użyć do pobierania informacji z usługi IoT Hub na temat bliźniaczych reprezentacji urządzeń i zadań.
Obsługa protokołu MQTT usługi IoT Hub zawiera więcej informacji na temat obsługi protokołu MQTT w usłudze IoT Hub.
Następne kroki
Teraz, gdy wiesz już, jak korzystać z rejestru tożsamości usługi IoT Hub, możesz zainteresować się następującymi artykułami z przewodnikami deweloperów usługi IoT Hub:
Aby zapoznać się z używaniem usługi IoT Hub Device Provisioning w celu włączenia bezobsługowej aprowizacji just in time, zobacz: