EMQX abre o modo de verificação de autorização de conexão HTTP

Referência

Website oficial Plugin de autenticação HTTP Protocolo HTTP

Configurar plugin de autenticação HTTP

Use vi ou vim para editar o arquivo /etc/emqx/plugins/emqx_auth_http.conf. Configure a autenticação de conexão, autenticação de administrador e autenticação de publicação e assinatura, respectivamente. A configuração é dividida em quatro itens, endereço de interface HTTP, método de solicitação, tipo de conteúdo e parâmetros de solicitação. O endereço da interface se refere a um endereço HTTP. Normalmente usamos GET ou POST para o método de solicitação e POST é recomendado. O tipo de conteúdo geralmente usa x-www-form-urlencoded. O parâmetro de solicitação é o mais importante. Aqui precisamos incluir todo o conteúdo de que precisamos para julgar a autorização. A descrição detalhada de todos os parâmetros pode ser vista nos materiais de referência. Em nosso exemplo abaixo, o endereço de serviço de nossa API é uma entrada unificada. A interface de chamada real é especificada pela ação no parâmetro. Claro, também podemos distingui-la do url, e você pode ajustá-la de acordo com seu próprio uso. O código do servidor não será descrito neste artigo, porque está intimamente integrado à lógica de negócios. O que temos que fazer é retornar o resultado ao EMQX após o julgamento lógico. Se quisermos passar na autenticação, retornaremos o código de status HTTP 200 normalmente, se ele falhar Ele retorna o código de status 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
        

Carregar plugin de autenticação HTTP

            emqx_ctl plugins load emqx_auth_http
        

Resultados de validação

Após as operações acima, precisamos usar o cliente MQTT para conectar.Tentamos usar o cliente normal e o cliente de gerenciamento para se conectar ao servidor para ver se o resultado é o esperado. Em seguida, publique e assine o tópico para ver se o controle de autoridade atende aos nossos requisitos. Se uma exceção for encontrada, podemos depurar o código do servidor até que tudo esteja normal.