EMQX öffnet den Überprüfungsmodus für die HTTP-Verbindungsautorisierung
Referenz
Offizielle Website HTTP-Authentifizierungs-Plugin HTTP-ProtokollKonfigurieren Sie das HTTP-Authentifizierungs-Plugin
Verwenden Sie vi oder vim, um die Datei /etc/emqx/plugins/emqx_auth_http.conf zu bearbeiten. Konfigurieren Sie die Verbindungsauthentifizierung, die Administratorauthentifizierung sowie die Veröffentlichungs- und Abonnementauthentifizierung. Die Konfiguration ist in vier Elemente unterteilt: HTTP-Schnittstellenadresse, Anforderungsmethode, Inhaltstyp und Anforderungsparameter. Die Schnittstellenadresse bezieht sich auf eine HTTP-Adresse. Wir verwenden normalerweise GET oder POST für die Anforderungsmethode, und POST wird empfohlen. Der Inhaltstyp verwendet normalerweise x-www-form-urlencoded. Der Anforderungsparameter ist der wichtigste. Hier müssen wir den gesamten Inhalt einschließen, den wir zur Beurteilung der Autorisierung benötigen. Die detaillierte Beschreibung aller Parameter kann in den Referenzmaterialien eingesehen werden. In unserem Beispiel unten ist die Dienstadresse unserer API ein einheitlicher Eintrag. Die tatsächliche Aufrufschnittstelle wird durch die Aktion im Parameter angegeben. Natürlich können wir sie auch von der URL unterscheiden und Sie können sie entsprechend Ihrer eigenen Verwendung anpassen. Der Servercode wird in diesem Artikel nicht beschrieben, da er eng in die Geschäftslogik integriert ist. Wir müssen das Ergebnis nach logischer Beurteilung an EMQX zurückgeben. Wenn wir die Authentifizierung bestehen möchten, geben wir den HTTP 200-Statuscode normal zurück, wenn dies fehlschlägt Es gibt den HTTP 403-Statuscode zurück.
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
Laden Sie das HTTP-Authentifizierungs-Plugin
emqx_ctl plugins load emqx_auth_http
Validierungsergebnisse
Nach den oben genannten Vorgängen müssen wir den MQTT-Client zum Herstellen einer Verbindung verwenden. Wir versuchen, den normalen Client und den Verwaltungsclient zum Herstellen einer Verbindung mit dem Server zu verwenden, um festzustellen, ob das Ergebnis den Erwartungen entspricht. Veröffentlichen und abonnieren Sie anschließend Themen, um festzustellen, ob die Berechtigungskontrolle unseren Anforderungen entspricht. Wenn eine Ausnahme gefunden wird, können wir den Servercode debuggen, bis alles normal ist.