Bagikan melalui


Mengautentikasi perangkat hilir ke Azure IoT Hub

Berlaku untuk: Tanda centang IoT Edge 1.5 IoT Edge 1.5 Tanda centang IoT Edge 1.4 IoT Edge 1.4

Penting

IoT Edge 1.5 LTS dan IoT Edge 1.4 LTS adalah rilis yang didukung. IoT Edge 1.4 LTS adalah akhir masa pakai pada 12 November 2024. Jika Anda menggunakan rilis sebelumnya, lihat Memperbarui IoT Edge.

Dalam skenario gateway transparan, perangkat hilir (terkadang disebut perangkat anak) memerlukan identitas di IoT Hub seperti perangkat lainnya. Artikel ini menelusuri opsi untuk mengautentikasi perangkat hilir ke IoT Hub, lalu menunjukkan cara mendeklarasikan koneksi gateway.

Catatan

Perangkat hilir memancarkan data langsung ke Internet atau ke perangkat gateway (diaktifkan IoT Edge atau tidak). Perangkat anak dapat menjadi perangkat hilir atau perangkat gateway dalam topologi berlapis.

Ada tiga langkah umum untuk menyiapkan koneksi gateway transparan yang sukses. Artikel ini membahas langkah kedua:

  1. Konfigurasikan perangkat gateway sebagai server sehingga perangkat hilir dapat tersambungkan dengan aman. Siapkan gateway untuk menerima pesan dari perangkat hilir dan merutekannya ke tujuan yang tepat. Untuk langkah-langkah tersebut, lihat Mengonfigurasi perangkat IoT Edge untuk bertindak sebagai gateway transparan.
  2. Buat identitas perangkat untuk perangkat hilir sehingga dapat mengautentikasi dengan IoT Hub. Konfigurasikan perangkat hilir untuk mengirim pesan melalui perangkat gateway.
  3. Sambungkan perangkat hilir ke perangkat gateway dan mulai mengirim pesan. Untuk langkah-langkah ini, lihat Menyambungkan perangkat hilir ke gateway Azure IoT Edge.

Perangkat hilir dapat mengautentikasi dengan IoT Hub menggunakan salah satu dari tiga metode: kunci konten (kadang-kadang disebut sebagai kunci akses bersama), sertifikat X.509 yang ditandatangani sendiri, atau sertifikat X.509 yang ditandatangani otoritas sertifikat (OS). Langkah-langkah autentikasi mirip dengan langkah-langkah yang digunakan untuk menyiapkan perangkat non-IoT-Edge dengan IoT Hub, dengan perbedaan kecil untuk mendeklarasikan hubungan gateway.

Provisi otomatis perangkat hilir dengan Azure IoT Hub Device Provisioning Service (DPS) tidak didukung.

Prasyarat

Selesaikan langkah-langkah dalam Mengonfigurasikan perangkat IoT Edge untuk bertindak sebagai gateway transparan.

Jika Anda menggunakan autentikasi X.509, Anda akan membuat sertifikat untuk perangkat hilir Anda. Memiliki sertifikat OS akar yang sama dan skrip pembuatan sertifikat yang Anda gunakan untuk artikel gateway transparan yang tersedia untuk digunakan lagi.

Artikel ini merujuk ke nama host gateway di beberapa titik. Nama host gateway dideklarasikan dalam parameter nama host file konfigurasi pada perangkat gateway IoT Edge. Ini disebut dalam string koneksi perangkat hilir. Nama host gateway perlu dipecahkan ke Alamat IP, baik menggunakan DNS atau entri file host di perangkat hilir.

Mendaftarkan perangkat dengan IoT Hub

Pilih bagaimana Anda ingin perangkat hilir Anda diautentikasi dengan IoT Hub:

  • Autentikasi kunci konten:IoT Hub membuat kunci yang Anda letakkan di perangkat hilir. Ketika perangkat mengautentikasi, IoT Hub memeriksa bahwa dua kunci tersebut cocok. Anda tidak perlu membuat sertifikat tambahan untuk menggunakan autentikasi kunci konten.

    Metode ini lebih cepat untuk memulai jika Anda menguji gateway dalam skenario pengembangan atau pengujian.

  • Autentikasi X.509 yang ditandatangani sendiri: Terkadang disebut autentikasi thumbprint, karena Anda berbagi thumbprint dari sertifikat X.509 perangkat dengan IoT Hub.

    Autentikasi sertifikat direkomendasikan untuk perangkat dalam skenario produksi.

  • Autentikasi X.509 bertanda tangan OS: Unggah sertifikat OS akar ke IoT Hub. Ketika perangkat menunjukkan sertifikat X.509 mereka untuk autentikasi, IoT Hub memeriksa bahwa sertifikat termasuk dalam rantai kepercayaan yang ditandatangani oleh sertifikat OS akar yang sama.

    Autentikasi sertifikat direkomendasikan untuk perangkat dalam skenario produksi.

