EMQX เปิดโหมดการตรวจสอบการอนุญาตการเชื่อมต่อ HTTP
ข้อมูลอ้างอิง
เว็บไซต์อย่างเป็นทางการ ปลั๊กอินการตรวจสอบสิทธิ์ HTTP โปรโตคอล HTTPกำหนดค่าปลั๊กอินการตรวจสอบสิทธิ์ HTTP
ใช้ vi หรือ vim เพื่อแก้ไขไฟล์ /etc/emqx/plugins/emqx_auth_http.conf กำหนดค่าการตรวจสอบการเชื่อมต่อการรับรองความถูกต้องของผู้ดูแลระบบและเผยแพร่และสมัครการรับรองความถูกต้องตามลำดับ การกำหนดค่าแบ่งออกเป็นสี่รายการที่อยู่อินเตอร์เฟส HTTP วิธีการร้องขอประเภทเนื้อหาและพารามิเตอร์การร้องขอ ที่อยู่อินเทอร์เฟซอ้างถึงที่อยู่ HTTP โดยปกติเราจะใช้ GET หรือ POST สำหรับวิธีการร้องขอและแนะนำให้ POST ประเภทเนื้อหามักใช้ x-www-form-urlencoded พารามิเตอร์การร้องขอเป็นสิ่งที่สำคัญที่สุดในที่นี้เราจำเป็นต้องรวมเนื้อหาทั้งหมดที่เราต้องการเพื่อตัดสินการอนุญาตคุณสามารถดูคำอธิบายโดยละเอียดของพารามิเตอร์ทั้งหมดได้ในเอกสารอ้างอิง ในตัวอย่างด้านล่างของเราที่อยู่บริการของ API ของเราเป็นรายการแบบรวมอินเทอร์เฟซการโทรจริงระบุโดยการดำเนินการในพารามิเตอร์แน่นอนว่าเราสามารถแยกความแตกต่างจาก url ได้และคุณสามารถปรับเปลี่ยนได้ตามการใช้งานของคุณเอง รหัสเซิร์ฟเวอร์จะไม่อธิบายไว้ในบทความนี้เนื่องจากมีการรวมเข้ากับตรรกะทางธุรกิจอย่างใกล้ชิดสิ่งที่เราต้องทำคือส่งคืนผลลัพธ์เป็น EMQX หลังจากการตัดสินเชิงตรรกะหากเราต้องการผ่านการตรวจสอบความถูกต้องเราจะส่งคืนรหัสสถานะ HTTP 200 ตามปกติหากล้มเหลว ส่งคืนรหัสสถานะ 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
โหลดปลั๊กอินการตรวจสอบสิทธิ์ HTTP
emqx_ctl plugins load emqx_auth_http
ผลการตรวจสอบ
หลังจากการดำเนินการข้างต้นเราจำเป็นต้องใช้ไคลเอนต์ MQTT เพื่อเชื่อมต่อเราพยายามใช้ไคลเอนต์ปกติและไคลเอนต์การจัดการเพื่อเชื่อมต่อกับเซิร์ฟเวอร์เพื่อดูว่าผลลัพธ์เป็นไปตามที่คาดไว้หรือไม่ จากนั้นเผยแพร่และสมัครรับหัวข้อเพื่อดูว่าการควบคุมอำนาจตรงตามข้อกำหนดของเราหรือไม่ หากพบข้อยกเว้นเราสามารถดีบักรหัสเซิร์ฟเวอร์จนกว่าทุกอย่างจะเป็นปกติ