概述
目录标题
- 一、emqx认证介绍
- (一)什么是认证
- (二)认证方式
- (三)认证链
- 二、关闭匿名登录
- (一)什么是匿名登录
- (二)关闭匿名登录
- (三)通过http api对用户进行CRUD
一、emqx认证介绍
(一)什么是认证
可以直接去**官方文档**阅读。
身份认证是大多数应用的重要组成部分,MQTT 协议支持用户名密码认证,启用身份认证能有效阻止非法客户端的连接。
EMQ X 中的认证指的是当一个客户端连接到 EMQ X 的时候,通过服务器端的配置来控制客户端连接服务器的权限。
(二)认证方式
- EMQ X 支持使用内置数据源(文件、内置数据库)、也就是通过修改配置文件创建账户。
- JWT、
- 外部主流数据库
- 自定义 HTTP API 作为身份认证数据源。
注意:
- 连接数据源、进行认证逻辑通过插件实现的,每个插件对应一种认证方式,使用前需要启用相应的插件。
- 客户端连接时插件通过检查其 username/clientid 和 password 是否与指定数据源的信息一致来实现对客户端的身份认证。
(三)认证链
上面介绍到有多种认证方式,当开启多种认证方式后,是如何认证的。
当同时启用多个认证方式时,EMQ X 将按照插件开启先后顺序进行链式认证
:
一旦认证成功,终止认证链并允许客户端接入
一旦认证失败,终止认证链并禁止客户端接入
直到最后一个认证方式仍未通过,根据匿名认证配置判定
匿名认证开启时,允许客户端接入
匿名认证关闭时,禁止客户端接入
二、关闭匿名登录
(一)什么是匿名登录
也就是客户端不输入账号密码就能登录,这就叫匿名登录。
(二)关闭匿名登录
- 开启认证插件
- 关闭匿名登录
[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
- 创建登录用户
- client认证方式
- user认证方式
- 重启emqx
修改配置文件后需要重启emqx,使得配置文件生效。
[root@iz2zedg4ylq9iqtwm11wecz ~]# docker restart myemqx
myemqx
- 测试
输入账号后连接成功。
(三)通过http api对用户进行CRUD
-
安装VSCodeUserSetup-x64-1.45.1.exe
百度下载安装包,一直点击下一步安装即可。 -
安装vs code rest client插件
-
新建http文件
-
编辑
# 配置连接信息
@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。
- 用vs code打开编辑好的文件。
最后
以上就是愤怒猫咪为你收集整理的MQTT——EMQX学习笔记02——认证的全部内容,希望文章能够帮你解决MQTT——EMQX学习笔记02——认证所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复