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


X.509-tanúsítványok használata HTTPS-en keresztül SDK nélkül

Ebben az útmutatóban x.509-tanúsítványokat használó eszközt fog kiépíteni HTTPS-en keresztül, azure IoT DPS-eszköz SDK használata nélkül. A legtöbb nyelv http-kérések küldéséhez biztosít kódtárakat, de ahelyett, hogy egy adott nyelvre összpontosítanál, ebben a cikkben a cURL parancssori eszköz használatával küldhet és fogadhat HTTPS-en keresztül.

A cikkben leírt lépéseket linuxos vagy Windows rendszerű gépeken is követheti. Ha Linuxos Windows-alrendszer (WSL) vagy Linux rendszerű gépen fut, egy Bash-parancssorban megadhatja a helyi rendszer összes parancsát. Ha Windows rendszeren fut, írja be a helyi rendszer összes parancsát egy GitBash-parancssorba.

A cikkben több elérési út is található a regisztrációs bejegyzés típusától és a használni kívánt X.509-tanúsítvány(ok) típusától függően. Az előfeltételek telepítése után mindenképpen olvassa el az Áttekintést a folytatás előtt.

Előfeltételek

  • Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.

  • Hajtsa végre az IoT Hub Device Provisioning Service azure portallal való beállításának lépéseit.

  • Győződjön meg arról, hogy a Gépen telepítve van a Python 3.7 vagy újabb verziója. A Python verzióját futtatva vagy python3 --versionfuttatva python --version ellenőrizheti.

  • Ha Windows rendszeren fut, 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. Windows rendszeren egy GitBash-parancssorban adja meg a helyi rendszer összes parancsát.

  • Azure parancssori felület (CLI). Ebben a cikkben két lehetősége van az Azure CLI-parancsok futtatására:

    • Használja az Azure Cloud Shellt, amely egy interaktív rendszerhéj, amely parancssori felületi parancsokat futtat a böngészőben. Ez a beállítás azért ajánlott, mert nem kell semmit telepítenie. Ha először használja a Cloud Shellt, jelentkezzen be az Azure Portalra. Kövesse a Cloud Shell rövid útmutatójának lépéseit a Cloud Shell elindításához és a Bash-környezet kiválasztásához.
    • Igény szerint futtassa az Azure CLI-t a helyi gépen. Ha az Azure CLI már telepítve van, futtassa az upgrade a parancssori felület és a bővítmények frissítését az aktuális verzióra. Az Azure CLI telepítéséhez lásd az Azure CLI telepítését.
  • Ha Linux- vagy WSL-környezetben fut, nyisson meg egy Bash-kérést a parancsok helyi futtatásához. Ha Windows-környezetben fut, nyisson meg egy GitBash-parancssort.

Áttekintés

Ebben a cikkben három forgatókönyvet ismertetünk, és a kezdeti lépések mindegyiknél eltérőek lesznek. Ha a következőt szeretné:

Miután elvégezte a választott forgatókönyv lépéseit, folytathatja az eszköz regisztrálását és a telemetriai üzenet küldését.

Eszköztanúsítvány létrehozása

Ebben a cikkben egy X.509-tanúsítványt fog használni a DPS-vel való hitelesítéshez egyéni regisztráció vagy regisztrációs csoport használatával.

Ha egyéni regisztrációt használ, használhat önaláírt X.509-tanúsítványt vagy az eszköztanúsítványból és egy vagy több aláíró tanúsítványból álló tanúsítványláncot . Ha regisztrációs csoportot használ, tanúsítványláncot kell használnia.

Fontos

Az X.509-regisztráció hitelesítéséhez a rendszer az eszköztanúsítvány tulajdonosi köznapi nevét (CN) használja az eszköz regisztrációs azonosítójaként. 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 DPS legfeljebb 128 karakter hosszú regisztrációs azonosítókat támogat; az X.509-tanúsítványok tulajdonosi köznapi neve azonban legfeljebb 64 karakter hosszúságú lehet. Ha a következő lépésekben módosítja az eszköztanúsítvány tulajdonosának általános nevét, győződjön meg arról, hogy az megfelel ennek a formátumnak.

