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 dans la documentation Stackhero !

Stackhero vous offre un environnement Mosquitto MQTT cloud entièrement géré, conçu pour la fiabilité et la flexibilité :

  • Débit illimité pour les messages et les transferts de données, afin que vos workflows ne soient jamais limités artificiellement.
  • Authentification illimitée des appareils via votre propre API externe, pour simplifier l'intégration et la gestion des accès.
  • ACLs avancées pour un contrôle précis des topics, des utilisateurs et des actions.
  • Un nom de domaine personnalisé avec HTTPS intégré pour des endpoints sécurisés et à l'image de votre marque (par exemple : https://mqtt.votre-entreprise.com).
  • Mises à jour sans tracas : appliquez les améliorations ou correctifs de sécurité en un seul clic.
  • Performance constante et sécurité renforcée, chaque instance fonctionnant sur une infrastructure privée et dédiée.

Accélérez vos projets IoT et réduisez la charge opérationnelle. Vous pouvez mettre en place une instance Mosquitto MQTT cloud hosting sécurisée et prête pour la production en seulement quelques minutes.

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.