Autentikasi klien MQTT menggunakan sertifikat

Broker MQTT Azure Event Grid mendukung autentikasi klien menggunakan sertifikat X.509. Sertifikat X.509 menyediakan kredensial untuk mengaitkan klien tertentu dengan penyewa. Dalam model ini, otentikasi umumnya terjadi sekali selama proses pembentukan sesi. Kemudian, semua operasi di masa mendatang menggunakan sesi yang sama diasumsikan berasal dari identitas tersebut.

Mode autentikasi yang didukung adalah:

  • Sertifikat yang dikeluarkan oleh Otoritas Sertifikat (CA)
  • Sertifikat klien yang ditandatangani sendiri - thumbprint
  • Token Microsoft Entra ID

Artikel ini berfokus pada sertifikat. Untuk mempelajari tentang autentikasi menggunakan token ID Microsoft Entra, lihat mengautentikasi klien menggunakan token ID Microsoft Entra.

Sertifikat yang ditandatangani Otoritas Sertifikat (CA)

Dalam metode ini, sertifikat X.509 akar atau menengah terdaftar di layanan. Pada dasarnya, sertifikat akar atau perantara yang digunakan untuk menandatangani sertifikat klien, harus didaftarkan ke layanan terlebih dahulu.

Penting

  • Pastikan untuk mengunggah sertifikat akar atau menengah yang digunakan untuk menandatangani sertifikat klien. Tidak diperlukan untuk mengunggah seluruh rantai sertifikat.
  • Misalnya, jika Anda memiliki rantai dari sertifikat akar, sertifikat menengah, dan sertifikat daun, pastikan untuk mengunggah sertifikat perantara yang menandatangani sertifikat daun atau sertifikat klien.

Cuplikan layar memperlihatkan halaman sertifikat CA dengan sertifikat akar dan menengah yang digunakan untuk menandatangani sertifikat klien.

Saat mendaftarkan klien, Anda perlu mengidentifikasi bidang sertifikat yang digunakan untuk menyimpan nama autentikasi klien. Layanan ini mencocokkan nama autentikasi dari sertifikat dengan nama autentikasi klien dalam metadata klien guna memvalidasi klien tersebut. Layanan ini juga memvalidasi sertifikat klien dengan memverifikasi apakah sertifikat tersebut ditandatangani oleh sertifikat akar atau perantara yang terdaftar sebelumnya.

Cuplikan layar memperlihatkan metadata klien dengan lima skema validasi berbasis rantai sertifikat.

Sertifikat klien yang ditandatangani sendiri - thumbprint (cap jari)

Dalam metode autentikasi ini, registri klien menyimpan thumbprint sertifikat yang tepat yang akan digunakan klien untuk mengautentikasi. Ketika klien mencoba terhubung ke layanan, layanan memvalidasi klien dengan membandingkan thumbprint yang disajikan dalam sertifikat klien dengan thumbprint yang disimpan dalam metadata klien.

Cuplikan layar memperlihatkan metadata klien dengan skema autentikasi thumbprint.

Nota

  • Kami menyarankan agar Anda menyertakan nama autentikasi klien di bidang nama pengguna paket koneksi klien. Dengan menggunakan nama autentikasi ini bersama dengan sertifikat klien, layanan akan dapat mengautentikasi klien.
  • Jika Anda tidak memberikan nama autentikasi di bidang penamaan pengguna, Anda perlu mengonfigurasi bidang sumber alternatif untuk nama autentikasi klien di cakupan namespace. Layanan mencari nama autentikasi klien di bidang yang sesuai dari sertifikat klien untuk mengautentikasi koneksi klien.

Di halaman konfigurasi di cakupan namespace, Anda dapat mengaktifkan sumber nama autentikasi klien alternatif lalu memilih bidang sertifikat klien yang memiliki nama autentikasi klien.

Cuplikan layar memperlihatkan halaman konfigurasi namespace dengan nama autentikasi klien pengaturan sumber alternatif.

Urutan pemilihan bidang sertifikat klien pada halaman konfigurasi namespace adalah penting. Layanan mencari nama autentikasi klien di bidang sertifikat klien dalam urutan yang sama.

Misalnya, jika Anda memilih opsi DNS Sertifikat terlebih dahulu lalu opsi Nama Subjek - saat mengautentikasi koneksi klien,

  • layanan memeriksa bidang DNS nama alternatif subjek dari sertifikat klien terlebih dahulu untuk nama autentikasi klien
  • jika bidang DNS kosong, maka layanan memeriksa bidang Nama Subjek dari sertifikat klien
  • jika nama autentikasi klien tidak ada di salah satu dari dua bidang ini, koneksi klien ditolak

Dalam kedua mode autentikasi klien, kami mengharapkan nama autentikasi klien disediakan baik di bidang nama pengguna paket sambungkan atau di salah satu bidang sertifikat klien.

Bidang sertifikat klien yang didukung untuk sumber alternatif nama autentikasi klien

Anda dapat menggunakan salah satu bidang berikut untuk memberikan nama autentikasi klien di sertifikat klien.

Opsi sumber nama autentikasi Bidang Sertifikat Deskripsi
Nama Subjek Sertifikat tls_client_auth_subject_dn Nama terhormat subjek dari sertifikat.
Dns Sertifikat tls_client_auth_san_dns Entri dNSName SAN dalam sertifikat.
Uri Sertifikat tls_client_auth_san_uri Entri uniformResourceIdentifier SAN dalam sertifikat.
Sertifikat IP tls_client_auth_san_ip Alamat IPv4 atau IPv6 ada dalam entri iPAddress SAN dalam sertifikat.
Email Sertifikat otentikasi_klien_tls_san_email Entri rfc822Name SAN dalam sertifikat.

Langkah berikutnya