mqtt动态管理acl之redis

在工作使用中,很多场景需要进行acl的动态管理,本文使用redis支持acl的动态管理。

发布订阅 ACL 指对 发布 (PUBLISH)/订阅 (SUBSCRIBE) 操作的 权限控制。

1.配置emqx_auth_redis.conf文件

一般路径为:/etc/emqx/plugins/emqx_auth_redis.conf

auth.redis.server = 127.0.0.1:6379 # redis服务器地址 
auth.redis.pool = 8 # redis连接池
auth.redis.database = 9 # redis库
auth.redis.password = xxxxxxxx # redis连接密码
auth.redis.auth_cmd = HMGET mqtt_user:%u password
auth.redis.password_hash = plain
auth.redis.acl_cmd = HGETALL mqtt_acl:%u

auth.redis.auth_cmd = HMGET mqtt_user:%u password
使用redis的hash,配置acl用户名和密码,例如:mqtt_user:test password 123

配置用户名和密码

auth.redis.password_hash = plain
表示密码使用明文

auth.redis.acl_cmd = HGETALL mqtt_acl:%u
使用redis的hash,配置acl规则,例如:mqtt_acl:test ppp 3

配置acl规则

其中,ppp为主题;3为方式。
方式数字表示
1 订阅
2 发布
3 订阅发布

mqtt_user:%u和mqtt_acl:%u不仅可以配置用户名,也可以用来指定clientid
%u表示用户名
%c表示clientid

2.打开插件emqx_auth_redis

打开插件emqx_auth_redis

插件打开并启动后,就可以使用redis进行acl的规则配置。

你可能感兴趣的:(mqtt动态管理acl之redis)