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:

  1. accesso in lettura (1)
  2. accesso in scrittura (2)
  3. accesso in lettura e scrittura (3)
  4. 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à.