我是靠谱客的博主 愤怒猫咪,最近开发中收集的这篇文章主要介绍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 将按照插件开启先后顺序进行链式认证
在这里插入图片描述

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

二、关闭匿名登录

(一)什么是匿名登录

也就是客户端不输入账号密码就能登录,这就叫匿名登录。
在这里插入图片描述

(二)关闭匿名登录

  1. 开启认证插件
    在这里插入图片描述
  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

在这里插入图片描述

  1. 创建登录用户
  • client认证方式
    在这里插入图片描述
  • user认证方式
    在这里插入图片描述
  1. 重启emqx
    修改配置文件后需要重启emqx,使得配置文件生效。
[root@iz2zedg4ylq9iqtwm11wecz ~]# docker restart myemqx
myemqx
  1. 测试
    在这里插入图片描述
    输入账号后连接成功。
    在这里插入图片描述

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

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

  2. 安装vs code rest client插件
    在这里插入图片描述

  3. 新建http文件
    在这里插入图片描述

  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——认证的全部内容,希望文章能够帮你解决MQTT——EMQX学习笔记02——认证所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部