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 oferuje gotowe do użycia rozwiązanie Mosquitto MQTT cloud, które zapewnia wiele korzyści, w tym:

  • Nieograniczoną wymianę i transfer wiadomości.
  • Nieograniczoną autoryzację urządzeń za pomocą zewnętrznego API.
  • Zaawansowane ACL na tematy, użytkowników i działania.
  • Dostosowywalną nazwę domeny zabezpieczoną za pomocą HTTPS (na przykład, https://mqtt.twoja-firma.com).
  • Łatwe aktualizacje za pomocą jednego kliknięcia.
  • Optymalną wydajność i solidne bezpieczeństwo dzięki prywatnej i dedykowanej VM.

Oszczędzaj czas i upraszczaj swoje życie: wystarczy 5 minut, aby wypróbować rozwiązanie Mosquitto MQTT cloud hosting Stackhero!

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:

  1. dostęp do odczytu (1)
  2. dostęp do zapisu (2)
  3. dostęp do odczytu i zapisu (3)
  4. 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.