Sie benötigen einen Broker-Proxy oder einen Webserver ...
Zunächst benötigen Sie unbedingt einen Authentifizierungsservice, der mit Ihrem Broker verbunden ist, um die 2FA unter Verwendung bestimmter Themen durchzuführen ( /auth/RFID
, ...). Der Kunde kann dann Informationen veröffentlichen (siehe unten).
Das erste Problem, das ich hier sehe, ist, dass jeder, der dieses Thema abonniert hat, die Informationen zu diesem Thema lesen kann, aber Sie können Themen sperren !
Sie können dann alle Ihre Geräte anweisen (zwingen) , Informationen zu veröffentlichen /proxy/mytopic
. Mit der clientId-Funktion von mqtt kann der auth-Dienst prüfen, ob die von diesem Thema gesendeten Nachrichten von einem authentifizierten Gerät stammen, das zuvor 2FA verwendet hat, und dann seine eigene Nachricht im Namen des Geräts /proxyout/mytopic
mit der Geräte-ID in der Nutzlast veröffentlichen.
Das Problem ist jetzt prüft für Geräte , die können Nachrichten empfangen , wenn sie authentifiziert sind, weil, na ja, MQTT alles über Massen Veröffentlichung ist. Der Authentifizierungsdienst muss eine Liste der authentifizierten Geräte haben und prüfen, ob diese für den Empfang berechtigt sind. Nutzdatenverschlüsselung und -entschlüsselung auf der Geräteseite ...
Ich denke, meine Lösung ist sehr übertrieben gegenüber den MQTT-Funktionen. Sie sollten daher einen Socket oder einen Webserver verwenden ...