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 een kant-en-klare Mosquitto MQTT cloud oplossing die tal van voordelen biedt, waaronder:
- Onbeperkte uitwisseling en overdracht van berichten.
- Onbeperkte apparaatverificatie via een externe API.
- Geavanceerde ACL's op onderwerpen, gebruikers en acties.
- Aanpasbare domeinnaam beveiligd met HTTPS (bijvoorbeeld, https://mqtt.uw-bedrijf.com).
- Moeiteloze updates met slechts één klik.
- Optimale prestaties en robuuste beveiliging aangedreven door een privé en toegewijde VM.
Bespaar tijd en vereenvoudig uw leven: het kost slechts 5 minuten om de Mosquitto MQTT cloud hosting oplossing van Stackhero te proberen!
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.