Megosztás a következőn keresztül:


Oktatóanyag: Eszközök kiépítése szimmetrikus kulcsregisztrációs csoportokkal

Ez az oktatóanyag bemutatja, hogyan építhet ki biztonságosan több szimulált szimmetrikus kulcseszközt egyetlen IoT Hubra egy regisztrációs csoport használatával.

Az Azure IoT Hub Device Provisioning Service két típusú regisztrációt támogat az eszközök kiépítéséhez:

  • Regisztrációs csoportok: Több kapcsolódó eszköz regisztrálásához. Ez az oktatóanyag bemutatja a regisztrációs csoportokkal való kiépítést.
  • Egyéni regisztrációk: Egyetlen eszköz regisztrálására szolgál.

Az Azure IoT Hub Device Provisioning Service három hitelesítési formát támogat az eszközök kiépítéséhez:

  • X.509-tanúsítványok
  • Megbízható platformmodul (TPM)
  • Szimmetrikus kulcsok – Ez az oktatóanyag a szimmetrikus kulcsigazolást mutatja be

Előfordulhat, hogy egyes eszközök nem rendelkeznek tanúsítvánnyal, TPM-sel vagy bármely más biztonsági funkcióval, amely az eszköz biztonságos azonosítására használható. Ilyen eszközök esetén az Azure IoT Hub Device Provisioning Service (DPS) szimmetrikus kulcsigazolást tartalmaz. Szimmetrikus kulcsigazolással azonosíthat egy eszközt olyan egyedi információk alapján, mint a MAC-cím vagy egy sorozatszám.

Ebben az oktatóanyagban a következő célkitűzéseket hajtja végre:

  • Adjon meg egy egyedi regisztrációs azonosítót az egyes eszközökhöz.
  • Hozzon létre egy regisztrációs csoportot, amely szimmetrikus kulcsigazolást használ.
  • Minden eszközhöz készítsen eszközkulcsot egyedi regisztrációs azonosítójával és megosztott regisztrációs csoportkulcsával.
  • Eszközök kiépítése az eszközkulcs és a mintakód használatával az Azure IoT-eszköz SDK-jaiban.

Ez az oktatóanyag egy Windows-alapú munkaállomásra irányul. Azonban az eljárások Linux esetében is alkalmazhatóak. Linux-példa : Oktatóanyag: A geokésés kiosztása.

Feljegyzés

Ha korábban elvégezte a rövid útmutatót: Szimulált szimmetrikus kulcsú eszköz üzembe helyezése, és az Azure-erőforrások és a fejlesztési környezet még be van állítva, ebben az oktatóanyagban folytathatja a szimmetrikus kulcsregisztrációs csoport létrehozását.

Előfeltételek

  • Ha Windows fejlesztői környezetet használ, telepítse a Visual Studio 2022-t az "Asztali fejlesztés C++-val" számítási feladat engedélyezésével. A Visual Studio 2019, a Visual Studio 2017 és a Visual Studio 2015 is támogatott. Linux vagy macOS esetén lásd a fejlesztési környezet előkészítése című szakaszt az SDK dokumentációjában.

  • Telepítse a legújabb CMake buildrendszert. Ellenőrizze, hogy a CMake végrehajtható fájlját hozzáadja-e az elérési úthoz.

    Fontos

    A telepítés megkezdése előtt győződjön meg arról, hogy a Visual Studio előfeltételei (a Visual Studio és az asztali fejlesztés C++-tal) telepítve vannak a CMake számítógépen. Ha az előfeltételek telepítve vannak, és ellenőrizte a letöltött fájlt, telepítse a CMake buildelési rendszert. Vegye figyelembe azt is, hogy a CMake buildrendszer régebbi verziói nem tudják létrehozni a cikkben használt megoldásfájlt. Ügyeljen arra, hogy a CMake legújabb verzióját használja.

  • Telepítse a .NET SDK 6.0-s vagy újabb verzióját Windows-alapú gépére. A verzió ellenőrzéséhez használja az alábbi parancsot.

    dotnet --info
    
  • Telepítse a Git legújabb verzióját. Győződjön meg arról, hogy a Git hozzá van adva a parancsablakhoz elérhető környezeti változókhoz. Tekintse meg a Software Freedom Conservancy Git-ügyféleszközeit a telepíteni kívánt eszközök legújabb verziójához git , amely tartalmazza a Git Basht, a helyi Git-adattárral való interakcióhoz használható parancssori alkalmazást.

A fejlesztőkörnyezet előkészítése

