Bagikan melalui


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, autentikasi umumnya terjadi sekali selama 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 ID Microsoft Entra

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 sertifikat akar, menengah, dan daun, pastikan untuk mengunggah sertifikat perantara yang menandatangani sertifikat daun/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 cocok dengan nama autentikasi dari sertifikat dengan nama autentikasi klien dalam metadata klien untuk memvalidasi klien. 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

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.

Catatan

  • 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 nama pengguna, Anda perlu mengonfigurasi bidang sumber alternatif untuk nama autentikasi klien di cakupan namespace layanan. 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 Subjek membedakan nama 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.
Ip Sertifikat tls_client_auth_san_ip Alamat IPv4 atau IPv6 ada dalam entri iPAddress SAN dalam sertifikat.
Email Sertifikat tls_client_auth_san_email Entri rfc822Name SAN dalam sertifikat.

Langkah berikutnya