Önaláírt tanúsítvány használata

Ha önaláírt tanúsítványt szeretne létrehozni egy egyéni regisztrációhoz, lépjen egy olyan könyvtárba, ahol létre szeretné hozni a tanúsítványt, és kövesse az alábbi lépéseket:

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

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

  3. 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: .

    A titkos kulcsfájlt a következő jelszó védi: 1234.

  4. A tanúsítványfájl base64 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
    

Tanúsítványlánc használata

Ha regisztrációs csoportot használ, tanúsítványlánccal kell hitelesítenie magát. Egyéni regisztrációval tanúsítványláncot vagy önaláírt tanúsítványt használhat.

Tanúsítványlánc létrehozásához kövesse az X.509-tanúsítványlánc létrehozása című témakör utasításait. Ehhez a cikkhez csak egy eszközre van szüksége, így az első eszköz titkos kulcsának és tanúsítványláncának létrehozása után leállhat.

Ha végzett, a következő fájlokkal kell rendelkeznie:

Tanúsítvány Fájl Leírás
legfelső szintű hitelesítésszolgáltatói tanúsítvány. certs/azure-iot-test-only.root.ca.cert.pem A rendszer feltölti a DPS-be, és ellenőrzi.
köztes hitelesítésszolgáltatói tanúsítvány certs/azure-iot-test-only.intermediate.cert.pem A rendszer regisztrációs csoportot hoz létre a DPS-ben.
device-01 titkos kulcs private/device-01.key.pem Az eszköz az eszköztanúsítvány tulajdonjogának ellenőrzésére használja a DPS-hitelesítés során.
device-01 tanúsítvány certs/device-01.cert.pem Egyéni regisztrációs bejegyzés létrehozásához használható a DPS-sel.
device-01 teljes láncú tanúsítvány certs/device-01-full-chain.cert.pem Az eszköz a DPS hitelesítéséhez és regisztrálásához mutatja be.

Egyéni regisztráció használata

A cikkhez használandó egyéni regisztráció létrehozásához használja az az iot dps enrollment create parancsot.

Az alábbi parancs létrehoz egy egyéni regisztrációs bejegyzést a DPS-példány alapértelmezett foglalási szabályzatával a megadott eszköztanúsítvány használatával.

az iot dps enrollment create -g {resource_group_name} --dps-name {dps_name} --enrollment-id {enrollment_id} --attestation-type x509 --certificate-path {path to your certificate}
  • Cserélje le az erőforráscsoport és a DPS-példány nevét.

  • A regisztrációs azonosító az eszköz regisztrációs azonosítója, és az X.509-regisztrációk esetében meg kell egyeznie az eszköztanúsítvány tulajdonosának köznapi nevével (CN).

  • A tanúsítvány elérési útja az eszköztanúsítvány elérési útja.

Feljegyzés

Ha a Cloud Shellt használja az Azure CLI-parancsok futtatásához, a feltöltés gombbal feltöltheti a tanúsítványfájlt a felhőbeli meghajtóra a parancs futtatása előtt.

Képernyőkép az Azure Cloud Shell fájlfeltöltési gombjáról.

Regisztrációs csoport használata

A cikkhez használandó regisztrációs csoport létrehozásához használja az az iot dps enrollment-group create parancsot.

Az alábbi parancs létrehoz egy regisztrációs csoportbejegyzést, amely a DPS-példány alapértelmezett foglalási szabályzatával rendelkezik egy köztes hitelesítésszolgáltatói tanúsítvány használatával:

az iot dps enrollment-group create -g {resource_group_name} --dps-name {dps_name} --enrollment-id {enrollment_id} --certificate-path {path_to_your_certificate}
  • Cserélje le az erőforráscsoport és a DPS-példány nevét.

  • A regisztrációs azonosító egy kis- és nagybetűket nem megkülönböztető sztring, amely alfanumerikus karakterekből és speciális karakterekből áll: '-', '.', '_', ':'. Az utolsó karakternek alfanumerikusnak vagy kötőjelnek ('-') kell lennie. Bármilyen nevet megadhat, amelyet a regisztrációs csoporthoz használ.

  • A tanúsítvány elérési útja a köztes tanúsítvány elérési útja. Ha követte a Tanúsítványlánc használata című témakör utasításait, a fájlnév certs/azure-iot-test-only.intermediate.cert.pem.

Feljegyzés

Ha a Cloud Shellt használja az Azure CLI-parancsok futtatásához, a feltöltés gombbal feltöltheti a tanúsítványfájlt a felhőbeli meghajtóra a parancs futtatása előtt.

Képernyőkép az Azure Cloud Shell fájlfeltöltési gombjáról.

Feljegyzés

Tetszés szerint létrehozhat egy regisztrációs csoportot a DPS-vel korábban feltöltött és ellenőrzött aláíró tanúsítvány alapján (lásd a következő szakaszt). Ehhez adja meg a tanúsítvány nevét a parancsban, --ca-name és hagyja ki a --certificate-path paramétert az iot dps enrollment-group create .

Aláíró tanúsítvány feltöltése és ellenőrzése

Ha tanúsítványláncot használ egyéni regisztrációhoz vagy regisztrációs csoporthoz, az eszköztanúsítvány aláírási láncában legalább egy tanúsítványt fel kell töltenie és ellenőriznie kell a DPS-be.

  • Egyéni regisztráció esetén ez lehet bármely aláíró tanúsítvány az eszköz tanúsítványláncában.

  • Regisztrációs csoport esetén ez lehet a regisztrációs csoportban beállított tanúsítvány, vagy a regisztrációs láncban lévő bármely tanúsítvány, beleértve a legfelső szintű hitelesítésszolgáltatói tanúsítványt is.

A tanúsítvány feltöltéséhez és ellenőrzéséhez használja az az iot dps tanúsítvány létrehozása parancsot:

az iot dps certificate create -g {resource_group_name} --dps-name {dps_name} --certificate-name {friendly_name_for_your_certificate} --path {path_to_your_certificate} --verified true
  • Cserélje le az erőforráscsoport és a DPS-példány nevét.

  • A tanúsítvány elérési útja az aláíró tanúsítvány elérési útja. Ebben a cikkben javasoljuk, hogy töltse fel a legfelső szintű hitelesítésszolgáltatói tanúsítványt. Ha követte a Tanúsítványlánc használata című témakör utasításait, a fájlnév a következő: certs/azure-iot-test-only.root.ca.cert.pem.

  • A tanúsítványnév csak alfanumerikus karaktereket vagy a következő speciális karaktereket tartalmazhat: -._. Nincs szabad tér. Például: "azure-iot-test-only-root".

Feljegyzés

Ha a Cloud Shellt használja az Azure CLI-parancsok futtatásához, a feltöltés gombbal feltöltheti a tanúsítványfájlt a felhőbeli meghajtóra a parancs futtatása előtt.

Képernyőkép az Azure Cloud Shell fájlfeltöltési gombjáról.

Feljegyzés

Az ebben a szakaszban ismertetett lépések automatikusan ellenőrizték a tanúsítványt a feltöltés során. A tanúsítvány manuális ellenőrzését is elvégezheti. További információ: A köztes vagy a legfelső szintű hitelesítésszolgáltató manuális ellenőrzése.

Eszköz regisztrálása

Meghívja az Eszközregisztrációs REST API-t az eszköz DPS-ben való üzembe helyezéséhez.

Használja a következő curl parancsot:

curl -L -i -X PUT --cert [path_to_your_device_cert] --key [path_to_your_device_private_key] -H 'Content-Type: application/json' -H 'Content-Encoding:  utf-8' -d '{"registrationId": "[registration_id]"}' https://global.azure-devices-provisioning.net/[dps_id_scope]/registrations/[registration_id]/register?api-version=2019-03-31

Ahol:

  • -L A curl a HTTP-átirányítások követésére utasítja.

  • –i azt jelzi, hogy a curl protokollfejléceket tartalmaz a kimenetben. Ezek a fejlécek nem feltétlenül szükségesek, de hasznosak lehetnek.

  • -X PUT a curl azt jelzi, hogy ez egy HTTP PUT parancs. Ehhez az API-híváshoz szükséges.

  • --cert [path_to_your_device_cert] az eszköz X.509-tanúsítványának megkeresésének helyét a curl jelzi. Ha az eszköz titkos kulcsát egy jelszóval ellátott kifejezés védi, a hitelesítő kifejezést a kettősponttal megelőzött tanúsítványútvonal után is hozzáadhatja, például: --cert my-device.pem:1234.

  • --key [path_to_your_device_private_key] jelzi a curlnek, hogy hol keresse meg az eszköz titkos kulcsát.

  • -H 'Content-Type: application/json' azt jelzi a DPS-nek, hogy JSON-tartalmat teszünk közzé, és "alkalmazásnak/jsonnak" kell lennie

  • -H 'Content-Encoding: utf-8' jelzi a DPS-nek az üzenet törzséhez használt kódolást. Állítsa be az operációs rendszer/ügyfél megfelelő értékét; azonban általában utf-8.

  • -d '{"registrationId": "[registration_id]"}', a –d paraméter a közzétett üzenet "adata" vagy törzse. JSON-nak kell lennie, "{"registrationId":"[registration_id"}" formában. Vegye figyelembe, hogy a curl esetében egyetlen idézőjelbe van csomagolva; ellenkező esetben meg kell szabadulnia a JSON-ban szereplő idézőjelek elől. X.509-regisztráció esetén a regisztrációs azonosító az eszköztanúsítvány közös neve (CN).

  • Végül az utolsó paraméter a közzéteendő URL-cím. A "reguláris" (azaz nem helyszíni) DPS esetében a globális DPS-végpont global.azure-devices-provisioning.net használatos: https://global.azure-devices-provisioning.net/[dps_id_scope]/registrations/[registration_id]/register?api-version=2019-03-31. Vegye figyelembe, hogy a megfelelő értékeket kell lecserélnie [dps_scope_id] és [registration_id] használnia.

Példa:

  • Ha követte az önaláírt tanúsítvány használata című témakör utasításait:

    curl -L -i -X PUT --cert device-cert.pem:1234 --key device-key.pem -H 'Content-Type: application/json' -H 'Content-Encoding:  utf-8' -d '{"registrationId": "my-x509-device"}' https://global.azure-devices-provisioning.net/0ne00111111/registrations/my-x509-device/register?api-version=2021-06-01
    
  • Ha követte a Tanúsítványlánc használata című témakör utasításait:

    curl -L -i -X PUT --cert certs/device-01-full-chain.cert.pem --key private/device-01.key.pem -H 'Content-Type: application/json' -H 'Content-Encoding:  utf-8' -d '{"registrationId": "device-01"}' https://global.azure-devices-provisioning.net/0ne00111111/registrations/device-01/register?api-version=2021-06-01
    

A sikeres hívásokra a következőhöz hasonló válasz fog reagálni:

HTTP/1.1 202 Accepted
Date: Sat, 27 Aug 2022 17:53:18 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Location: https://global.azure-devices-provisioning.net/0ne00111111/registrations/my-x509-device/register
Retry-After: 3
x-ms-request-id: 05cdec07-c0c7-48f3-b3cd-30cfe27cbe57
Strict-Transport-Security: max-age=31536000; includeSubDomains

{"operationId":"5.506603669bd3e2bf.b3602f8f-76fe-4341-9214-bb6cfb891b8a","status":"assigning"}

A válasz egy műveletazonosítót és egy állapotot tartalmaz. Ebben az esetben az állapot a következőre assigningvan állítva: . A DPS-regisztráció valószínűleg egy hosszú ideig futó művelet, ezért aszinkron módon történik. Az állapotot általában az Operation Status Lookup REST API használatával fogja lekérdezni annak megállapításához, hogy mikor lett hozzárendelve az eszköz, vagy hogy hiba történt-e.

A DPS érvényes állapotértékei a következők:

  • assigned: az állapothívás visszatérési értéke jelzi, hogy az eszköz melyik IoT Hubhoz lett hozzárendelve.

  • assigning: a művelet továbbra is fut.

  • disabled: a regisztrációs rekord le van tiltva a DPS-ben, így az eszköz nem rendelhető hozzá.

  • failed: a hozzárendelés nem sikerült. A válaszban megjelenik egy errorCode registrationState rekord, amely errorMessage jelzi, hogy mi nem sikerült.

  • unassigned

Az Operation Status Lookup API meghívásához használja a következő curl parancsot:

curl -L -i -X GET --cert [path_to_your_device_cert] --key [path_to_your_device_private_key] -H 'Content-Type: application/json' -H 'Content-Encoding:  utf-8' https://global.azure-devices-provisioning.net/[dps_id_scope]/registrations/[registration_id]/operations/[operation_id]?api-version=2019-03-31

Ugyanazt az azonosítótartományt, regisztrációs azonosítót, tanúsítványt és kulcsot fogja használni, mint az eszközregisztrációs kérelemben. Használja az eszközregisztrálási válaszban visszaadott műveletazonosítót.

Az alábbi parancs például az Önaláírt tanúsítvány használata területen létrehozott önaláírt tanúsítványra érvényes. (Módosítania kell az azonosító hatókörét és műveleti azonosítóját.)

curl -L -i -X GET --cert ./device-certPUT --cert device-cert.pem:1234 --key device-key.pem -H 'Content-Type: application/json' -H 'Content-Encoding:  utf-8' https://global.azure-devices-provisioning.net/0ne00111111/registrations/my-x509-device/operations/5.506603669bd3e2bf.b3602f8f-76fe-4341-9214-bb6cfb891b8a?api-version=2021-06-01

Az alábbi kimenet egy sikeresen hozzárendelt eszköz válaszát mutatja. Figyelje meg, hogy a status tulajdonság az assigned , és hogy a registrationState.assignedHub tulajdonság az IoT Hubra van állítva, ahol az eszköz ki lett építve.

HTTP/1.1 200 OK
Date: Sat, 27 Aug 2022 18:10:49 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
x-ms-request-id: 8f211bc5-3ed8-4c8b-9a79-e003e756e9e4
Strict-Transport-Security: max-age=31536000; includeSubDomains

{
   "operationId":"5.506603669bd3e2bf.b3602f8f-76fe-4341-9214-bb6cfb891b8a",
   "status":"assigned",
   "registrationState":{
      "x509":{
         
      },
      "registrationId":"my-x509-device",
      "createdDateTimeUtc":"2022-08-27T17:53:19.5143497Z",
      "assignedHub":"MyExampleHub.azure-devices.net",
      "deviceId":"my-x509-device",
      "status":"assigned",
      "substatus":"initialAssignment",
      "lastUpdatedDateTimeUtc":"2022-08-27T17:53:19.7519141Z",
      "etag":"IjEyMDA4NmYyLTAwMDAtMDMwMC0wMDAwLTYzMGE1YTBmMDAwMCI="
   }
}

Jegyezze fel az eszközazonosítót és a hozzárendelt IoT Hubot. A következő szakaszban telemetriai üzenetet fog küldeni.

Telemetriai üzenet küldése

Meghívja az IoT Hub Send Device Event REST API-t, hogy telemetriát küldjön az eszközre.

Használja a következő curl parancsot:

curl -L -i -X POST --cert [path_to_your_device_cert] --key [path_to_your_device_private_key] -H 'Content-Type: application/json' -H 'Content-Encoding:  utf-8' -d '{"temperature": 30}' https://[assigned_iot_hub_name].azure-devices.net/devices/[device_id]/messages/events?api-version=2020-03-13

Ahol:

  • -X POST a curl azt jelzi, hogy ez egy HTTP POST parancs. Ehhez az API-híváshoz szükséges.

  • --cert [path_to_your_device_cert] az eszköz X.509-tanúsítványának megkeresésének helyét a curl jelzi. Ha az eszköz titkos kulcsát egy jelszóval ellátott kifejezés védi, a hitelesítő kifejezést a kettősponttal megelőzött tanúsítványútvonal után is hozzáadhatja, például: --cert my-device.pem:1234.

  • --key [path_to_your_device_private_key] jelzi a curlnek, hogy hol keresse meg az eszköz titkos kulcsát.

  • -H 'Content-Type: application/json' azt jelzi az IoT Hubnak, hogy JSON-tartalmat teszünk közzé, és "alkalmazásnak/jsonnak" kell lennie.

  • -H 'Content-Encoding: utf-8' jelzi az IoT Hubnak az üzenet törzséhez használt kódolást. Állítsa be az operációs rendszer/ügyfél megfelelő értékét; azonban általában utf-8.

  • -d '{"temperature": 30}', a –d paraméter a közzétett üzenet "adata" vagy törzse. Ebben a cikkben egyetlen hőmérsékleti adatpontot teszünk közzé. A tartalomtípus alkalmazásként/jsonként lett megadva, ezért ebben a kérésben a törzs JSON. Vegye figyelembe, hogy a curl esetében egyetlen idézőjelbe van csomagolva; ellenkező esetben meg kell szabadulnia a JSON-ban szereplő idézőjelek elől.

  • Az utolsó paraméter a közzéteendő URL-cím. A Send Device Event API esetében az URL-cím a következő. https://[assigned_iot_hub_name].azure-devices.net/devices/[device_id]/messages/events?api-version=2020-03-13

    • Cserélje le [assigned_iot_hub_name] annak az IoT Hubnak a nevét, amelyhez az eszköz hozzá lett rendelve.

    • Cserélje le [device_id] az eszköz regisztrálásakor hozzárendelt eszközazonosítóra. A regisztrációs csoportokon keresztül kiépíteni kívánt eszközök esetében az eszközazonosító lesz a regisztrációs azonosító. Egyéni regisztrációk esetén megadhat egy olyan eszközazonosítót, amely eltér a regisztrációs bejegyzésben szereplő regisztrációs azonosítótól.

Példa:

  • Ha követte az önaláírt tanúsítvány használata című témakör utasításait:

    curl -L -i -X POST --cert device-cert.pem:1234 --key device-key.pem -H 'Content-Type: application/json' -H 'Content-Encoding:  utf-8' -d '{"temperature": 30}' https://MyExampleHub.azure-devices.net/devices/my-x509-device/messages/events?api-version=2020-03-13
    
  • Ha követte a Tanúsítványlánc használata című témakör utasításait:

    curl -L -i -X POST --cert certs/device-01-full-chain.cert.pem --key private/device-01.key.pem -H 'Content-Type: application/json' -H 'Content-Encoding:  utf-8' -d '{"temperature": 30}' https://MyExampleHub.azure-devices.net/devices/my-x509-device/messages/events?api-version=2020-03-13
    

A sikeres hívásokra a következőhöz hasonló válasz fog reagálni:

HTTP/1.1 204 No Content
Content-Length: 0
Vary: Origin
Server: Microsoft-HTTPAPI/2.0
x-ms-request-id: aa58c075-20d9-4565-8058-de6dc8524f14
Date: Wed, 31 Aug 2022 18:34:44 GMT

Következő lépések