Mosquitto: Hoe MQTT API-authenticatie werkt
Deze documentatie maakt deel uit van de API-authenticatie-gids. Bekijk de volledige gids hier: Hoe duizenden apparaten te authenticeren met een externe API.
👋 Welkom bij de Stackhero-documentatie!
Stackhero biedt u een volledig beheerde Mosquitto MQTT cloud-omgeving, ontworpen voor betrouwbaarheid en flexibiliteit:
- Onbeperkte berichtendoorvoer en datatransfers, zodat uw workflows nooit tegen kunstmatige limieten aanlopen.
- Onbeperkte apparaat-authenticatie via uw eigen externe API, waardoor onboarding en toegangsbeheer moeiteloos verlopen.
- Geavanceerde ACL's voor gedetailleerde controle over topics, gebruikers en acties.
- Een eigen domeinnaam met ingebouwde HTTPS voor veilige, herkenbare endpoints (bijvoorbeeld: https://mqtt.uw-bedrijf.com).
- Probleemloze updates: verbeteringen of beveiligingspatches toepassen met één klik.
- Consistente prestaties en sterke beveiliging, doordat elke instantie draait op een privé, dedicated infrastructuur.
Versnel uw IoT-projecten en verlaag de operationele last. U kunt binnen enkele minuten beschikken over een veilige, productieklare Mosquitto MQTT cloud hosting-instantie.
Het gebruik van externe API-authenticatie is bijzonder nuttig wanneer u meer dan 20 IoT-apparaten heeft of wanneer u gedetailleerd onderwerp ACL-beheer nodig heeft.
Wanneer een apparaat verbinding maakt met MQTT, stuurt Mosquitto een HTTP POST-verzoek naar uw API. Het verzoek bevat een JSON-payload met de gebruikersnaam en het wachtwoord van het apparaat. Als uw API een HTTP-statuscode 200 retourneert, is het apparaat geautoriseerd. Elke andere statuscode dan 200 (zoals 401) resulteert in het weigeren van toegang voor het apparaat.
Tijdens ACL-validatie worden vier parameters verzonden: username, clientid, topic, en acc. Uw API moet verifiëren dat de username is toegestaan om de operatie gedefinieerd door acc op het topic uit te voeren. De acc-parameter is als volgt gedefinieerd:
- lees toegang (1)
- schrijf toegang (2)
- lees- en schrijf toegang (3)
- abonneer toegang (4)
Bijvoorbeeld, als de gebruiker userA probeert zich te abonneren op het onderwerp sensors/temperatures, ontvangt uw API de volgende JSON:
{
"username": "userA",
"clientid": "userA",
"topic": "sensors/temperatures",
"acc": 4
}
Wanneer u gebruikersauthenticatie via een API gebruikt, kunt u nog steeds gebruikers handmatig definiëren in het Stackhero-dashboard. In dat geval krijgen de handmatig gedefinieerde gebruikers voorrang.