Mosquitto: Fonctionnement de l'authentification MQTT via API

Cette documentation fait partie du guide Authentification API. Consultez le guide complet ici : Comment authentifier des milliers d'appareils via une API externe.

👋 Bienvenue sur la documentation de Stackhero !

Stackhero propose une solution Mosquitto MQTT cloud prête à l'emploi qui offre de nombreux avantages, notamment :

  • Echanges et transferts de messages illimités.
  • Authentification de périphériques illimités via une API externe.
  • ACLs avancées sur les topics, les utilisateurs et les actions.
  • Nom de domaine personnalisable sécurisé en HTTPS (par exemple, https://mqtt.votre-entreprise.com).
  • Mises à jour simplifiées en un clic.
  • Performance optimale et sécurité renforcée grâce à une VM privée et dédiée.

Gagnez du temps et simplifiez-vous la vie : il suffit de 5 minutes pour essayer la solution Mosquitto MQTT cloud hosting de Stackhero !

L'utilisation d'une authentification externe par API est particulièrement adaptée si vous gérez plus de 20 appareils IoT ou si vous avez besoin d'une gestion fine des ACLs par topic.

Lorsqu'un appareil se connecte à MQTT, Mosquitto envoie une requête HTTP POST à votre API. Cette requête contient un payload JSON avec le nom d'utilisateur et le mot de passe de l'appareil. Si votre API retourne un code HTTP 200, l'appareil est autorisé. Tout autre code (comme 401) entraîne un refus d'accès.

Lors de la validation des ACLs, quatre paramètres sont transmis : username, clientid, topic et acc. Votre API doit vérifier que le username est autorisé à effectuer l'opération définie par acc sur le topic. Le paramètre acc est défini comme suit :

  1. accès en lecture (1)
  2. accès en écriture (2)
  3. accès lecture et écriture (3)
  4. accès abonnement (4)

Par exemple, si l'utilisateur userA tente de s'abonner au topic sensors/temperatures, votre API recevra le JSON suivant :

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

Lorsque vous utilisez l'authentification des utilisateurs via une API, vous pouvez toujours définir des utilisateurs manuellement dans le tableau de bord Stackhero. Dans ce cas, les utilisateurs définis manuellement seront prioritaires.