Ověření podřízeného zařízení pro Azure IoT Hub

Platí pro:Značka zaškrtnutí IoT Edge 1.5 IoT Edge 1.5 Značka zaškrtnutí IoT Edge 1.4 IoT Edge 1.4

Důležité

Podporované verze ioT Edge 1.5 LTS a IoT Edge 1.4 LTS. IoT Edge 1.4 LTS je konec životnosti 12. listopadu 2024. Pokud používáte starší verzi, podívejte se na článek Aktualizace IoT Edge.

Ve scénáři transparentní brány potřebují podřízená zařízení (někdy označovaná jako podřízená zařízení) identity ve službě IoT Hub jako jakékoli jiné zařízení. Tento článek vás provede možnostmi ověřování podřízeného zařízení ve službě IoT Hub a poté ukazuje, jak deklarovat připojení brány.

Poznámka:

Podřízené zařízení vysílá data přímo do internetu nebo do zařízení brány (nebo ne). Podřízené zařízení může být podřízené zařízení nebo zařízení brány v vnořené topologii.

Existují tři obecné kroky k nastavení úspěšného transparentního připojení brány. Tento článek se věnuje druhému kroku:

  1. Nakonfigurujte zařízení brány jako server, aby se k němu podřízená zařízení mohly bezpečně připojit. Nastavte bránu tak, aby přijímala zprávy z podřízených zařízení a směrovala je do správného cíle. Tyto kroky najdete v tématu Konfigurace zařízení IoT Edge tak, aby fungovalo jako transparentní brána.
  2. Vytvořte identitu zařízení pro podřízené zařízení, aby se mohl ověřit ve službě IoT Hub. Nakonfigurujte podřízené zařízení tak, aby odesílala zprávy přes zařízení brány.
  3. Připojení podřízené zařízení do zařízení brány a začněte odesílat zprávy. Tyto kroky najdete v tématu Připojení podřízeného zařízení k bráně Azure IoT Edge.

Podřízená zařízení se můžou ověřovat ve službě IoT Hub pomocí jedné ze tří metod: symetrických klíčů (někdy označovaných jako sdílené přístupové klíče), certifikátů podepsaných svým držitelem (X.509) nebo certifikátů podepsaných certifikační autoritou (CA) X.509. Kroky ověřování se podobají krokům použitým k nastavení jakéhokoli zařízení, které není IoT-Edge se službou IoT Hub, s malými rozdíly pro deklaraci vztahu brány.

Automatické zřizování podřízených zařízení se službou Azure IoT Hub Device Provisioning Service (DPS) se nepodporuje.

Požadavky

Dokončete kroky v části Konfigurace zařízení IoT Edge tak, aby fungovalo jako transparentní brána.

Pokud používáte ověřování X.509, vygenerujete certifikáty pro podřízené zařízení. Máte stejný kořenový certifikát certifikační autority a certifikát generující skript, který jste použili pro článek transparentní brány, který můžete znovu použít.

Tento článek odkazuje na název hostitele brány v několika bodech. Název hostitele brány je deklarován v parametru názvu hostitele konfiguračního souboru na zařízení brány IoT Edge. Označuje se v připojovací řetězec podřízeného zařízení. Název hostitele brány musí být přeložitelný na IP adresu, a to buď pomocí DNS, nebo položky souboru hostitele na podřízené zařízení.

Registrace zařízení ve službě IoT Hub

Zvolte, jak se má podřízené zařízení ověřovat ve službě IoT Hub:

  • Ověřování symetrického klíče: IoT Hub vytvoří klíč, který umístíte na podřízené zařízení. Když se zařízení ověří, IoT Hub zkontroluje, že se oba klíče shodují. Pro použití ověřování symetrickým klíčem nemusíte vytvářet další certifikáty.

    Tato metoda je rychlejší, pokud testujete brány ve vývojovém nebo testovacím scénáři.

  • Ověřování podepsané svým držitelem X.509: Někdy se označuje jako ověřování kryptografického otisku, protože sdílíte kryptografický otisk z certifikátu X.509 zařízení se službou IoT Hub.

    Ověřování certifikátů se doporučuje pro zařízení v produkčních scénářích.

  • Ověřování podepsané certifikační autoritou X.509: Nahrajte kořenový certifikát certifikační autority do služby IoT Hub. Když zařízení předkládají certifikát X.509 pro ověřování, IoT Hub zkontroluje, že patří do řetězu důvěryhodnosti podepsaného stejným kořenovým certifikátem certifikační autority.

    Ověřování certifikátů se doporučuje pro zařízení v produkčních scénářích.

