Mosquitto: Wie die MQTT-API-Authentifizierung funktioniert

Diese Dokumentation ist Teil des API-Authentifizierung-Leitfadens. Den vollständigen Leitfaden finden Sie hier: Wie man Tausende von Geräten mit einer externen API authentifiziert.

👋 Willkommen in der Stackhero-Dokumentation!

Stackhero bietet eine einsatzbereite Mosquitto MQTT Cloud Lösung, die zahlreiche Vorteile bietet, darunter:

  • Unbegrenzter Nachrichtenaustausch und -transfer.
  • Unbegrenzte Geräteauthentifizierung über eine externe API.
  • Erweiterte ACLs für Themen, Benutzer und Aktionen.
  • Anpassbarer Domainname gesichert mit HTTPS (zum Beispiel, https://mqtt.ihre-firma.com).
  • Mühelose Updates mit nur einem Klick.
  • Optimale Leistung und robuste Sicherheit durch eine private und dedizierte VM.

Sparen Sie Zeit und vereinfachen Sie Ihr Leben: Es dauert nur 5 Minuten, um die Mosquitto MQTT Cloud Hosting Lösung von Stackhero auszuprobieren!

Die Verwendung der externen API-Authentifizierung ist besonders nützlich, wenn Sie mehr als 20 IoT-Geräte haben oder eine detaillierte Themen-ACL-Verwaltung benötigen.

Wenn sich ein Gerät mit MQTT verbindet, sendet Mosquitto eine HTTP-POST-Anfrage an Ihre API. Die Anfrage enthält eine JSON-Nutzlast mit dem Benutzernamen und Passwort des Geräts. Wenn Ihre API einen HTTP-Statuscode 200 zurückgibt, ist das Gerät autorisiert. Jeder andere Statuscode als 200 (wie 401) führt dazu, dass dem Gerät der Zugriff verweigert wird.

Während der ACL-Validierung werden vier Parameter übermittelt: username, clientid, topic und acc. Ihre API sollte überprüfen, ob der username berechtigt ist, die durch acc definierte Operation auf dem topic auszuführen. Der acc-Parameter ist wie folgt definiert:

  1. Lesezugriff (1)
  2. Schreibzugriff (2)
  3. Lese- und Schreibzugriff (3)
  4. Abonnementzugriff (4)

Zum Beispiel, wenn der Benutzer userA versucht, das Thema sensors/temperatures zu abonnieren, erhält Ihre API folgendes JSON:

{
  "username": "userA",
  "clientid": "userA",
  "topic": "sensors/temperatures",
  "acc": 4
}

Wenn Sie die Benutzerauthentifizierung über eine API verwenden, können Sie weiterhin Benutzer manuell im Stackhero-Dashboard definieren. In diesem Fall haben die manuell definierten Benutzer Vorrang.