Udostępnij za pomocą


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 tym 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ł uwierzytelnia się w centrum IoT na podstawie poświadczeń przechowywanych w rejestrze tożsamości.

Identyfikator urządzenia lub identyfikator modułu, przechowywany w rejestrze tożsamości, rozróżnia małe i wielkie litery.

Rejestr tożsamości jest kolekcją zasobów tożsamości 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.

Użyj rejestru tożsamości, aby:

  • Konfiguruj urządzenia lub moduły łączące się z IoT Hub.
  • Kontrolowanie dostępu poszczególnych urządzeń/modułów do 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
  • Aktualizowanie tożsamości
  • Pobierz tożsamość według identyfikatora
  • Usuwanie tożsamości
  • Wypisz do 1000 tożsamości
  • Eksportowanie tożsamości do usługi Azure Blob Storage
  • Importowanie tożsamości z usługi Azure Blob Storage

Wszystkie te operacje mogą używać optymistycznej współbieżności, jak określono w specyfikacji RFC 7232.

Rejestr tożsamości usługi IoT Hub nie zawiera żadnych metadanych aplikacji.

Ważne

Należy używać rejestru tożsamości tylko do zarządzania urządzeniami i operacji związanych z aprowizacją. 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 sprawdzisz stopy ograniczania dla rejestru tożsamości.

Uwaga

Tożsamość urządzenia lub modułu może być dostępna do pobrania po kilku sekundach od utworzenia. Jeśli wystąpią błędy, możesz spróbować ponownie operacji dotyczącej tożsamości urządzenia lub modułu.

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 koordynacji dostarczania. Aby uzyskać więcej informacji, zobacz 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 być zablokowane przed połączeniem z IoT Hub ze względu na potencjalnie naruszony certyfikat, należy to urządzenie wyłączyć w rejestrze tożsamości.

Ta funkcja nie jest dostępna dla modułów.

Aby uzyskać więcej informacji, zobacz sekcję Wyłączanie lub usuwanie urządzenia w temacie Tworzenie tożsamości urządzeń i zarządzanie nimi.

Importowanie i eksportowanie identyfikatorów urządzeń

Jedynym sposobem pobrania wszystkich tożsamości w rejestrze tożsamości centrum IoT jest użycie funkcji eksportowania.

Użyj operacji asynchronicznych w punkcie końcowym dostawcy zasobów usługi IoT Hub, aby zaimportować lub wyeksportować tożsamości urządzeń zbiorczo z rejestru tożsamości centrum IoT Hub. Importy i eksporty to długotrwałe zadania, które używają kontenera blob dostarczonego przez klienta.

Aby uzyskać więcej informacji na temat interfejsów API importowania i eksportowania, zobacz Zasób usługi IoT Hub. Aby dowiedzieć się więcej na temat uruchamiania zadań importowania i eksportowania, zobacz Importowanie i eksportowanie tożsamości urządzeń usługi IoT Hub zbiorczo.

Tożsamości urządzeń można również eksportować i importować z IoT Hub przy użyciu interfejsu usługi API za pośrednictwem interfejsu API REST lub jednego z zestawów SDK dla 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. Rejestr tożsamości usługi IoT Hub 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.

