Lefelé irányuló eszköz hitelesítése az Azure IoT Hubon

A következőkre vonatkozik:IoT Edge 1.4 checkmark IoT Edge 1.4

Fontos

IoT Edge 1.4 is the supported release. If you are on an earlier release, see Update IoT Edge.

Transzparens átjáró esetén az alsóbb rétegbeli eszközöknek (más néven gyermekeszközöknek) identitásra van szükségük az IoT Hubban, mint bármely más eszközön. Ez a cikk bemutatja, hogyan hitelesíthet egy alsóbb rétegbeli eszközt az IoT Hubon, majd bemutatja, hogyan deklarálhatja az átjárókapcsolatot.

Megjegyzés:

Az alsóbb rétegbeli eszközök közvetlenül az internetre vagy átjáróeszközökre bocsátanak ki adatokat (IoT Edge-kompatibilis vagy nem). A gyermekeszköz lehet alsóbb rétegbeli eszköz vagy átjáróeszköz beágyazott topológiában.

A sikeres transzparens átjárókapcsolat beállításának három általános lépése van. Ez a cikk a második lépést ismerteti:

  1. Konfigurálja az átjáróeszközt kiszolgálóként, hogy az alsóbb rétegbeli eszközök biztonságosan csatlakozzanak hozzá. Állítsa be az átjárót az alsóbb rétegbeli eszközöktől érkező üzenetek fogadásához és a megfelelő célhelyre való átirányításához. Ezekről a lépésekről lásd : IoT Edge-eszköz konfigurálása transzparens átjáróként.
  2. Hozzon létre egy eszközidentitást az alsóbb rétegbeli eszközhöz, hogy hitelesíthesse magát az IoT Hubbal. Konfigurálja az alsóbb rétegbeli eszközt, hogy üzeneteket küldjön az átjáróeszközön keresztül.
  3. Csatlakozás az alsóbb rétegbeli eszközt az átjáróeszközre, és megkezdheti az üzenetek küldését. Ezekért a lépésekért tekintse meg Csatlakozás egy alsóbb rétegbeli eszközt egy Azure IoT Edge-átjáróhoz.

Az alsóbb rétegbeli eszközök az IoT Hubon három módszer egyikével hitelesíthetők: szimmetrikus kulcsok (más néven közös hozzáférési kulcsok), X.509 önaláírt tanúsítványok vagy X.509 hitelesítésszolgáltató által aláírt tanúsítványok. A hitelesítési lépések hasonlóak a nem IoT-Edge-eszközök IoT Hubbal való beállításához használt lépésekhez, kis eltérésekkel az átjárókapcsolat deklarálásához.

Az Azure IoT Hub Device Provisioning Service (DPS) használatával nem támogatott az alsóbb rétegbeli eszközök automatikus kiépítése.

Előfeltételek

Hajtsa végre az IoT Edge-eszköz konfigurálásának lépéseit transzparens átjáróként való működéshez.

Ha X.509-hitelesítést használ, tanúsítványokat fog létrehozni az alsóbb rétegbeli eszközhöz. Ugyanazzal a fő hitelesítésszolgáltatói tanúsítvánnyal és a tanúsítványt létrehozó szkripttel rendelkezik, amelyet az átlátszó átjáró cikkéhez használt, hogy újra használható legyen.

Ez a cikk több ponton hivatkozik az átjáró állomásnevére . Az átjáró állomásneve az IoT Edge-átjáróeszköz konfigurációs fájljának állomásnév paraméterében deklarálva van. Az alsóbb rétegbeli eszköz kapcsolati sztring hivatkozik rá. Az átjáró gazdagépnevének feloldhatónak kell lennie egy IP-címmel, akár DNS-t, akár egy gazdagépfájl-bejegyzést használva az alsóbb rétegbeli eszközön.

Eszköz regisztrálása az IoT Hubon

