Mosquitto访问控制 - 模式和用户限制

问题描述 投票:0回答:1

我正在尝试为常规用户访问控制创建模式,以及具有不同权限的“admin”用户。

在模式之前,我已经:

user admin
topic write +/in/#
topic read +/out/#

user john
topic read john/in/#
topic write john/out/#

这很好。但是,在引入更多用户时,需要一种模式。我从Mosquitto的数据表中得出的结论是:

user admin
topic write +/in/#
topic read +/out/#

pattern read %u/in/#
pattern write %u/out/#

但是,使用上述配置,连接被拒绝。我上面的配置怎么办?

我还将单独添加模式(没有“admin”用户配置),它工作正常。我面临的问题是当我同时拥有模式和特定的用户访问控制时。

编辑:添加mosquitto(v1.4.15)的配置可能会很好:

allow_anonymous false
password_file /etc/mosquitto/passwd
acl_file /etc/mosquitto/conf.d/access_control

message_size_limit 1000
use_username_as_clientid true

log_dest file /var/log/mosquitto/mosquitto.log
log_dest topic
connection_messages true
log_type all
mqtt mosquitto
1个回答
0
投票

您需要在一般模式之后放置用户特定的模式。

EG

pattern read %u/in/#
pattern write %u/out/#

user admin
topic write +/in/#
topic read +/out/#

这是因为假定user条目后面的所有模式都属于该用户。

编辑:

实际上doc暗示不然,但我还是试试看。

替换模式必须是该级别的层次结构的唯一文本。即使之前已经提供了“user”关键字,模式ACL也适用于所有用户。

© www.soinside.com 2019 - 2024. All rights reserved.