Anda memerlukan proxy broker, atau server web ...
Pertama-tama, Anda benar - benar membutuhkan layanan otentikasi di suatu tempat yang terhubung ke broker Anda untuk melakukan 2FA menggunakan topik tertentu ( /auth/RFID
, ...). Itu kemudian akan memungkinkan klien untuk mempublikasikan informasi (lihat di bawah).
Masalah pertama yang dapat saya lihat di sini adalah bahwa siapa pun yang berlangganan topik ini dapat membaca informasi dari topik itu, tetapi Anda dapat mengunci topik !
Anda kemudian dapat memberi tahu (memaksa) semua perangkat Anda untuk mempublikasikan informasi /proxy/mytopic
. Dengan fitur clientId dari mqtt, layanan auth dapat memeriksa apakah pesan yang dikirim dari topik ini berasal dari perangkat yang diautentikasi yang menggunakan 2FA sebelumnya, dan kemudian menerbitkan pesannya sendiri atas nama perangkat untuk /proxyout/mytopic
dengan id perangkat di payload.
Masalahnya sekarang adalah memeriksa perangkat yang dapat menerima pesan jika mereka dikonfirmasi, karena, yah, MQTT adalah semua tentang publikasi massal. Layanan auth perlu memiliki daftar perangkat yang diautentikasi dan memeriksa apakah mereka memenuhi syarat untuk penerimaan. Sekali lagi, enkripsi muatan dan dekripsi sisi perangkat ...
Saya pikir solusi saya sangat berlebihan kemampuan MQTT. Karena itu Anda harus menggunakan soket atau server web ...