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

Platí pro:  ikona Ano IoT Edge 1,1  ikona ano IoT Edge 1,2

Ve scénáři transparentní brány potřebují podřízené zařízení (někdy nazývaná zařízení typu list nebo podřízené zařízení) identity v IoT Hub jako jakékoli jiné zařízení. Tento článek vás provede možnostmi ověřování podřízeného zařízení pro IoT Hub a pak předvede, jak deklarovat připojení brány.

Úspěšné transparentní připojení brány můžete nastavit ve třech obecných krocích. Tento článek popisuje druhý krok:

  1. Nakonfigurujte zařízení brány jako server tak, aby se k ní podřízené zařízení mohli bezpečně připojit. Nastavte bránu tak, aby přijímala zprávy z podřízeného zařízení a směruje je do správného cíle. Tyto kroky najdete v tématu Konfigurace IoT Edge zařízení tak, aby se chovalo jako transparentní brána.
  2. Vytvořte identitu zařízení pro podřízené zařízení, aby se bylo možné ověřit pomocí IoT Hub. Nakonfigurujte podřízené zařízení tak, aby odesílal 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 Azure IoT Edge bráně.

Podřízené zařízení se mohou ověřit pomocí IoT Hub pomocí jedné ze tří metod: symetrické klíče (někdy označé jako sdílené přístupové klíče), certifikáty X.509 podepsané svým držitelem nebo podepsané certifikáty certifikační autority X.509. Postup ověřování se podobá postupu, který se používá k nastavení jakéhokoli zařízení mimo IoT-Edge s IoT Hub, s malými rozdíly při deklaraci vztahu brány.

Automatické zřizování podřízeného zařízení pomocí Azure IoT Hub Device Provisioning Service (DPS) se nepodporuje.

Požadavky

Proveďte kroky v tématu Konfigurace IoT Edge zařízení tak, aby se chovalo jako transparentní brána.

Pokud používáte ověřování X.509, vygeneruje se certifikáty pro podřízené zařízení. Mít stejný certifikát kořenové certifikační autority a skript pro generování certifikátu, 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 v IoT Edge zařízení brány. Označuje se v připojovacím řetězci podřízeného zařízení. Název hostitele brány musí být možné překládání na IP adresu, a to buď pomocí DNS, nebo pomocí položky souboru hostitele na podřízeném zařízení.

Registrace zařízení v IoT Hub

Zvolte, jak se má podřízené zařízení ověřovat pomocí IoT Hub:

  • Ověřování pomocí symetrickéhoklíče: IoT Hub vytvoří klíč, který jste vložili na podřízené zařízení. Když se zařízení ověří, IoT Hub zkontroluje, že se oba klíče shodují. Pokud chcete používat ověřování pomocí symetrického klíče, nemusíte vytvářet další certifikáty.

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

  • X.509ověřování podepsané svým držitelem: Někdy se mu říká ověřování kryptografického otisku, protože kryptografický otisk z certifikátu X.509 zařízení sdílíte s 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:Upload certifikát kořenové certifikační autority IoT Hub. Když zařízení prezentují svůj certifikát X.509 pro ověřování, IoT Hub zkontroluje, že patří do řetězu důvěryhodnosti podepsaného stejným certifikátem kořenové 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í pomocí symetrického klíče nebo ověřování pomocí sdíleného přístupového klíče je nejjednodušší způsob ověřování pomocí IoT Hub. Při ověřování pomocí symetrického klíče je k vašemu ID zařízení IoT přidružený klíč base64 v IoT Hub. Tento klíč zahrníte do aplikací IoT, aby ho zařízení bylo možné prezentovat při připojení k IoT Hub.

Do centra IoT přidejte nové zařízení IoT pomocí rozhraní příkazového řádku Azure Portal, Azure CLI nebo rozšíření IoT pro Visual Studio Code. Mějte na paměti, že zařízení ve verzi IoT Hub jako běžná zařízení IoT, nikoli IoT Edge zařízení.

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í IoT Edge bránu, přes které se bude toto podřízené zařízení připojovat. Nadřazenou možnost můžete vždy změnit později.

    Vytvoření ID zařízení s ověřováním symetrického klíče na portálu

    Poznámka

    Nastavení nadřazeného zařízení jako volitelného kroku pro podřízené zařízení, která používají ověřování pomocí symetrického klíče Počínaje verzí IoT Edge 1.1.0 musí být každé podřízené zařízení přiřazeno nadřazenému zařízení.

    Nastavením proměnné prostředí AuthenticationMode IoT Edge CloudAndScope můžete nakonfigurovat, aby se centrum událostí vrátilo k předchozímu chování.

Stejnou operaci můžete provést také pomocí 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 pomocí 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} --pd {existing gateway device ID}

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

