在工作使用中,很多場景需要進行acl的動態(tài)管理撩银,本文使用redis支持acl的動態(tài)管理给涕。
發(fā)布訂閱 ACL 指對 發(fā)布 (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規(guī)則咪啡,例如:mqtt_acl:test ppp 3
其中首启,ppp為主題;3為方式撤摸。
方式數字表示:
1 訂閱
2 發(fā)布
3 訂閱發(fā)布
mqtt_user:%u和mqtt_acl:%u不僅可以配置用戶名毅桃,也可以用來指定clientid
%u表示用戶名
%c表示clientid
2.打開插件emqx_auth_redis
插件打開并啟動后褒纲,就可以使用redis進行acl的規(guī)則配置。