Autentikasi kunci konten

Autentikasi kunci konten, atau autentikasi kunci akses bersama, adalah cara paling sederhana untuk mengautentikasi dengan IoT Hub. Dengan autentikasi kunci konten, kunci base64 dikaitkan dengan ID perangkat IoT Anda di IoT Hub. Anda menyertakan kunci tersebut dalam aplikasi IoT sehingga perangkat Anda dapat menyajikannya saat tersambungkan ke IoT Hub.

Tambahkan perangkat IoT baru di IoT hub Anda, menggunakan portal Microsoft Azure, Azure CLI, atau ekstensi IoT untuk Visual Studio Code. Ingat bahwa perangkat hilir perlu diidentifikasi di IoT Hub sebagai perangkat IoT biasa, bukan perangkat IoT Edge.

Saat Anda membuat identitas perangkat baru, berikan informasi berikut:

  • Buat ID untuk perangkat Anda.

  • Pilih Kunci simetris sebagai jenis autentikasi.

  • Pilih Set perangkat induk dan pilih perangkat gateway IoT Edge yang akan disambungkan oleh perangkat hilir ini. Anda selalu bisa mengubah induknya nanti.

    Cuplikan layar cara membuat ID perangkat dengan otorisasi kunci konten di portal Azure.

    Catatan

    Pengaturan perangkat induk digunakan untuk menjadi langkah opsional untuk perangkat hilir yang menggunakan autentikasi kunci konten. Namun, mulai dari IoT Edge versi 1.1.0, setiap perangkat hilir harus ditetapkan ke perangkat induk.

    Anda dapat mengonfigurasikan IoT Edge hub untuk kembali ke perilaku sebelumnya dengan pengaturan variabel lingkungan AuthenticationMode ke nilai CloudAndScope.

Anda juga dapat menggunakan ekstensi IoT untuk Azure CLI untuk menyelesaikan operasi yang sama. Contoh berikut menggunakan perintah identitas perangkat az iot hub untuk membuat perangkat IoT baru dengan autentikasi kunci konten dan menetapkan perangkat induk:

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

Tip

Anda dapat mencantumkan properti perangkat termasuk cakupan perangkat menggunakan az iot hub device-identity list --hub-name {iothub name}.

Selanjutnya, Ambil dan ubah string koneksi sehingga perangkat Anda mengetahui untuk tersambungkan melalui gateway-nya.

Autentikasi X.509 yang ditandatangani sendiri

