在工作使用中,很多场景需要进行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
其中,ppp为主题;3为方式。
方式数字表示:
1 订阅
2 发布
3 订阅发布
mqtt_user:%u和mqtt_acl:%u不仅可以配置用户名,也可以用来指定clientid
%u表示用户名
%c表示clientid
2.打开插件emqx_auth_redis
打开插件emqx_auth_redis插件打开并启动后,就可以使用redis进行acl的规则配置。
网友评论