Mosquitto: Kaip veikia MQTT API autentifikavimas

Ši dokumentacija yra API autentifikavimas vadovo dalis. Visą vadovą rasite čia: Kaip autentifikuoti tūkstančius įrenginių naudojant išorinę API.

👋 Sveiki atvykę į Stackhero dokumentaciją!

Stackhero siūlo paruoštą naudoti Mosquitto MQTT cloud sprendimą, kuris suteikia daugybę privalumų, įskaitant:

  • Neriboti žinučių mainai ir perdavimai.
  • Neribota įrenginių autentifikacija per išorinę API.
  • Pažangios ACL temos, vartotojams ir veiksmams.
  • Pritaikomas domeno vardas apsaugotas HTTPS (pavyzdžiui, https://mqtt.jusu-imone.com).
  • Lengvi atnaujinimai vienu paspaudimu.
  • Optimali veikla ir tvirta sauga naudojant privačią ir dedikuotą VM.

Taupykite laiką ir supaprastinkite savo gyvenimą: tereikia 5 minučių išbandyti Stackhero Mosquitto MQTT cloud hosting sprendimą!

Naudojant išorinę API autentifikaciją yra ypač naudinga, kai turite daugiau nei 20 IoT įrenginių arba kai reikia detalaus temų ACL valdymo.

Kai įrenginys prisijungia prie MQTT, Mosquitto siunčia HTTP POST užklausą jūsų API. Užklausa apima JSON duomenis su įrenginio prisijungimo vardu ir slaptažodžiu. Jei jūsų API grąžina HTTP statuso kodą 200, įrenginys yra autorizuotas. Bet koks kitas statuso kodas nei 200 (pvz., 401) reiškia, kad įrenginiui prieiga yra uždrausta.

ACL patikrinimo metu perduodami keturi parametrai: username, clientid, topic ir acc. Jūsų API turėtų patikrinti, ar username leidžiama atlikti operaciją, apibrėžtą acc, su topic. Parametras acc apibrėžiamas taip:

  1. skaitymo prieiga (1)
  2. rašymo prieiga (2)
  3. skaitymo ir rašymo prieiga (3)
  4. prenumeratos prieiga (4)

Pavyzdžiui, jei vartotojas userA bando prenumeruoti temą sensors/temperatures, jūsų API gaus šį JSON:

{
  "username": "userA",
  "clientid": "userA",
  "topic": "sensors/temperatures",
  "acc": 4
}

Kai naudojate vartotojo autentifikavimą per API, vis tiek galite rankiniu būdu apibrėžti vartotojus Stackhero prietaisų skydelyje. Tokiu atveju rankiniu būdu apibrėžti vartotojai turės prioritetą.