Untuk autentikasi X.509 yang ditandatangani sendiri, terkadang disebut sebagai autentikasi thumbprint, Anda perlu membuat sertifikat untuk ditempatkan di perangkat hilir Anda. Sertifikat tersebut memiliki thumbprint di dalamnya yang Anda bagikan dengan IoT Hub untuk autentikasi.

  1. Menggunakan sertifikat OS Anda, buat dua sertifikat perangkat (utama dan sekunder) untuk perangkat hilir.

    Jika Anda tidak memiliki otoritas sertifikat untuk membuat sertifikat X.509, Anda dapat menggunakan skrip sertifikat demo IoT Edge untuk Membuat sertifikat perangkat hilir. Ikuti langkah-langkah untuk membuat sertifikat yang ditandatangani sendiri. Gunakan sertifikat OS akar yang sama yang menghasilkan sertifikat untuk perangkat gateway Anda.

    Jika Anda membuat sertifikat Anda sendiri, pastikan bahwa nama subjek sertifikat perangkat diatur ke ID perangkat yang Anda gunakan saat mendaftarkan perangkat IoT di Azure IoT Hub. Pengaturan ini diperlukan untuk autentikasi.

  2. Ambil sidik jari SHA1 (disebut thumbprint di antarmuka IoT Hub) dari setiap sertifikat, yang merupakan string karakter heksadesimal 40. Gunakan perintah openssl berikut untuk menampilkan sertifikat dan menemukan sidik jari:

    • Windows:

      openssl x509 -in <path to primary device certificate>.cert.pem -text -fingerprint
      
    • Linux:

      openssl x509 -in <path to primary device certificate>.cert.pem -text -fingerprint | sed 's/[:]//g'
      

    Jalankan perintah ini dua kali, sekali untuk sertifikat utama dan sekali untuk sertifikat sekunder. Anda memberikan sidik jari untuk kedua sertifikat tersebut jika mendaftarkan perangkat IoT baru menggunakan sertifikat X.509 yang ditandatangani sendiri.

  3. Navigasi ke IoT Hub Anda di portal Microsoft Azure dan buat identitas perangkat IoT baru dengan nilai-nilai berikut:

    • Berikan ID Perangkat yang cocok dengan nama subjek dari sertifikat perangkat Anda.
    • Pilih X.509 yang Ditandatangani Sendiri sebagai jenis autentikasi.
    • Tempelkan string heksadesimal yang Anda salin dari sertifikat utama dan sekunder perangkat Anda.
    • Pilih Set perangkat induk dan pilih perangkat gateway IoT Edge yang akan disambungkan oleh perangkat hilir ini. Anda selalu bisa mengubah induknya nanti.

    Cuplikan layar yang memperlihatkan cara membuat ID perangkat dengan otorisasi X.509 yang ditandatangani sendiri di portal Azure.

  4. Salin sertifikat perangkat utama dan sekunder dan kuncinya ke lokasi mana pun di perangkat hilir. Pindahkan juga salinan sertifikat OS akar bersama yang menghasilkan sertifikat perangkat gateway dan sertifikat perangkat hilir.

    Anda akan mereferensikan file sertifikat ini dalam aplikasi apa pun di perangkat hilir yang tersambungkan ke IoT Hub. Anda dapat menggunakan layanan seperti Azure Key Vault atau fungsi seperti Protokol salin aman untuk memindahkan file sertifikat.

  5. Bergantung pada bahasa pilihan Anda, ulas sampel cara sertifikat X.509 dapat dirujuk dalam aplikasi IoT:

Anda juga dapat menggunakan ekstensi IoT untuk Azure CLI untuk menyelesaikan operasi pembuatan perangkat yang sama. Contoh berikut menggunakan perintah identitas perangkat az iot hub untuk membuat perangkat IoT baru dengan autentikasi X.509 yang ditandatangani sendiri dan menetapkan perangkat induk:

az iot hub device-identity create -n {iothub name} -d {device ID} --device-scope {deviceScope of gateway device} --am x509_thumbprint --ptp {primary thumbprint} --stp {secondary thumbprint}

Tip

Anda dapat mencantumkan properti perangkat termasuk cakupan perangkat menggunakan az iot hub device-identity list --hub-name {iothub name}.

Selanjutnya, Ambil dan ubah string koneksi sehingga perangkat Anda mengetahui untuk tersambungkan melalui gateway-nya.

Autentikasi X.509 bertanda tangan OS

Untuk autentikasi X.509 bertanda tangan otoritas sertifikat (OS), Anda memerlukan sertifikat OS akar yang terdaftar di IoT Hub yang Anda gunakan untuk menandatangani sertifikat untuk perangkat hilir Anda. Perangkat apa pun yang menggunakan sertifikat yang mengalami diterbitkan oleh sertifikat OS akar atau sertifikat perantaranya akan diizinkan untuk diautentikasi.