Konfigurowanie urządzeń to proces dodawania początkowych danych urządzenia do baz danych w rozwiązaniu. Aby umożliwić nowemu urządzeniu łączenie się z centrum, należy dodać identyfikator urządzenia i klucze do rejestru tożsamości usługi IoT Hub. W ramach procesu aprowizacyjnego może być konieczne zainicjowanie danych specyficznych dla urządzenia w innych systemach magazynowania danych. Możesz również użyć usługi Provisioning Device w Azure IoT Hub, aby umożliwić bezdotykową aprowizację dokładnie na czas w co najmniej jednym centrum IoT. Aby uzyskać więcej informacji, zobacz Dokumentację usługi Azure IoT Hub Device Provisioning Service.

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. Podczas tworzenia trasy 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 uzyskać więcej informacji na temat właściwości i treści zwróconych w komunikacie powiadomienia, zobacz Schematy zdarzeń innych niż telemetria usługi Azure IoT Hub.

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 o utworzeniu 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łasność/Nieruchomość/Cechy Opcje opis
identyfikator urządzenia wymagane, tylko do odczytu podczas aktualizacji Ciąg znaków uwzględniający wielkość liter (maksymalnie 128 znaków) złożony z 7-bitowych znaków alfanumerycznych ASCII oraz niektórych znaków specjalnych: - . % _ * ? ! ( ) , : = @ $ '. Znaki + # specjalne nie są obsługiwane.
identyfikator generacji wymagane, tylko do odczytu Wygenerowany ciąg z uwzględnieniem wielkości liter w usłudze IoT Hub o długości do 128 znaków. Ta wartość służy do rozróżniania urządzeń przy użyciu tego samego identyfikatora deviceId po usunięciu i ponownym utworzeniu.
etag wymagane, tylko do odczytu Ciąg znaków reprezentujący słaby identyfikator ETag dla tożsamości urządzenia, zgodnie z RFC 7232.
uwierzytelnianie opcjonalny 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 opcjonalny 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 DeviceCapabilities w dokumentacji interfejsu API REST.
zakres urządzenia opcjonalny Zakres urządzenia. Na urządzeniach brzegowych konfiguracje są generowane automatycznie i pozostają niezmienne. Przestarzałe w urządzeniach niekrawędziowych. Jednak w urządzeniach podrzędnych (liść) 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 sekcję Relacje nadrzędne i podrzędne w temacie How an IoT Edge device can be used as a gateway (Jak urządzenie usługi IoT Edge może być używane jako brama).
parentScopes opcjonalny Zakres właściwości deviceScope bezpośredniego rodzica urządzenia podrzędnego (wartość właściwości urządzenia nadrzędnego). Na urządzeniach brzegowych wartość jest pusta, jeśli urządzenie nie ma elementu nadrzędnego. W przypadku urządzeń typu nonedge właściwość nie jest obecna, jeśli urządzenie nie ma rodzica. Aby uzyskać więcej informacji, zobacz sekcję Relacje nadrzędne i podrzędne w temacie How an IoT Edge device can be used as a gateway (Jak urządzenie usługi IoT Edge może być używane jako brama).
status wymagane Wskaźnik dostępu. Możliwe wartości to Enabled i Disabled. Jeśli Enabled, urządzenie może się połączyć. Jeśli Disabledurządzenie nie może uzyskać dostępu do żadnego punktu końcowego dostępnego na urządzeniu.
powód statusu opcjonalny 128-znakowy ciąg, który przechowuje przyczynę stanu tożsamości urządzenia. Dozwolone są wszystkie znaki UTF-8.
czasAktualizacjiStatusu tylko do odczytu Wskaźnik czasowy przedstawiający datę i godzinę ostatniej aktualizacji stanu.
stan połączenia tylko do odczytu Pole wskazujące stan połączenia: Connected lub Disconnected. 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 oparty na pingach na poziomie protokołu (pingi MQTT lub pingi AMQP) i może mieć maksymalne opóźnienie wynoszące zaledwie 5 minut. Z tych powodów mogą występować wyniki fałszywie dodatnie, takie jak raportowanie rozłączonych urządzeń jako połączonych.
czasAktualizacjiStanuPołączenia tylko do odczytu Wskaźnik czasowy pokazujący datę i godzinę ostatniej aktualizacji stanu połączenia.
czasOstatniejAktywności 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 od 5 do 10 minut. Z tego powodu nie należy jej używać w scenariuszach produkcyjnych.

Uwaga

Stan połączenia może tylko reprezentować widok stanu według usługi IoT Hub. Aktualizacje tego stanu mogą być opóźnione w zależności od warunków sieciowych i konfiguracji.

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łasność/Nieruchomość/Cechy Opcje opis
identyfikator urządzenia wymagane, tylko do odczytu podczas aktualizacji Ciąg znaków uwzględniający wielkość liter (maksymalnie 128 znaków) złożony z 7-bitowych znaków alfanumerycznych ASCII oraz niektórych znaków specjalnych: - . % _ * ? ! ( ) , : = @ $ '.
moduleId wymagane, tylko do odczytu podczas aktualizacji Ciąg znaków uwzględniający wielkość liter (maksymalnie 128 znaków) złożony z 7-bitowych znaków alfanumerycznych ASCII oraz niektórych znaków specjalnych: - . % _ * ? ! ( ) , : = @ $ '. Znaki + # specjalne nie są obsługiwane.
identyfikator generacji wymagane, tylko do odczytu Ciąg znaków wygenerowany przez Hub IoT, 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 po usunięciu i ponownym utworzeniu.
etag wymagane, tylko do odczytu Ciąg reprezentujący słaby ETag dla identyfikacji urządzenia zgodnie z RFC 7232.
uwierzytelnianie opcjonalny Obiekt złożony zawierający informacje o uwierzytelnianiu i materiały zabezpieczające. Aby uzyskać więcej informacji, zobacz AuthenticationMechanism w dokumentacji interfejsu API REST.
zarządzane przez opcjonalny Określa, kto zarządza tym modułem. Na przykład ta wartość jest IoT Edge taka, jeśli środowisko uruchomieniowe Edge jest właścicielem tego modułu.
LiczbaWiadomościZChmuryDoUrządzenia tylko do odczytu Liczba komunikatów z chmury, które są obecnie w kolejce do wysłania do modułu.
stan połączenia tylko do odczytu Pole wskazujące stan połączenia: Connected lub Disconnected. 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 oparty na pingach na poziomie protokołu (pingi MQTT lub pingi AMQP) i może mieć maksymalne opóźnienie wynoszące zaledwie 5 minut. Z tych powodów mogą występować wyniki fałszywie dodatnie, takie jak raportowanie rozłączonych urządzeń jako połączonych.
czasAktualizacjiStanuPołączenia tylko do odczytu Wskaźnik czasowy pokazujący datę i godzinę ostatniej aktualizacji stanu połączenia.
czasOstatniejAktywności tylko do odczytu Wskaźnik czasowy pokazujący datę i godzinę ostatniego połączenia, odebrania lub wysłania komunikatu.

Aby zapoznać się z użyciem usługi aprowizacji urządzeń IoT Hub w celu włączenia bezobsługowej aprowizacji dokładnie na czas, zobacz: