Udostępnij za pośrednictwem


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: