Bagikan melalui


Mulai cepat: Memprovisikan perangkat simulasi sertifikat X.509

Dalam mulai cepat ini, Anda membuat perangkat yang disimulasikan di komputer Windows Anda. Perangkat yang disimulasikan dikonfigurasi untuk menggunakan pengesahan sertifikat X.509 untuk autentikasi. Setelah mengonfigurasi perangkat, Anda kemudian memprovisikannya ke hub IoT menggunakan Azure IoT Hub Device Provisioning Service.

Jika Anda tidak terbiasa dengan proses provisi, tinjau gambaran umum provisi. Pastikan juga Anda telah menyelesaikan langkah-langkah dalam Menyiapkan Azure IoT Hub Device Provisioning Service dengan portal Microsoft Azure sebelum melanjutkan.

Mulai cepat ini menunjukkan solusi untuk stasiun kerja berbasis Windows. Namun, Anda juga dapat melakukan prosedur tersebut di Linux. Untuk contoh Linux, lihat Tutorial: Provisi untuk latensi geografis.

Prasyarat

Prasyarat berikut adalah untuk lingkungan pengembangan Windows. Untuk Linux atau macOS, lihat bagian yang sesuai di Menyiapkan lingkungan pengembangan dalam dokumentasi SDK.

  • Instal Visual Studio 2022 dengan beban kerja 'Pengembangan desktop dengan C++' diaktifkan. Visual Studio 2015, Visual Studio 2017, dan Visual Studio 19 juga didukung. Untuk Linux atau macOS, lihat bagian yang sesuai di Menyiapkan lingkungan pengembangan dalam dokumentasi SDK.

  • Instal sistem build CMake terbaru. Pastikan Anda mencentang opsi yang menambahkan CMake executable ke jalur Anda.

    Penting

    Pastikan bahwa prasyarat Visual Studio (Visual Studio dan beban kerja 'Pengembangan desktop dengan C++') diinstal di komputer Anda sebelum memulai penginstalan CMake. Setelah prasyarat tersedia, dan unduhan diverifikasi, pasang sistem build CMake. Selain itu, pastikan bahwa versi lama sistem build CMake gagal membuat file solusi yang digunakan dalam artikel ini. Pastikan untuk menggunakan versi CMake versi terbaru.

Prasyarat berikut adalah untuk lingkungan pengembangan Windows. Untuk Linux atau macOS, lihat bagian yang sesuai di Menyiapkan lingkungan pengembangan dalam dokumentasi SDK.

  • Instal .NET SDK 6.0 atau yang lebih baru di komputer berbasis Windows Anda. Anda bisa menggunakan perintah berikut untuk memeriksa versi yang Anda gunakan.

    dotnet --info
    

Prasyarat berikut adalah untuk lingkungan pengembangan Windows. Untuk Linux atau macOS, lihat bagian yang sesuai di Menyiapkan lingkungan pengembangan dalam dokumentasi SDK.

Prasyarat berikut adalah untuk lingkungan pengembangan Windows.

Prasyarat berikut adalah untuk lingkungan pengembangan Windows. Untuk Linux atau macOS, lihat bagian yang sesuai di Menyiapkan lingkungan pengembangan dalam dokumentasi SDK.

  • Pasang versi terbaru Git. Pastikan Git ditambahkan ke variabel lingkungan yang dapat diakses oleh jendela perintah. Lihat alat klien Git Software Freedom Conservancy untuk versi terbaru alat git yang akan diinstal, yang mencakup Git Bash, aplikasi baris perintah yang dapat Anda gunakan untuk berinteraksi dengan repositori Git lokal.

  • Pastikan OpenSSL diinstal pada komputer Anda. Di Windows, penginstalan Git Anda menyertakan penginstalan OpenSSL. Anda dapat mengakses OpenSSL dari prompt Git Bash. Untuk memverifikasi bahwa OpenSSL diinstal, buka perintah Git Bash dan masukkan openssl version.

    Catatan

    Kecuali Anda terbiasa dengan OpenSSL dan sudah menginstalnya di komputer Windows Anda, sebaiknya gunakan OpenSSL dari prompt Git Bash. Atau, Anda dapat memilih untuk mengunduh kode sumber dan membangun OpenSSL. Untuk mempelajari selengkapnya, lihat halaman Unduhan OpenSSL. Atau, Anda dapat mengunduh OpenSSL bawaan dari pihak ketiga. Untuk mempelajari lebih lanjut , lihat wiki OpenSSL. Microsoft tidak menjamin tentang validitas paket yang diunduh dari pihak ketiga. Jika Anda memilih untuk membuat atau mengunduh OpenSSL, pastikan biner OpenSSL dapat diakses di jalur Anda dan variabel OPENSSL_CNF lingkungan diatur ke jalur file openssl.cnf Anda.

  • Buka prompt perintah Windows dan permintaan Git Bash.

    Langkah-langkah dalam mulai cepat ini mengasumsikan bahwa Anda menggunakan komputer Windows dan penginstalan OpenSSL yang diinstal sebagai bagian dari Git. Anda menggunakan perintah Git Bash untuk mengeluarkan perintah OpenSSL dan prompt perintah Windows untuk yang lainnya. Jika Anda menggunakan Linux, Anda dapat mengeluarkan semua perintah dari shell Bash.

Mempersiapkan lingkungan pengembangan Anda

Di bagian ini, Anda menyiapkan lingkungan pengembangan yang digunakan untuk membangun Azure IoT C SDK. Kode sampel mencoba untuk memprovisikan perangkat, selama urutan boot perangkat.

  1. Buka browser web, dan buka halaman Rilis Azure IoT C SDK.

  2. Pilih tab Tag di bagian atas halaman.

  3. Salin nama tag untuk rilis terbaru Azure IoT C SDK.

  4. Di prompt perintah Windows Anda, jalankan perintah berikut untuk mengkloning rilis terbaru repositori Azure IoT Device SDK for C GitHub. Ganti <release-tag> dengan tag yang Anda salin di langkah sebelumnya, misalnya: 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
    

    Operasi ini mungkin memerlukan waktu beberapa menit untuk selesai.

  5. Setelah operasi selesai, jalankan perintah berikut dari direktori azure-iot-sdk-c:

    mkdir cmake
    cd cmake
    
  6. Sampel kode menggunakan sertifikat X.509 untuk menyediakan pengesahan melalui autentikasi X.509. Jalankan perintah berikut untuk membangun versi SDK khusus untuk platform pengembangan Anda yang mencakup klien provisi perangkat. Solusi Visual Studio untuk perangkat yang disimulasikan dibuat di direktori cmake.

    Saat menentukan jalur yang digunakan dengan -Dhsm_custom_lib dalam perintah berikut, pastikan untuk menggunakan jalur absolut ke pustaka di direktori yang cmake sebelumnya Anda buat. Jalur yang ditampilkan mengasumsikan bahwa Anda mengkloning C SDK di direktori akar drive C. Jika Anda menggunakan direktori lain, sesuaikan jalur yang sesuai.

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

Tip

Jika cmake tidak menemukan pengkompilasi C++, Anda mungkin mendapatkan kesalahan build saat menjalankan perintah di atas. Jika hal ini terjadi, coba jalankan perintah ini di perintah Visual Studio.

  1. Setelah build berhasil, beberapa garis output terakhir akan terlihat mirip dengan output berikut:

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

Di prompt perintah Windows Anda, kloning repositori Azure IoT SDK for C# GitHub menggunakan perintah berikut:

git clone https://github.com/Azure/azure-iot-sdk-csharp.git

Di prompt perintah Windows Anda, kloning Azure IoT SDK untuk repositori GitHub Node.js menggunakan perintah berikut:

git clone https://github.com/Azure/azure-iot-sdk-node.git

Di prompt perintah Windows Anda, kloning repositori Azure IoT Device SDK for Python GitHub menggunakan perintah berikut:

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

Catatan

Sampel yang digunakan dalam tutorial ini berada di cabang v2 dari repositori azure-iot-sdk-python. V3 dari Python SDK tersedia untuk digunakan dalam versi beta.

  1. Di prompt perintah Windows Anda, kloning repositori Azure IoT Samples for Java GitHub menggunakan perintah berikut:

    git clone https://github.com/Azure/azure-iot-sdk-java.git --recursive
    
  2. Buka direktori azure-iot-sdk-java akar dan buat proyek untuk mengunduh semua paket yang dibutuhkan.

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

Membuat sertifikat perangkat X.509 yang ditandatangani sendiri

Di bagian ini, Anda menggunakan OpenSSL untuk membuat sertifikat X.509 yang ditandatangani sendiri dan kunci privat. Sertifikat ini diunggah ke instans layanan provisi Anda dan diverifikasi oleh layanan.

Perhatian

Gunakan sertifikat yang dibuat dengan OpenSSL dalam mulai cepat ini hanya untuk pengujian pengembangan. Jangan menggunakan sertifikat ini dalam produksi. Sertifikat ini kedaluwarsa setelah 30 hari dan mungkin berisi kata sandi yang dikodekan secara permanen, seperti 1234. Untuk mempelajari tentang mendapatkan sertifikat yang cocok untuk digunakan dalam produksi, lihat Cara mendapatkan sertifikat CA X.509 dalam dokumentasi Azure IoT Hub.

Lakukan langkah-langkah di bagian ini di permintaan Git Bash Anda.

  1. Di permintaan Git Bash Anda, navigasikan ke direktori tempat Anda ingin membuat sertifikat.

  2. Jalankan perintah berikut:

    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"
    

    Penting

    Garis miring condong kanan ekstra yang diberikan untuk nama subjek (//CN=my-x509-device) hanya diperlukan untuk melewatkan string dengan Git pada platform Windows.

  3. Jika diminta untuk Memasukkan kata kunci PEM:, gunakan kata kunci 1234.

  4. Jika diminta Memverifikasi - Memasukkan kata kunci PEM:, gunakan kata kunci 1234 lagi.

    File sertifikat kunci publik (device-cert.pem) dan file kunci privat (device-key.pem) sekarang harus dibuat di direktori tempat Anda menjalankan openssl perintah.

    File sertifikat memiliki nama umum subjek (CN) yang diatur ke my-x509-device. Untuk pendaftaran berbasis X.509, ID Pendaftaran diatur ke nama umum. ID pendaftaran adalah string karakter alfanumerik yang tidak peka huruf besar/kecil ditambah karakter khusus: '-', , '.''_', ':'. Karakter terakhir harus alfanumerik atau tanda hubung ('-'). Nama umum harus mematuhi format ini. DPS mendukung ID pendaftaran hingga 128 karakter; namun, panjang maksimum nama umum subjek dalam sertifikat X.509 adalah 64 karakter. OLEH KARENA ITU, ID pendaftaran dibatasi hingga 64 karakter saat menggunakan sertifikat X.509.

  5. File sertifikat dikodekan Base 64. Untuk melihat nama umum subjek (CN) dan properti lain dari file sertifikat, masukkan perintah berikut:

    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. Kode sampel memerlukan kunci privat yang tidak dienkripsi. Jalankan perintah berikut untuk membuat kunci privat yang tidak terenkripsi:

    winpty openssl rsa -in device-key.pem -out unencrypted-device-key.pem
    
  2. Ketika diminta untuk Memasukkan frasa pass untuk device-key.pem:, gunakan frasa pass yang sama dengan yang Anda lakukan sebelumnya, 1234.

Biarkan permintaan Git Bash terbuka. Anda membutuhkannya nanti dalam mulai cepat ini.

Kode sampel C# disiapkan untuk menggunakan sertifikat X.509 yang disimpan dalam file berformat PKCS#12 yang dilindungi kata sandi (certificate.pfx). Anda masih memerlukan file sertifikat kunci publik berformat PEM (device-cert.pem) yang baru saja Anda buat untuk membuat entri pendaftaran individual nanti dalam mulai cepat ini.

  1. Untuk menghasilkan file berformat PKCS12 yang diharapkan oleh sampel, masukkan perintah berikut:

    winpty openssl pkcs12 -inkey device-key.pem -in device-cert.pem -export -out certificate.pfx
    
  2. Ketika diminta untuk Memasukkan frasa pass untuk device-key.pem:, gunakan frasa pass yang sama dengan yang Anda lakukan sebelumnya, 1234.

  3. Ketika diminta untuk Memasukkan Kata Sandi Ekspor:, gunakan kata sandi 1234.

  4. Ketika diminta Memverifikasi - Masukkan Kata Sandi Ekspor:, gunakan kata sandi 1234 lagi.

    File sertifikat berformat PKCS12 (certificate.pfx) sekarang harus dibuat di direktori tempat Anda menjalankan openssl perintah.

  5. Salin file sertifikat berformat PKCS12 ke direktori proyek untuk sampel provisi perangkat X.509. Jalur yang diberikan relatif terhadap lokasi tempat Anda mengunduh repositori sampel.

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

Anda tidak memerlukan permintaan Git Bash untuk sisa mulai cepat ini. Namun, Anda mungkin ingin membukanya untuk memeriksa sertifikat Anda jika Anda memiliki masalah di langkah-langkah selanjutnya.

  1. Kode sampel memerlukan kunci privat yang tidak dienkripsi. Jalankan perintah berikut untuk membuat kunci privat yang tidak terenkripsi:

    winpty openssl rsa -in device-key.pem -out unencrypted-device-key.pem
    
  2. Ketika diminta untuk Memasukkan frasa pass untuk device-key.pem:, gunakan frasa pass yang sama dengan yang Anda lakukan sebelumnya, 1234.

  3. Salin sertifikat perangkat dan kunci privat yang tidak terenkripsi ke direktori proyek untuk sampel provisi perangkat X.509. Jalur yang diberikan relatif terhadap lokasi tempat Anda mengunduh SDK.

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

Anda tidak memerlukan permintaan Git Bash untuk sisa mulai cepat ini. Namun, Anda mungkin ingin membukanya untuk memeriksa sertifikat Anda jika Anda memiliki masalah di langkah-langkah selanjutnya.

  1. Salin sertifikat perangkat dan kunci privat ke direktori proyek untuk sampel provisi perangkat X.509. Jalur yang diberikan relatif terhadap lokasi tempat Anda mengunduh SDK.

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

Anda tidak memerlukan permintaan Git Bash untuk sisa mulai cepat ini. Namun, Anda mungkin ingin membukanya untuk memeriksa sertifikat Anda jika Anda memiliki masalah di langkah-langkah selanjutnya.

  1. Kode sampel Java memerlukan kunci privat yang tidak dienkripsi. Jalankan perintah berikut untuk membuat kunci privat yang tidak terenkripsi:

    winpty openssl pkey -in device-key.pem -out unencrypted-device-key.pem
    
  2. Ketika diminta untuk Memasukkan frasa pass untuk device-key.pem:, gunakan frasa pass yang sama dengan yang Anda lakukan sebelumnya, 1234.

Biarkan permintaan Git Bash terbuka. Anda membutuhkannya nanti dalam mulai cepat ini.

Membuat pendaftaran perangkat

Azure IoT Device Provisioning Service mendukung dua jenis pendaftaran:

Artikel ini menunjukkan pendaftaran individu untuk satu perangkat yang akan diprovisikan dengan hub IoT.

  1. Masuk ke portal Microsoft Azure dan navigasikan ke instans Device Provisioning Service.

  2. Pilih Kelola pendaftaran dari bagian Pengaturan pada menu navigasi.

  3. Pilih tab Pendaftaran individual, lalu pilih Tambahkan pendaftaran individual.

    Cuplikan layar yang memperlihatkan opsi tambahkan pendaftaran individual.

  4. Pada pendaftaran + provisi halaman Tambahkan pendaftaran , berikan informasi berikut untuk mengonfigurasi detail pendaftaran:

    Bidang Deskripsi
    Pengesahan Pilih sertifikat klien X.509 sebagai mekanisme Pengesahan.
    Pengaturan sertifikat X.509 Unggah satu atau dua sertifikat yang akan digunakan untuk memverifikasi perangkat untuk pendaftaran ini.
    Status provisi Centang kotak Aktifkan pendaftaran ini jika Anda ingin pendaftaran ini tersedia untuk menyediakan perangkatnya. Hapus centang pada kotak ini jika Anda ingin pendaftaran dinonaktifkan. Anda dapat mengubah pengaturan ini nanti.
    Kebijakan provisi ulang Pilih kebijakan provisi ulang yang mencerminkan bagaimana Anda ingin DPS menangani perangkat yang meminta provisi ulang. Untuk informasi selengkapnya, lihat Kebijakan provisi ulang.
  5. Pilih Berikutnya: Hub IoT.

  6. Pada tab hub IoT di halaman Tambahkan pendaftaran , berikan informasi berikut untuk menentukan hub IoT mana yang dapat menyediakan perangkat untuk:

    Bidang Deskripsi
    Hub IoT target Pilih satu atau beberapa hub IoT tertaut Anda, atau tambahkan tautan baru ke hub IoT. Untuk mempelajari selengkapnya tentang menautkan hub IoT ke instans DPS Anda, lihat Cara menautkan dan mengelola hub IoT.
    Kebijakan alokasi Jika Anda memilih lebih dari satu hub IoT tertaut, pilih bagaimana Anda ingin menetapkan perangkat ke hub yang berbeda. Untuk mempelajari selengkapnya tentang kebijakan alokasi, lihat Cara menggunakan kebijakan alokasi.

    Jika Anda hanya memilih satu hub IoT tertaut, sebaiknya gunakan kebijakan distribusi Tertimbang Merata.
  7. Pilih Berikutnya: Pengaturan perangkat

  8. Pada tab Pengaturan perangkat di halaman Tambahkan pendaftaran , berikan informasi berikut untuk menentukan bagaimana perangkat yang baru disediakan akan dikonfigurasi:

    Bidang Deskripsi
    ID Perangkat Berikan ID perangkat yang akan ditetapkan ke perangkat yang disediakan di IoT Hub. Jika Anda tidak memberikan ID perangkat, ID pendaftaran akan digunakan.
    IoT Edge Periksa Aktifkan IoT Edge pada perangkat yang disediakan jika perangkat yang disediakan akan menjalankan Azure IoT Edge. Hapus centang pada kotak ini jika pendaftaran ini untuk perangkat yang tidak mendukung IoT Edge.
    Tag perangkat Gunakan kotak teks ini untuk menyediakan tag apa pun yang ingin Anda terapkan ke perangkat kembar perangkat yang disediakan.
    Properti yang diinginkan Gunakan kotak teks ini untuk menyediakan properti yang diinginkan yang ingin Anda terapkan ke perangkat kembar perangkat yang disediakan.

    Untuk informasi selengkapnya, lihat Memahami dan menggunakan perangkat kembar di IoT Hub.

  9. Pilih Berikutnya: Tinjau + buat.

  10. Pada tab Tinjau + buat , verifikasi semua nilai Anda lalu pilih Buat.

Menyiapkan dan menjalankan kode provisi perangkat

Di bagian ini, Anda memperbarui kode sampel untuk mengirim urutan boot perangkat ke instans Device Provisioning Service Anda. Urutan boot ini menyebabkan perangkat dikenali dan ditetapkan ke hub IoT yang ditautkan ke instans DPS.

Di bagian ini, Anda menggunakan perintah Git Bash dan IDE Visual Studio.

Mengonfigurasi kode perangkat provisi

Di bagian ini, Anda akan memperbarui kode sampel dengan informasi instans Layanan Provisi Perangkat Anda.

  1. Di portal Azure, pilih tab Gambaran Umum untuk Device Provisioning Service Anda.

  2. Salin nilai Cakupan ID.

    Cuplikan layar cakupan ID pada portal Azure.

  3. Luncurkan Visual Studio dan buka file solusi baru yang dibuat di direktori cmake yang Anda buat di akar repositori git azure-iot-sdk-c. File solusi diberi bernama azure_iot_sdks.sln.

  4. Di Penjelajah Solusi untuk Visual Studio, navigasikan ke Provision_Samples > prov_dev_client_sample > File Sumber dan buka prov_dev_client_sample.c.

  5. id_scope Temukan konstanta, dan ganti nilai dengan nilai Cakupan ID yang Anda salin di langkah 2.

    static const char* id_scope = "0ne00000A0A";
    
  6. Temukan definisi untuk fungsi main() dalam file yang sama. Pastikan hsm_type variabel diatur ke SECURE_DEVICE_TYPE_X509.

    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. Simpan perubahan Anda.

  8. Klik kanan proyek prov_dev_client_sample dan pilih Atur sebagai Proyek Startup.

Mengonfigurasi kode rintisan HSM kustom

Pokok-pokok interaksi dengan penyimpanan berbasis perangkat keras aman aktual bervariasi bergantung pada perangkat keras. Akibatnya, sertifikat dan kunci privat yang digunakan oleh perangkat yang disimulasikan dalam mulai cepat ini dikodekan secara permanen dalam kode stub Modul Keamanan Perangkat Keras (HSM) kustom.

Untuk memperbarui kode stub HSM kustom untuk mensimulasikan identitas perangkat dengan ID my-x509-device:

  1. Di Penjelajah Solusi untuk Visual Studio, navigasi ke Provision_Samples > custom_hsm_example > File Sumber dan buka custom_hsm_example.c.

  2. Perbarui nilai COMMON_NAME string konstanta string menggunakan nama umum yang Anda gunakan saat membuat sertifikat perangkat, my-x509-device.

    static const char* const COMMON_NAME = "my-x509-device";
    
  3. Perbarui nilai string string CERTIFICATE konstanta menggunakan sertifikat perangkat, device-cert.pem, yang Anda buat sebelumnya.

    Sintaks teks sertifikat dalam sampel harus mengikuti pola berikut tanpa spasi tambahan atau penguraian yang dilakukan oleh Visual Studio.

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

    Memperbarui nilai string ini secara manual dapat rentan terhadap kesalahan. Untuk menghasilkan sintaks yang tepat, Anda dapat menyalin dan menempelkan perintah berikut ke permintaan Git Bash Anda, dan menekan ENTER. Perintah ini menghasilkan sintaks untuk CERTIFICATE nilai konstanta string dan menulisnya ke output.

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

    Salin dan tempel teks sertifikat output untuk nilai konstanta.

  4. Perbarui nilai PRIVATE_KEY string konstanta dengan kunci privat yang tidak terenkripsi untuk sertifikat perangkat Anda, unencrypted-device-key.pem.

    Sintaks teks kunci privat harus mengikuti pola berikut tanpa spasi tambahan atau penguraian yang dilakukan oleh Visual Studio.

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

    Memperbarui nilai string ini secara manual dapat rentan terhadap kesalahan. Untuk menghasilkan sintaks yang tepat, Anda dapat menyalin dan menempelkan perintah berikut ke permintaan Git Bash Anda, dan menekan ENTER. Perintah ini menghasilkan sintaks untuk PRIVATE_KEY nilai konstanta string dan menulisnya ke output.

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

    Salin dan tempel teks kunci privat output untuk nilai konstanta.

  5. Simpan perubahan Anda.

  6. Klik kanan proyek custom_hsm_-_example dan pilih Bangun.

    Penting

    Anda harus membangun proyek custom_hsm_example sebelum membangun solusi lainnya di bagian berikutnya.

Jalankan sampel

  1. Pada menu Visual Studio, pilih Debug>Mulai tanpa penelusuran kesalahan untuk menjalankan solusinya. Jika Anda diminta untuk membangun kembali proyek, pilih Ya untuk membangun kembali proyek sebelum berjalan.

    Output berikut adalah contoh perangkat my-x509-device simulasi yang berhasil di-boot, dan terhubung ke layanan provisi. Perangkat ditetapkan ke hub IoT dan terdaftar:

    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:
    

Di bagian ini, Anda menggunakan prompt perintah Windows Anda.

  1. Di portal Azure, pilih tab Gambaran Umum untuk Device Provisioning Service Anda.

  2. Salin nilai Cakupan ID.

    Cuplikan layar cakupan ID pada portal Azure.

  3. Di prompt perintah Windows Anda, ubah ke direktori X509Sample. Direktori ini terletak di direktori .\azure-iot-sdk-csharp\provisioning\device\samples\getting started\X509Sample dari direktori tempat Anda mengkloning sampel di komputer Anda.

  4. Masukkan perintah berikut untuk membangun dan menjalankan sampel provisi perangkat X.509 (ganti <IDScope> nilai dengan Cakupan ID yang Anda salin di bagian sebelumnya. File sertifikat default ke ./certificate.pfx dan meminta kata sandi .pfx.

    dotnet run -- -s <IDScope>
    

    Jika Anda ingin meneruskan sertifikat dan kata sandi sebagai parameter, Anda bisa menggunakan format berikut.

    Catatan

    Parameter tambahan dapat diteruskan saat menjalankan aplikasi untuk mengubah TransportType (-t) dan GlobalDeviceEndpoint (-g).

    dotnet run -- -s 0ne00000A0A -c certificate.pfx -p 1234
    
  5. Perangkat terhubung ke DPS dan ditetapkan ke hub IoT. Kemudian, perangkat mengirim pesan telemetri ke hub IoT.

    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.
    

Di bagian ini, Anda menggunakan prompt perintah Windows Anda.

  1. Di portal Azure, pilih tab Gambaran Umum untuk Device Provisioning Service Anda.

  2. Salin nilai Cakupan ID.

    Cuplikan layar cakupan ID pada portal Azure.

  3. Di prompt perintah Windows Anda, buka direktori sampel, dan instal paket yang diperlukan oleh sampel. Jalur yang ditampilkan relatif terhadap lokasi tempat Anda mengkloning SDK.

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

    Sampel menggunakan lima variabel lingkungan untuk mengautentikasi dan memprovisikan perangkat IoT menggunakan DPS. Variabel lingkungan ini adalah:

    Nama variabel Deskripsi
    PROVISIONING_HOST Titik akhir yang digunakan untuk menyambungkan ke instans DPS Anda. Untuk mulai cepat ini, gunakan titik akhir global, global.azure-devices-provisioning.net.
    PROVISIONING_IDSCOPE Cakupan ID untuk instans DPS Anda.
    PROVISIONING_REGISTRATION_ID ID pendaftaran untuk perangkat Anda. Ini harus cocok dengan nama umum subjek dalam sertifikat perangkat.
    CERTIFICATE_FILE Jalur ke file sertifikat perangkat Anda.
    KEY_FILE Jalur ke file kunci privat perangkat Anda.
  4. Tambahkan variabel lingkungan untuk titik akhir perangkat global dan cakupan ID. Ganti <id-scope> dengan nilai yang Anda salin di langkah 2.

    set PROVISIONING_HOST=global.azure-devices-provisioning.net
    set PROVISIONING_IDSCOPE=<id-scope>
    
  5. Atur variabel lingkungan untuk ID pendaftaran perangkat. ID pendaftaran untuk perangkat IoT harus cocok dengan nama umum subjek pada sertifikat perangkatnya. Jika Anda mengikuti langkah-langkah dalam mulai cepat ini untuk menghasilkan sertifikat pengujian yang ditandatangani sendiri, my-x509-device adalah nama subjek dan ID pendaftaran untuk perangkat.

    set PROVISIONING_REGISTRATION_ID=my-x509-device
    
  6. Atur variabel lingkungan untuk sertifikat perangkat dan file kunci privat perangkat (tidak terenkripsi).

    set CERTIFICATE_FILE=.\device-cert.pem
    set KEY_FILE=.\unencrypted-device-key.pem
    
  7. Jalankan sampel dan verifikasi bahwa perangkat berhasil disediakan.

    node register_x509.js
    

    Anda harus melihat output yang mirip dengan berikut ini:

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

Di bagian ini, Anda menggunakan prompt perintah Windows Anda.

  1. Di portal Azure, pilih tab Gambaran Umum untuk Device Provisioning Service Anda.

  2. Salin Cakupan ID dan nilai Titik akhir perangkat global.

    Cuplikan layar cakupan ID dan titik akhir perangkat global di portal Azure.

  3. Di prompt perintah Windows Anda, buka direktori sampel provision_x509.py . Jalur yang ditampilkan relatif terhadap lokasi tempat Anda mengkloning SDK.

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

    Sampel ini menggunakan enam variabel lingkungan untuk mengautentikasi dan memprovisikan perangkat IoT menggunakan DPS. Variabel lingkungan ini adalah:

    Nama variabel Deskripsi
    PROVISIONING_HOST Titik akhir global yang digunakan untuk menyambungkan ke instans DPS Anda.
    PROVISIONING_IDSCOPE Cakupan ID untuk instans DPS Anda.
    DPS_X509_REGISTRATION_ID ID pendaftaran untuk perangkat Anda. Ini juga harus cocok dengan nama subjek pada sertifikat perangkat.
    X509_CERT_FILE Jalur ke file sertifikat perangkat Anda.
    X509_KEY_FILE Jalur ke file kunci privat sertifikat perangkat Anda.
    PASS_PHRASE Kata kunci yang Anda gunakan untuk mengenkripsi sertifikat dan file kunci privat (1234).
  4. Tambahkan variabel lingkungan untuk titik akhir perangkat global dan Cakupan ID.

    set PROVISIONING_HOST=global.azure-devices-provisioning.net
    set PROVISIONING_IDSCOPE=<ID scope for your DPS resource>
    
  5. Atur variabel lingkungan untuk ID pendaftaran. ID pendaftaran untuk perangkat IoT harus cocok dengan nama subjek pada sertifikat perangkatnya. Jika Anda mengikuti langkah-langkah dalam mulai cepat ini untuk menghasilkan sertifikat pengujian yang ditandatangani sendiri, my-x509-device adalah nama subjek dan ID pendaftaran untuk perangkat.

    set DPS_X509_REGISTRATION_ID=my-x509-device
    
  6. Atur variabel lingkungan untuk file sertifikat, file kunci privat, dan frasa pass.

    set X509_CERT_FILE=./device-cert.pem
    set X509_KEY_FILE=./device-key.pem
    set PASS_PHRASE=1234
    
  7. Tinjau kode untuk provision_x509.py. Jika Anda tidak menggunakan Python versi 3.7 atau yang lebih baru, buat perubahan kode yang disebutkan di sini untuk mengganti asyncio.run(main()) dan menyimpan perubahan Anda.

  8. Jalankan sampel. Sampel terhubung ke DPS, yang memprovisikan perangkat ke hub IoT. Setelah perangkat disediakan, sampel mengirim beberapa pesan pengujian ke hub IoT.

    $ 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
    

Di bagian ini, Anda menggunakan prompt perintah Windows dan permintaan Git Bash Anda.

  1. Di portal Azure, pilih tab Gambaran Umum untuk Device Provisioning Service Anda.

  2. Salin Cakupan ID dan nilai Titik akhir perangkat global.

    Cuplikan layar cakupan ID dan titik akhir perangkat global di portal Azure.

  3. Di prompt perintah Windows Anda, navigasikan ke folder proyek sampel. Jalur yang ditampilkan relatif terhadap lokasi tempat Anda mengkloning SDK

    cd .\azure-iot-sdk-java\provisioning\provisioning-device-client-samples\provisioning-X509-sample
    
  4. Masukkan layanan provisi dan informasi identitas X.509 dalam kode sampel. Informasi ini digunakan selama provisi, untuk pengesahan perangkat yang disimulasikan, sebelum pendaftaran perangkat.

    1. Buka file .\src\main\java\samples\com\microsoft\azure\sdk\iot\ProvisioningX509Sample.java di editor favorit Anda.

    2. Perbarui nilai berikut dengan Cakupan ID dan Titik Akhir Global Layanan Provisi yang Anda salin sebelumnya.

      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. Perbarui nilai leafPublicPem string konstanta dengan nilai sertifikat Anda, device-cert.pem.

      Sintaks teks sertifikat harus mengikuti pola berikut tanpa spasi atau karakter tambahan.

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

      Memperbarui nilai string ini secara manual dapat rentan terhadap kesalahan. Untuk menghasilkan sintaks yang tepat, Anda dapat menyalin dan menempelkan perintah berikut ke permintaan Git Bash Anda, dan menekan ENTER. Perintah ini menghasilkan sintaks untuk leafPublicPem nilai konstanta string dan menulisnya ke output.

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

      Salin dan tempel teks sertifikat output untuk nilai konstanta.

    4. Perbarui nilai leafPrivateKey string konstanta dengan kunci privat yang tidak terenkripsi untuk sertifikat perangkat Anda, unencrypted-device-key.pem.

      Sintaks teks kunci privat harus mengikuti pola berikut tanpa spasi atau karakter tambahan.

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

      Memperbarui nilai string ini secara manual dapat rentan terhadap kesalahan. Untuk menghasilkan sintaks yang tepat, Anda dapat menyalin dan menempelkan perintah berikut ke permintaan Git Bash Anda, dan menekan ENTER. Perintah ini menghasilkan sintaks untuk leafPrivateKey nilai konstanta string dan menulisnya ke output.

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

      Salin dan tempel teks kunci privat output untuk nilai konstanta.

    5. Simpan perubahan Anda.

  5. Buat sampel, lalu buka target folder .

    mvn clean install
    cd target
    
  6. Build menghasilkan file .jar di target folder dengan format file berikut: provisioning-x509-sample-{version}-with-deps.jar; misalnya: provisioning-x509-sample-1.8.1-with-deps.jar. Jalankan file .jar. Anda mungkin perlu mengganti versi dalam perintah berikut.

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

    Sampel terhubung ke DPS, yang memprovisikan perangkat ke hub IoT. Setelah perangkat disediakan, sampel mengirim beberapa pesan pengujian ke hub IoT.

    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 [aaaa0000-bb11-2222-33cc-444444dddddd] Message Id [aaaa0000-bb11-2222-33cc-444444dddddd] )
    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 [aaaa0000-bb11-2222-33cc-444444dddddd] Message Id [aaaa0000-bb11-2222-33cc-444444dddddd] )
    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 [aaaa0000-bb11-2222-33cc-444444dddddd] Message Id [aaaa0000-bb11-2222-33cc-444444dddddd] )
    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 [aaaa0000-bb11-2222-33cc-444444dddddd] Message Id [aaaa0000-bb11-2222-33cc-444444dddddd] ) with status OK
    Message sent!
    

Konfirmasi pendaftaran provisi perangkat Anda

Untuk melihat hub IoT mana perangkat Anda disediakan, periksa detail pendaftaran pendaftaran individu yang Anda buat sebelumnya:

  1. Di portal Azure, buka Device Provisioning Service Anda.

  2. Di menu Pengaturan, pilih Kelola pendaftaran.

  3. Pilih Pendaftaran Individu. Entri pendaftaran X.509 yang Anda buat sebelumnya, my-x509-device, akan muncul dalam daftar.

  4. Pilih entri pendaftaran. Hub IoT tempat perangkat Anda ditetapkan dan ID perangkatnya muncul di bawah Status pendaftaran.

Untuk memverifikasi perangkat di hub IoT Anda:

  1. Di portal Azure, buka hub IoT tempat perangkat Anda ditetapkan.

  2. Di menu Manajemen perangkat , pilih Perangkat.

  3. Jika perangkat Anda berhasil disediakan, ID perangkatnya, my-x509-device, akan muncul dalam daftar, dengan Status diatur sebagai diaktifkan. Jika Anda tidak melihat perangkat Anda, pilih Refresh.

    Cuplikan layar yang menunjukkan perangkat terdaftar di hub IoT di portal Azure.

Penting

Jika Anda mengubah status kembar perangkat awal dari nilai default dalam entri pendaftaran untuk perangkat Anda, nilai tersebut dapat menarik status kembar yang diinginkan dari hub dan melakukan tindakan yang sesuai. Untuk informasi selengkapnya, lihat Memahami dan menggunakan perangkat kembar di IoT Hub

Membersihkan sumber daya

Jika Anda berencana untuk terus mengerjakan dan menjelajahi sampel klien perangkat, jangan bersihkan sumber daya yang dibuat di mulai cepat ini. Jika Anda tidak berencana untuk melanjutkan, gunakan langkah berikut untuk menghapus semua sumber daya yang dibuat oleh mulai cepat ini.

Menghapus pendaftaran perangkat Anda

  1. Tutup jendela output sampel klien perangkat di komputer Anda.

  2. Dari menu sebelah kiri di portal Azure, pilih Semua sumber daya.

  3. Pilih Device Provisioning Service Anda.

  4. Di menu Pengaturan, pilih Kelola pendaftaran.

  5. Pilih tab Pendaftaran individual.

  6. Pilih kotak centang di samping ID pendaftaran perangkat yang Anda daftarkan dalam mulai cepat ini.

  7. Di bagian atas halaman, pilih Hapus.

Menghapus pendaftaran perangkat Anda dari IoT Hub

  1. Dari menu sebelah kiri di portal Azure, pilih Semua sumber daya.

  2. Pilih IoT hub Anda.

  3. Di menu Explorers, pilih Perangkat IoT.

  4. Pilih kotak centang di samping ID perangkat perangkat yang Anda daftarkan dalam mulai cepat ini.

  5. Di bagian atas halaman, pilih Hapus.

Langkah berikutnya

Dalam mulai cepat ini, Anda memprovisikan satu perangkat ke hub IoT Anda menggunakan pendaftaran individual. Selanjutnya, pelajari cara memprovisikan beberapa perangkat di beberapa hub.