EMQX otwiera tryb weryfikacji autoryzacji połączenia HTTP

Odniesienie

Oficjalna strona internetowa Wtyczka uwierzytelniająca HTTP Protokół HTTP

Skonfiguruj wtyczkę uwierzytelniającą HTTP

Użyj vi lub vim, aby edytować plik /etc/emqx/plugins/emqx_auth_http.conf. Skonfiguruj odpowiednio uwierzytelnianie połączenia, uwierzytelnianie administratora oraz uwierzytelnianie publikacji i subskrypcji. Konfiguracja jest podzielona na cztery elementy: adres interfejsu HTTP, metodę żądania, typ zawartości i parametry żądania. Adres interfejsu odnosi się do adresu HTTP. Zwykle używamy GET lub POST jako metody żądania, a POST jest zalecany. Typ zawartości zwykle używa x-www-form-urlencoded. Najważniejszy jest parametr request, w tym miejscu musimy zawrzeć wszystkie treści, które są nam potrzebne do oceny autoryzacji.Szczegółowy opis wszystkich parametrów znajduje się w materiałach referencyjnych. W naszym przykładzie poniżej adres usługi naszego API jest wpisem ujednoliconym. Rzeczywisty interfejs wywołania jest określony przez akcję w parametrze. Oczywiście możemy również odróżnić go od adresu URL i dostosować go do własnego użytku. Kod serwera nie zostanie opisany w tym artykule, ponieważ jest ściśle zintegrowany z logiką biznesową. Musimy tylko zwrócić wynik do EMQX po logicznej ocenie. Jeśli chcemy przejść uwierzytelnianie, zwrócimy normalnie kod statusu HTTP 200, jeśli się nie powiedzie Zwraca kod stanu 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
        

Załaduj wtyczkę uwierzytelniającą HTTP

            emqx_ctl plugins load emqx_auth_http
        

Wyniki walidacji

Po powyższych operacjach musimy użyć klienta MQTT do połączenia.Próbujemy użyć zwykłego klienta i klienta zarządzania do połączenia się z serwerem, aby sprawdzić, czy wynik jest zgodny z oczekiwaniami. Następnie publikuj i subskrybuj tematy, aby sprawdzić, czy kontrola autorytatywna spełnia nasze wymagania. Jeśli zostanie znaleziony wyjątek, możemy debugować kod serwera, aż wszystko będzie normalne.