Mosquitto: Jak działa uwierzytelnianie API MQTT
Ta dokumentacja jest częścią przewodnika Uwierzytelnianie API. Pełny przewodnik znajdziesz tutaj: Jak uwierzytelnić tysiące urządzeń za pomocą zewnętrznego API.
👋 Witamy w dokumentacji Stackhero!
Stackhero zapewnia w pełni zarządzane środowisko Mosquitto MQTT cloud, zaprojektowane z myślą o niezawodności i elastyczności:
- Nielimitowana przepustowość wiadomości i transfery danych, dzięki czemu Twoje procesy nigdy nie napotkają sztucznych ograniczeń.
- Nielimitowana autoryzacja urządzeń poprzez własne zewnętrzne API, co umożliwia płynne wdrażanie i zarządzanie dostępem.
- Zaawansowane ACLs zapewniające precyzyjną kontrolę nad tematami, użytkownikami i działaniami.
- Własna nazwa domeny z wbudowanym HTTPS dla bezpiecznych, markowych endpointów (na przykład: https://mqtt.twoja-firma.com).
- Aktualizacje bez wysiłku: wprowadzaj ulepszenia lub poprawki bezpieczeństwa jednym kliknięciem.
- Stała wydajność i wysoki poziom bezpieczeństwa – każda instancja działa na prywatnej, dedykowanej infrastrukturze.
Przyspiesz swoje projekty IoT i ogranicz koszty operacyjne. Bezpieczną, gotową do produkcji instancję Mosquitto MQTT cloud hosting możesz uruchomić w zaledwie kilka minut.
Użycie zewnętrznego uwierzytelniania API jest szczególnie przydatne, gdy masz więcej niż 20 urządzeń IoT lub potrzebujesz szczegółowego zarządzania ACL tematów.
Gdy urządzenie łączy się z MQTT, Mosquitto wysyła żądanie HTTP POST do Twojego API. Żądanie zawiera ładunek JSON z nazwą użytkownika i hasłem urządzenia. Jeśli Twoje API zwróci kod statusu HTTP 200, urządzenie jest autoryzowane. Każdy inny kod statusu niż 200 (np. 401) skutkuje odmową dostępu dla urządzenia.
Podczas walidacji ACL przesyłane są cztery parametry: username, clientid, topic i acc. Twoje API powinno zweryfikować, czy username ma pozwolenie na wykonanie operacji zdefiniowanej przez acc na topic. Parametr acc jest zdefiniowany w następujący sposób:
- dostęp do odczytu (1)
- dostęp do zapisu (2)
- dostęp do odczytu i zapisu (3)
- dostęp do subskrypcji (4)
Na przykład, jeśli użytkownik userA próbuje zasubskrybować temat sensors/temperatures, Twoje API otrzyma następujący JSON:
{
"username": "userA",
"clientid": "userA",
"topic": "sensors/temperatures",
"acc": 4
}
Gdy używasz uwierzytelniania użytkownika przez API, nadal możesz definiować użytkowników ręcznie na pulpicie Stackhero. W takim przypadku ręcznie zdefiniowani użytkownicy będą mieli priorytet.