Ověřování symetrickým klíčem

Ověřování symetrického klíče nebo ověřování pomocí sdíleného přístupového klíče je nejjednodušší způsob, jak se ověřit ve službě IoT Hub. S ověřováním symetrického klíče je klíč base64 přidružený k VAŠEMu ID zařízení IoT ve službě IoT Hub. Tento klíč zahrnete do aplikací IoT, aby ho vaše zařízení mohlo prezentovat při připojení ke službě IoT Hub.

Přidejte do centra IoT nové zařízení IoT pomocí webu Azure Portal, Azure CLI nebo rozšíření IoT pro Visual Studio Code. Mějte na paměti, že podřízená zařízení musí být v IoT Hubu identifikována jako běžná zařízení IoT, ne jako zařízení IoT Edge.

Při vytváření nové identity zařízení zadejte následující informace:

  • Vytvořte ID pro vaše zařízení.

  • Jako typ ověřování vyberte symetrický klíč .

  • Vyberte Nastavit nadřazené zařízení a vyberte zařízení brány IoT Edge, přes které se toto podřízené zařízení připojí. Nadřazený objekt můžete kdykoli později změnit.

    Snímek obrazovky znázorňuje, jak vytvořit ID zařízení s autorizací symetrického klíče na webu Azure Portal.

    Poznámka:

    Nastavení nadřazeného zařízení jako volitelného kroku pro podřízená zařízení, která používají ověřování symetrickým klíčem Od IoT Edge verze 1.1.0 ale musí být každé podřízené zařízení přiřazeno nadřazené zařízení.

    Centrum IoT Edge můžete nakonfigurovat tak, aby se vrátilo k předchozímu chování nastavením proměnné prostředí AuthenticationMode na hodnotu CloudAndScope.

K dokončení stejné operace můžete také použít rozšíření IoT pro Azure CLI . Následující příklad pomocí příkazu az iot hub device-identity vytvoří nové zařízení IoT s ověřováním symetrického klíče a přiřadí nadřazené zařízení:

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

Tip

Můžete zobrazit seznam vlastností zařízení, včetně rozsahu zařízení pomocí az iot hub device-identity list --hub-name {iothub name}.

Dále načtěte a upravte připojovací řetězec tak, aby se vaše zařízení vědělo připojit přes bránu.

Ověřování podepsané svým držitelem (self-signed authentication) X.509