Ebben a szakaszban egy fejlesztési környezetet készít elő az Azure IoT Device SDK for C létrehozásához. A mintakód az eszköz rendszerindítási sorozata során helyezi üzembe az eszközt.

  1. Egy webböngészőben nyissa meg az Azure IoT C SDK kiadási lapját.

  2. Másolja ki az Azure IoT C SDK legújabb kiadásának címkéjét, például: lts_03_2024.

  3. Nyisson meg egy Windows parancssort, és futtassa a következő parancsokat az Azure IoT Device SDK for C GitHub-adattár legújabb kiadásának klónozásához. Cserélje le <release-tag> az előző lépésben másolt címkére.

    git clone -b <release-tag> https://github.com/Azure/azure-iot-sdk-c.git
    cd azure-iot-sdk-c
    git submodule update --init
    

    A művelet végrehajtása több percet is igénybe vehet.

  4. Ha a művelet befejeződött, futtassa a következő parancsokat a azure-iot-sdk-c könyvtárból:

    mkdir cmake
    cd cmake
    
  5. A kódminta szimmetrikus kulccsal biztosítja az igazolást. Futtassa a következő parancsot az SDK azon verziójának létrehozásához, amely az eszközkiépítési ügyfelet is magában foglaló fejlesztői ügyfélplatformra vonatkozik:

    cmake -Dhsm_type_symm_key:BOOL=ON -Duse_prov_client:BOOL=ON  ..
    

    Tipp.

    Ha cmake nem találja a C++ fordítót, a fenti parancs futtatásakor buildelési hibák léphetnek fel. Ha ez történik, futtassa a parancsot a Visual Studio parancssorában.

  6. Ha a build sikeresen befejeződött, az utolsó néhány kimeneti sor az alábbi kimenethez hasonlóan néz ki:

    $ cmake -Dhsm_type_symm_key:BOOL=ON -Duse_prov_client:BOOL=ON  ..
    -- Building for: Visual Studio 16 2019
    -- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.22621.
    -- The C compiler identification is MSVC 19.29.30146.0
    -- The CXX compiler identification is MSVC 19.29.30146.0
    
    ...
    
    -- Configuring done
    -- Generating done
    -- Build files have been written to: C:/azure-iot-sdk-c/cmake
    
  1. Nyisson meg egy parancssort vagy Egy Git Bash-terminált.

  2. Klónozza az Azure IoT SDK for C# GitHub-adattárat a következő paranccsal:

    git clone https://github.com/Azure/azure-iot-sdk-csharp.git
    
  1. Nyisson meg egy parancssort vagy Egy Git Bash-terminált.

  2. Klónozza az Azure IoT SDK-t Node.js GitHub-adattárhoz az alábbi paranccsal:

    git clone https://github.com/Azure/azure-iot-sdk-node.git --recursive
    
  1. Nyisson meg egy parancssort vagy Egy Git Bash-terminált.

  2. Klónozza az Azure IoT Device SDK for Python GitHub-adattárat a következő paranccsal:

    git clone -b v2 https://github.com/Azure/azure-iot-sdk-python.git --recursive
    

    Feljegyzés

    Az oktatóanyagban használt minták az azure-iot-sdk-python-adattár v2 ágában találhatók. A Python SDK V3-a elérhető bétaverzióban. A V2-kódmintákNak a Python SDK V3-kiadásának használatára való frissítéséről az Azure IoT Device SDK for Python migrálási útmutatójában olvashat.

  1. Nyisson meg egy parancssort vagy Egy Git Bash-terminált.

  2. Klónozza az Azure IoT SDK for Java GitHub-adattárat a következő paranccsal:

    git clone https://github.com/Azure/azure-iot-sdk-java.git --recursive
    
  3. Nyissa meg a gyökérkönyvtárat azure-iot-sdk-java , és hozza létre a projektet az összes szükséges csomag letöltéséhez. Ez a lépés több percet is igénybe vehet.

    cd azure-iot-sdk-java
    mvn install -DskipTests=true
    

Szimmetrikus kulcsregisztrációs csoport létrehozása

  1. Jelentkezzen be az Azure Portalra , és keresse meg a Device Provisioning Service-példányt.

  2. A navigációs menü Beállítások szakaszában válassza a Regisztrációk kezelése lehetőséget.

  3. Válassza a Regisztrációs csoport hozzáadása lehetőséget.

  4. A Regisztrációs csoport hozzáadása lap Regisztráció + kiépítés lapján adja meg a következő információkat a regisztrációs csoport adatainak konfigurálásához:

    Mező Leírás
    Igazolás Válassza ki a szimmetrikus kulcsot az igazolási mechanizmusként.
    Szimmetrikus kulcsbeállítások Ha véletlenszerűen létrehozott kulcsokat szeretne használni, jelölje be automatikusan a Szimmetrikus kulcsok létrehozása jelölőnégyzetet. Törölje a jelet a jelölőnégyzetből, ha saját kulcsokat szeretne megadni.
    Csoport neve Adja meg az eszközcsoport nevét. A regisztrációs csoport neve egy kis- és nagybetűket nem megkülönböztető sztring (legfeljebb 128 karakter hosszú) alfanumerikus karakterekből és a speciális karakterekből: '-', '.', '_'. ':' Az utolsó karakternek alfanumerikusnak vagy kötőjelnek ('-') kell lennie.
    Kiépítés állapota Jelölje be a Regisztráció engedélyezése jelölőnégyzetet, ha azt szeretné, hogy ez a regisztrációs csoport elérhető legyen az eszközök kiépítéséhez. Törölje a jelölőnégyzet jelölését, ha le szeretné tiltani a csoportot. Ezt a beállítást később módosíthatja.
    Szabályzat újraépítése Válasszon újraépítési szabályzatot, amely tükrözi, hogy a DPS hogyan kezelje az újraépítést kérő eszközöket. További információ: Újraépítési szabályzatok

    Képernyőkép egy regisztrációs csoport hozzáadásáról a szimmetrikus kulcsigazoláshoz.

  5. Válassza a Tovább: IoT Hubs lehetőséget.

  6. A Regisztrációs csoport hozzáadása lap IoT Hubs lapján adja meg az alábbi információkat annak megállapításához, hogy a regisztrációs csoport mely IoT Hubok számára építhet ki eszközöket:

    Mező Leírás
    Cél IoT Hubok Válasszon ki egy vagy több csatolt IoT Hubot, vagy adjon hozzá egy új hivatkozást egy IoT Hubhoz. Ha többet szeretne tudni az IoT Hubok DPS-példányhoz való csatolásáról, olvassa el az IoT Hubok csatolása és kezelése című témakört.
    Foglalási szabályzat Ha egynél több csatolt IoT Hubot jelölt ki, válassza ki, hogyan szeretné az eszközöket a különböző központokhoz rendelni. A foglalási szabályzatokkal kapcsolatos további információkért tekintse meg a kiosztási szabályzatok használatát ismertető témakört.

    Ha csak egy csatolt IoT Hubot jelölt ki, javasoljuk, hogy használja az Egyenletesen súlyozott terjesztési szabályzatot.

    Az IoT Hubok új regisztrációs csoporthoz való csatlakoztatását bemutató képernyőkép.

  7. Válassza a Tovább elemet : Eszközbeállítások

  8. A Regisztrációs csoport hozzáadása lap Eszközbeállítások lapján adja meg az alábbi információkat az újonnan kiépített eszközök konfigurálásának meghatározásához:

    Mező Leírás
    IoT Edge Ellenőrizze az IoT Edge engedélyezését a kiépített eszközökön, ha a csoporton keresztül kiépített összes eszköz az Azure IoT Edge-et fogja futtatni. Törölje a jelet a jelölőnégyzetből, ha ez a csoport csak nem IoT Edge-kompatibilis eszközökre vonatkozik. A csoport összes eszköze IoT Edge-kompatibilis lesz, vagy egyik sem lehet.
    Eszközcímkék Ezzel a szövegmezővel megadhatja azokat a címkéket, amelyeket alkalmazni szeretne a kiépített eszközök ikereszközeire.
    Kívánt tulajdonságok Ezzel a szövegmezővel megadhatja azokat a kívánt tulajdonságokat, amelyeket alkalmazni szeretne a kiépített eszközök ikereszközeire.

    További információ: Eszközök ikerállapotának megismerése és használata az IoT hubon.

  9. Válassza a Tovább: Ellenőrzés és létrehozás lehetőségre.

  10. A Véleményezés + létrehozás lapon ellenőrizze az összes értéket, majd válassza a Létrehozás lehetőséget.

