MQTT——EMQX学习笔记02——认证

目录标题

    • 一、emqx认证介绍
    • (一)什么是认证
    • (二)认证方式
    • (三)认证链
    • 二、关闭匿名登录
    • (一)什么是匿名登录
    • (二)关闭匿名登录
    • (三)通过http api对用户进行CRUD

一、emqx认证介绍

(一)什么是认证

可以直接去**官方文档**阅读。

身份认证是大多数应用的重要组成部分,MQTT 协议支持用户名密码认证,启用身份认证能有效阻止非法客户端的连接。
EMQ X 中的认证指的是当一个客户端连接到 EMQ X 的时候,通过服务器端的配置来控制客户端连接服务器的权限。

(二)认证方式

  1. EMQ X 支持使用内置数据源(文件、内置数据库)、也就是通过修改配置文件创建账户。
  2. JWT、
  3. 外部主流数据库
  4. 自定义 HTTP API 作为身份认证数据源。

注意:

  • 连接数据源、进行认证逻辑通过插件实现的,每个插件对应一种认证方式,使用前需要启用相应的插件。
  • 客户端连接时插件通过检查其 username/clientid 和 password 是否与指定数据源的信息一致来实现对客户端的身份认证。

(三)认证链

上面介绍到有多种认证方式,当开启多种认证方式后,是如何认证的。

当同时启用多个认证方式时,EMQ X 将按照插件开启先后顺序进行链式认证
MQTT——EMQX学习笔记02——认证_第1张图片

一旦认证成功,终止认证链并允许客户端接入
一旦认证失败,终止认证链并禁止客户端接入
直到最后一个认证方式仍未通过,根据匿名认证配置判定
匿名认证开启时,允许客户端接入
匿名认证关闭时,禁止客户端接入

二、关闭匿名登录

(一)什么是匿名登录

也就是客户端不输入账号密码就能登录,这就叫匿名登录。
MQTT——EMQX学习笔记02——认证_第2张图片

(二)关闭匿名登录

  1. 开启认证插件
    MQTT——EMQX学习笔记02——认证_第3张图片
  2. 关闭匿名登录
[root@iz2zedg4ylq9iqtwm11wecz etc]# pwd
/my/emqx/conf/etc
[root@iz2zedg4ylq9iqtwm11wecz etc]# ls
acl.conf  emqx.conf  plugins  ssl_dist.conf
certs     lwm2m_xml  psk.txt  vm.args
[root@iz2zedg4ylq9iqtwm11wecz etc]# vim emqx.conf

MQTT——EMQX学习笔记02——认证_第4张图片

  1. 创建登录用户
  • client认证方式
    MQTT——EMQX学习笔记02——认证_第5张图片
  • user认证方式
    MQTT——EMQX学习笔记02——认证_第6张图片
  1. 重启emqx
    修改配置文件后需要重启emqx,使得配置文件生效。
[root@iz2zedg4ylq9iqtwm11wecz ~]# docker restart myemqx
myemqx
  1. 测试
    MQTT——EMQX学习笔记02——认证_第7张图片
    输入账号后连接成功。
    MQTT——EMQX学习笔记02——认证_第8张图片

(三)通过http api对用户进行CRUD

  1. 安装VSCodeUserSetup-x64-1.45.1.exe
    百度下载安装包,一直点击下一步安装即可。

  2. 安装vs code rest client插件
    MQTT——EMQX学习笔记02——认证_第9张图片

  3. 新建http文件
    MQTT——EMQX学习笔记02——认证_第10张图片

  4. 编辑

# 配置连接信息
@hostname = 39.96.52.225
@port=18083
@contentType=application/json
@userName=admin
@password=public

#############查看已有用户认证数据##############
GET http://{{hostname}}:{{port}}/api/v4/auth_username HTTP/1.1
Content-Type: {{contentType}}
Authorization: Basic {{userName}}:{{password}}


########添加用户认证数据##############
POST http://{{hostname}}:{{port}}/api/v4/auth_username HTTP/1.1
Content-Type: {{contentType}}
Authorization: Basic {{userName}}:{{password}}

{
    "username": "user",
    "password": "123456"
}



###########更改指定用户名的密码#############
PUT http://{{hostname}}:{{port}}/api/v4/auth_username/user HTTP/1.1
Content-Type: {{contentType}}
Authorization: Basic {{userName}}:{{password}}

{
    "password": "user"
}


###########查看指定用户名信息#############
GET http://{{hostname}}:{{port}}/api/v4/auth_username/user HTTP/1.1
Content-Type: {{contentType}}
Authorization: Basic {{userName}}:{{password}}


###########删除指定的用户信息#############
DELETE http://{{hostname}}:{{port}}/api/v4/auth_username/user HTTP/1.1
Content-Type: {{contentType}}
Authorization: Basic {{userName}}:{{password}}

编辑后将文件扩展名改为http。

  1. 用vs code打开编辑好的文件。
    MQTT——EMQX学习笔记02——认证_第11张图片

你可能感兴趣的:(MQTT,物联网,MQTT,EMQX)