V případě ověřování podepsaného svým držitelem X.509, které se někdy označuje jako ověřování kryptografickým otiskem, je potřeba vytvořit certifikáty pro umístění na podřízené zařízení. Tyto certifikáty mají kryptografický otisk, který sdílíte se službou IoT Hub pro ověřování.

  1. Pomocí certifikátu certifikační autority vytvořte pro podřízené zařízení dva certifikáty zařízení (primární a sekundární).

    Pokud nemáte certifikační autoritu k vytváření certifikátů X.509, můžete k vytvoření podřízených certifikátů zařízení použít skripty ukázkových certifikátů IoT Edge. Postupujte podle pokynů pro vytváření certifikátů podepsaných svým držitelem. Použijte stejný kořenový certifikát certifikační autority, který vygeneroval certifikáty pro vaše zařízení brány.

    Pokud vytváříte vlastní certifikáty, ujistěte se, že je název subjektu certifikátu zařízení nastavený na ID zařízení, které používáte při registraci zařízení IoT ve službě Azure IoT Hub. Toto nastavení se vyžaduje pro ověřování.

  2. Načtěte otisk sha1 (označovaný jako kryptografický otisk v rozhraní IoT Hubu) z každého certifikátu, což je 40 šestnáctkový řetězec znaků. Pomocí následujícího příkazu openssl zobrazte certifikát a vyhledejte otisk prstu:

    • 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'
      

    Spusťte tento příkaz dvakrát, jednou pro primární certifikát a jednou pro sekundární certifikát. Otisky prstů pro oba certifikáty zadáte při registraci nového zařízení IoT pomocí certifikátů X.509 podepsaných svým držitelem.

  3. Na webu Azure Portal přejděte do centra IoT a vytvořte novou identitu zařízení IoT s následujícími hodnotami:

    • Zadejte ID zařízení, které odpovídá názvu subjektu certifikátů zařízení.
    • Jako typ ověřování vyberte X.509 podepsané svým držitelem .
    • Vložte šestnáctkové řetězce, které jste zkopírovali z primárních a sekundárních certifikátů zařízení.
    • Vyberte Nastavit nadřazené zařízení a zvolte zařízení brány IoT Edge, přes které se bude toto podřízené zařízení připojovat. Nadřazený objekt můžete kdykoli později změnit.

    Snímek obrazovky, který ukazuje, jak vytvořit ID zařízení s autorizací podepsaným svým držitelem na webu Azure Portal

  4. Zkopírujte primární i sekundární certifikáty zařízení a jejich klíče do libovolného umístění na podřízené zařízení. Přesuňte také kopii certifikátu sdílené kořenové certifikační autority, který vygeneroval certifikát zařízení brány i certifikáty podřízených zařízení.

    Tyto soubory certifikátů budete odkazovat ve všech aplikacích na podřízené zařízení, které se připojují ke službě IoT Hub. K přesunutí souborů certifikátů můžete použít službu, jako je Azure Key Vault, nebo funkci, jako je protokol zabezpečeného kopírování.

  5. V závislosti na preferovaném jazyce si projděte ukázky toho, jak lze odkazovat na certifikáty X.509 v aplikacích IoT:

K dokončení stejné operace vytvoření zařízení můžete také použít rozšíření IoT pro Azure CLI . Následující příklad pomocí příkazu az iot hub device-identity vytvoří nové zařízení IoT s ověřováním podepsaným svým držitelem X.509 a přiřadí nadřazené zařízení:

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}

Tip

Můžete zobrazit seznam vlastností zařízení, včetně rozsahu zařízení pomocí az iot hub device-identity list --hub-name {iothub name}.

Dále načtěte a upravte připojovací řetězec tak, aby se vaše zařízení vědělo připojit přes bránu.

Ověřování podepsané certifikační autoritou X.509

Pro ověřování podepsané certifikační autoritou (CA) X.509 potřebujete certifikát kořenové certifikační autority zaregistrovaný ve službě IoT Hub, který používáte k podepisování certifikátů pro podřízené zařízení. Jakékoli zařízení používající certifikát, který byl certifikátem kořenové certifikační autority nebo jakýmkoli zprostředkujícím certifikátem, bude povoleno ověřování.

Tato část je založená na sérii kurzů certifikátů IoT Hub X.509. Úvod do této série najdete v tématu Principy kryptografie veřejného klíče a infrastruktury veřejného klíče X.509.

  1. Pomocí certifikátu certifikační autority vytvořte pro podřízené zařízení dva certifikáty zařízení (primární a sekundární).

    Pokud nemáte certifikační autoritu k vytváření certifikátů X.509, můžete k vytvoření podřízených certifikátů zařízení použít skripty ukázkových certifikátů IoT Edge. Postupujte podle pokynů pro vytváření certifikátů podepsaných certifikační autoritou. Použijte stejný kořenový certifikát certifikační autority, který vygeneroval certifikáty pro vaše zařízení brány.

  2. Postupujte podle pokynů v části Předvedení vlastnictví nastavení zabezpečení X.509 ve službě Azure IoT Hub. V této části provedete následující kroky:

    1. Nahrajte kořenový certifikát certifikační autority. Pokud používáte ukázkové certifikáty, kořenová certifikační autorita je <cesta>/certs/azure-iot-test-only.root.ca.cert.pem.

    2. Ověřte, že vlastníte certifikát kořenové certifikační autority.

  3. Postupujte podle pokynů v části Vytvoření zařízení ve službě IoT Hub v části Nastavení zabezpečení X.509 ve službě Azure IoT Hub. V této části provedete následující kroky:

    1. Přidejte nové zařízení. Zadejte pro ID zařízení malými písmeny a zvolte typ ověřování X.509 Podepsaný certifikační autoritou.

    2. Nastavte nadřazené zařízení. Vyberte Nastavit nadřazené zařízení a zvolte zařízení brány IoT Edge, které poskytne připojení ke službě IoT Hub.

  4. Vytvořte řetěz certifikátů pro podřízené zařízení. Ke zřetězování tohoto řetězu použijte stejný kořenový certifikát certifikační autority, který jste nahráli do služby IoT Hub. Použijte stejné MALÉ ID zařízení, které jste zadali identitě zařízení na portálu.

  5. Zkopírujte certifikát a klíče zařízení do libovolného umístění na podřízené zařízení. Přesuňte také kopii certifikátu sdílené kořenové certifikační autority, který vygeneroval certifikát zařízení brány i certifikáty podřízených zařízení.

    Tyto soubory budete odkazovat ve všech aplikacích na podřízené zařízení, které se připojují ke službě IoT Hub. K přesunutí souborů certifikátů můžete použít službu, jako je Azure Key Vault, nebo funkci, jako je protokol zabezpečeného kopírování.

  6. V závislosti na preferovaném jazyce si projděte ukázky toho, jak lze odkazovat na certifikáty X.509 v aplikacích IoT:

K dokončení stejné operace vytvoření zařízení můžete také použít rozšíření IoT pro Azure CLI . Následující příklad pomocí příkazu az iot hub device-identity vytvoří nové zařízení IoT s ověřováním podepsaným certifikační autoritou X.509 a přiřadí nadřazené zařízení:

az iot hub device-identity create -n {iothub name} -d {device ID} --device-scope {deviceScope of gateway device} --am x509_ca

Tip

Můžete zobrazit seznam vlastností zařízení, včetně rozsahu zařízení pomocí az iot hub device-identity list --hub-name {iothub name}.

Dále načtěte a upravte připojovací řetězec tak, aby se vaše zařízení vědělo připojit přes bránu.

Načtení a úprava připojovací řetězec

Po vytvoření identity zařízení IoT na portálu můžete načíst jeho primární nebo sekundární klíče. Jeden z těchto klíčů musí být součástí připojovací řetězec, které aplikace používají ke komunikaci se službou IoT Hub. Pro ověření symetrického klíče poskytuje IoT Hub plně formátovaný připojovací řetězec v podrobnostech o zařízení pro usnadnění. Do připojovací řetězec je potřeba přidat další informace o zařízení brány.

řetězce Připojení ion pro podřízená zařízení potřebují následující komponenty:

  • Centrum IoT, ke kterému se zařízení připojuje: Hostname={iothub name}.azure-devices.net
  • ID zařízení zaregistrované v centru: DeviceID={device ID}
  • Metoda ověřování, ať už symetrický klíč nebo certifikáty X.509
    • Pokud používáte ověřování symetrickým klíčem, zadejte primární nebo sekundární klíč: SharedAccessKey={key}
    • Pokud používáte ověřování certifikátu X.509, zadejte příznak: x509=true
  • Zařízení brány, přes které se zařízení připojuje. Zadejte hodnotu názvu hostitele z konfiguračního souboru zařízení brány IoT Edge:GatewayHostName={gateway hostname}

Kompletní připojovací řetězec dohromady vypadá takto:

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

Nebo:

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

Díky vztahu nadřazenosti/podřízenosti můžete připojovací řetězec zjednodušit voláním brány přímo jako hostitele připojení. Příklad:

HostName=myGatewayDevice;DeviceId=myDownstreamDevice;SharedAccessKey=xxxyyyzzz

Tuto upravenou připojovací řetězec použijete v dalším článku řady transparentních bran.

Další kroky

V tuto chvíli máte zařízení IoT Edge zaregistrované ve službě IoT Hub a nakonfigurované jako transparentní brána. Máte také podřízené zařízení zaregistrované ve službě IoT Hub a odkazující na zařízení brány.

Dále musíte nakonfigurovat podřízené zařízení tak, aby důvěřoval zařízení brány a bezpečně se k němu připojilo. Pokračujte k dalšímu článku v sérii transparentních bran Připojení podřízeného zařízení k bráně Azure IoT Edge.