Udostępnij przez


Uwierzytelnianie urządzenia podrzędnego w usłudze Azure IoT Hub

Dotyczy:Znacznik wyboru usługi IoT Edge 1.5 IoT Edge 1.5

Ważne

Obsługiwana wersja usługi IoT Edge 1.5 LTS. Usługa IoT Edge 1.4 LTS kończy się od 12 listopada 2024 r. Jeśli korzystasz z wcześniejszej wersji, zobacz aktualizację Azure IoT Edge.

W scenariuszu przezroczystej bramy urządzenia podrzędne, czasami nazywane urządzeniami podrzędnymi, potrzebują tożsamości w usłudze IoT Hub, podobnie jak w przypadku każdego innego urządzenia. W tym artykule opisano opcje uwierzytelniania urządzenia końcowego w IoT Hub i pokazano, jak zadeklarować połączenie gateway.

Uwaga

Urządzenie podrzędne wysyła dane bezpośrednio do Internetu lub do urządzeń bramy, niezależnie od tego, czy są one włączone w usłudze IoT Edge, czy nie. Urządzenie podrzędne może być urządzeniem podrzędnym lub urządzeniem bramy w topologii zagnieżdżonej.

Istnieją trzy ogólne kroki konfigurowania pomyślnego przezroczystego połączenia bramy. W tym artykule opisano drugi krok:

  1. Skonfiguruj urządzenie bramy jako serwer, aby urządzenia podrzędne mogły się z nim bezpiecznie łączyć. Skonfiguruj bramę w celu odbierania komunikatów z urządzeń podrzędnych i kierowania ich do odpowiedniego miejsca docelowego. Aby zapoznać się z tymi krokami, zobacz Konfigurowanie urządzenia usługi IoT Edge w celu działania jako przezroczystej bramy.
  2. Utwórz tożsamość urządzenia dla urządzenia podrzędnego, aby umożliwić jego uwierzytelnianie za pomocą usługi IoT Hub. Skonfiguruj urządzenie podrzędne do wysyłania komunikatów za pośrednictwem urządzenia bramy.
  3. Połącz urządzenie podrzędne z urządzeniem bramy i rozpocznij wysyłanie komunikatów. Aby uzyskać te kroki, zobacz Łączenie urządzenia podrzędnego z bramą usługi Azure IoT Edge.

Urządzenia podrzędne mogą uwierzytelniać się w usłudze IoT Hub przy użyciu jednej z trzech metod: kluczy symetrycznych (czasami nazywanych kluczami dostępu współdzielonego), certyfikatów Z podpisem własnym X.509 lub certyfikatów urzędu certyfikacji (CA). Kroki uwierzytelniania są podobne do tych, które umożliwiają skonfigurowanie dowolnego urządzenia innego niż IoT Edge z usługą IoT Hub, z niewielkimi różnicami w celu zadeklarowania relacji bramy.

Automatyczna aprowizacja urządzeń podrzędnych za pomocą usługi Azure IoT Hub Device Provisioning Service (DPS) nie jest obsługiwana.

Wymagania wstępne

Wykonaj kroki w Konfigurowaniu urządzenia IoT Edge do działania jako przezroczysta brama.

Jeśli używasz uwierzytelniania X.509, wygeneruj certyfikaty dla urządzenia podrzędnego. Upewnij się, że masz ten sam certyfikat głównego urzędu certyfikacji i skrypt generowania certyfikatu, który został użyty w artykule dotyczącym przezroczystej bramy.

W tym artykule odwołuje się do nazwy hosta bramy w kilku punktach. Nazwa hosta bramy jest ustawiana w parametrze hostname pliku konfiguracyjnego na urządzeniu bramy IoT Edge. Jest on również używany w parametrach połączenia urządzenia podrzędnego. Nazwa hosta bramy musi być rozpoznawana jako adres IP przy użyciu DNS lub wpisu w pliku hosta na urządzeniu podrzędnym.

Rejestrowanie urządzenia w usłudze IoT Hub

