Вам потрібен проксі-посередник або веб-сервер ...
Перш за все, вам абсолютно потрібна послуга аутентифікації десь підключена до вашого брокера, щоб виконати 2FA з використанням конкретних тем ( /auth/RFID
, ...). Потім це дозволить клієнту публікувати інформацію (див. Нижче).
Перша проблема, яку я бачу тут, - це те, що кожен, хто підписався на цю тему, може прочитати інформацію з цієї теми, але ви можете заблокувати теми !
Потім ви можете сказати (змусити) всі свої пристрої публікувати інформацію /proxy/mytopic
. Завдяки функції clientId mqtt служба аутентифікації може перевірити, чи є повідомлення, надіслані з цієї теми, з аутентифікованого пристрою, який раніше використовував 2FA, а потім публікувати своє власне повідомлення від імені пристрою /proxyout/mytopic
з ідентифікатором пристрою в корисному навантаженні.
Проблема зараз полягає в тому, щоб перевірити наявність пристроїв, які можуть отримувати повідомлення, якщо вони перевірені автентичністю, адже, MQTT, все стосується масової публікації. Службі аутентифікації потрібно мати список автентифікованих пристроїв і перевірити, чи вони мають право на прийом. Знову шифрування корисного навантаження та дешифрування на стороні пристрою ...
Я думаю, що моє рішення дуже непосильне над можливостями MQTT. Тому ви повинні використовувати сокет або веб-сервер ...