Potrzebujesz brokera proxy lub serwera WWW ...
Przede wszystkim absolutnie potrzebujesz usługi uwierzytelniania gdzieś podłączonej do twojego brokera, aby wykonać 2FA przy użyciu określonych tematów ( /auth/RFID
, ...). Umożliwiłoby to klientowi opublikowanie informacji (patrz poniżej).
Pierwszym problemem, jaki widzę tutaj, jest to, że każdy, kto subskrybuje ten temat, może przeczytać informacje na ten temat, ale możesz zablokować tematy !
Następnie możesz powiedzieć (wymusić) na wszystkich swoich urządzeniach, aby opublikowały informacje /proxy/mytopic
. Dzięki funkcji clientId mqtt usługa uwierzytelniania może sprawdzić, czy wiadomości wysyłane z tego tematu pochodzą z uwierzytelnionego urządzenia, które poprzednio korzystało z 2FA, a następnie opublikować własną wiadomość w imieniu urządzenia, /proxyout/mytopic
podając identyfikator urządzenia w ładunku.
Problem polega teraz na sprawdzeniu urządzeń, które mogą odbierać wiadomości, jeśli są uwierzytelnione, ponieważ Cóż, MQTT polega na masowej publikacji. Usługa uwierzytelniania musi mieć listę uwierzytelnionych urządzeń i sprawdzić, czy kwalifikują się do odbioru. Ponownie szyfrowanie i deszyfrowanie ładunku po stronie urządzenia ...
Myślę, że moje rozwiązanie jest bardzo przesadne w stosunku do możliwości MQTT. Dlatego powinieneś użyć gniazda lub serwera WWW ...