EMQX öppnar verifieringsläge för HTTP-anslutningsbehörighet

Referens

Officiell hemsida HTTP-autentiseringsplugin HTTP-protokoll

Konfigurera plugin för HTTP-autentisering

Använd vi eller vim för att redigera filen /etc/emqx/plugins/emqx_auth_http.conf. Konfigurera anslutningsautentisering, administratörsautentisering respektive publicera och prenumerera autentisering. Konfigurationen är uppdelad i fyra objekt, HTTP-gränssnittsadress, begärningsmetod, innehållstyp och parametrar för begäran. Gränssnittsadressen hänvisar till en HTTP-adress. Vi använder vanligtvis GET eller POST för förfrågningsmetoden och POST rekommenderas. Innehållstypen använder vanligtvis x-www-form-urlencoded. Begäran-parametern är den viktigaste. Här måste vi inkludera allt innehåll vi behöver för att bedöma auktoriseringen. Den detaljerade beskrivningen av alla parametrar kan ses i referensmaterialet. I vårt exempel nedan är tjänstens adress för vårt API en enhetlig post. Det faktiska samtalsgränssnittet specificeras av åtgärden i parametern. Naturligtvis kan vi också skilja det från webbadressen och du kan justera det efter din egen användning. Serverkoden kommer inte att beskrivas i den här artikeln, eftersom den är nära integrerad med affärslogiken. Vad vi måste göra är att returnera resultatet till EMQX efter logisk bedömning. Om vi ​​vill skicka autentiseringen returnerar vi HTTP 200-statuskoden normalt, om den misslyckas Den returnerar 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
        

Ladda HTTP-autentiseringsplugin

            emqx_ctl plugins load emqx_auth_http
        

Valideringsresultat

Efter ovanstående operationer måste vi använda MQTT-klienten för att ansluta. Vi försöker använda den vanliga klienten och hanteringsklienten för att ansluta till servern för att se om resultatet blir som förväntat. Publicera sedan och prenumerera på ämnen för att se om myndighetskontrollen uppfyller våra krav. Om ett undantag hittas kan vi felsöka serverkoden tills allt är normalt.