Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

test:mosquitto [2019/08/13 10:16] – modification externe 127.0.0.1test:mosquitto [2020/08/14 08:18] (Version actuelle) – [Vos premiers messages MQTT avec Mosquitto sous Ubuntu] chef
Ligne 21: Ligne 21:
 On voit passer tous les topics mais sans voir desquels il s'agit, on a juste le message. On voit passer tous les topics mais sans voir desquels il s'agit, on a juste le message.
  
 +===== MQTT authentifié =====
 +Le courtier Mosquitto MQTT peut être configuré pour exiger l'authentification du client à l' aide d'un nom d'utilisateur et d'un mot de passe valides avant qu'une connexion ne soit autorisée.\\
 +La combinaison nom d'utilisateur et mot de passe est transmise en texte clair et n'est pas sécurisée sans une forme de cryptage de transport . (SSL)\\
 +Cependant, l'utilisation de l'authentification par nom d'utilisateur et par mot de passe offre un moyen simple de restreindre l'accès à un courtier.\\
 +
 +Remarque : le nom d'utilisateur utilisé pour l'authentification peut également être utilisé pour restreindre l'accès aux rubriques .
 +
 +Dans ce didacticiel, nous examinons comment configurer les restrictions de nom d'utilisateur et de mot de passe sur le courtier mosquitto, et comment cela fonctionne en examinant quelques exemples de connexion à l'aide de simples scripts de test Python.\\
 +
 +==== Configuration du courtier Mosquitto ====
 +Toutes les formes de restrictions, à savoir l'identifiant du client, le nom d'utilisateur / mot de passe, le sujet, etc. sont implémentées sur le courtier MQTT.\\
 +Une fois implémenté sur le courtier, il appartient au client de se conformer à ces restrictions afin de se connecter, de s'abonner et de publier.\\
 +
 +Pour configurer le courtier Mosquitto, vous devrez:\\
 +
 +  * Créer un fichier de mot de passe
 +  * Modifiez le fichier mosquitto.conf pour forcer l'utilisation du mot de passe.
 +
 +Pour créer un fichier de mot de passe, vous devez utiliser l' utilitaire mosquitto_passwd fourni avec les outils client lors de l' installation du courtier mosquitto .\\
 +Il existe plusieurs façons de procéder: \\
 +=== Méthode 1 ===
 +Créez un fichier texte simple et entrez le nom d'utilisateur et les mots de passe, un pour chaque ligne, avec le nom d'utilisateur et le mot de passe séparés par deux points comme indiqué ci-dessous.\\
 +  user:mot de passe
 +
 +Maintenant, vous devez convertir le fichier de mot de passe qui crypte les mots de passe, accédez à une ligne de commande et tapez:\\
 + mosquitto_passwd -U passwordfile
 +
 +Maintenant, si vous ouvrez à nouveau le fichier de mot de passe, vous devriez voir ceci: \\
 +  user:(plein de caractères...)
 +
 +Le fichier de mots de passe est maintenant prêt à être utilisé.
 +
 +=== Méthode 2 ===
 +Vous créez le fichier de mot de passe à l'aide de la commande
 +  mosquitto_passwd -c passwordfile utilisateur
 +
 +Notez que vous devez entrer un nom d'utilisateur pour que cela fonctionne. Cela ajoute l'utilisateur au fichier de mots de passe.\\
 +Vous serez invité à entrer un mot de passe pour l'utilisateur.\\
 +Faites attention car le mot de passe n'est pas renvoyé et il ne semble pas avoir été accepté, mais c'est le cas.\\
 +
 +Vous pouvez maintenant utiliser la commande\\
 +  mosquitto_passwd -b passwordfile mot de passe utilisateur
 +
 +pour ajouter des utilisateurs supplémentaires au fichier.
 +
 +Vous pouvez également supprimer des utilisateurs du fichier de mots de passe à l'aide de la commande\\
 +  mosquitto_passwd -D utilisateur du fichier de mot de passe
 +
 +Remarque importante: Le mosquitto_passwd utilitaire n'a pas fonctionné sur Windows XP, et je devais utiliser l'utilitaire sur mon installation Linux.
 +
 +Cependant, cela fonctionnait sous Windows 7 et 10, mais j'avais besoin d'ajouter le fichier msvcr100.dll . Voir Installation des scripts client Mosquitto Broker \\
 +
 +=== Utilisation du fichier de mot de passe ===
 +Vous devrez copier le fichier de mot de passe dans le dossier etc \ mosquitto (linux) ou le dossier mosquitto (windows), puis éditer le fichier mosquiito.conf pour l'utiliser.\\
 +Les deux modifications que vous effectuez normalement dans le fichier mosquiito.conf consistent à définir allow anonymous sur false et à définir le chemin password_file .\\
 +  
 +== Exemples de paramètres : ==
 +  /etc/mosquitto/passwd
 +  user:$6$lHwLOzxLiPPolGzi$h6.....
 +  
 +  /etc/mosquitto/conf.d/user
 +  allow_anonymous false
 +  password_file /etc/mosquitto/passwd
 +
 +Si vous modifiez les fichiers de configuration, y compris le fichier de mot de passe, vous pouvez redémarrer le courtier mosquitto.\\
 +Cependant, sous Linux, vous pouvez recharger les fichiers de configuration sans redémarrer le courtier en utilisant les éléments suivants:\\
 +  kill-HUP PID # où PID est l'ID de processus comme indiqué ci-dessous:
 +  relancer mosquitto
 +ou 
 +  systemctl restart mosquitto
 +
 +Pour un IOT il faudra mettre l'user et le password au moment de la conexion.\\
 +ex : \\
 +<code c>
 +// Attempt to connect
 +    if (client.connect("ESP8266Client", mqttUser, mqttPassword )) {
 +      if (debug ) {
 +        Serial.println("connected");
 +      }
 +      // Once connected, publish an announcement...
 +      client.publish("mod_lum", "hello world");
 +      // ... and resubscribe
 +      client.subscribe("#");
 +    ...  
 +    ...
 +    ... 
 +</code>
 +
 +Pour vous connecter à un courtier qui implémente des restrictions de nom d'utilisateur / mot de passe, vous devez utiliser la méthode d'assistance username_pw_set () du client Paho.\\
 +Vous devez l'appeler avant d'établir la connexion .\\
 +Le format est:\\
 +  username_pw_set (nom d'utilisateur = "roger", mot de passe = "mot de passe")
 +
 +=== Détection des erreurs d'authentification ===
 +Si vous essayez de vous connecter à un courtier sans les détails d'authentification corrects, la connexion sera rejetée.\\
 +Pour détecter cela, vous devrez examiner le rappel on_connect .\\
 +Si vous examinez la documentation de la méthode de rappel on_connect , vous verrez qu'elle accepte 4 paramètres.\\
 +  on_connect (client, données utilisateur, drapeaux, rc):
 +
 +Le paramètre rc est le code de retour et doit être égal à 0 pour une bonne connexion.\\
 +Un code retour de 5 indique une erreur d'authentification .\\
 +La méthode de rappel on_connect illustrée ci-dessous imprime simplement le code de retour et ressemble à ceci:\\
 +
 +def on_connect (client, données utilisateur, drapeaux, rc):
 +    print ("Indicateurs connectés", str (indicateurs), "code résultat", str (rc)) [/ contour]
  
test/mosquitto.txt · Dernière modification : 2020/08/14 08:18 de chef
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0