EMQ客户端连接认证的配置教程

 时间:2024-10-26 03:24:16

1、MySQL 认证是较为常用到的EMQ认证方式,其可存储大量数据,方便与外部设备管理系统集成。所使用的插件为emqx_auth_mysql注:emqx_auth_mysql 插件同时包含 ACL 功能,可通过注释禁用。

EMQ客户端连接认证的配置教程

2、配置MySQL 连接信息,在EMQ安装目录下,编辑如下配置文件etc/plugins/emqx_auth_mysql.conf设置数据库连接地址、帐号密码、连接池大小

EMQ客户端连接认证的配置教程

3、在所配置的数据库中(auth.mysql.database项),创建mqtt_user表CREATE TABLE `mqtt_user` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `username` varchar(100) DEFAULT NULL, `password` varchar(100) DEFAULT NULL, `salt` varchar(35) DEFAULT NULL, `is_superuser` tinyint(1) DEFAULT 0, `created` datetime DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `mqtt_username` (`username`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

EMQ客户端连接认证的配置教程

4、插入一条用户数据,此时启用 MySQL 认证后,可通过用户名: emqx,密码:public 连接EMQ服务端。INSERT INTO `mqtt_user` ( `username`, `password`, `salt`)VALUES('emqx', 'efa1f375d76194fa51a3556a97e641e61685f914d446979da50a551a4333ffd7', NULL);

5、MySQL认证的加盐规则与哈希方法配置,mqtt_user数据表中password字段都是保存密文,以确保信息安全。

EMQ客户端连接认证的配置教程

6、在数据库中添加ACL 规则表CREATE TABLE `mqtt_acl` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `allow` int(1) DEFAULT 1 COMMENT '0: deny, 1: allow', `ipaddr` varchar(60) DEFAULT NULL COMMENT 'IpAddress', `username` varchar(100) DEFAULT NULL COMMENT 'Username', `clientid` varchar(100) DEFAULT NULL COMMENT 'ClientId', `access` int(2) NOT NULL COMMENT '1: subscribe, 2: publish, 3: pubsub', `topic` varchar(100) NOT NULL DEFAULT '' COMMENT 'Topic Filter', PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

7、ACL表配置的示例数据:

EMQ客户端连接认证的配置教程

8、ACL规则表字段说明:allow:禁止(0),允许(1)ipaddr:设置 IP 地址username:连接客户端的用户名,此处的值如果设置为$all表示该规则适用于所有的用户clientid:连接客户端的 Client IDaccess:允许的操作:订阅(1),发布(2),订阅发布都可以(3)topic:控制的主题,可以使用通配符,并且可以在主题中加入占位符来匹配客户端信息,例如t/%c则在匹配时主题将会替换为当前客户端的 Client ID%u:用户名%c:Client ID

  • SA213-T91高压锅炉用过热器管的换管方法
  • 5平方米等于多少平方分米多少平方厘米
  • 山药黄花汤的功效
  • 新手适合做的鳗鱼头酸菜汤
  • #美食#梅干菜肉沫炒香菇的做法
  • 热门搜索
    孝心手抄报 感恩手抄报内容大全 文明校园手抄报资料 中秋节手抄报。 苗苗手抄报 感恩老师手抄报句子 雾霾手抄报 六一儿童节手抄报图片 国庆节手抄报简单又漂亮字少 关于理想的手抄报