Share via


Rövid útmutató: X.509-tanúsítványt szimuláló eszköz kiépítése

Ebben a rövid útmutatóban egy szimulált eszközt hoz létre a Windows-gépen. A szimulált eszköz úgy van konfigurálva, hogy X.509-tanúsítványigazolást használjon a hitelesítéshez. Miután konfigurálta az eszközt, kiépítenie kell azt az IoT Hubon az Azure IoT Hub Device Provisioning Service használatával.

Ha nem ismeri a kiépítés folyamatát, tekintse át a kiépítés áttekintését . Emellett a folytatás előtt végezze el az IoT Hub eszközkiépítési szolgáltatás beállítása az Azure Portallal című cikk lépéseit.

Ez a rövid útmutató egy Windows-alapú munkaállomás megoldását mutatja be. Az eljárásokat azonban Linuxon is végrehajthatja. Linux-példa : Oktatóanyag: A geokésés kiosztása.

Előfeltételek

Az alábbi előfeltételek a Windows fejlesztői környezethez tartoznak. 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 Visual Studio 2022-t az "Asztali fejlesztés C++ használatával" számítási feladat engedélyezésével. A Visual Studio 2015, a Visual Studio 2017 és a Visual Studio 19 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.

Az alábbi előfeltételek a Windows fejlesztői környezethez tartoznak. 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 .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
    

Az alábbi előfeltételek a Windows fejlesztői környezethez tartoznak. 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.

Az alábbi előfeltételek a Windows fejlesztői környezethez tartoznak.

Az alábbi előfeltételek a Windows fejlesztői környezethez tartoznak. 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 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.

  • Győződjön meg arról, hogy az OpenSSL telepítve van a gépen. Windows rendszeren a Git telepítése tartalmazza az OpenSSL telepítését. Az OpenSSL-t a Git Bash-parancssorból érheti el. Az OpenSSL telepítésének ellenőrzéséhez nyisson meg egy Git Bash-parancssort, és írja be a következőt openssl version:

    Feljegyzés

    Ha nem ismeri az OpenSSL-t, és már telepítve van a Windows rendszerű gépére, javasoljuk, hogy használja az OpenSSL-t a Git Bash-parancssorból. Másik lehetőségként letöltheti a forráskódot, és létrehozhatja az OpenSSL-t. További információt az OpenSSL Letöltések oldalán talál. Vagy letöltheti az előre elkészített OpenSSL-t egy harmadik féltől. További információért tekintse meg az OpenSSL wikit. A Microsoft nem vállal garanciát a harmadik felektől letöltött csomagok érvényességére. Ha az OpenSSL létrehozása vagy letöltése mellett dönt, győződjön meg arról, hogy az OpenSSL bináris elérhető az elérési úton, és hogy a OPENSSL_CNF környezeti változó az opensl.cnf fájl elérési útjára van állítva.

  • Nyisson meg egy Windows-parancssort és egy Git Bash-parancssort is.

    A rövid útmutató lépései feltételezik, hogy Windows rendszerű gépet és a Git részeként telepített OpenSSL-telepítést használ. A Git Bash parancssorával openSSL-parancsokat és a Windows parancssort ad ki minden máshoz. Ha Linuxot használ, a Bash-rendszerhéj összes parancsát kiadhatja.

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

Ebben a szakaszban az Azure IoT C SDK létrehozásához használt fejlesztői környezetet készíti elő. A mintakód megpróbálja kiépíteni az eszközt az eszköz rendszerindítási sorozata során.

  1. Nyisson meg egy webböngészőt, és nyissa meg az Azure IoT C SDK kiadási lapját.

  2. Válassza a Lap tetején található Címkék lapot.

  3. Másolja ki az Azure IoT C SDK legújabb kiadásának címkéjét.

  4. A Windows parancssorában futtassa az alábbi 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, például: lts_01_2023.

    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.

  5. 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
    
  6. A kódminta X.509-tanúsítványt használ az X.509-hitelesítéssel történő igazoláshoz. Futtassa a következő parancsot az SDK azon verziójának létrehozásához, amely a fejlesztői platformra vonatkozik, amely tartalmazza az eszközkiépítési ügyfelet. A rendszer létrehoz egy Visual Studio-megoldást a szimulált eszközhöz a cmake címtárban.

    Az alábbi parancsban használt -Dhsm_custom_lib elérési út megadásakor ügyeljen arra, hogy a korábban létrehozott könyvtár tárának cmake abszolút elérési útját használja. A megjelenített elérési út feltételezi, hogy a C meghajtó gyökérkönyvtárában klónozta a C SDK-t. Ha másik könyvtárat használt, ennek megfelelően módosítsa az elérési utat.

    cmake -Duse_prov_client:BOOL=ON -Dhsm_custom_lib=c:/azure-iot-sdk-c/cmake/provisioning_client/samples/custom_hsm_example/Debug/custom_hsm_example.lib ..
    

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.

  1. Ha a build sikeres, az utolsó néhány kimeneti sor az alábbi kimenethez hasonlóan néz ki:

    -- Building for: Visual Studio 17 2022
    -- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.22000.
    -- The C compiler identification is MSVC 19.32.31329.0
    -- The CXX compiler identification is MSVC 19.32.31329.0
    
    ...
    
    -- Configuring done
    -- Generating done
    -- Build files have been written to: C:/azure-iot-sdk-c/cmake
    

A Windows parancssorában 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

A Windows parancssorában 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