Wybierz sposób uwierzytelniania urządzenia podrzędnego za pomocą usługi IoT Hub:

  • Uwierzytelnianie klucza symetrycznego: usługa IoT Hub tworzy klucz umieszczony na urządzeniu podrzędnym. Po uwierzytelnieniu urządzenia usługa IoT Hub sprawdza, czy dwa klucze są zgodne. Nie musisz tworzyć dodatkowych certyfikatów, aby używać uwierzytelniania klucza symetrycznego.

    Ta metoda jest szybsza, jeśli testujesz bramy w scenariuszu tworzenia lub testowania.

  • Uwierzytelnianie z podpisem własnym X.509: Czasami nazywane uwierzytelnianiem odciskiem palca, ponieważ udostępniasz odcisk palca z certyfikatu X.509 urządzenia z usługą IoT Hub.

    Uwierzytelnianie certyfikatów jest zalecane w przypadku urządzeń w scenariuszach produkcyjnych.

  • Uwierzytelnianie z podpisem urzędu certyfikacji X.509: przekaż certyfikat głównego urzędu certyfikacji do usługi IoT Hub. Gdy urządzenia prezentują certyfikat X.509 do uwierzytelniania, usługa IoT Hub sprawdza, czy należy do łańcucha zaufania podpisanego przez ten sam certyfikat głównego urzędu certyfikacji.

    Uwierzytelnianie certyfikatów jest zalecane w przypadku urządzeń w scenariuszach produkcyjnych.

Uwierzytelnianie za pomocą klucza zawartości

Uwierzytelnianie klucza symetrycznego lub uwierzytelnianie za pomocą klucza dostępu współdzielonego to najprostszy sposób uwierzytelniania za pomocą usługi IoT Hub. W przypadku uwierzytelniania klucza symetrycznego klucz base64 jest skojarzony z identyfikatorem urządzenia IoT w usłudze IoT Hub. Ten klucz należy uwzględnić w aplikacjach IoT, aby urządzenie mogło je przedstawić podczas nawiązywania połączenia z usługą IoT Hub.

Dodaj nowe urządzenie IoT w usłudze IoT Hub przy użyciu witryny Azure Portal, interfejsu wiersza polecenia platformy Azure lub rozszerzenia IoT dla programu Visual Studio Code. Należy pamiętać, że urządzenia podrzędne muszą być identyfikowane w usłudze IoT Hub jako zwykłe urządzenia IoT, a nie urządzenia usługi IoT Edge.

Podczas tworzenia nowej tożsamości urządzenia podaj następujące informacje:

  • Utwórz identyfikator urządzenia.

  • Wybierz pozycję Klucz symetryczny jako typ uwierzytelniania.

  • Wybierz opcję Ustaw urządzenie nadrzędne i określ urządzenie bramy IoT Edge, przez które łączy się to urządzenie podrzędne. Zawsze możesz zmienić element nadrzędny później.

    Zrzut ekranu przedstawiający sposób tworzenia identyfikatora urządzenia z autoryzacją klucza symetrycznego w witrynie Azure Portal.

    Uwaga

    Ustawienie urządzenia nadrzędnego używanego do opcjonalnego kroku dla urządzeń podrzędnych korzystających z uwierzytelniania klucza symetrycznego. Jednak począwszy od usługi IoT Edge w wersji 1.1.0 każde urządzenie podrzędne musi być przypisane do urządzenia nadrzędnego.

    Możesz skonfigurować centrum usługi IoT Edge, aby wrócić do poprzedniego zachowania, ustawiając zmienną środowiskową AuthenticationMode na wartość CloudAndScope.

Możesz również użyć rozszerzenia IoT dla interfejsu wiersza polecenia platformy Azure, aby ukończyć tę samą operację. W poniższym przykładzie użyto polecenia az iot hub device-identity , aby utworzyć nowe urządzenie IoT z uwierzytelnianiem klucza symetrycznego i przypisać urządzenie nadrzędne:

az iot hub device-identity create -n {iothub name} -d {new device ID} --device-scope {deviceScope of parent device}

Napiwek

Możesz wyświetlić listę właściwości urządzenia, w tym zakres urządzenia, przy użyciu polecenia az iot hub device-identity list --hub-name {iothub name}.

Następnie pobierz i zmodyfikuj parametry połączenia, aby urządzenie mogło nawiązać połączenie za pośrednictwem bramy.

Uwierzytelnianie z podpisem własnym X.509