A regisztrációs csoport létrehozásakor a DPS létrehoz egy elsődleges kulcsot és egy másodlagos kulcsot, majd hozzáadja őket a regisztrációs bejegyzéshez. A szimmetrikus kulcsregisztrációs csoport a Beléptetési csoportok lap Csoportnév oszlopában jelenik meg.

Nyissa meg a regisztrációt, és másolja ki az elsődleges kulcs értékét. Ez a csoportkulcs.

Egyedi regisztrációs azonosító kiválasztása az eszközhöz

Az egyes eszközök azonosításához egyedi regisztrációs azonosítót kell megadni. Használhatja a MAC-címet, a sorozatszámot vagy az eszközről származó bármilyen egyedi információt.

Ebben a példában egy MAC-cím és sorozatszám kombinációját használjuk, amely a következő sztringet alkotja egy regisztrációs azonosítóhoz.

sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6

Egyedi regisztrációs azonosítók létrehozása minden eszközhöz. A regisztrációs azonosító egy kis- és nagybetűket nem megkülönböztető sztring (legfeljebb 128 karakter hosszú) alfanumerikus karakterekből és a következő speciális karakterekből: - . _ :. Az utolsó karakternek alfanumerikusnak vagy kötőjelnek (-) kell lennie.

Eszközkulcs származtatása

Eszközkulcsok létrehozásához használja a regisztrációs csoport elsődleges kulcsát az egyes eszközök regisztrációs azonosítójának HMAC-SHA256 kivonatának kiszámításához. Az eredmény ezután az egyes eszközök 64-es alapformátumára lesz konvertálva.

Figyelmeztetés

Az egyes eszközök eszközkódjának csak az adott eszköz származtatott eszközkulcsát kell tartalmaznia. Ne vegye fel a csoport elsődleges kulcsát az eszköz kódjába. A feltört csoportkulcsok veszélyeztethetik a vele hitelesített összes eszköz biztonságát.

Az Azure CLI IoT-bővítménye biztosítja az az iot dps enrollment-group compute-device-key parancsot a származtatott eszközkulcsok létrehozásához. Ez a parancs Windows- és Linux-rendszerekről is használható.

Cserélje le a --key paraméter értékét a regisztrációs csoport elsődleges kulcsára .

Cserélje le a paraméter értékét a --registration-id regisztrációs azonosítóra.

az iot dps enrollment-group compute-device-key --key <group_primary_key> --registration-id <device_registration_id>

Példa eredmény:

"Jsm0lyGpjaVYVP2g3FnmnmG9dI/9qU24wNoykUmermc="

Minden eszköz a származtatott eszközkulcsával és egyedi regisztrációs azonosítójával végzi el a szimmetrikus kulcsigazolást a regisztrációs csoporttal a kiépítés során.

Az eszközkiépítési kód előkészítése és futtatása

Ebben a szakaszban frissíti az eszköz mintakódját, hogy elküldje az eszköz rendszerindítási sorrendjét a Device Provisioning Service-példánynak. Ez a rendszerindítási sorozat az eszközt felismeri, hitelesíti és hozzárendeli egy, a Device Provisioning Service-példányhoz csatolt IoT Hubhoz.

A mintakiépítési kód a következő feladatokat hajtja végre a következő sorrendben:

  1. Az eszköz hitelesítése az Eszközkiépítési erőforrással a következő három paraméter használatával:

    • Az eszközkiépítési szolgáltatás azonosítójának hatóköre
    • Az eszköz regisztrációs azonosítója.
    • Az eszköz származtatott eszközkulcsa.
  2. Hozzárendeli az eszközt a Device Provisioning Service-példányhoz már csatolt IoT Hubhoz.