Bagian ini didasarkan pada seri tutorial sertifikat X.509 IoT Hub. Lihat Memahami Kriptografi Kunci Umum dan Infrastruktur Kunci Umum X.509 sebagai pengantar seri ini.

  1. Menggunakan sertifikat OS Anda, buat dua sertifikat perangkat (utama dan sekunder) untuk perangkat hilir.

    Jika Anda tidak memiliki otoritas sertifikat untuk membuat sertifikat X.509, Anda dapat menggunakan skrip sertifikat demo IoT Edge untuk Membuat sertifikat perangkat hilir. Ikuti langkah-langkah untuk membuat sertifikat bertanda tangan OS. Gunakan sertifikat OS akar yang sama yang menghasilkan sertifikat untuk perangkat gateway Anda.

  2. Ikuti instruksi di bagian Menunjukkan bukti kepemilikan dari Menyiapkan keamanan X.509 di Azure IoT Hub Anda. Di bagian itu, Anda melakukan langkah-langkah berikut:

    1. Unggah sertifikat OS akar. Jika Anda menggunakan sertifikat demo, CA akar adalah <path>/certs/azure-iot-test-only.root.ca.cert.pem.

    2. Verifikasi bahwa Anda memiliki sertifikat OS akar tersebut.

  3. Ikuti instruksi di bagian Membuat perangkat di IoT Hub Anda di menyiapkan keamanan X.509 di Azure IoT hub Anda. Di bagian itu, Anda melakukan langkah-langkah berikut:

    1. Tambahkan perangkat baru. Berikan nama dalam huruf kecil untuk ID perangkat, dan pilih jenis autentikasi X.509 yang Ditandatangani OS.

    2. Set perangkat induk. Pilih Atur perangkat induk dan pilih perangkat gateway IoT Edge yang akan menyediakan koneksi ke IoT Hub.

  4. Buat rantai sertifikat untuk perangkat hilir Anda. Gunakan sertifikat OS akar yang sama dengan yang Anda unggah ke IoT Hub untuk membuat rantai ini. Gunakan ID perangkat dengan huruf kecil yang sama dengan yang Anda berikan ke identitas perangkat Anda di portal.

  5. Salin sertifikat perangkat dan kunci ke lokasi mana pun di perangkat hilir. Pindahkan juga salinan sertifikat OS akar bersama yang menghasilkan sertifikat perangkat gateway dan sertifikat perangkat hilir.

    Anda akan mereferensikan file-file ini dalam aplikasi apa pun di perangkat hilir yang tersambungkan ke IoT Hub. Anda dapat menggunakan layanan seperti Azure Key Vault atau fungsi seperti Protokol salin aman untuk memindahkan file sertifikat.

  6. Bergantung pada bahasa pilihan Anda, ulas sampel cara sertifikat X.509 dapat dirujuk dalam aplikasi IoT:

Anda juga dapat menggunakan ekstensi IoT untuk Azure CLI untuk menyelesaikan operasi pembuatan perangkat yang sama. Contoh berikut menggunakan perintah identitas perangkat az iot hub untuk membuat perangkat IoT baru dengan autentikasi X.509 bertanda tangan OS dan menetapkan perangkat induk:

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

Tip

Anda dapat mencantumkan properti perangkat termasuk cakupan perangkat menggunakan az iot hub device-identity list --hub-name {iothub name}.

Selanjutnya, Ambil dan ubah string koneksi sehingga perangkat Anda mengetahui untuk tersambungkan melalui gateway-nya.

Mengambil dan mengubah string koneksi

Setelah membuat identitas perangkat IoT di portal, Anda dapat mengambil kunci utama atau sekundernya. Salah satu kunci ini perlu dimasukkan dalam string koneksi yang digunakan aplikasi untuk berkomunikasi dengan IoT Hub. Untuk autentikasi kunci konten, IoT Hub menyediakan string koneksi yang sepenuhnya terbentuk dalam detail perangkat untuk kenyamanan Anda. Anda perlu menambahkan informasi tambahan tentang perangkat gateway ke string koneksi.

String koneksi untuk perangkat hilir membutuhkan komponen berikut:

  • IoT hub yang disambungkan ke perangkat: Hostname={iothub name}.azure-devices.net
  • ID perangkat yang terdaftar di hub: DeviceID={device ID}
  • Metode autentikasi, baik kunci konten atau sertifikat X.509
    • Jika menggunakan autentikasi kunci konten, sediakan kunci utama atau sekunder: SharedAccessKey={key}
    • Jika menggunakan autentikasi sertifikat X.509, berikan bendera: x509=true
  • Perangkat gateway yang disambungkan ke perangkat. Berikan nilai nama host dari file konfigurasi perangkat gateway IoT Edge: GatewayHostName={gateway hostname}

Setelah lengkap, string koneksi lengkap terlihat seperti:

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

Atau:

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

Karena hubungan induk/anak, Anda dapat menyederhanakan string koneksi dengan memanggil gateway secara langsung sebagai host koneksi. Contohnya:

HostName=myGatewayDevice;DeviceId=myDownstreamDevice;SharedAccessKey=xxxyyyzzz

Anda akan menggunakan string koneksi yang dimodifikasi ini di artikel berikutnya dari seri gateway transparan.

Langkah berikutnya

Pada titik ini, Anda memiliki perangkat IoT Edge yang terdaftar di IoT hub Anda dan dikonfigurasikan sebagai gateway transparan. Anda juga memiliki perangkat hilir yang terdaftar dengan IoT hub Anda dan menunjuk ke perangkat gateway-nya.

Selanjutnya, Anda perlu mengonfigurasikan perangkat hilir untuk mempercayai perangkat gateway dan menyambungkannya dengan aman. Lanjutkan ke artikel berikutnya di seri gateway transparan, Sambungkan perangkat hilir ke gateway Azure IoT Edge.