W przypadku uwierzytelniania z podpisem własnym X.509, czasami nazywanego uwierzytelnianiem odciskiem palca, należy utworzyć certyfikaty do umieszczenia na urządzeniu podrzędnym. Te certyfikaty mają w nich odcisk palca, który udostępniasz usłudze IoT Hub na potrzeby uwierzytelniania.

  1. Korzystając z certyfikatu urzędu certyfikacji, utwórz dwa certyfikaty urządzeń (podstawowe i pomocnicze) dla urządzenia podrzędnego.

    Jeśli nie masz urzędu certyfikacji do tworzenia certyfikatów X.509, możesz użyć skryptów certyfikatów demonstracyjnych usługi IoT Edge do tworzenia certyfikatów urządzeń podrzędnych. Wykonaj kroki tworzenia certyfikatów z podpisem własnym. Użyj tego samego certyfikatu głównego urzędu certyfikacji, który wygenerował certyfikaty dla urządzenia bramy.

    Jeśli tworzysz własne certyfikaty, upewnij się, że nazwa podmiotu certyfikatu urządzenia jest ustawiona na identyfikator urządzenia używany podczas rejestrowania urządzenia IoT w usłudze Azure IoT Hub. To ustawienie jest wymagane do uwierzytelniania.

  2. Pobierz odcisk palca SHA1 (nazywany odciskiem palca w interfejsie usługi IoT Hub) z każdego certyfikatu, który jest 40 ciągiem szesnastkowym. Użyj następującego polecenia openssl, aby wyświetlić certyfikat i znaleźć odcisk palca:

    • Windows:

      openssl x509 -in <path to primary device certificate>.cert.pem -text -fingerprint
      
    • Linux:

      openssl x509 -in <path to primary device certificate>.cert.pem -text -fingerprint | sed 's/[:]//g'
      

    Uruchom to polecenie dwa razy, raz dla certyfikatu podstawowego i raz dla certyfikatu pomocniczego. Odciski palców dla obu certyfikatów należy podać podczas rejestrowania nowego urządzenia IoT przy użyciu certyfikatów X.509 z podpisem własnym.

  3. Przejdź do usługi IoT Hub w witrynie Azure Portal i utwórz nową tożsamość urządzenia IoT z następującymi wartościami:

    • Podaj identyfikator urządzenia zgodny z nazwą podmiotu certyfikatów urządzenia.
    • Wybierz pozycję X.509 Self-Signed jako typ uwierzytelniania.
    • Wklej ciągi szesnastkowe skopiowane z podstawowych i pomocniczych certyfikatów urządzenia.
    • Wybierz opcję Ustaw urządzenie nadrzędne i wskaż urządzenie bramy IoT Edge, przez które łączy się to urządzenie podrzędne. Zawsze możesz zmienić element nadrzędny później.

    Zrzut ekranu przedstawiający sposób tworzenia identyfikatora urządzenia z autoryzacją z podpisem własnym X.509 w witrynie Azure Portal.

  4. Skopiuj zarówno certyfikaty urządzenia podstawowego, jak i pomocniczego oraz ich klucze do dowolnej lokalizacji na urządzeniu podrzędnym. Przenieś również kopię udostępnionego certyfikatu głównego urzędu certyfikacji, który wygenerował zarówno certyfikat urządzenia bramy, jak i certyfikaty urządzeń podrzędnych.

    Odwołujesz się do tych plików certyfikatów w dowolnych aplikacjach na urządzeniu podrzędnym, które łączą się z usługą IoT Hub. Aby przenieść pliki certyfikatów, możesz użyć usługi, takiej jak Azure Key Vault lub funkcji takiej jak Protokół Secure copy .

  5. W zależności od preferowanego języka zapoznaj się z przykładami sposobu odwoływanie się do certyfikatów X.509 w aplikacjach IoT:

Możesz również użyć rozszerzenia IoT dla interfejsu wiersza polecenia platformy Azure, aby ukończyć tę samą operację tworzenia urządzenia. W poniższym przykładzie użyto polecenia az iot hub device-identity w celu utworzenia nowego urządzenia IoT przy użyciu uwierzytelniania z podpisem własnym X.509 i przypisania urządzenia nadrzędnego:

az iot hub device-identity create -n {iothub name} -d {device ID} --device-scope {deviceScope of gateway device} --am x509_thumbprint --ptp {primary thumbprint} --stp {secondary thumbprint}

Napiwek

Możesz wyświetlić listę właściwości urządzenia, w tym zakres urządzenia, przy użyciu polecenia az iot hub device-identity list --hub-name {iothub name}.

Następnie pobierz i zmodyfikuj parametry połączenia, aby urządzenie mogło nawiązać połączenie za pośrednictwem bramy.

Uwierzytelnianie z podpisem urzędu certyfikacji X.509

W przypadku uwierzytelniania podpisanego przez urząd certyfikacji X.509 należy zarejestrować certyfikat głównego urzędu certyfikacji zarejestrowany w usłudze IoT Hub używany do podpisywania certyfikatów dla urządzenia podrzędnego. Każde urządzenie korzystające z certyfikatu, który był wystawiany przez certyfikat głównego urzędu certyfikacji lub którykolwiek z jego certyfikatów pośrednich, może uwierzytelnić się.