A kiépítési minta frissítése és futtatása az eszköz adataival:

  1. A Device Provisioning Service főmenüjében válassza az Áttekintés lehetőséget.

  2. Másolja ki az azonosító hatókörének értékét.

    Képernyőkép az azonosító hatókörének a DPS áttekintési panelről történő másolásáról.

  3. A Visual Studióban nyissa meg a CMake futtatásával létrehozott azure_iot_sdks.sln megoldásfájlt. A megoldásfájlnak a következő helyen kell lennie:

    
    \azure-iot-sdk-c\cmake\azure_iot_sdks.sln
    
    

    Tipp.

    Ha a fájl nem a cmake könyvtárban lett létrehozva, győződjön meg arról, hogy a CMake buildrendszer legújabb verzióját használta.

  4. A Visual Studio Megoldáskezelő ablakában lépjen a Provision_Samples mappába. Bontsa ki a prov_dev_client_sample nevű mintaprojektet. Bontsa ki a Forrásfájlok elemet, és nyissa meg a prov_dev_client_sample.c fájlt.

  5. Keresse meg az id_scope állandót, és cserélje le az értéket az Azure Portalról másolt Azonosító hatókör értékére.

    static const char* id_scope = "0ne00002193";
    
  6. Keresse meg a main() függvény definícióját ugyanebben a fájlban. Győződjön meg róla, hogy a hsm_type változó értéke SECURE_DEVICE_TYPE_SYMMETRIC_KEY, mint az alább is látható:

    SECURE_DEVICE_TYPE hsm_type;
    //hsm_type = SECURE_DEVICE_TYPE_TPM;
    //hsm_type = SECURE_DEVICE_TYPE_X509;
    hsm_type = SECURE_DEVICE_TYPE_SYMMETRIC_KEY;
    
  7. Keresse meg a prov_dev_client_sample.c fájlban a megjegyzésként megadott hívástprov_dev_set_symmetric_key_info().

    // Set the symmetric key if using they auth type
    //prov_dev_set_symmetric_key_info("<symm_registration_id>", "<symmetric_Key>");
    

    Bontsa ki a függvényhívást, és cserélje le a helyőrző értékeket (beleértve a szögletes zárójeleket is) az eszköz egyedi regisztrációs azonosítójának kiválasztása és az eszközkulcs származtatott eszközkulcsának kiválasztása elemet választva.

    // Set the symmetric key if using they auth type
    prov_dev_set_symmetric_key_info("sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6", "Jsm0lyGpjaVYVP2g3FnmnmG9dI/9qU24wNoykUmermc=");
    

    Figyelemfelhívás

    Vegye figyelembe, hogy ez a lépés az egyes eszközök rendszerképének részeként tartalmazza a származtatott eszközkulcsot, ami nem ajánlott biztonsági ajánlott eljárás. Ez az egyik oka annak, hogy a biztonság és a könnyű használat gyakran kompromisszumok. A saját igényeinek megfelelően teljes mértékben át kell tekintenie az eszközök biztonságát.

  8. Mentse a fájlt.

  9. Kattintson a jobb gombbal a prov_dev_client_sample projektre, és válassza a Beállítás indítási projektként lehetőséget.

  10. A Visual Studio menüjében válassza a Debug>Start without debugging (Hibakeresés > Indítás hibakeresés nélkül) lehetőséget a megoldás futtatásához. A projekt újraépítésére vonatkozó kérdésben válassza az Igen lehetőséget a projekt újraépítéséhez a futtatás előtt.

    Az alábbi kimenet egy példa arra, hogy az eszköz sikeresen csatlakozott az IoT Hubhoz rendelendő kiépítési szolgáltatáspéldányhoz:

    Provisioning API Version: 1.9.1
    
    Registering Device
    
    Provisioning Status: PROV_DEVICE_REG_STATUS_CONNECTED
    Provisioning Status: PROV_DEVICE_REG_STATUS_ASSIGNING
    
    Registration Information received from service: contoso-hub-2.azure-devices.net, deviceId: sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6
    Press enter key to exit:
    

A mintakiépítési kód a következő feladatokat hajtja végre:

  1. Az eszköz hitelesítése az Eszközkiépítési erőforrással a következő három paraméter használatával:

    • Az eszközkiépítési szolgáltatás azonosítójának hatóköre
    • Az eszköz regisztrációs azonosítója.
    • Az eszköz származtatott eszközkulcsa.
  2. Hozzárendeli az eszközt a Device Provisioning Service-példányhoz már csatolt IoT Hubhoz.

  3. Tesztüzenetet küld az IoT Hubnak.

