Bạn cần một proxy môi giới, hoặc một máy chủ web ...
Trước hết, bạn hoàn toàn cần một dịch vụ xác thực ở đâu đó được kết nối với nhà môi giới của bạn để thực hiện 2FA bằng các chủ đề cụ thể ( /auth/RFID
, ...). Sau đó, nó sẽ cho phép khách hàng xuất bản thông tin (xem bên dưới).
Vấn đề đầu tiên tôi có thể thấy ở đây là bất kỳ ai đăng ký chủ đề này đều có thể đọc thông tin của chủ đề đó, nhưng bạn có thể khóa chủ đề !
Sau đó, bạn có thể nói (buộc) tất cả các thiết bị của mình xuất bản thông tin tới /proxy/mytopic
. Với tính năng clientId của mqtt, dịch vụ xác thực có thể kiểm tra xem các tin nhắn được gửi từ chủ đề này có phải từ một thiết bị được xác thực đã sử dụng 2FA trước đó hay không, sau đó xuất bản tin nhắn của chính nó cho thiết bị /proxyout/mytopic
với id của thiết bị trong tải trọng.
Vấn đề bây giờ là kiểm tra các thiết bị có thể nhận tin nhắn nếu chúng được xác thực, bởi vì, tốt, MQTT là tất cả về xuất bản hàng loạt. Dịch vụ xác thực cần có một danh sách các thiết bị được xác thực và kiểm tra xem chúng có đủ điều kiện để nhận không. Một lần nữa, mã hóa tải và giải mã phía thiết bị ...
Tôi nghĩ rằng giải pháp của tôi là quá mức cần thiết đối với khả năng MQTT. Do đó, bạn nên sử dụng ổ cắm hoặc máy chủ web ...