Mosquitto: Come funziona l'autenticazione API MQTT
Questa documentazione fa parte della guida Autenticazione API. Consulta la guida completa qui: Come autenticare migliaia di dispositivi utilizzando un'API esterna.
👋 Benvenuti nella documentazione di Stackhero!
Stackhero offre una soluzione Mosquitto MQTT cloud pronta all'uso che fornisce numerosi vantaggi, tra cui:
- Scambi e trasferimenti illimitati di messaggi.
- Autenticazione illimitata dei dispositivi tramite un'API esterna.
- ACL avanzate su argomenti, utenti e azioni.
- Nome di dominio personalizzabile sicuro con HTTPS (ad esempio, https://mqtt.your-company.com).
- Aggiornamenti semplificati con un solo clic.
- Prestazioni ottimali e sicurezza robusta grazie a una VM privata e dedicata.
Risparmiate tempo e semplificate la vostra vita: bastano 5 minuti per provare la soluzione Mosquitto MQTT cloud hosting di Stackhero!
L'uso dell'autenticazione API esterna è particolarmente utile quando si hanno più di 20 dispositivi IoT o quando è necessaria una gestione dettagliata delle ACL degli argomenti.
Quando un dispositivo si connette a MQTT, Mosquitto invia una richiesta HTTP POST alla tua API. La richiesta include un payload JSON contenente il nome utente e la password del dispositivo. Se la tua API restituisce un codice di stato HTTP 200, il dispositivo è autorizzato. Qualsiasi codice di stato diverso da 200 (come 401) comporta il rifiuto dell'accesso al dispositivo.
Durante la validazione delle ACL, vengono trasmessi quattro parametri: username, clientid, topic e acc. La tua API deve verificare che l'username sia autorizzato a eseguire l'operazione definita da acc sull'topic. Il parametro acc è definito come segue:
- accesso in lettura (1)
- accesso in scrittura (2)
- accesso in lettura e scrittura (3)
- accesso alla sottoscrizione (4)
Ad esempio, se l'utente userA tenta di sottoscrivere l'argomento sensors/temperatures, la tua API riceverà il seguente JSON:
{
"username": "userA",
"clientid": "userA",
"topic": "sensors/temperatures",
"acc": 4
}
Quando si utilizza l'autenticazione utente tramite un'API, è comunque possibile definire manualmente gli utenti nella dashboard di Stackhero. In tal caso, gli utenti definiti manualmente avranno la priorità.