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 Ihnen eine vollständig verwaltete Mosquitto MQTT Cloud-Umgebung, die auf Zuverlässigkeit und Flexibilität ausgelegt ist:
- Unbegrenzter Nachrichtendurchsatz und unbegrenzte Datenübertragungen, damit Ihre Workflows niemals auf künstliche Grenzen stoßen.
- Unbegrenzte Geräteauthentifizierung über Ihre eigene externe API, um Onboarding und Zugriffsverwaltung nahtlos zu gestalten.
- Erweiterte ACLs für eine feingranulare Steuerung von Topics, Benutzern und Aktionen.
- Ein individueller Domainname mit integriertem HTTPS für sichere, markenkonforme Endpunkte (zum Beispiel: https://mqtt.your-company.com).
- Updates ohne Aufwand: Verbesserungen oder Sicherheitspatches mit nur einem Klick anwenden.
- Gleichbleibende Performance und hohe Sicherheit, da jede Instanz auf einer privaten, dedizierten Infrastruktur läuft.
Beschleunigen Sie Ihre IoT-Projekte und reduzieren Sie den Betriebsaufwand. Sie können in nur wenigen Minuten eine sichere, produktionsreife Mosquitto MQTT Cloud Hosting-Instanz bereitstellen.
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:
- Lesezugriff (1)
- Schreibzugriff (2)
- Lese- und Schreibzugriff (3)
- 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.