Válassza ki, hogyan szeretné az alsóbb rétegbeli eszközt hitelesíteni az IoT Hubbal:

  • Szimmetrikus kulcshitelesítés: Az IoT Hub létrehoz egy kulcsot, amelyet az alsóbb rétegbeli eszközön helyez el. Az eszköz hitelesítése után az IoT Hub ellenőrzi, hogy a két kulcs egyezik-e. A szimmetrikus kulcsos hitelesítés használatához nem kell további tanúsítványokat létrehoznia.

    Ez a módszer gyorsabb, ha átjárókat tesztel fejlesztési vagy tesztelési forgatókönyvben.

  • X.509 önaláírt hitelesítés: Néha ujjlenyomat-hitelesítésnek is nevezik, mert az eszköz X.509-tanúsítványából származó ujjlenyomatot az IoT Hubbal osztja meg.

    A tanúsítványhitelesítés éles környezetben az eszközökhöz ajánlott.

  • X.509 hitelesítésszolgáltató által aláírt hitelesítés: Töltse fel a legfelső szintű hitelesítésszolgáltatói tanúsítványt az IoT Hubba. Amikor az eszközök hitelesítésre mutatják be az X.509-tanúsítványukat, az IoT Hub ellenőrzi, hogy az ugyanazon legfelső szintű hitelesítésszolgáltatói tanúsítvány által aláírt megbízhatósági lánchoz tartozik-e.

    A tanúsítványhitelesítés éles környezetben az eszközökhöz ajánlott.

Tartalomkulcs-hitelesítés

Az IoT Hubbal történő hitelesítés legegyszerűbb módja a szimmetrikus kulcsos hitelesítés vagy a közös hozzáférésű kulcsos hitelesítés. Szimmetrikus kulcsos hitelesítés esetén a base64-kulcs az IoT Hub IoT-eszközazonosítójához van társítva. Ezt a kulcsot az IoT-alkalmazásokba is belefoglalhatja, hogy az eszköz megjeleníthesse azt, amikor csatlakozik az IoT Hubhoz.

Adjon hozzá egy új IoT-eszközt az IoT Hubhoz az Azure Portal, az Azure CLI vagy a Visual Studio Code IoT-bővítményének használatával. Ne feledje, hogy az alsóbb rétegbeli eszközöket az IoT Hubban normál IoT-eszközként kell azonosítani, nem IoT Edge-eszközként.

Az új eszközidentitás létrehozásakor adja meg a következő adatokat:

  • Hozzon létre egy azonosítót az eszközhöz.

  • Hitelesítési típusként válassza a szimmetrikus kulcsot .

  • Válassza a Szülőeszköz beállítása lehetőséget, és válassza ki azt az IoT Edge-átjáróeszközt, amelyen az alsóbb rétegbeli eszköz csatlakozik. Később bármikor módosíthatja a szülőt.

    Screenshot of how to create a device ID with symmetric key authorization in the Azure portal.

    Megjegyzés:

    A szülőeszköz beállítása választható lépésként a szimmetrikus kulcsú hitelesítést használó alsóbb rétegbeli eszközök esetében. Az IoT Edge 1.1.0-s verziójától kezdve azonban minden alsóbb rétegbeli eszközt hozzá kell rendelni egy szülőeszközhöz.

    Az IoT Edge hubot úgy konfigurálhatja, hogy visszatérjen az előző viselkedéshez, ha a AuthenticationMode környezeti változót a CloudAndScope értékre állítja.

Az Azure CLI IoT-bővítményével is elvégezheti ugyanezt a műveletet. Az alábbi példa az az iot hub device-identity parancsával hoz létre egy új IoT-eszközt szimmetrikus kulcsos hitelesítéssel, és hozzárendel egy szülőeszközt:

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

Tipp.

Listázhatja az eszköz tulajdonságait, beleértve az eszköz hatókörét is az iot hub device-identity list --hub-name {iothub name}.

