EMQX åbner bekræftelsestilstand for godkendelse af HTTP-forbindelse

Reference

Officiel hjemmeside HTTP-godkendelses-plugin HTTP-protokol

Konfigurer HTTP-godkendelsesplugin

Brug vi eller vim til at redigere /etc/emqx/plugins/emqx_auth_http.conf filen. Konfigurer forbindelsesgodkendelse, administratorgodkendelse og publicer og abonner godkendelse henholdsvis. Konfigurationen er opdelt i fire emner, HTTP-interface-adresse, anmodningsmetode, indholdstype og anmodningsparametre. Interfaceadressen refererer til en HTTP-adresse. Vi bruger normalt GET eller POST til anmodningsmetoden, og POST anbefales. Indholdstypen bruger normalt x-www-form-urlencoded. Anmodningsparameteren er den vigtigste. Her skal vi medtage alt det indhold, vi har brug for til at bedømme autorisationen. Den detaljerede beskrivelse af alle parametrene kan ses i referencematerialet. I vores eksempel nedenfor er serviceadressen til vores API en samlet post. Den aktuelle opkaldsgrænseflade specificeres af handlingen i parameteren. Selvfølgelig kan vi også skelne den fra url'en, og du kan justere den efter din egen brug. Serverkoden vil ikke blive beskrevet i denne artikel, fordi den er tæt integreret med forretningslogikken. Hvad vi skal gøre er at returnere resultatet til EMQX efter logisk vurdering. Hvis vi ønsker at videregive godkendelsen, returnerer vi HTTP 200-statuskoden normalt, hvis den fejler Den returnerer HTTP 403-statuskoden.

            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
        

Indlæs HTTP-godkendelses-plugin

            emqx_ctl plugins load emqx_auth_http
        

Valideringsresultater

Efter ovenstående operationer er vi nødt til at bruge MQTT-klienten til at oprette forbindelse. Vi forsøger at bruge den normale klient og managementklienten til at oprette forbindelse til serveren for at se, om resultatet er som forventet. Udgiv derefter og abonner på emner for at se, om myndighedskontrollen opfylder vores krav. Hvis der findes en undtagelse, kan vi fejle serverkoden, indtil alt er normalt.