HTTP ACL
插件:
emqx_auth_http 插件同时包含认证功能,可通过注释禁用。
EMQ X 在设备发布、订阅事件中使用当前客户端相关信息作为参数,向用户自定义的认证服务发起请求权限,通过返回的 HTTP 响应状态码 (HTTP statusCode) 来处理 ACL 授权请求。
- 无权限:API 返回 4xx 状态码
- 授权成功:API 返回 200 状态码
- 忽略授权:API 返回 200 状态码且消息体 ignore
HTTP API 基础请求信息,配置证书、请求头与重试规则。
首先查询客户端是否为超级用户,客户端为超级用户时将跳过 ACL 查询。
HTTP 请求方法为 GET 时,请求参数将以 URL 查询字符串的形式传递;POST、PUT 请求则将请求参数以普通表单形式提交(content-type 为 x-www-form-urlencoded)。
- %A:操作类型,’1’ 订阅;’2’ 发布
- %c:Client ID
- %a:客户端 IP 地址
- %r:客户端接入协议
- %m:Mountpoint
推荐使用 POST 与 PUT 方法,使用 GET 方法时明文密码可能会随 URL 被记录到传输过程中的服务器日志中。