X.509 – ověřování podepsané svým držitelem

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

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

    Pokud nemáte certifikační autoritu pro vytváření certifikátů X.509, můžete použít ukázkové skripty certifikátů IoT Edge k vytvoření certifikátů podřízeného zařízení. Postupujte podle kroků pro vytváření certifikátů podepsaných svým držitelem. Použijte stejný certifikát kořenové certifikační autority, který vygeneroval certifikáty pro 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 v Azure IoT Hub. Toto nastavení se vyžaduje pro ověřování.

  2. Z každého certifikátu načtěte otisk SHA1 (v rozhraní IoT Hub kryptografický otisk), což je 40 šestnáctkový znakový řetězec. Pomocí následujícího příkazu openssl zobrazte certifikát a najděte 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 poskytnete při registraci nového zařízení IoT pomocí certifikátů X.509 podepsaných svým držitelem.

  3. Přejděte do svého centra IoT v Azure Portal 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ů vašeho zařízení.
    • Jako typ ověřování vyberte X.509 Self-Signed (Podepsaný svým držitelem).
    • Vložte šestnáctkové řetězce, které jste zkopíroval z primárních a sekundárních certifikátů vašeho zařízení.
    • Vyberte Nastavit nadřazené zařízení a zvolte zařízení IoT Edge, přes které se bude toto podřízené zařízení připojovat. Nadřazenou možnost můžete vždy změnit později.

    Vytvoření ID zařízení s ověřováním X.509 podepsanou svým držitelem na portálu

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

    Na tyto soubory certifikátů budete odkazovat ve všech aplikacích na podřízeném zařízení, které se připojují k IoT Hub. K přesunutí souborů certifikátů můžete použít službu, 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 v aplikacích IoT odkazovat na certifikáty X.509:

K dokončení stejné operace vytvoření zařízení můžete použít také 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 X.509 podepsaným svým držitelem a přiřadí nadřazené zařízení:

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

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

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

V případě ověřování podepsaného certifikační autoritou X.509 potřebujete certifikát kořenové certifikační autority zaregistrovaný v IoT Hub, který použijete k podepsání certifikátů pro podřízené zařízení. Jakékoli zařízení používající certifikát, který byl vystavený certifikátem kořenové certifikační autority nebo kterýkoli z jeho zprostředkujících certifikátů, bude povoleno ověřování.

Tato část vychází z řady kurzů IoT Hub X.509. Úvod do této série najdete v článku Vysvětlení kryptografie s veřejným klíčem a infrastruktury veřejných klíčů X.509.

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

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

  2. Postupujte podle pokynů v části Ukázka důkazu vlastnictví v tématu Nastavení zabezpečení X.509 ve službě Azure IoT Hub. V této části provedete následující kroky:

    1. Upload certifikátu kořenové certifikační autority. Pokud používáte ukázkové certifikáty, kořenová certifikační autorita se <path> /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í v IoT Hub v tématu 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 malý název ID zařízení a vyberte typ ověřování, který je podepsaný certifikační autoritou X. 509.

    2. Nastavte nadřazené zařízení. Vyberte nastavit nadřazené zařízení a zvolte zařízení IoT Edge brány, které bude poskytovat připojení k IoT Hub.

  4. Vytvořte řetěz certifikátů pro vaše zařízení pro příjem dat. K provedení tohoto řetězce použijte stejný certifikát od kořenové certifikační autority, který jste nahráli do IoT Hub. Použijte stejné ID zařízení s malým písmenem, které jste přiřadili identitě zařízení na portálu.

  5. Zkopírujte certifikát a klíče zařízení do libovolného umístění na zařízení pro příjem dat. 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 pro příjem dat.

    Na tyto soubory se odkazujete ve všech aplikacích v zařízení, které se připojují k IoT Hub. K přesunutí souborů certifikátů můžete použít službu, jako je Azure Key Vault , nebo funkci, jako je protokol Secure Copy .

  6. V závislosti na preferovaném jazyce si přečtěte ukázky, jak se můžou v aplikacích IoT odkazovat na certifikáty X. 509:

K dokončení stejné operace vytváření zařízení můžete použít také rozšíření IoT pro Azure CLI . V následujícím příkladu se pomocí příkazu AZ IoT Hub Device-identity vytvoří nové zařízení IoT s ověřováním CA X. 509 s podpisem a přiřadí nadřazené zařízení:

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

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

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

Po vytvoření identity zařízení IoT na portálu můžete načíst primární nebo sekundární klíč. Jeden z těchto klíčů je nutné zahrnout do připojovacího řetězce, který aplikace používá ke komunikaci s IoT Hub. Pro ověřování symetrických klíčů IoT Hub poskytuje plně vytvořený připojovací řetězec v podrobnostech o zařízení pro vaše pohodlí. Do připojovacího řetězce je třeba přidat další informace o zařízení brány.

Připojovací řetězce pro zařízení pro příjem dat 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é u centra: DeviceID={device ID}
  • Metoda ověřování, bez ohledu na certifikáty symetrického klíče nebo X. 509
    • Pokud používáte ověřování symetrického klíče, zadejte buď primární, nebo sekundární klíč: SharedAccessKey={key}
    • Pokud používáte ověřování pomocí certifikátu X. 509, zadejte příznak: x509=true
  • Zařízení brány, ke kterému se zařízení připojuje Zadejte hodnotu názvu hostitele z konfiguračního souboru zařízení IoT Edge brány: GatewayHostName={gateway hostname}

Celý připojovací řetězec se všemi dohromady vypadá takto:

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

Ani

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

Díky relaci nadřazený-podřízený můžete připojovací řetězec zjednodušit voláním brány přímo jako hostitele připojení. Například:

HostName=myGatewayDevice;DeviceId=myDownstreamDevice;SharedAccessKey=xxxyyyzzz

Tento upravený připojovací řetězec použijete v dalším článku průhledné řady bran.

Další kroky

V tomto okamžiku máte IoT Edge zařízení zaregistrované ve službě IoT Hub a nakonfigurované jako transparentní bránu. Máte i zařízení zaregistrované ve službě IoT Hub a odkazujete na jeho zařízení brány.

Dále musíte nakonfigurovat zařízení pro příjem dat, aby důvěřovalo zařízení brány a bezpečně se k němu připojilo. pokračujte na další článek v transparentním seriálu brány Připojení pro zařízení s Azure IoT Edgeou bránu.