Mosquitto: Comment fonctionne l'authentification API MQTT

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

👋 Bienvenue sur la documentation de Stackhero !

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

  • Échanges et transferts illimités de messages.
  • Authentification illimitée des appareils via une API externe.
  • ACLs avancées sur les topics, utilisateurs et actions.
  • Nom de domaine personnalisable sécurisé avec HTTPS (par exemple, https://mqtt.votre-entreprise.com).
  • Mises à jour simplifiées en un clic.
  • Performance optimale et sécurité robuste 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 de l'authentification API externe est particulièrement utile lorsque vous avez plus de 20 appareils IoT ou lorsque vous avez besoin d'une gestion détaillée des ACL de sujets.

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

Lors de la validation des ACL, 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 en lecture et écriture (3)
  4. accès à l'abonnement (4)

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

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

Lorsque vous utilisez l'authentification utilisateur 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.