A kiépítési minta frissítése és futtatása az eszköz adataival:

  1. A Device Provisioning Service főmenüjében válassza az Áttekintés lehetőséget.

  2. Másolja ki az azonosító hatókörének értékét.

    Képernyőkép az azonosító hatókörének a DPS áttekintési panelről történő másolásáról.

  3. Nyisson meg egy parancssort, és nyissa meg a SymmetricKeySample parancsot a klónozott SDK-adattárban:

    cd .\azure-iot-sdk-csharp\provisioning\device\samples\how to guides\SymmetricKeySample
    
  4. A SymmetricKeySample mappában nyissa meg a Parameters.cs egy szövegszerkesztőben. Ez a fájl a minta által hivatkozott paramétereket jeleníti meg. Ebben a cikkben csak az első három kötelező paramétert használjuk a minta futtatásakor. Tekintse át a fájlban található kódot. Nincs szükség módosításokra.

    Paraméter Kötelező Leírás
    --i vagy --IdScope Igaz A DPS-példány azonosítójának hatóköre
    --r vagy --RegistrationId Igaz Az eszköz regisztrációs azonosítója. A regisztrációs azonosító egy kis- és nagybetűket nem megkülönböztető sztring (legfeljebb 128 karakter hosszú) alfanumerikus karakterekből és a speciális karakterekből: '-', '.', '_'. ':' Az utolsó karakternek alfanumerikusnak vagy kötőjelnek ('-') kell lennie.
    --p vagy --PrimaryKey Igaz Az egyéni regisztráció elsődleges kulcsa vagy egy csoportregisztráció származtatott eszközkulcsa.
    --g vagy --GlobalDeviceEndpoint Hamis A csatlakozni kívánt eszközök globális végpontja. Alapértelmezett érték: global.azure-devices-provisioning.net
    --t vagy --TransportType Hamis Az eszközkiépítési példánysal való kommunikációhoz használandó átvitel. Alapértelmezett érték: Mqtt. A lehetséges értékek a következők: Mqtt, Mqtt_WebSocket_Only, Mqtt_Tcp_Only, Amqp, Amqp_WebSocket_OnlyAmqp_Tcp_onlyés Http1.
  5. A SymmetricKeySample mappában nyissa meg a ProvisioningDeviceClientSample.cs egy szövegszerkesztőben. Ez a fájl bemutatja, hogyan működik a SecurityProviderSymmetricKey osztály a ProvisioningDeviceClient osztálysal a szimulált szimmetrikus kulcseszköz kiépítéséhez. Tekintse át a fájlban található kódot. Nincs szükség módosításokra.

  6. Hozza létre és futtassa a mintakódot a következő paranccsal:

    dotnet run --i <id-scope> --r <registration-id> --p <primarykey>
    
  7. Az alábbi kimenethez hasonlót kell látnia. A rendszer tesztüzenetként egy "TestMessage" sztringet küld a központnak.

    D:\azure-iot-sdk-csharp\provisioning\device\samples\how to guides\SymmetricKeySample>dotnet run --i 0ne00000A0A --r sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6 --p sbDDeEzRuEuGKag+kQKV+T1QGakRtHpsERLP0yPjwR93TrpEgEh/Y07CXstfha6dhIPWvdD1nRxK5T0KGKA+nQ==
    
    Initializing the device provisioning client...
    Initialized for registration Id sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6.
    Registering with the device provisioning service...
    Registration status: Assigned.
    Device sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6 registered to contoso-hub-2.azure-devices.net.
    Creating symmetric key authentication for IoT Hub...
    Testing the provisioned device with IoT Hub...
    Sending a telemetry message...
    Finished.
    

A mintakiépítési kód a következő feladatokat hajtja végre a következő sorrendben:

  1. Az eszköz hitelesítése az Eszközkiépítési erőforrással az alábbi négy paraméter használatával:

    • PROVISIONING_HOST
    • PROVISIONING_IDSCOPE
    • PROVISIONING_REGISTRATION_ID
    • PROVISIONING_SYMMETRIC_KEY
  2. Hozzárendeli az eszközt a Device Provisioning Service-példányhoz már csatolt IoT Hubhoz.

  3. Teszttelemetriaüzenetet küld az IoT Hubnak.

A kiépítési minta frissítése és futtatása az eszköz adataival:

  1. A Device Provisioning Service főmenüjében válassza az Áttekintés lehetőséget.

  2. Másolja ki az azonosító hatókörének értékét.

    Képernyőkép az azonosító hatókörének a DPS áttekintési panelről történő másolásáról.

  3. Nyisson meg egy parancssort Node.js parancsok végrehajtásához, és lépjen a következő könyvtárba:

    cd azure-iot-sdk-node\provisioning\device\samples
    
  4. A kiépítési/eszköz-/mintamappában nyissa meg a register_symkey.js, és tekintse át a kódot.

    A minta átviteli protokollként alapértelmezés szerint MQTT lesz. Ha másik protokollt szeretne használni, fűzzön megjegyzést a következő sorhoz, és bontsa ki a megfelelő protokollhoz tartozó sort.

    var ProvisioningTransport = require('azure-iot-provisioning-device-mqtt').Mqtt;
    

    Figyelje meg azt is, hogy a mintakód egyéni hasznos adatokat állít be:

    provisioningClient.setProvisioningPayload({a: 'b'});
    

    Megjegyzést fűzhet a kódhoz, mivel ehhez az oktatóanyaghoz nincs szükség rá. Egyéni hasznos adatokat akkor használhat, ha egyéni foglalási webhook használatával rendeli hozzá az eszközt egy IoT Hubhoz. További információ: Oktatóanyag: Egyéni foglalási szabályzatok használata.

    A provisioningClient.register() metódus megkísérli az eszköz regisztrálását.

  5. A parancssorban futtassa a következő parancsokat a minta által használt környezeti változók beállításához:

    set PROVISIONING_HOST=global.azure-devices-provisioning.net
    
    set PROVISIONING_IDSCOPE=<id-scope>
    
    set PROVISIONING_REGISTRATION_ID=<registration-id>
    
    set PROVISIONING_SYMMETRIC_KEY=<derived-device-key>
    
  6. Hozza létre és futtassa a mintakódot a következő parancsokkal:

     npm install
    
    node register_symkey.js
    
  7. Most az alábbi kimenethez hasonlót kell látnia. A rendszer tesztüzenetként egy "„Helló világ!” alkalmazás" sztringet küld a központnak.

    registration succeeded
    assigned hub=contoso-hub-2.azure-devices.net
    deviceId=sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6
    payload=undefined
    Client connected
    send status: MessageEnqueued
    