Ezután kérje le és módosítsa a kapcsolati sztring, hogy az eszköz tudja, hogy az átjárón keresztül csatlakozik.

X.509 önaláírt hitelesítés

Az X.509 önaláírt hitelesítéshez( más néven ujjlenyomat-hitelesítéshez) létre kell hoznia az alsóbb rétegbeli eszközön elhelyezendő tanúsítványokat. Ezek a tanúsítványok egy ujjlenyomattal rendelkeznek, amelyet az IoT Hubbal oszt meg hitelesítés céljából.

  1. A ca-tanúsítvány használatával hozzon létre két (elsődleges és másodlagos) eszköztanúsítványt az alsóbb rétegbeli eszközhöz.

    Ha nem rendelkezik hitelesítésszolgáltatóval az X.509-tanúsítványok létrehozásához, az IoT Edge demo tanúsítványszkriptjeivel alsóbb rétegbeli eszköztanúsítványokat hozhat létre. Kövesse az önaláírt tanúsítványok létrehozásának lépéseit. Használja ugyanazt a fő hitelesítésszolgáltatói tanúsítványt, amely az átjáróeszköz tanúsítványait generálta.

    Ha saját tanúsítványokat hoz létre, győződjön meg arról, hogy az eszköztanúsítvány tulajdonosának neve az IoT-eszköz Azure IoT Hubban való regisztrálásakor használt eszközazonosítóra van állítva. Ez a beállítás szükséges a hitelesítéshez.

  2. Kérje le az SHA1 ujjlenyomatot (az IoT Hub felületén található ujjlenyomatot) minden tanúsítványból, amely egy 40 hexadecimális karaktersorozat. A tanúsítvány megtekintéséhez és az ujjlenyomat megkereséséhez használja az alábbi Openssl parancsot:

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

    Futtassa ezt a parancsot kétszer, egyszer az elsődleges tanúsítványhoz és egyszer a másodlagos tanúsítványhoz. Az új IoT-eszközök önaláírt X.509-tanúsítványokkal történő regisztrálásakor mindkét tanúsítványhoz ujjlenyomatot kell adnia.

  3. Lépjen az IoT Hubra az Azure Portalon, és hozzon létre egy új IoT-eszközidentitást a következő értékekkel:

    • Adja meg az eszköztanúsítványok tulajdonosnevének megfelelő eszközazonosítót .
    • Hitelesítési típusként válassza az X.509 Önaláírt elemet.
    • Illessze be az eszköz elsődleges és másodlagos tanúsítványaiból másolt hexadecimális sztringeket.
    • Válassza a Szülőeszköz beállítása lehetőséget, és válassza ki azt az IoT Edge-átjáróeszközt, amelyen az alsóbb rétegbeli eszköz csatlakozik. Később bármikor módosíthatja a szülőt.

    Screenshot that shows how to create a device ID with an X.509 self-signed authorization in the Azure portal.

  4. Másolja az elsődleges és másodlagos eszköztanúsítványokat és azok kulcsait az alsóbb rétegbeli eszköz bármely helyére. Helyezze át az átjáró-eszköztanúsítványt és az alsóbb rétegbeli eszköztanúsítványokat létrehozó megosztott legfelső szintű hitelesítésszolgáltatói tanúsítvány másolatát is.

    Ezeket a tanúsítványfájlokat az IoT Hubhoz csatlakozó alsóbb rétegbeli eszközön található alkalmazásokban fogja hivatkozni. A tanúsítványfájlok áthelyezéséhez használhat olyan szolgáltatást, mint az Azure Key Vault vagy egy olyan függvény, mint a Biztonságos másolási protokoll .

  5. Az előnyben részesített nyelvtől függően tekintse át az X.509-tanúsítványok IoT-alkalmazásokban való hivatkozásának mintáit:

Az Azure CLI IoT-bővítményével is elvégezheti ugyanazt az eszközlétrehozási műveletet. Az alábbi példa az az iot hub device-identity parancsával hoz létre egy új IoT-eszközt X.509 önaláírt hitelesítéssel, és hozzárendel egy szülőeszközt:

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}

Tipp.

Listázhatja az eszköz tulajdonságait, beleértve az eszköz hatókörét is az iot hub device-identity list --hub-name {iothub name}.

Ezután kérje le és módosítsa a kapcsolati sztring, hogy az eszköz tudja, hogy az átjárón keresztül csatlakozik.

X.509 hitelesítésszolgáltató által aláírt hitelesítés

Az X.509 hitelesítésszolgáltató (CA) által aláírt hitelesítéshez olyan legfelső szintű hitelesítésszolgáltatói tanúsítványra van szükség, amelyet az IoT Hubban regisztráltak, és amellyel tanúsítványokat írhat alá az alsóbb rétegbeli eszközhöz. Minden olyan eszköz, amely olyan tanúsítványt használ, amelyet a legfelső szintű hitelesítésszolgáltató tanúsítványa vagy annak köztes tanúsítványai adtak ki, jogosult lesz a hitelesítésre.

Ez a szakasz az IoT Hub X.509 tanúsítvány oktatóanyag-sorozatán alapul. A sorozat bevezetéséhez tekintse meg a nyilvános kulcsú titkosítás és az X.509 nyilvános kulcsú infrastruktúra ismertetése című témakört.

  1. A ca-tanúsítvány használatával hozzon létre két (elsődleges és másodlagos) eszköztanúsítványt az alsóbb rétegbeli eszközhöz.

    Ha nem rendelkezik hitelesítésszolgáltatóval az X.509-tanúsítványok létrehozásához, az IoT Edge demo tanúsítványszkriptjeivel alsóbb rétegbeli eszköztanúsítványokat hozhat létre. Kövesse a CA által aláírt tanúsítványok létrehozásának lépéseit. Használja ugyanazt a fő hitelesítésszolgáltatói tanúsítványt, amely az átjáróeszköz tanúsítványait generálta.

  2. Kövesse az Azure IoT Hub X.509-biztonság beállításánakigazolása című szakaszának utasításait. Ebben a szakaszban a következő lépéseket kell végrehajtania:

    1. Töltsön fel egy legfelső szintű hitelesítésszolgáltatói tanúsítványt. Ha a demótanúsítványokat használja, a legfelső szintű hitelesítésszolgáltató a <path>/certs/azure-iot-test-only.root.ca.cert.pem.

    2. Ellenőrizze, hogy a legfelső szintű hitelesítésszolgáltatói tanúsítvány tulajdonosa-e.

  3. Kövesse az Azure IoT Hub X.509-es biztonságának beállítása IoT Hub-szakaszában található Eszköz létrehozása című szakasz utasításait. Ebben a szakaszban a következő lépéseket kell végrehajtania:

    1. Adjon hozzá egy új eszközt. Adjon meg kisbetűs nevet az eszközazonosítónak, és válassza ki az X.509 hitelesítésszolgáltatói aláírású hitelesítési típust.

    2. Szülőeszköz beállítása. Válassza a Szülőeszköz beállítása lehetőséget, és válassza ki azt az IoT Edge-átjáróeszközt, amely biztosítja az IoT Hubhoz való kapcsolatot.

  4. Hozzon létre egy tanúsítványláncot az alsóbb rétegbeli eszközhöz. A lánc létrehozásához használja ugyanazt a legfelső szintű hitelesítésszolgáltatói tanúsítványt, amelyet az IoT Hubba töltött fel. Használja ugyanazt a kisbetűs eszközazonosítót, amelyet az eszközadentitásnak adott a portálon.

  5. Másolja az eszköztanúsítványt és a kulcsokat az alsóbb rétegbeli eszköz bármely helyére. Helyezze át az átjáró-eszköztanúsítványt és az alsóbb rétegbeli eszköztanúsítványokat létrehozó megosztott legfelső szintű hitelesítésszolgáltatói tanúsítvány másolatát is.

    Ezekre a fájlokra az IoT Hubhoz csatlakozó alsóbb rétegbeli eszközön található alkalmazásokban fog hivatkozni. A tanúsítványfájlok áthelyezéséhez használhat olyan szolgáltatást, mint az Azure Key Vault vagy egy olyan függvény, mint a Biztonságos másolási protokoll .

  6. Az előnyben részesített nyelvtől függően tekintse át az X.509-tanúsítványok IoT-alkalmazásokban való hivatkozásának mintáit:

Az Azure CLI IoT-bővítményével is elvégezheti ugyanazt az eszközlétrehozási műveletet. Az alábbi példa az az iot hub device-identity parancsával hoz létre egy új IoT-eszközt X.509 hitelesítésszolgáltató által aláírt hitelesítéssel, és hozzárendel egy szülőeszközt:

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

Tipp.

Listázhatja az eszköz tulajdonságait, beleértve az eszköz hatókörét is az iot hub device-identity list --hub-name {iothub name}.

Ezután kérje le és módosítsa a kapcsolati sztring, hogy az eszköz tudja, hogy az átjárón keresztül csatlakozik.

Kapcsolati sztring lekérése és módosítása

Miután létrehozott egy IoT-eszközidentitást a portálon, lekérheti annak elsődleges vagy másodlagos kulcsait. Ezen kulcsok egyikének szerepelnie kell a kapcsolati sztring, amelyet az alkalmazások az IoT Hubbal való kommunikációhoz használnak. A szimmetrikus kulcsos hitelesítéshez az IoT Hub biztosítja a teljes kapcsolati sztring az eszköz részleteiben az Ön kényelme érdekében. További információkat kell hozzáadnia az átjáróeszközről a kapcsolati sztring.

Csatlakozás alsóbb rétegbeli eszközökhöz a következő összetevőkre van szükség:

  • Az IoT Hub, amelyhez az eszköz csatlakozik: Hostname={iothub name}.azure-devices.net
  • A hubon regisztrált eszközazonosító: DeviceID={device ID}
  • A hitelesítési módszer, akár szimmetrikus kulcs, akár X.509-tanúsítvány
    • Szimmetrikus kulcsos hitelesítés esetén adja meg az elsődleges vagy a másodlagos kulcsot: SharedAccessKey={key}
    • X.509-tanúsítványhitelesítés használata esetén adjon meg egy jelzőt: x509=true
  • Az átjáróeszköz, amelyen az eszköz csatlakozik. Adja meg a gazdagépnév értékét az IoT Edge-átjáró eszközének konfigurációs fájljából: GatewayHostName={gateway hostname}

Összességében egy teljes kapcsolati sztring a következőképpen néz ki:

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

Vagy:

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

A szülő-gyermek kapcsolatnak köszönhetően egyszerűbbé teheti a kapcsolati sztring, ha közvetlenül a kapcsolati gazdagépként hívja meg az átjárót. Például:

HostName=myGatewayDevice;DeviceId=myDownstreamDevice;SharedAccessKey=xxxyyyzzz

Ezt a módosított kapcsolati sztring a transzparens átjárósorozat következő cikkében fogja használni.

Következő lépések

Jelenleg egy IoT Edge-eszköz regisztrálva van az IoT Hubon, és transzparens átjáróként van konfigurálva. Egy alsóbb rétegbeli eszköz is regisztrálva van az IoT Hubon, és annak átjáróeszközére mutat.

Ezután konfigurálnia kell az alsóbb rétegbeli eszközt, hogy megbízzanak az átjáróeszközben, és biztonságosan csatlakozzanak hozzá. Folytassa a transzparens átjárósorozat következő cikkével, Csatlakozás egy alsóbb rétegbeli eszközt egy Azure IoT Edge-átjáróba.