A Windows parancssorában 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.

  1. A Windows parancssorában klónozza az Azure IoT Samples for Java GitHub-adattárat az alábbi paranccsal:

    git clone https://github.com/Azure/azure-iot-sdk-java.git --recursive
    
  2. 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.

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

Önaláírt X.509-eszköztanúsítvány létrehozása

Ebben a szakaszban az OpenSSL használatával hozhat létre egy önaláírt X.509-tanúsítványt és egy titkos kulcsot. A rendszer feltölti ezt a tanúsítványt a kiépítési szolgáltatáspéldányba, és ellenőrzi a szolgáltatás.

Figyelemfelhívás

Ebben a rövid útmutatóban az OpenSSL-vel létrehozott tanúsítványokat csak fejlesztési teszteléshez használhatja. Ne használja ezeket a tanúsítványokat éles környezetben. Ezek a tanúsítványok 30 nap után lejárnak, és tartalmazhatnak szigorúan kódolt jelszavakat, például 1234-et. Az éles környezetben való használatra alkalmas tanúsítványok beszerzéséről az Azure IoT Hub dokumentációjában található X.509 CA-tanúsítvány beszerzése című témakörben olvashat.

Hajtsa végre az ebben a szakaszban található lépéseket a Git Bash-parancssorban.

  1. A Git Bash-parancssorban lépjen egy könyvtárba, ahol létre szeretné hozni a tanúsítványokat.

  2. Futtassa az alábbi parancsot:

    winpty openssl req -outform PEM -x509 -sha256 -newkey rsa:4096 -keyout device-key.pem -out device-cert.pem -days 30 -extensions usr_cert -addext extendedKeyUsage=clientAuth -subj "//CN=my-x509-device"
    

    Fontos

    A tárgynévhez (//CN=my-x509-device) megadott további perjel csak a Gittel való sztring windowsos platformokon való feloldásához szükséges.

  3. Amikor a PEM-pass kifejezés megadására kérik: használja a pass kifejezést 1234.

  4. Amikor a rendszer kéri a hitelesítést – Írja be a PEM-pass kifejezést:, használja újra a pass kifejezést 1234 .

    Most létre kell hozni egy nyilvános kulcsú tanúsítványfájlt (device-cert.pem) és titkos kulcsfájlt (device-key.pem) abban a könyvtárban, ahol a openssl parancsot futtatta.

    A tanúsítványfájl tulajdonosi köznapi neve (CN) a következőre my-x509-devicevan állítva: . X.509-alapú regisztrációk esetén a regisztrációs azonosító a köznapi névre van állítva. A regisztrációs azonosító az alfanumerikus karakterek kis- és nagybetűket nem megkülönböztető sztringje, valamint a speciális karakterek: '-', '.', '_', ':'. Az utolsó karakternek alfanumerikusnak vagy kötőjelnek ('-') kell lennie. A köznapi névnek meg kell felelnie ennek a formátumnak. A DPS legfeljebb 128 karakter hosszú regisztrációs azonosítókat támogat; az X.509-tanúsítványban azonban a tulajdonos közös nevének maximális hossza 64 karakter. A regisztrációs azonosító ezért X.509-tanúsítványok használatakor legfeljebb 64 karakter hosszúságú lehet.

  5. A tanúsítványfájl a Base 64 kódolású. A tanúsítványfájl tulajdonosi köznapi nevének (CN) és egyéb tulajdonságainak megtekintéséhez írja be a következő parancsot:

    winpty openssl x509 -in device-cert.pem -text -noout
    
    Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            77:3e:1d:e4:7e:c8:40:14:08:c6:09:75:50:9c:1a:35:6e:19:52:e2
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: CN = my-x509-device
        Validity
            Not Before: May  5 21:41:42 2022 GMT
            Not After : Jun  4 21:41:42 2022 GMT
        Subject: CN = my-x509-device
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                RSA Public-Key: (4096 bit)
                Modulus:
                    00:d2:94:37:d6:1b:f7:43:b4:21:c6:08:1a:d6:d7:
                    e6:40:44:4e:4d:24:41:6c:3e:8c:b2:2c:b0:23:29:
                    ...
                    23:6e:58:76:45:18:03:dc:2e:9d:3f:ac:a3:5c:1f:
                    9f:66:b0:05:d5:1c:fe:69:de:a9:09:13:28:c6:85:
                    0e:cd:53
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            Netscape Comment:
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier:
                63:C0:B5:93:BF:29:F8:57:F8:F9:26:44:70:6F:9B:A4:C7:E3:75:18
            X509v3 Authority Key Identifier:
                keyid:63:C0:B5:93:BF:29:F8:57:F8:F9:26:44:70:6F:9B:A4:C7:E3:75:18
    
            X509v3 Extended Key Usage:
                TLS Web Client Authentication
    Signature Algorithm: sha256WithRSAEncryption
         82:8a:98:f8:47:00:85:be:21:15:64:b9:22:b0:13:cc:9e:9a:
         ed:f5:93:b9:4b:57:0f:79:85:9d:89:47:69:95:65:5e:b3:b1:
         ...
         cc:b2:20:9a:b7:f2:5e:6b:81:a1:04:93:e9:2b:92:62:e0:1c:
         ac:d2:49:b9:36:d2:b0:21
    
  1. A mintakódhoz nem titkosított titkos kulcs szükséges. Futtassa a következő parancsot egy titkosítatlan titkos kulcs létrehozásához:

    winpty openssl rsa -in device-key.pem -out unencrypted-device-key.pem
    
  2. Amikor a device-key.pem: kifejezés megadására kérik, használja ugyanazt a pass kifejezést, amelyet korábban is használt. 1234

Tartsa nyitva a Git Bash-parancssort. A rövid útmutató későbbi részében szüksége lesz rá.

A C#-mintakód x.509-tanúsítványok használatára van beállítva, amelyek jelszóval védett PKCS#12 formátumú fájlban (certificate.pfx) vannak tárolva. A rövid útmutató későbbi részében még szüksége lesz az imént létrehozott PEM formátumú nyilvános kulcsú tanúsítványfájlra (device-cert.pem) egy egyéni regisztrációs bejegyzés létrehozásához.

  1. A minta által várt PKCS12 formátumú fájl létrehozásához írja be a következő parancsot:

    winpty openssl pkcs12 -inkey device-key.pem -in device-cert.pem -export -out certificate.pfx
    
  2. Amikor a device-key.pem: kifejezés megadására kérik, használja ugyanazt a pass kifejezést, amelyet korábban is használt. 1234

  3. Amikor a rendszer kéri az exportálási jelszó megadását : használja a jelszót 1234.

  4. Amikor a rendszer kéri az Ellenőrzés – Adja meg az exportálási jelszót:, használja újra a jelszót 1234 .

    Most létre kell hozni egy PKCS12 formátumú tanúsítványfájlt (certificate.pfx) abban a könyvtárban, amelyben a openssl parancsot futtatta.

  5. Másolja a PKCS12 formátumú tanúsítványfájlt az X.509-eszközkiépítési minta projektkönyvtárába. A megadott elérési út a mintaadattár letöltési helyéhez viszonyítva van.

    cp certificate.pfx ./azure-iot-sdk-csharp/provisioning/device/samples/"Getting Started"/X509Sample
    

A rövid útmutató további részeihez nincs szükség a Git Bash-parancssorra. Ha azonban problémákat tapasztal a későbbi lépések során, érdemes lehet nyitva tartania a tanúsítvány ellenőrzéséhez.

  1. A mintakódhoz nem titkosított titkos kulcs szükséges. Futtassa a következő parancsot egy titkosítatlan titkos kulcs létrehozásához:

    winpty openssl rsa -in device-key.pem -out unencrypted-device-key.pem
    
  2. Amikor a device-key.pem: kifejezés megadására kérik, használja ugyanazt a pass kifejezést, amelyet korábban is használt. 1234

  3. Másolja az eszköztanúsítványt és a titkosítatlan titkos kulcsot az X.509-eszközkiépítési minta projektkönyvtárába. A megadott elérési út az SDK letöltési helyéhez képest van megadva.

    cp device-cert.pem ./azure-iot-sdk-node/provisioning/device/samples
    cp unencrypted-device-key.pem ./azure-iot-sdk-node/provisioning/device/samples
    

A rövid útmutató további részeihez nincs szükség a Git Bash-parancssorra. Ha azonban problémákat tapasztal a későbbi lépések során, érdemes lehet nyitva tartania a tanúsítvány ellenőrzéséhez.

  1. Másolja az eszköztanúsítványt és a titkos kulcsot az X.509-eszközkiépítési minta projektkönyvtárába. A megadott elérési út az SDK letöltési helyéhez képest van megadva.

    cp device-cert.pem ./azure-iot-sdk-python/samples/async-hub-scenarios
    cp device-key.pem ./azure-iot-sdk-python/samples/async-hub-scenarios
    

A rövid útmutató további részeihez nincs szükség a Git Bash-parancssorra. Ha azonban problémákat tapasztal a későbbi lépések során, érdemes lehet nyitva tartania a tanúsítvány ellenőrzéséhez.

  1. A Java-mintakódhoz nem titkosított titkos kulcs szükséges. Futtassa a következő parancsot egy titkosítatlan titkos kulcs létrehozásához:

    winpty openssl pkey -in device-key.pem -out unencrypted-device-key.pem
    
  2. Amikor a device-key.pem: kifejezés megadására kérik, használja ugyanazt a pass kifejezést, amelyet korábban is használt. 1234

Tartsa nyitva a Git Bash-parancssort. A rövid útmutató későbbi részében szüksége lesz rá.

Eszközregisztráció létrehozása

Az Azure IoT Device Provisioning Service kétféle típusú regisztrációt támogat:

Ez a cikk bemutatja, hogy egy IoT Hubon kiépíteni kívánt eszköz egyéni regisztrációja.

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

  2. A navigációs menü Gépház szakaszában válassza a Regisztrációkkezelése lehetőséget.

  3. Válassza az Egyéni regisztrációk lapot, majd az Egyéni regisztráció hozzáadása lehetőséget.

    Képernyőkép az Egyéni regisztráció hozzáadása lehetőségről.

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

    Mező Leírás
    Igazolás Az igazolási mechanizmusként válassza az X.509-ügyféltanúsítványokat.
    X.509-tanúsítványbeállítások Töltsön fel egy vagy két tanúsítványt, amelyekkel ellenőrizheti az eszközt a regisztrációhoz.
    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ó elérhető legyen az eszköz kiépítéséhez. Törölje a jelölőnégyzet jelölését, ha le szeretné tiltani a regisztrációt. 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.
  5. Válassza a Tovább: IoT Hubs lehetőséget.

  6. A Regisztráció 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ó mely IoT Hubokon helyezhet üzembe 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.
  7. Válassza a Tovább elemet : Eszközbeállítások

  8. A Regisztráció 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
    Eszközazonosító Adjon meg egy eszközazonosítót, amely hozzá lesz rendelve a kiépített eszközhöz az IoT Hubban. Ha nem ad meg eszközazonosítót, a rendszer a regisztrációs azonosítót fogja használni.
    IoT Edge Ellenőrizze az IoT Edge engedélyezését a kiépített eszközökön, ha a kiépített eszköz az Azure IoT Edge-et fogja futtatni. Törölje a jelölőnégyzet jelölését, ha ez a regisztráció nem IoT Edge-kompatibilis eszközhöz készült.
    Eszközcímkék Ezzel a szövegmezővel megadhatja azokat a címkéket, amelyeket alkalmazni szeretne a kiépített eszköz ikereszközére.
    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 ikereszközére.

    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.

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

Ebben a szakaszban frissíti a mintakódot, 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 és hozzárendeli a DPS-példányhoz csatolt IoT Hubhoz.

Ebben a szakaszban a Git Bash-parancssort és a Visual Studio IDE-t használja.

A kiépítési eszköz kódjának konfigurálása

Ebben a szakaszban frissíti a mintakódot a Device Provisioning Service-példány adataival.

  1. Az Azure Portalon válassza az Eszközkiépítési szolgáltatás Áttekintés lapját.

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

    Képernyőkép az Azonosító hatóköréről az Azure Portalon.

  3. Indítsa el a Visual Studiót, és nyissa meg az cmake azure-iot-sdk-c git-adattár gyökerében létrehozott könyvtárban létrehozott új megoldásfájlt. A megoldásfájl neve azure_iot_sdks.sln.

  4. A Visual Studióhoz készült Megoldáskezelő keresse meg Provision_Samples prov_dev_client_sample >> Forrásfájlokat, é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 a 2. lépésben másolt azonosító hatókör értékére.

    static const char* id_scope = "0ne00000A0A";
    
  6. Keresse meg a main() függvény definícióját ugyanebben a fájlban. Győződjön meg arról, hogy a hsm_type változó a következőre SECURE_DEVICE_TYPE_X509van állítva: .

    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. Mentse a módosításokat.

  8. 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.

Az egyéni HSM-csonkkód konfigurálása

A tényleges biztonságos hardveralapú tárolóval való interakció jellemzői a hardvertől függően változnak. Ennek eredményeképpen a szimulált eszköz által ebben a rövid útmutatóban használt tanúsítvány és titkos kulcs az egyéni hardveres biztonsági modul (HSM) csonkkódjában van kódolva.

Az egyéni HSM-csonkkód frissítése az eszköz identitásának szimulálásához az azonosítóval my-x509-device:

  1. A Visual Studióhoz készült Megoldáskezelő nyissa meg Provision_Samples custom_hsm_example >> Forrásfájlokat, és nyissa meg a custom_hsm_example.c fájlt.

  2. Frissítse a sztringállandó sztringértékét COMMON_NAME az eszköztanúsítvány létrehozásakor használt köznapi névvel. my-x509-device

    static const char* const COMMON_NAME = "my-x509-device";
    
  3. Frissítse az állandó sztring sztringértékét CERTIFICATE a korábban létrehozott eszköztanúsítvány, a device-cert.pem használatával.

    A mintában szereplő tanúsítványszöveg szintaxisának az alábbi mintát kell követnie, és nincs szükség további szóközökre vagy a Visual Studio által végzett elemzésekre.

    static const char* const CERTIFICATE = "-----BEGIN CERTIFICATE-----\n"
    "MIIFOjCCAyKgAwIBAgIJAPzMa6s7mj7+MA0GCSqGSIb3DQEBCwUAMCoxKDAmBgNV\n"
        ...
    "MDMwWhcNMjAxMTIyMjEzMDMwWjAqMSgwJgYDVQQDDB9BenVyZSBJb1QgSHViIENB\n"
    "-----END CERTIFICATE-----";        
    

    A sztringérték manuális frissítése hibát okozhat. A megfelelő szintaxis létrehozásához másolja és illessze be a következő parancsot a Git Bash-parancssorba, majd nyomja le az ENTER billentyűt. Ez a parancs létrehozza a sztringállandó CERTIFICATE érték szintaxisát, és beírja a kimenetbe.

    sed -e 's/^/"/;$ !s/$/""\\n"/;$ s/$/"/' device-cert.pem
    

    Másolja és illessze be a kimeneti tanúsítvány szövegét az állandó értékhez.

  4. Frissítse az állandó sztringértékét PRIVATE_KEY az eszköztanúsítvány titkosítatlan titkos kulcsával( unencrypted-device-key.pem).

    A titkos kulcs szövegének szintaxisának az alábbi mintát kell követnie további szóközök és a Visual Studio által végzett elemzés nélkül.

    static const char* const PRIVATE_KEY = "-----BEGIN RSA PRIVATE KEY-----\n"
    "MIIJJwIBAAKCAgEAtjvKQjIhp0EE1PoADL1rfF/W6v4vlAzOSifKSQsaPeebqg8U\n"
        ...
    "X7fi9OZ26QpnkS5QjjPTYI/wwn0J9YAwNfKSlNeXTJDfJ+KpjXBcvaLxeBQbQhij\n"
    "-----END RSA PRIVATE KEY-----";
    

    A sztringérték manuális frissítése hibát okozhat. A megfelelő szintaxis létrehozásához másolja és illessze be a következő parancsot a Git Bash-parancssorba, majd nyomja le az ENTER billentyűt. Ez a parancs létrehozza a sztringállandó PRIVATE_KEY érték szintaxisát, és beírja a kimenetbe.

    sed -e 's/^/"/;$ !s/$/""\\n"/;$ s/$/"/' unencrypted-device-key.pem
    

    Másolja és illessze be a kimeneti titkos kulcs szövegét az állandó értékhez.

  5. Mentse a módosításokat.

  6. Kattintson a jobb gombbal a custom_hsm_-_example projektre, és válassza a Build lehetőséget.

    Fontos

    A custom_hsm_example projektet a következő szakaszban található megoldás létrehozása előtt kell elkészítenie.

Minta futtatása

  1. 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. Ha a rendszer a projekt újraépítését kéri, a futtatás előtt válassza az Igen lehetőséget a projekt újraépítéséhez.

    Az alábbi kimenet egy példa a szimulált eszköz my-x509-device sikeres indítására és a kiépítési szolgáltatáshoz való csatlakozásra. Az eszköz egy IoT Hubhoz van rendelve, és regisztrálva van:

    Provisioning API Version: 1.8.0
    
    Registering Device
    
    Provisioning Status: PROV_DEVICE_REG_STATUS_CONNECTED
    Provisioning Status: PROV_DEVICE_REG_STATUS_ASSIGNING
    
    Registration Information received from service: contoso-iot-hub-2.azure-devices.net, deviceId: my-x509-device
    Press enter key to exit:
    

Ebben a szakaszban a Windows parancssorát használja.

  1. Az Azure Portalon válassza az Eszközkiépítési szolgáltatás Áttekintés lapját.

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

    Képernyőkép az Azonosító hatóköréről az Azure Portalon.

  3. A Windows parancssorában váltson az X509Sample könyvtárra. Ez a könyvtár az .\azure-iot-sdk-csharp\provisioning\device\samples\getting started\X509Sample könyvtárban található azon a könyvtáron kívül, ahol klónozta a mintákat a számítógépen.

  4. Adja meg a következő parancsot az X.509-es eszközkiépítési minta létrehozásához és futtatásához (cserélje le az <IDScope> értéket az előző szakaszban másolt azonosító hatókörére). A tanúsítványfájl alapértelmezés szerint ./certificate.pfx , és kéri a .pfx jelszót.

    dotnet run -- -s <IDScope>
    

    Ha paraméterként szeretné átadni a tanúsítványt és a jelszót, az alábbi formátumot használhatja.

    Feljegyzés

    Az alkalmazás futtatása során további paraméterek is átadhatók a TransportType (-t) és a GlobalDeviceEndpoint (-g) módosításához.

    dotnet run -- -s 0ne00000A0A -c certificate.pfx -p 1234
    
  5. Az eszköz a DPS-hez csatlakozik, és egy IoT Hubhoz van rendelve. Ezután az eszköz telemetriai üzenetet küld az IoT Hubnak.

    Loading the certificate...
    Enter the PFX password for certificate.pfx:
    ****
    Found certificate: A33DB11B8883DEE5B1690ACFEAAB69E8E928080B CN=my-x509-device; PrivateKey: True
    Using certificate A33DB11B8883DEE5B1690ACFEAAB69E8E928080B CN=my-x509-device
    Initializing the device provisioning client...
    Initialized for registration Id my-x509-device.
    Registering with the device provisioning service...
    Registration status: Assigned.
    Device my-x509-device registered to MyExampleHub.azure-devices.net.
    Creating X509 authentication for IoT Hub...
    Testing the provisioned device with IoT Hub...
    Sending a telemetry message...
    Finished.
    

Ebben a szakaszban a Windows parancssorát használja.

  1. Az Azure Portalon válassza az Eszközkiépítési szolgáltatás Áttekintés lapját.

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

    Képernyőkép az Azonosító hatóköréről az Azure Portalon.

  3. A Windows parancssorában nyissa meg a mintakönyvtárat, és telepítse a minta által igényelt csomagokat. A megjelenített elérési út az SDK klónozási helyéhez viszonyítva jelenik meg.

    cd .\azure-iot-sdk-node\provisioning\device\samples
    npm install
    

    A minta öt környezeti változót használ egy IoT-eszköz hitelesítéséhez és üzembe helyezéséhez a DPS használatával. Ezek a környezeti változók a következők:

    Változó neve Leírás
    PROVISIONING_HOST A DPS-példányhoz való csatlakozáshoz használandó végpont. Ebben a rövid útmutatóban használja a globális végpontot. global.azure-devices-provisioning.net
    PROVISIONING_IDSCOPE A DPS-példány azonosítójának hatóköre.
    PROVISIONING_REGISTRATION_ID Az eszköz regisztrációs azonosítója. Meg kell egyeznie az eszköztanúsítvány tulajdonosának általános nevével.
    CERTIFICATE_FILE Az eszköztanúsítvány-fájl elérési útja.
    KEY_FILE Az eszköz titkos kulcsfájljának elérési útja.
  4. Környezeti változók hozzáadása a globális eszközvégponthoz és az azonosító hatóköréhez. Cserélje le <id-scope> a 2. lépésben másolt értékre.

    set PROVISIONING_HOST=global.azure-devices-provisioning.net
    set PROVISIONING_IDSCOPE=<id-scope>
    
  5. Állítsa be az eszközregisztrációs azonosító környezeti változóját. Az IoT-eszköz regisztrációs azonosítójának meg kell egyeznie az eszköztanúsítvány tulajdonosának köznapi nevével. Ha követte az ebben a rövid útmutatóban leírt lépéseket egy önaláírt teszttanúsítvány létrehozásához, my-x509-device az az eszköz tulajdonosának neve és regisztrációs azonosítója is.

    set PROVISIONING_REGISTRATION_ID=my-x509-device
    
  6. Állítsa be az eszköztanúsítvány és a (titkosítatlan) eszköz titkos kulcsfájljainak környezeti változóit.

    set CERTIFICATE_FILE=.\device-cert.pem
    set KEY_FILE=.\unencrypted-device-key.pem
    
  7. Futtassa a mintát, és ellenőrizze, hogy az eszköz üzembe helyezése sikeresen megtörtént-e.

    node register_x509.js
    

    A következő példához hasonló kimenetnek kell megjelennie:

    registration succeeded
    assigned hub=contoso-hub-2.azure-devices.net
    deviceId=my-x509-device
    Client connected
    send status: MessageEnqueued
    

Ebben a szakaszban a Windows parancssorát használja.

  1. Az Azure Portalon válassza az Eszközkiépítési szolgáltatás Áttekintés lapját.

  2. Másolja ki az azonosító hatókörét és a globális eszközvégpont értékeit.

    Képernyőkép az Azonosító hatóköréről és a globális eszközvégpontról az Azure Portalon.

  3. A Windows parancssorában nyissa meg a provision_x509.py minta könyvtárát. A megjelenített elérési út az SDK klónozási helyéhez viszonyítva jelenik meg.

    cd ./azure-iot-sdk-python/samples/async-hub-scenarios
    

    Ez a minta hat környezeti változót használ egy IoT-eszköz hitelesítésére és üzembe helyezésére a DPS használatával. Ezek a környezeti változók a következők:

    Változó neve Leírás
    PROVISIONING_HOST A DPS-példányhoz való csatlakozáshoz használt globális végpont.
    PROVISIONING_IDSCOPE A DPS-példány azonosítójának hatóköre.
    DPS_X509_REGISTRATION_ID Az eszköz regisztrációs azonosítója. Meg kell egyeznie az eszköztanúsítvány tulajdonosának nevével is.
    X509_CERT_FILE Az eszköztanúsítvány-fájl elérési útja.
    X509_KEY_FILE Az eszköztanúsítvány titkos kulcsfájljának elérési útja.
    PASS_PHRASE A tanúsítvány és a titkos kulcsfájl (1234) titkosításához használt pass kifejezés.
  4. Adja hozzá a környezeti változókat a globális eszközvégponthoz és az azonosító hatóköréhez.

    set PROVISIONING_HOST=global.azure-devices-provisioning.net
    set PROVISIONING_IDSCOPE=<ID scope for your DPS resource>
    
  5. Állítsa be a regisztrációs azonosító környezeti változóját. Az IoT-eszköz regisztrációs azonosítójának meg kell egyeznie az eszköztanúsítvány tulajdonosának nevével. Ha követte az ebben a rövid útmutatóban leírt lépéseket egy önaláírt teszttanúsítvány létrehozásához, my-x509-device az az eszköz tulajdonosának neve és regisztrációs azonosítója is.

    set DPS_X509_REGISTRATION_ID=my-x509-device
    
  6. Állítsa be a tanúsítványfájl, a titkos kulcsfájl és a pass kifejezés környezeti változóit.

    set X509_CERT_FILE=./device-cert.pem
    set X509_KEY_FILE=./device-key.pem
    set PASS_PHRASE=1234
    
  7. Tekintse át a provision_x509.py kódját. Ha nem a Python 3.7-es vagy újabb verzióját használja, végezze el az itt említett kódmódosítást a módosítások cseréjéhez asyncio.run(main()) és mentéséhez.

  8. Futtassa a mintát. A minta a DPS-hez csatlakozik, amely az eszközt egy IoT Hubra helyezi. Az eszköz üzembe helyezése után a minta tesztüzeneteket küld az IoT Hubnak.

    $ python azure-iot-sdk-python/samples/async-hub-scenarios/provision_x509.py
    RegistrationStage(RequestAndResponseOperation): Op will transition into polling after interval 2.  Setting timer.
    The complete registration result is
    my-x509-device
    TestHub12345.azure-devices.net
    initialAssignment
    null
    Will send telemetry from the provisioned device
    sending message #4
    sending message #7
    sending message #2
    sending message #8
    sending message #5
    sending message #9
    sending message #1
    sending message #6
    sending message #10
    sending message #3
    done sending message #4
    done sending message #7
    done sending message #2
    done sending message #8
    done sending message #5
    done sending message #9
    done sending message #1
    done sending message #6
    done sending message #10
    done sending message #3
    

Ebben a szakaszban a Windows parancssort és a Git Bash-parancssort is használhatja.

  1. Az Azure Portalon válassza az Eszközkiépítési szolgáltatás Áttekintés lapját.

  2. Másolja ki az azonosító hatókörét és a globális eszközvégpont értékeit.

    Képernyőkép az Azonosító hatóköréről és a globális eszközvégpontról az Azure Portalon.

  3. A Windows parancssorában lépjen a mintaprojekt mappájába. A megjelenített elérési út az SDK klónozási helyéhez viszonyítva

    cd .\azure-iot-sdk-java\provisioning\provisioning-device-client-samples\provisioning-X509-sample
    
  4. Adja meg a kiépítési szolgáltatást és az X.509-identitás adatait a mintakódban. Ezeket az információkat a rendszer a szimulált eszköz igazolása során, az eszközregisztráció előtt használja fel.

    1. Nyissa meg a fájlt .\src\main\java\samples\com\microsoft\azure\sdk\iot\ProvisioningX509Sample.java a kedvenc szerkesztőjében.

    2. Frissítse a következő értékeket a korábban másolt azonosító hatókörével és a Provisioning Service globális végpontjával .

      private static final String idScope = "[Your ID scope here]";
      private static final String globalEndpoint = "[Your Provisioning Service Global Endpoint here]";
      private static final ProvisioningDeviceClientTransportProtocol PROVISIONING_DEVICE_CLIENT_TRANSPORT_PROTOCOL = ProvisioningDeviceClientTransportProtocol.HTTPS;
      
      
    3. Frissítse az állandó sztring értékét leafPublicPem a tanúsítvány (device-cert.pem) értékével.

      A tanúsítvány szövegszintaxisának az alábbi mintát kell követnie további szóközök és karakterek nélkül.

      private static final String leafPublicPem = "-----BEGIN CERTIFICATE-----\n" +
      "MIIFOjCCAyKgAwIBAgIJAPzMa6s7mj7+MA0GCSqGSIb3DQEBCwUAMCoxKDAmBgNV\n" +
          ...
      "MDMwWhcNMjAxMTIyMjEzMDMwWjAqMSgwJgYDVQQDDB9BenVyZSBJb1QgSHViIENB\n" +
      "-----END CERTIFICATE-----";        
      

      A sztringérték manuális frissítése hibát okozhat. A megfelelő szintaxis létrehozásához másolja és illessze be a következő parancsot a Git Bash-parancssorba, majd nyomja le az ENTER billentyűt. Ez a parancs létrehozza a sztringállandó leafPublicPem érték szintaxisát, és beírja a kimenetbe.

      sed 's/^/"/;$ !s/$/\\n" +/;$ s/$/"/' device-cert.pem
      

      Másolja és illessze be a kimeneti tanúsítvány szövegét az állandó értékhez.

    4. Frissítse az állandó sztringértékét leafPrivateKey az eszköztanúsítvány titkosítatlan titkos kulcsával( unencrypted-device-key.pem).

      A titkos kulcs szövegének szintaxisának az alábbi mintát kell követnie további szóközök és karakterek nélkül.

      private static final String leafPrivateKey = "-----BEGIN PRIVATE KEY-----\n" +
      "MIIJJwIBAAKCAgEAtjvKQjIhp0EE1PoADL1rfF/W6v4vlAzOSifKSQsaPeebqg8U\n" +
          ...
      "X7fi9OZ26QpnkS5QjjPTYI/wwn0J9YAwNfKSlNeXTJDfJ+KpjXBcvaLxeBQbQhij\n" +
      "-----END PRIVATE KEY-----";
      

      A sztringérték manuális frissítése hibát okozhat. A megfelelő szintaxis létrehozásához másolja és illessze be a következő parancsot a Git Bash-parancssorba, majd nyomja le az ENTER billentyűt. Ez a parancs létrehozza a sztringállandó leafPrivateKey érték szintaxisát, és beírja a kimenetbe.

      sed 's/^/"/;$ !s/$/\\n" +/;$ s/$/"/' unencrypted-device-key.pem
      

      Másolja és illessze be a kimeneti titkos kulcs szövegét az állandó értékhez.

    5. Mentse a módosításokat.

  5. Hozza létre a mintát, majd lépjen a target mappába.

    mvn clean install
    cd target
    
  6. A build kimenete .jar fájlt a target mappában a következő fájlformátummal: provisioning-x509-sample-{version}-with-deps.jar; például: provisioning-x509-sample-1.8.1-with-deps.jar. Hajtsa végre a .jar fájlt. Előfordulhat, hogy a következő parancsban le kell cserélnie a verziót.

    java -jar ./provisioning-x509-sample-1.8.1-with-deps.jar
    

    A minta a DPS-hez csatlakozik, amely az eszközt egy IoT Hubra helyezi. Az eszköz üzembe helyezése után a minta tesztüzeneteket küld az IoT Hubnak.

    Starting...
    Beginning setup.
    WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.
    2022-05-11 09:42:05,025 DEBUG (main) [com.microsoft.azure.sdk.iot.provisioning.device.ProvisioningDeviceClient] - Initialized a ProvisioningDeviceClient instance using SDK version 2.0.0
    2022-05-11 09:42:05,027 DEBUG (main) [com.microsoft.azure.sdk.iot.provisioning.device.ProvisioningDeviceClient] - Starting provisioning thread...
    Waiting for Provisioning Service to register
    2022-05-11 09:42:05,030 INFO (global.azure-devices-provisioning.net-6255a8ba-CxnPendingConnectionId-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Opening the connection to device provisioning service...
    2022-05-11 09:42:05,252 INFO (global.azure-devices-provisioning.net-6255a8ba-Cxn6255a8ba-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-05-11 09:42:05,286 INFO (global.azure-devices-provisioning.net-6255a8ba-Cxn6255a8ba-azure-iot-sdk-RegisterTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.RegisterTask] - Authenticating with device provisioning service using x509 certificates
    2022-05-11 09:42:06,083 INFO (global.azure-devices-provisioning.net-6255a8ba-Cxn6255a8ba-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Waiting for device provisioning service to provision this device...
    2022-05-11 09:42:06,083 INFO (global.azure-devices-provisioning.net-6255a8ba-Cxn6255a8ba-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Current provisioning status: ASSIGNING
    Waiting for Provisioning Service to register
    2022-05-11 09:42:15,685 INFO (global.azure-devices-provisioning.net-6255a8ba-Cxn6255a8ba-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Device provisioning service assigned the device successfully
    IotHUb Uri : MyExampleHub.azure-devices.net
    Device ID : java-device-01
    2022-05-11 09:42:25,057 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-05-11 09:42:25,080 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-05-11 09:42:25,087 DEBUG (main) [com.microsoft.azure.sdk.iot.device.DeviceClient] - Initialized a DeviceClient instance using SDK version 2.0.3
    2022-05-11 09:42:25,129 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.MqttIotHubConnection] - Opening MQTT connection...
    2022-05-11 09:42:25,150 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.Mqtt] - Sending MQTT CONNECT packet...
    2022-05-11 09:42:25,982 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.Mqtt] - Sent MQTT CONNECT packet was acknowledged
    2022-05-11 09:42:25,983 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.Mqtt] - Sending MQTT SUBSCRIBE packet for topic devices/java-device-01/messages/devicebound/#
    2022-05-11 09:42:26,068 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.Mqtt] - Sent MQTT SUBSCRIBE packet for topic devices/java-device-01/messages/devicebound/# was acknowledged
    2022-05-11 09:42:26,068 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.MqttIotHubConnection] - MQTT connection opened successfully
    2022-05-11 09:42:26,070 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - The connection to the IoT Hub has been established
    2022-05-11 09:42:26,071 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Updating transport status to new status CONNECTED with reason CONNECTION_OK
    2022-05-11 09:42:26,071 DEBUG (main) [com.microsoft.azure.sdk.iot.device.DeviceIO] - Starting worker threads
    2022-05-11 09:42:26,073 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Invoking connection status callbacks with new status details
    2022-05-11 09:42:26,074 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Client connection opened successfully
    2022-05-11 09:42:26,075 INFO (main) [com.microsoft.azure.sdk.iot.device.DeviceClient] - Device client opened successfully
    Sending message from device to IoT Hub...
    2022-05-11 09:42:26,077 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Message was queued to be sent later ( Message details: Correlation Id [54d9c6b5-3da9-49fe-9343-caa6864f9a02] Message Id [28069a3d-f6be-4274-a48b-1ee539524eeb] )
    Press any key to exit...
    2022-05-11 09:42:26,079 DEBUG (MyExampleHub.azure-devices.net-java-device-01-ee6c362d-Cxn7a1fb819-e46d-4658-9b03-ca50c88c0440-azure-iot-sdk-IotHubSendTask) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Sending message ( Message details: Correlation Id [54d9c6b5-3da9-49fe-9343-caa6864f9a02] Message Id [28069a3d-f6be-4274-a48b-1ee539524eeb] )
    2022-05-11 09:42:26,422 DEBUG (MQTT Call: java-device-01) [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 [54d9c6b5-3da9-49fe-9343-caa6864f9a02] Message Id [28069a3d-f6be-4274-a48b-1ee539524eeb] )
    2022-05-11 09:42:26,425 DEBUG (MyExampleHub.azure-devices.net-java-device-01-ee6c362d-Cxn7a1fb819-e46d-4658-9b03-ca50c88c0440-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 [54d9c6b5-3da9-49fe-9343-caa6864f9a02] Message Id [28069a3d-f6be-4274-a48b-1ee539524eeb] ) with status OK
    Message sent!
    

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