A mintakiépítési kód a következő feladatokat hajtja végre a következő sorrendben:

  1. Az eszköz hitelesítése az Eszközkiépítési erőforrással az alábbi négy paraméter használatával:

    • PROVISIONING_HOST
    • PROVISIONING_IDSCOPE
    • PROVISIONING_REGISTRATION_ID
    • PROVISIONING_SYMMETRIC_KEY
  2. Hozzárendeli az eszközt a Device Provisioning Service-példányhoz már csatolt IoT Hubhoz.

  3. Tesztüzenetet küld az IoT Hubnak.

A kiépítési minta frissítése és futtatása az eszköz adataival:

  1. A Device Provisioning Service főmenüjében válassza az Áttekintés lehetőséget.

  2. Másolja ki az azonosító hatókörének értékét.

    Képernyőkép az azonosító hatókörének a DPS áttekintési panelről történő másolásáról.

  3. Nyisson meg egy parancssort, és nyissa meg azt a könyvtárat, amelyben a mintafájl (provision_symmetric_key.py) található.

    cd azure-iot-sdk-python\samples\async-hub-scenarios
    
  4. A parancssorban futtassa a következő parancsokat a minta által használt környezeti változók beállításához:

    set PROVISIONING_HOST=global.azure-devices-provisioning.net
    
    set PROVISIONING_IDSCOPE=<id-scope>
    
    set PROVISIONING_REGISTRATION_ID=<registration-id>
    
    set PROVISIONING_SYMMETRIC_KEY=<derived-device-key>
    
  5. Telepítse az azure-iot-device kódtárat az alábbi parancs futtatásával.

    pip install azure-iot-device
    
  6. Futtassa a Python-mintakódot a provision_symmetric_key.py.

    python provision_symmetric_key.py
    
  7. Most az alábbi kimenethez hasonlót kell látnia. A rendszer például tesztként elküldi a szélsebesség-telemetriai üzeneteket is a központnak.

    D:\azure-iot-sdk-python\samples\async-hub-scenarios>python provision_symmetric_key.py
    The complete registration result is
    sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6
    contoso-hub-2.azure-devices.net
    initialAssignment
    null
    Will send telemetry from the provisioned device
    sending message #1
    sending message #2
    sending message #3
    sending message #4
    sending message #5
    sending message #6
    sending message #7
    sending message #8
    sending message #9
    sending message #10
    done sending message #1
    done sending message #2
    done sending message #3
    done sending message #4
    done sending message #5
    done sending message #6
    done sending message #7
    done sending message #8
    done sending message #9
    done sending message #10
    

A mintakiépítési kód a következő feladatokat hajtja végre a következő sorrendben:

  1. Az eszköz hitelesítése az Eszközkiépítési erőforrással az alábbi négy paraméter használatával:

    • GLOBAL_ENDPOINT
    • SCOPE_ID
    • REGISTRATION_ID
    • SYMMETRIC_KEY
  2. Hozzárendeli az eszközt a Device Provisioning Service-példányhoz már csatolt IoT Hubhoz.

  3. Tesztüzenetet küld az IoT Hubnak.

