Bagikan melalui


Mengautentikasi perangkat hilir ke Azure IoT Hub

Berlaku untuk:Tanda centang IoT Edge 1.5 IoT Edge 1.5

Penting

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

Dalam skenario gateway transparan, perangkat hilir, kadang-kadang disebut perangkat anak, membutuhkan identitas di IoT Hub seperti perangkat lain. Artikel ini menjelaskan opsi untuk mengautentikasi perangkat hilir ke IoT Hub dan memperlihatkan cara mendeklarasikan koneksi gateway.

Catatan

Perangkat hilir mengirim data langsung ke internet atau ke perangkat gateway, baik perangkat yang 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 simetris (kadang-kadang disebut kunci akses bersama), sertifikat X.509 yang ditandatangani sendiri, atau sertifikat yang ditandatangani oleh otoritas sertifikat (CA) X.509. Langkah autentikasi mirip dengan langkah untuk menyiapkan perangkat non-IoT Edge dengan IoT Hub, dengan perbedaan kecil untuk mendeklarasikan hubungan gateway.

Penyediaan otomatis perangkat downstream dengan Azure IoT Hub Device Provisioning Service (DPS) tidak didukung.

Prasyarat

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

Jika Anda menggunakan autentikasi X.509, buat sertifikat untuk perangkat hilir Anda. Pastikan Anda memiliki sertifikat root CA yang sama dan skrip pembuatan sertifikat yang Anda gunakan dalam artikel gateway transparan.

Artikel ini merujuk ke nama host gateway di beberapa titik. Nama host gateway diatur dalam parameter nama host file konfigurasi pada perangkat gateway IoT Edge. Ini juga digunakan dalam rangkaian koneksi perangkat hilir. Nama host gateway harus diterjemahkan menjadi alamat IP dengan menggunakan DNS atau entri file host oleh 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 Atur perangkat induk dan pilih perangkat gateway IoT Edge yang menghubungkan perangkat hilir ini melalui perangkat tersebut. 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}

Petunjuk / Saran

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 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 Atur perangkat induk dan tentukan perangkat gateway IoT Edge yang menghubungkan 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}

Petunjuk / Saran

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 dikeluarkan oleh sertifikat OS akar atau sertifikat perantaranya diizinkan untuk mengautentikasi.

Untuk pengenalan tentang menggunakan sertifikat CA X.509 untuk mengautentikasi di IoT Hub, lihat manfaat autentikasi sertifikat CA X.509.

Untuk menyiapkan autentikasi bertanda tangan CA X.509 untuk perangkat hilir, ikuti langkah-langkah berikut:

  1. Dapatkan sertifikat CA X.509 yang dapat Anda gunakan untuk menandatangani sertifikat untuk perangkat hilir Anda. Untuk contoh cara menyiapkan autentikasi yang ditandatangani CA X.509, lihat contoh skenario berikut.

  2. Buat rantai sertifikat untuk perangkat hilir Anda. Untuk mempelajari lebih lanjut, ikuti langkah-langkah dalam membuat CA subordinat.

  3. Daftarkan sertifikat CA X.509 di IoT Hub Anda. Untuk mempelajari lebih lanjut, ikuti langkah-langkah dalam mendaftarkan sertifikat CA subordinat Anda ke IoT Hub Anda.

  4. Salin sertifikat dan kunci perangkat ke perangkat hilir. Untuk informasi selengkapnya, lihat mengelola sertifikat IoT Edge.

  5. Daftarkan perangkat dengan IoT Hub untuk menggunakan autentikasi bertanda tangan X.509 CA. Untuk informasi selengkapnya, lihat membuat dan mengelola identitas perangkat.

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

Mengambil dan mengubah string koneksi

Setelah Anda membuat identitas perangkat IoT di portal, dapatkan kunci primer atau sekundernya. Tambahkan salah satu kunci ini ke string koneksi yang digunakan aplikasi untuk berbicara dengan IoT Hub. Untuk autentikasi kunci simetris, IoT Hub menunjukkan string koneksi lengkap dalam detail perangkat. Tambahkan informasi perangkat gateway ke string koneksi.

String koneksi untuk perangkat hilir membutuhkan bagian-bagian ini:

  • Hub IoT yang menjadi tempat perangkat terhubung: Hostname=<Iot-Hub-Name>.azure-devices.net
  • ID perangkat yang terdaftar di hub: DeviceID=<Device-ID>
  • Metode autentikasi, menggunakan kunci simetris atau sertifikat X.509.
    • Untuk otentikasi kunci simetrik, masukkan kunci utama atau sekunder: SharedAccessKey=<Key>
    • Untuk autentikasi sertifikat X.509, berikan bendera: x509=true
  • Perangkat gateway yang disambungkan perangkat. Masukkan nilai nama host dari file konfigurasi perangkat gateway IoT Edge: GatewayHostName=<Gateway-Hostname>

String koneksi lengkap terlihat seperti contoh ini:

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

Atau, untuk autentikasi sertifikat X.509:

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

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

HostName=myGatewayDevice;DeviceId=myDownstreamDevice;SharedAccessKey=xxxyyyzzz

Gunakan string koneksi yang dimodifikasi ini di artikel berikutnya dalam seri gateway transparan.

Langkah berikutnya

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

Selanjutnya, siapkan perangkat hilir Anda untuk mempercayai perangkat gateway dan menyambungkannya dengan aman. Lanjutkan dengan artikel berikutnya dalam seri gateway transparan: Sambungkan perangkat hilir ke gateway Azure IoT Edge.