EMQX ouvre le mode de vérification d'autorisation de connexion HTTP

Référence

Site officiel Plug-in d'authentification HTTP Protocole HTTP

Configurer le plugin d'authentification HTTP

Utilisez vi ou vim pour modifier le fichier /etc/emqx/plugins/emqx_auth_http.conf. Configurez respectivement l'authentification de connexion, l'authentification de l'administrateur et l'authentification de publication et d'abonnement. La configuration est divisée en quatre éléments, l'adresse de l'interface HTTP, la méthode de requête, le type de contenu et les paramètres de requête. L'adresse d'interface fait référence à une adresse HTTP. Nous utilisons généralement GET ou POST pour la méthode de requête, et POST est recommandé. Le type de contenu utilise généralement x-www-form-urlencoded. Le paramètre de requête est le plus important. Ici, nous devons inclure tout le contenu dont nous avons besoin pour juger l'autorisation. La description détaillée de tous les paramètres peut être consultée dans les documents de référence. Dans l'exemple ci-dessous, l'adresse de service de notre API est une entrée unifiée. L'interface d'appel réelle est spécifiée par l'action dans le paramètre. Bien sûr, nous pouvons également la distinguer de l'URL et vous pouvez l'ajuster en fonction de votre propre utilisation. Le code serveur ne sera pas décrit dans cet article, car il est étroitement intégré à la logique métier. Ce que nous devons faire est de renvoyer le résultat à EMQX après un jugement logique. Si nous voulons réussir l'authentification, nous renverrons normalement le code d'état HTTP 200, en cas d'échec Il renvoie le code d'état HTTP 403.

            auth.http.auth_req = http://127.0.0.1:80/
auth.http.auth_req.method = post
auth.http.auth_req.content_type = x-www-form-urlencoded
auth.http.auth_req.params = client_id=%c,username=%u,password=%P,action=emqx_auth:auth_req
auth.http.super_req = http://127.0.0.1:80/
auth.http.super_req.method = post
auth.http.super_req.content_type = x-www-form-urlencoded
auth.http.super_req.params = client_id=%c,username=%u,action=emqx_auth:super_req
auth.http.acl_req = http://127.0.0.1:80/
auth.http.acl_req.method = post
auth.http.acl_req.content_type = x-www-form-urlencoded
auth.http.acl_req.params = access=%A,username=%u,client_id=%c,ip=%a,topic=%t,action=emqx_auth:acl_req
        

Charger le plugin d'authentification HTTP

            emqx_ctl plugins load emqx_auth_http
        

Résultats de la validation

Après les opérations ci-dessus, nous devons utiliser le client MQTT pour nous connecter. Nous essayons d'utiliser le client normal et le client de gestion pour nous connecter au serveur pour voir si le résultat est comme prévu. Ensuite, publiez et abonnez-vous aux rubriques pour voir si le contrôle d'autorité répond à nos exigences. Si une exception est trouvée, nous pouvons déboguer le code du serveur jusqu'à ce que tout soit normal.