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.
👋 Benvenuto nella documentazione di Stackhero!
Stackhero offre un ambiente Mosquitto MQTT cloud completamente gestito, progettato per garantire affidabilità e flessibilità:
- Throughput illimitato per i messaggi e trasferimenti di dati, così i tuoi workflow non incontreranno mai limiti artificiali.
- Autenticazione illimitata dei dispositivi tramite la tua API esterna, per un onboarding e una gestione degli accessi senza interruzioni.
- ACL avanzate per un controllo dettagliato su topic, utenti e azioni.
- Un nome di dominio personalizzato con HTTPS integrato per endpoint sicuri e brandizzati (ad esempio: https://mqtt.tua-azienda.com).
- Aggiornamenti senza complicazioni: applica miglioramenti o patch di sicurezza con un solo clic.
- Performance costante e sicurezza elevata, con ogni istanza eseguita su un'infrastruttura privata e dedicata.
Accelera i tuoi progetti IoT e riduci il carico operativo. Puoi avere un'istanza Mosquitto MQTT cloud hosting sicura e pronta per la produzione in pochi minuti.
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à.