EMQX membuka mode verifikasi otorisasi koneksi HTTP

Referensi

Situs resmi Plugin otentikasi HTTP Protokol HTTP

Konfigurasikan plugin otentikasi HTTP

Gunakan vi atau vim untuk mengedit file /etc/emqx/plugins/emqx_auth_http.conf. Konfigurasikan otentikasi koneksi, otentikasi administrator, dan terbitkan dan berlangganan otentikasi masing-masing. Konfigurasi tersebut dibagi menjadi empat item, alamat antarmuka HTTP, metode permintaan, jenis konten, dan parameter permintaan. Alamat antarmuka mengacu pada alamat HTTP. Kami biasanya menggunakan GET atau POST untuk metode permintaan, dan POST disarankan. Jenis konten biasanya menggunakan x-www-form-urlencoded. Parameter permintaan adalah yang paling penting. Di sini kita perlu menyertakan semua konten yang kita butuhkan untuk menilai otorisasi. Deskripsi rinci dari semua parameter dapat dilihat di materi referensi. Dalam contoh kami di bawah ini, alamat layanan API kami adalah entri terpadu. Antarmuka panggilan sebenarnya ditentukan oleh tindakan dalam parameter. Tentu saja, kami juga dapat membedakannya dari url, dan Anda dapat menyesuaikannya sesuai dengan penggunaan Anda sendiri. Kode server tidak akan dijelaskan dalam artikel ini, karena terintegrasi erat dengan logika bisnis. Yang harus kita lakukan adalah mengembalikan hasilnya ke EMQX setelah penilaian logis. Jika kita ingin melewati otentikasi, kita akan mengembalikan kode status HTTP 200 secara normal, jika gagal Ini mengembalikan kode status HTTP 403.

            auth.http.auth_req = http://127.0.0.1:80/
auth.http.auth_req.method = post
auth.http.auth_req.content_type = x-www-form-urlencoded
auth.http.auth_req.params = client_id=%c,username=%u,password=%P,action=emqx_auth:auth_req
auth.http.super_req = http://127.0.0.1:80/
auth.http.super_req.method = post
auth.http.super_req.content_type = x-www-form-urlencoded
auth.http.super_req.params = client_id=%c,username=%u,action=emqx_auth:super_req
auth.http.acl_req = http://127.0.0.1:80/
auth.http.acl_req.method = post
auth.http.acl_req.content_type = x-www-form-urlencoded
auth.http.acl_req.params = access=%A,username=%u,client_id=%c,ip=%a,topic=%t,action=emqx_auth:acl_req
        

Muat plugin otentikasi HTTP

            emqx_ctl plugins load emqx_auth_http
        

Hasil validasi

Setelah operasi di atas, kita perlu menggunakan klien MQTT untuk terhubung.Kami mencoba menggunakan klien normal dan klien manajemen untuk terhubung ke server untuk melihat apakah hasilnya seperti yang diharapkan. Kemudian terbitkan dan langganan topik untuk melihat apakah kontrol otoritas memenuhi persyaratan kami. Jika pengecualian ditemukan, kita dapat men-debug kode server sampai semuanya normal.