Aby uzyskać wprowadzenie do korzystania z certyfikatów X.509 urzędu certyfikacji do uwierzytelniania w usłudze IoT Hub, zapoznaj się z zaletami uwierzytelniania certyfikatu X.509 urzędu certyfikacji.

Aby skonfigurować uwierzytelnianie podpisane przez urząd certyfikacji X.509 dla urządzenia podrzędnego, wykonaj następujące kroki:

  1. Uzyskaj certyfikat X.509 urzędu certyfikacji, którego można użyć do podpisywania certyfikatów dla urządzenia podrzędnego. Aby zobaczyć przykład, jak skonfigurować uwierzytelnianie podpisywane przez urząd certyfikacji X.509, zobacz poniższy przykładowy scenariusz.

  2. Utwórz łańcuch certyfikatów dla urządzenia podrzędnego. Aby dowiedzieć się więcej, wykonaj kroki opisane w temacie Tworzenie podrzędnego urzędu certyfikacji.

  3. Zarejestruj certyfikat X.509 urzędu certyfikacji w usłudze IoT Hub. Aby dowiedzieć się więcej, postępuj zgodnie z krokami opisanymi w sekcji Rejestrowanie podrzędnego certyfikatu urzędu certyfikacji w usłudze IoT Hub.

  4. Skopiuj certyfikat urządzenia i klucze do urządzenia podrzędnego. Aby uzyskać więcej informacji, zobacz Zarządzanie certyfikatami usługi IoT Edge.

  5. Zarejestruj urządzenie w usłudze IoT Hub, aby używać uwierzytelniania podpisanego przez urząd certyfikacji X.509. Aby uzyskać więcej informacji, zobacz Tworzenie tożsamości urządzeń i zarządzanie nimi.

  6. W zależności od preferowanego języka zapoznaj się z przykładami sposobu odwoływanie się do certyfikatów X.509 w aplikacjach IoT:

Pobieranie i modyfikowanie parametry połączenia

Po utworzeniu tożsamości urządzenia IoT w portalu pobierz klucz podstawowy lub pomocniczy. Dodaj jeden z tych kluczy do parametrów połączenia używanych przez aplikacje do komunikacji z usługą IoT Hub. W przypadku uwierzytelniania klucza symetrycznego usługa IoT Hub pokazuje pełne parametry połączenia w szczegółach urządzenia. Dodaj informacje o urządzeniu bramy do łańcucha połączenia.

Parametry połączenia dla urządzenia podrzędnego wymagają następujących części:

  • IoT Hub, do którego urządzenie się łączy: Hostname=<Iot-Hub-Name>.azure-devices.net
  • Identyfikator urządzenia zarejestrowany w centrum: DeviceID=<Device-ID>
  • Metoda uwierzytelniania , klucz symetryczny lub certyfikat X.509.
    • W przypadku uwierzytelniania klucza symetrycznego wprowadź klucz podstawowy lub pomocniczy: SharedAccessKey=<Key>
    • W przypadku uwierzytelniania certyfikatu X.509 podaj flagę: x509=true
  • Urządzenie bramowe, przez które urządzenie się łączy. Wprowadź wartość nazwy hosta z pliku konfiguracji urządzenia bramy usługi IoT Edge: GatewayHostName=<Gateway-Hostname>

Pełne parametry połączenia wyglądają następująco:

HostName=myiothub.azure-devices.net;DeviceId=myDownstreamDevice;SharedAccessKey=xxxyyyzzz;GatewayHostName=myGatewayDevice

Lub w przypadku uwierzytelniania certyfikatu X.509:

HostName=myiothub.azure-devices.net;DeviceId=myDownstreamDevice;x509=true;GatewayHostName=myGatewayDevice

Ze względu na relację nadrzędną i podrzędną można uprościć łańcuch połączenia, używając bezpośrednio bramy jako hosta połączenia. Na przykład:

HostName=myGatewayDevice;DeviceId=myDownstreamDevice;SharedAccessKey=xxxyyyzzz

Użyj tego zmodyfikowanego ciągu połączenia w następnym artykule w serii dotyczącej przezroczystych bram.

Następne kroki

Na tym etapie masz urządzenie usługi IoT Edge zarejestrowane w usłudze IoT Hub i skonfigurowano je jako przezroczystą bramę. Masz również urządzenie podrzędne zarejestrowane w usłudze IoT Hub i wskazujące na swoje urządzenie bramowe.

Następnie skonfiguruj urządzenie podrzędne, aby ufało urządzeniu bramy i nawiązało z nim bezpieczne połączenie. Przejdź do następnego artykułu z serii przezroczystej bramy: Łączenie urządzenia podrzędnego z bramą usługi Azure IoT Edge.