<物联网>emqx服务器关闭匿名认证并开启ClientId认证

一、前言

EMQX服务器默认情况是允许任意客户端接入的(只要获得服务器IP地址和端口),这也方便开发人员测试。但根据实际需求或者在生产环境中,只允许认证的终端接入,防止一些其他终端恶意接入破坏系统。

二、知识储备

身份认证是大多数应用的重要组成部分,MQTT 协议支持用户名密码认证,启用身份认证能有效阻止非法客户端的连接。
EMQ X 中的认证指的是当一个客户端连接到 EMQ X 的时候,通过服务器端的配置来控制客户端连接服务器的权限。
EMQ X 的认证支持包括两个层面:
MQTT 协议本身在 CONNECT 报文中指定用户名和密码,EMQ X 以插件形式支持基于 Username、ClientID、HTTP、JWT、LDAP 及各类数据库如 MongoDB、MySQL、PostgreSQL、Redis 等多种形式的认证。
在传输层上,TLS 可以保证使用客户端证书的客户端到服务器的身份验证,并确保服务器向客户端验证服务器证书。也支持基于 PSK 的 TLS/DTLS 认证。

说到插件,就得先了解一下钩子

在这里插入图片描述
钩子(Hooks) 是 EMQ X 提供的一种机制,它通过拦截模块间的函数调用、消息传递、事件传递来修改或扩展系统功能。

简单来讲,该机制目的在于增强软件系统的扩展性、方便与其他三方系统的集成、或者改变其系统原有的默认行为。

逻辑图:
在这里插入图片描述

三、设置认证

1.开启ClientId认证

在这里插入图片描述
点击manage可以新增、修改、删除用户认证。
在这里插入图片描述
可以通过配置文件修改加密方式预设认证数据
在这里插入图片描述
在这里插入图片描述

如图,预设认证数据在配置文件中使用了明文密码,出于安全性与可维护性考虑应当避免使用该功能。

在这里插入图片描述

然后在websocket测试:
在这里插入图片描述
提示连接拒绝,原因是未认证。因为上面给这个clientId为1的设置了密码。需要填入正确的密码才可以连接。

但改了一下clientId,发现其他终端不用密码也能随意接入。因为emqx的认证机制是如下图所示的认证链

在这里插入图片描述

所以这里要关掉默认开启的匿名认证

2.关闭匿名认证

打开emqx.conf
在这里插入图片描述
把true改成false:
在这里插入图片描述
然后发现其他终端还是能随意接入,重启一下看看。

在这里插入图片描述
在这里插入图片描述
成功了,一般改了核心配置文件,都要重启一下服务。

3.其他认证方式

在这里插入图片描述
这里只用了一种认证方式,其他的以后有机会再用吧。

mysql认证刚试了一下,也是很简单的,照着官方文档做就可以了。


闲谈

留心街中每个人/彼此匆匆过/皱着眉心”。
我们仍处于焦虑的年代。男女老少在为生存焦虑、为爱情焦虑、为名利焦虑……

焦虑或许不是坏事,它能让我们不停思索。

伯恩斯坦于1947—1948年创作了他的第二交响曲——《焦虑的年代》。三部交响曲中我独爱这一部,里面有你我都同样经历过的孤独、狂欢、希望和焦虑。曲子最后三分钟的尾声部分,从平静的钢琴叙述到马勒式的自我解放,每次听都能感受到如魔法般治愈人心的力量。尽管不久后又重回焦虑,也无需惧怕,音乐给予的片刻安宁会让我们不那么彷徨。

在这里插入图片描述
The Age of Anxiety, Symphony No. 2 for Piano and Orchestra (after W. H. Auden):c. The Epilogue: Adagio; Andante; Con Moto

【伯恩斯坦】【Bernstein】第二交响曲“焦虑的时代”The Age of Anxiety Symphony No.2

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值