Necesita un proxy de intermediario o un servidor web ...
En primer lugar, absolutamente necesita un servicio de autenticación en algún lugar conectado a su corredor para realizar el 2FA utilizando temas específicos ( /auth/RFID
, ...). A continuación, permitiría al cliente publicar información (ver más abajo).
El primer problema que puedo ver aquí es que cualquier persona suscrita a este tema puede leer la información de ese tema, ¡pero usted puede bloquear los temas !
Luego puede indicar (forzar) a todos sus dispositivos para que publiquen información /proxy/mytopic
. Con la función clientId de mqtt, el servicio de autenticación puede verificar si los mensajes enviados desde este tema provienen de un dispositivo autenticado que usó 2FA previamente, y luego publicar su propio mensaje en nombre del dispositivo /proxyout/mytopic
con la identificación del dispositivo en la carga útil.
El problema ahora es buscar dispositivos que puedan recibir mensajes si están autenticados, porque, bueno, MQTT tiene que ver con la publicación masiva. El servicio de autenticación debe tener una lista de dispositivos autenticados y verificar si son elegibles para la recepción. Nuevamente, el cifrado de carga útil y el descifrado del lado del dispositivo ...
Creo que mi solución es muy exagerada sobre las capacidades de MQTT. Por lo tanto, debe usar un socket o un servidor web ...