Uwierzytelnianie urządzenia podrzędnego w usłudze Azure IoT Hub
Dotyczy: IoT Edge 1.5 IoT Edge 1.4
Ważne
Obsługiwane są wersje usługi IoT Edge 1.5 LTS i IoT Edge 1.4 LTS. Usługa IoT Edge 1.4 LTS kończy się 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 przedstawiono opcje uwierzytelniania urządzenia podrzędnego w usłudze IoT Hub, a następnie pokazano, jak zadeklarować połączenie bramy.
Uwaga
Urządzenie podrzędne emituje dane bezpośrednio do Internetu lub do urządzeń bramy (usługa IoT Edge jest włączona lub 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:
- 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.
- 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.
- 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 podpisanych przez urząd certyfikacji X.509. Kroki uwierzytelniania są podobne do kroków używanych do konfigurowania dowolnego urządzenia innego niż IoT-Edge z usługą IoT Hub, z niewielkimi różnicami w celu zadeklarowania relacji bramy.
Automatyczne aprowizowanie urządzeń podrzędnych za pomocą usługi Azure IoT Hub Device Provisioning Service (DPS) nie jest obsługiwane.
Wymagania wstępne
Wykonaj kroki opisane w temacie Konfigurowanie urządzenia usługi IoT Edge, aby działać jako przezroczysta brama.
Jeśli używasz uwierzytelniania X.509, wygenerujesz certyfikaty dla urządzenia podrzędnego. Należy mieć ten sam certyfikat głównego urzędu certyfikacji i skrypt generowania certyfikatu, który został użyty do ponownego użycia w artykule przezroczystej bramy.
W tym artykule odwołuje się do nazwy hosta bramy w kilku punktach. Nazwa hosta bramy jest zadeklarowana w parametrze nazwy hosta pliku konfiguracji na urządzeniu bramy usługi IoT Edge. Jest on określany w parametry połączenia urządzenia podrzędnego. Nazwa hosta bramy musi być rozpoznawana jako adres IP przy użyciu wpisu DNS lub 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 centrum IoT 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 pozycję Ustaw urządzenie nadrzędne i wybierz urządzenie bramy usługi IoT Edge, za pomocą którego będzie się łączyć to urządzenie podrzędne. Zawsze możesz zmienić element nadrzędny później.
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.
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.
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.
Przejdź do centrum IoT 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 pozycję Ustaw urządzenie nadrzędne i wybierz urządzenie bramy usługi IoT Edge, za pomocą którego będzie się łączyć to urządzenie podrzędne. Zawsze możesz zmienić element nadrzędny później.
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 .
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 dowolny z jego certyfikatów pośrednich, będzie mógł się uwierzytelnić.
Ta sekcja jest oparta na serii samouczków dotyczących certyfikatów X.509 usługi IoT Hub. Zobacz Omówienie kryptografii klucza publicznego i infrastruktury kluczy publicznych X.509, aby zapoznać się z wprowadzeniem tej serii.
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 podpisanych przez urząd certyfikacji. Użyj tego samego certyfikatu głównego urzędu certyfikacji, który wygenerował certyfikaty dla urządzenia bramy.
Postępuj zgodnie z instrukcjami w sekcji Demonstruj dowód posiadania w temacie Konfigurowanie zabezpieczeń X.509 w centrum Azure IoT Hub. W tej sekcji wykonasz następujące kroki:
Przekaż certyfikat głównego urzędu certyfikacji. Jeśli używasz certyfikatów demonstracyjnych, główny urząd certyfikacji to <path>/certs/azure-iot-test-only.root.ca.cert.pem.
Sprawdź, czy jesteś właścicielem certyfikatu głównego urzędu certyfikacji.
Postępuj zgodnie z instrukcjami w sekcji Tworzenie urządzenia w usłudze IoT Hub w sekcji Konfigurowanie zabezpieczeń X.509 w centrum Azure IoT Hub. W tej sekcji wykonasz następujące kroki:
Dodaj nowe urządzenie. Podaj małą nazwę identyfikatora urządzenia i wybierz typ uwierzytelniania X.509 Podpisany urząd certyfikacji.
Ustaw urządzenie nadrzędne. Wybierz pozycję Ustaw urządzenie nadrzędne i wybierz urządzenie bramy usługi IoT Edge, które zapewni połączenie z usługą IoT Hub.
Utwórz łańcuch certyfikatów dla urządzenia podrzędnego. Użyj tego samego certyfikatu głównego urzędu certyfikacji przekazanego do usługi IoT Hub, aby wykonać ten łańcuch. Użyj tego samego małego identyfikatora urządzenia, który został nadany tożsamości urządzenia w portalu.
Skopiuj certyfikat urządzenia i 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 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 .
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 , aby utworzyć nowe urządzenie IoT z podpisanym uwierzytelnianiem urzędu certyfikacji X.509 i przypisać urządzenie nadrzędne:
az iot hub device-identity create -n {iothub name} -d {device ID} --device-scope {deviceScope of gateway device} --am x509_ca
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.
Pobieranie i modyfikowanie parametry połączenia
Po utworzeniu tożsamości urządzenia IoT w portalu można pobrać jego klucze podstawowe lub pomocnicze. Jeden z tych kluczy musi zostać uwzględniony w parametry połączenia używanym przez aplikacje do komunikowania się z usługą IoT Hub. W przypadku uwierzytelniania za pomocą klucza symetrycznego usługa IoT Hub udostępnia w pełni sformułowane parametry połączenia w szczegółach urządzenia dla wygody. Do parametry połączenia należy dodać dodatkowe informacje o urządzeniu bramy.
Parametry połączenia dla urządzeń podrzędnych wymagają następujących składników:
- Centrum IoT, z którymi urządzenie łączy się:
Hostname={iothub name}.azure-devices.net
- Identyfikator urządzenia zarejestrowany w centrum:
DeviceID={device ID}
- Metoda uwierzytelniania, niezależnie od tego, czy klucz symetryczny, czy certyfikaty X.509
- W przypadku korzystania z uwierzytelniania klucza symetrycznego podaj klucz podstawowy lub pomocniczy:
SharedAccessKey={key}
- W przypadku korzystania z uwierzytelniania certyfikatu X.509 podaj flagę:
x509=true
- W przypadku korzystania z uwierzytelniania klucza symetrycznego podaj klucz podstawowy lub pomocniczy:
- Urządzenie bramy, za pomocą którego urządzenie łączy się. Podaj wartość nazwy hosta z pliku konfiguracji urządzenia bramy usługi IoT Edge:
GatewayHostName={gateway hostname}
W sumie kompletny parametry połączenia wygląda następująco:
HostName=myiothub.azure-devices.net;DeviceId=myDownstreamDevice;SharedAccessKey=xxxyyyzzz;GatewayHostName=myGatewayDevice
Lub:
HostName=myiothub.azure-devices.net;DeviceId=myDownstreamDevice;x509=true;GatewayHostName=myGatewayDevice
Dzięki relacji nadrzędnej/podrzędnej można uprościć parametry połączenia przez wywołanie bramy bezpośrednio jako hosta połączenia. Na przykład:
HostName=myGatewayDevice;DeviceId=myDownstreamDevice;SharedAccessKey=xxxyyyzzz
Użyjesz tej zmodyfikowanej parametry połączenia w następnym artykule z serii przezroczystej bramy.
Następne kroki
Na tym etapie masz urządzenie usługi IoT Edge zarejestrowane w centrum IoT Hub i skonfigurowane jako przezroczysta brama. Masz również urządzenie podrzędne zarejestrowane w centrum IoT Hub i wskazujące urządzenie bramy.
Następnie należy skonfigurować urządzenie podrzędne tak, 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 Connect a downstream device to an Azure IoT Edge gateway (Łączenie urządzenia podrzędnego z bramą usługi Azure IoT Edge).