EMQX opent de verificatiemodus voor HTTP-verbindingsautorisatie
Referentie
Officiële website HTTP-authenticatie-plug-in HTTP-protocolConfigureer de HTTP-authenticatie-plug-in
Gebruik vi of vim om het bestand /etc/emqx/plugins/emqx_auth_http.conf te bewerken. Configureer verbindingsverificatie, beheerdersverificatie en publiceer en abonneerverificatie respectievelijk. De configuratie is onderverdeeld in vier items: HTTP-interfaceadres, verzoekmethode, inhoudstype en verzoekparameters. Het interface-adres verwijst naar een HTTP-adres. We gebruiken meestal GET of POST voor de verzoekmethode en POST wordt aanbevolen. Het inhoudstype gebruikt meestal x-www-form-urlencoded. De verzoekparameter is de belangrijkste. Hier moeten we alle inhoud opnemen die we nodig hebben om de autorisatie te beoordelen. De gedetailleerde beschrijving van alle parameters kan worden bekeken in het referentiemateriaal. In ons onderstaande voorbeeld is het serviceadres van onze API een uniform item. De daadwerkelijke oproepinterface wordt gespecificeerd door de actie in de parameter. We kunnen het natuurlijk ook onderscheiden van de url, en u kunt het aanpassen aan uw eigen gebruik. De servercode wordt in dit artikel niet beschreven, omdat deze nauw is geïntegreerd met de bedrijfslogica. Wat we moeten doen is het resultaat na logische beoordeling terugsturen naar EMQX. Als we de authenticatie willen doorstaan, zullen we de HTTP 200-statuscode normaal retourneren. Het retourneert de HTTP 403-statuscode.
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
Laad de HTTP-authenticatie-plug-in
emqx_ctl plugins load emqx_auth_http
Validatieresultaten
Na de bovenstaande bewerkingen moeten we de MQTT-client gebruiken om verbinding te maken. We proberen de normale client en de beheerclient te gebruiken om verbinding te maken met de server om te zien of het resultaat is zoals verwacht. Publiceer en abonneer vervolgens onderwerpen om te zien of de autoriteitscontrole voldoet aan onze vereisten. Als er een uitzondering wordt gevonden, kunnen we de servercode debuggen totdat alles normaal is.