EMQ acl 配置文件说明

最近在弄设备接入的问题,关于acl接入认证以及对应的topic   subscribe、pubsub、publish 权限搞了半天也没弄好(没有开启第三方插件 类似mysql、redis等),使用emq_auth_username 插件认证

由于以前使用的时候没有开启对应的权限认证和用户名密码认证,导致后面出现以下数据安全方面的问题,后续因为项目的需要,需要将以前的设备加入到权限认证,以及新得设备兼容。以下配置需要开启 emq_auth_username  插件,是否可以和其它插件配合使用暂不清楚,理论上可行。开启方法请参考官方文档  https://developer.emqx.io/docs/emq/v3/cn/plugins.html#emqx-auth-username  推荐使用命令添加用户  

使用版本 2.3.1 正式版

首先看官网的配置说明:

是否开启匿名认证 默认开启,

允许任意客户端登录: ## Allow Anonymous authentication

allow_anonymous = true

实际最简单得方法就是将这个参数设置为false,这样不接受匿名得用户连接,特别适合新的项目,只有通过认证得用户才能连接

默认访问控制(ACL)文件 EMQ X 支持基于 etc/acl.conf 文件或 MySQL、 PostgreSQL 等插件的访问控制规则。

## ACL nomatch. Enum: allow, deny

acl_nomatch = allow

## Default ACL File

acl_file = etc/acl.conf

## Enable ACL cache. Enum: on, off

enable_acl_cache = on

## Default ACL cache size

acl_cache_max_size = 32

## Default time-to-live of

cache size acl_cache_ttl = 1m

上面标黄得那个我们配置的关键,当acl规则没有匹配到的时候就会找的这个参数,如果为true,则会通过验证,为false就会不通过验证

这是官方的说明 

下面是真正的配置文件

%% 允许'dashboard'用户订阅 '$SYS/#'

{allow, {user, "dashboard"}, subscribe, ["$SYS/#"]}.

%% 允许本机用户发布订阅全部主题

{allow, {ipaddr, "127.0.0.1"}, pubsub, ["$SYS/#", "#"]}.

%% 拒绝用户订阅'$SYS#'与'#'主题

{deny, all, subscribe, ["$SYS/#", {eq, "#"}]}.

%% 上述规则无匹配,允许

{allow, all}.

 

以上需要注意几个点

1、注释方式,推荐使用 %%,(不知道是不是我写的有毛病还是什么原因, # 和 ## 注释没有用) ,

2、每个规则后面的 . 不要忘了

3、subscribe 和pubsub和配合使用

我的配置

业务需求:OPCloud 用户能订阅 +/out,+/Realtime,+/History,$SYS/# 主题,能向+/in主题推送数据,其它用户可以向 +/out,+/Realtime,+/History 推送数据,能订阅 +/in 数据 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值