Annak megtekintéséhez, hogy az eszköz melyik IoT Hubra lett kiépítve, vizsgálja meg a korábban létrehozott egyéni regisztráció regisztrációs adatait:

  1. Az Azure Portalon nyissa meg a Device Provisioning Service-t.

  2. A Gépház menüben válassza a Regisztrációk kezelése lehetőséget.

  3. Válassza ki az egyes regisztrációkat. A korábban létrehozott X.509 regisztrációs bejegyzésnek ( my-x509-device) szerepelnie kell a listában.

  4. Válassza ki a regisztrációs bejegyzést. Az IoT Hub, amelyhez az eszköz hozzá lett rendelve, és az eszközazonosítója regisztrációs állapotban jelenik meg.

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 (my-x509-device) meg kell jelennie 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.

    Képernyőkép arról, hogy az eszköz regisztrálva van az IoT Hubon az Azure Portalon.

Fontos

Ha módosította az Eszköz kezdeti ikerállapota alapértelmezett értékét az eszköz beléptetési bejegyzésében, az lekérheti és felhasználhatja a kívánt ikerállapotot a központból. További információ: Eszközök ikerállapotának megismerése és használata az IoT hubon

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 ebben a rövid útmutatóban létrehozott erőforrásokat. Ha nem tervezi a folytatást, az alábbi lépésekkel törölheti a rövid útmutató által létrehozott összes erőforrást.

Eszközregisztráció törlése

  1. Zárja be az eszközügyfél minta kimeneti ablakát a gépen.

  2. Az Azure Portal bal oldali menüjében válassza a Minden erőforrás lehetőséget.

  3. Válassza ki az Eszközkiépítési szolgáltatást.

  4. A Gépház menüben válassza a Regisztrációk kezelése lehetőséget.

  5. Válassza az Egyéni regisztrációk lapot.

  6. Jelölje be az ebben a rövid útmutatóban regisztrált eszköz regisztrációs azonosítója melletti jelölőnégyzetet.

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

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

  1. Az Azure Portal bal oldali menüjében válassza a Minden erőforrás lehetőséget.

  2. Válassza ki az IoT Hubot.

  3. Az Explorers menüben válassza az IoT-eszközök lehetőséget.

  4. Jelölje be az ebben a rövid útmutatóban regisztrált eszköz eszközazonosítója melletti jelölőnégyzetet.

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

Következő lépések

Ebben a rövid útmutatóban egyetlen eszközt adott ki az IoT Hubra egy egyéni regisztrációval. Ezután megtudhatja, hogyan építhet ki több eszközt több központban.