A kiépítési minta frissítése és futtatása az eszköz adataival:

  1. A Device Provisioning Service főmenüjében válassza az Áttekintés lehetőséget.

  2. Másolja ki az azonosító hatókörének értékét.

    Képernyőkép az azonosító hatókörének a DPS áttekintési panelről történő másolásáról.

  3. Nyissa meg szerkesztésre a Java-eszköz mintakódját. Az eszköz mintakódjának teljes elérési útja a következő:

    azure-iot-sdk-java/provisioning/provisioning-samples/provisioning-symmetrickey-individual-sample/src/main/java/samples/com/microsoft/azure/sdk/iot/ProvisioningSymmetricKeyIndividualEnrollmentSample.java

  4. Adja meg az alábbi változók értékét a DPS-hez és az eszközregisztrációhoz:

    • Cserélje le [Your scope ID here] az Azure Portalról másolt azonosító hatókörre .
    • Cserélje le [Your Provisioning Service Global Endpoint here] a globális eszközvégpontra: global.azure-devices-provisioning.net. Ez a végpont minden DPS-példány esetében ugyanaz.
    • Cserélje le [Enter your Symmetric Key here] a Származtatott eszközkulcsban létrehozott származtatott eszközkulcsra.
    • Cserélje le [Enter your Registration ID here] az eszköz egyedi regisztrációs azonosítójának kiválasztásával kiválasztott regisztrációs azonosítóra.
    private static final String SCOPE_ID = "[Your scope ID here]";
    private static final String GLOBAL_ENDPOINT = "[Your Provisioning Service Global Endpoint here]";
    private static final String SYMMETRIC_KEY = "[Enter your Symmetric Key here]";
    private static final String REGISTRATION_ID = "[Enter your Registration ID here]";
    

    Figyelemfelhívás

    Vegye figyelembe, hogy ez a lépés az egyes eszközök rendszerképének részeként tartalmazza a származtatott eszközkulcsot, ami nem ajánlott biztonsági ajánlott eljárás. Ez az egyik oka annak, hogy a biztonság és a könnyű használat gyakran kompromisszumok. A saját igényeinek megfelelően teljes mértékben át kell tekintenie az eszközök biztonságát.

  5. Nyisson meg egy parancssort az összeállításhoz. Nyissa meg a Java SDK-adattár kiépítési mintaprojektmappáját.

    cd azure-iot-sdk-java\provisioning\provisioning-device-client-samples\provisioning-symmetrickey-individual-sample
    
  6. Hozza létre a mintát.

    mvn clean install
    
  7. Lépjen a target mappára, és hajtsa végre a létrehozott .jar fájlt. java A parancsban cserélje le a {version} helyőrzőt a számítógépen található .jar fájlnévben szereplő verzióra.

    cd target
    java -jar ./provisioning-symmetrickey-individual-sample-{version}-with-deps.jar
    
  8. Most az alábbi kimenethez hasonlót kell látnia.

    Starting...
    Beginning setup.
    WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.
    2022-10-07 18:14:48,388 DEBUG (main) [com.microsoft.azure.sdk.iot.provisioning.device.ProvisioningDeviceClient] - Initialized a ProvisioningDeviceClient instance using SDK version 2.0.2
    2022-10-07 18:14:48,390 DEBUG (main) [com.microsoft.azure.sdk.iot.provisioning.device.ProvisioningDeviceClient] - Starting provisioning thread...
    Waiting for Provisioning Service to register
    2022-10-07 18:14:48,392 INFO (global.azure-devices-provisioning.net-002edcf5-CxnPendingConnectionId-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Opening the connection to device provisioning service...
    2022-10-07 18:14:48,518 INFO (global.azure-devices-provisioning.net-002edcf5-Cxn002edcf5-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Connection to device provisioning service opened successfully, sending initial device registration message
    2022-10-07 18:14:48,521 INFO (global.azure-devices-provisioning.net-002edcf5-Cxn002edcf5-azure-iot-sdk-RegisterTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.RegisterTask] - Authenticating with device provisioning service using symmetric key
    2022-10-07 18:14:49,252 INFO (global.azure-devices-provisioning.net-002edcf5-Cxn002edcf5-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Waiting for device provisioning service to provision this device...
    2022-10-07 18:14:49,253 INFO (global.azure-devices-provisioning.net-002edcf5-Cxn002edcf5-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Current provisioning status: ASSIGNING
    2022-10-07 18:14:52,459 INFO (global.azure-devices-provisioning.net-002edcf5-Cxn002edcf5-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Device provisioning service assigned the device successfully
    IotHUb Uri : contoso-hub-2.azure-devices.net
    Device ID : sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6
    2022-10-07 18:14:58,424 INFO (main) [com.microsoft.azure.sdk.iot.device.transport.ExponentialBackoffWithJitter] - NOTE: A new instance of ExponentialBackoffWithJitter has been created with the following properties. Retry Count: 2147483647, Min Backoff Interval: 100, Max Backoff Interval: 10000, Max Time Between Retries: 100, Fast Retry Enabled: true
    2022-10-07 18:14:58,436 INFO (main) [com.microsoft.azure.sdk.iot.device.transport.ExponentialBackoffWithJitter] - NOTE: A new instance of ExponentialBackoffWithJitter has been created with the following properties. Retry Count: 2147483647, Min Backoff Interval: 100, Max Backoff Interval: 10000, Max Time Between Retries: 100, Fast Retry Enabled: true
    2022-10-07 18:14:58,440 DEBUG (main) [com.microsoft.azure.sdk.iot.device.DeviceClient] - Initialized a DeviceClient instance using SDK version 2.1.1
    2022-10-07 18:14:58,450 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.MqttIotHubConnection] - Opening MQTT connection...
    2022-10-07 18:14:58,471 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.Mqtt] - Sending MQTT CONNECT packet...
    2022-10-07 18:14:59,314 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.Mqtt] - Sent MQTT CONNECT packet was acknowledged
    2022-10-07 18:14:59,315 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.Mqtt] - Sending MQTT SUBSCRIBE packet for topic devices/sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6/messages/devicebound/#
    2022-10-07 18:14:59,378 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.Mqtt] - Sent MQTT SUBSCRIBE packet for topic devices/sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6/messages/devicebound/# was acknowledged
    2022-10-07 18:14:59,379 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.MqttIotHubConnection] - MQTT connection opened successfully
    2022-10-07 18:14:59,381 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - The connection to the IoT Hub has been established
    2022-10-07 18:14:59,383 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Updating transport status to new status CONNECTED with reason CONNECTION_OK
    2022-10-07 18:14:59,389 DEBUG (main) [com.microsoft.azure.sdk.iot.device.DeviceIO] - Starting worker threads
    2022-10-07 18:14:59,392 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Invoking connection status callbacks with new status details
    2022-10-07 18:14:59,395 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Client connection opened successfully
    2022-10-07 18:14:59,404 INFO (main) [com.microsoft.azure.sdk.iot.device.DeviceClient] - Device client opened successfully
    Sending message from device to IoT Hub...
    2022-10-07 18:14:59,408 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Message was queued to be sent later ( Message details: Correlation Id [aaaa0000-bb11-2222-33cc-444444dddddd] Message Id [2e1717be-cfcf-41a7-b1c0-59edeb8ea865] )
    Press any key to exit...
    2022-10-07 18:14:59,409 DEBUG (contoso-hub-2.azure-devices.net-sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6-c32c76d0-Cxn0e70bbf7-8476-441d-8626-c17250585ee6-azure-iot-sdk-IotHubSendTask) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Sending message ( Message details: Correlation Id [aaaa0000-bb11-2222-33cc-444444dddddd] Message Id [2e1717be-cfcf-41a7-b1c0-59edeb8ea865] )
    2022-10-07 18:14:59,777 DEBUG (MQTT Call: sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - IotHub message was acknowledged. Checking if there is record of sending this message ( Message details: Correlation Id [aaaa0000-bb11-2222-33cc-444444dddddd] Message Id [2e1717be-cfcf-41a7-b1c0-59edeb8ea865] )
    2022-10-07 18:14:59,779 DEBUG (contoso-hub-2.azure-devices.net-sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6-c32c76d0-Cxn0e70bbf7-8476-441d-8626-c17250585ee6-azure-iot-sdk-IotHubSendTask) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Invoking the callback function for sent message, IoT Hub responded to message ( Message details: Correlation Id [aaaa0000-bb11-2222-33cc-444444dddddd] Message Id [2e1717be-cfcf-41a7-b1c0-59edeb8ea865] ) with status OK
    Message received! Response status: OK
    

Eszközkiépítési regisztráció megerősítése

Ebben az oktatóanyagban a statikus konfigurációs foglalási szabályzatot használta a regisztrációs csoporton keresztül regisztráló eszközök hozzárendeléséhez ugyanahhoz az IoT Hubhoz. Az olyan foglalások esetében azonban, ahol egy eszköz több IoT Hub egyikére is kiépült, megvizsgálhatja a regisztrációs csoport regisztrációs rekordjait, hogy lássa, melyik IoT Hubra lett kiépítve az eszköz:

  1. Az Azure Portalon nyissa meg a DPS-példányt.

  2. A Beállítások menüben válassza a Regisztrációk kezelése lehetőséget.

  3. Válassza ki a regisztrációs csoportokat.

  4. Válassza ki az oktatóanyaghoz létrehozott regisztrációs csoportot.

  5. A Regisztrációs csoport részletei lapon válassza a Regisztráció állapota lehetőséget.

  6. Keresse meg az eszközazonosító oszlop eszközazonosítóját , és jegyezze fel az IoT Hubot a Hozzárendelt IoT Hub oszlopban.

    Az eszközrekord kiválasztásával további részleteket is megtekinthet, például az eszközhöz rendelt kezdeti ikerpéldányt.

Az eszköz ellenőrzése az IoT Hubon:

  1. Az Azure Portalon nyissa meg azt az IoT Hubot, amelyhez az eszköz hozzá lett rendelve.

  2. Az Eszközfelügyelet menüben válassza az Eszközök lehetőséget.

  3. Ha az eszköz kiépítése sikeresen megtörtént, az eszközazonosítónak szerepelnie kell a listában, és az Állapot beállítás engedélyezve van. Ha nem látja az eszközt, válassza a Frissítés lehetőséget.

    Az eszköz regisztrálva van az IoT Hubbal

Feljegyzés

Ha a kezdeti ikereszköz-állapotot a regisztrációs csoport alapértelmezett értékétől módosította, az eszköz lekérheti a kívánt ikerállapotot a központból, és ennek megfelelően járhat el. További információ: Eszközök ikerállapotának megismerése és használata az IoT hubon.

További eszközök kiépítése

Ha további eszközöket szeretne kiépíteni a regisztrációs csoporton keresztül, kövesse az alábbi szakaszokban leírt lépéseket:

  1. Válasszon egyedi regisztrációs azonosítót az eszközhöz.

  2. Eszközkulcs levezetése. Ahogyan korábban is tette, használja a regisztrációs csoport elsődleges kulcsát csoportkulcsként.

  3. Futtassa az eszközkiépítési kódot. Cserélje le a szükséges összetevőket az új származtatott eszközkulcsra és regisztrációs azonosítóra.

Az erőforrások eltávolítása

Ha folytatni szeretné az eszközügyfél-minta használatát és felderítését, ne törölje az oktatóanyagban létrehozott erőforrásokat. Ha nem tervezi a folytatást, az alábbi lépésekkel törölheti az oktatóanyagban létrehozott összes erőforrást.

A regisztrációs csoport törlése

A regisztrációs csoport törlése nem törli a hozzá társított regisztrációs rekordokat. Ezek az árva rekordok beleszámítanak a DPS-példány regisztrációs kvótáiba . Ezért célszerű törölni a regisztrációs csoporthoz társított összes regisztrációs rekordot, mielőtt magát a regisztrációs csoportot törölnénk.

  1. Az Azure Portalon nyissa meg a DPS-példányt.

  2. A Beállítások menüben válassza a Regisztrációk kezelése lehetőséget.

  3. Válassza a Regisztrációs csoportok lapot.

  4. Válassza ki az oktatóanyaghoz használt regisztrációs csoport nevét a részletek oldalának megnyitásához.

  5. A Regisztráció részletei lapon válassza a Regisztráció állapota lehetőséget. Ezután jelölje be az Eszközazonosító oszlopfejléc melletti jelölőnégyzetet a regisztrációs csoport összes regisztrációs rekordjának kijelöléséhez. A regisztrációs rekordok törléséhez válassza a lap tetején található Törlés lehetőséget.

  6. Lépjen vissza a Regisztrációk kezelése lapra.

  7. Jelölje be az oktatóanyaghoz használt regisztrációs csoport neve melletti jelölőnégyzetet.

  8. Az oldal tetején válassza a Törlés lehetőséget.

Eszközregisztrációk törlése az IoT Hubról

  1. Az Azure Portalon nyissa meg azt az IoT Hubot, amelyhez az eszköz hozzá lett rendelve.

  2. Válassza az Eszközök lehetőséget a navigációs menü Eszközfelügyelet szakaszában.

  3. Jelölje be az oktatóanyagban regisztrált eszközök eszközazonosítója melletti jelölőnégyzetet.

  4. Az oldal tetején válassza a Törlés lehetőséget.

Következő lépések

Ebben az oktatóanyagban több eszközt létesített egyetlen IoT Hubon egy regisztrációs csoport használatával. Ezután megtudhatja, hogyan építhet ki IoT-eszközöket több központban.