Mosquitto MQTT Broker 中的访问控制

Access control in Mosquitto MQTT Broker

如何限制仅向 Mosquitto MQTT 代理上的选定用户发布?

我希望一些用户能够订阅,一些用户能够发布,我需要将这两组用户分开。

我知道有一个授权控件允许使用 username:password 进行访问。但我不清楚如何为用户分配角色。

如果没有这样的角色分配,是否可以为发布者和订阅者设置不同的端口?

mosquitto 配置文件的 man 页面涵盖了所有这些内容。

acl_file 选项指定保存 ACL 列表的文件。该文件包含条目组,这些条目控制对主题或模式的访问以匹配主题。例如

user user1
topic read foo/bar

user user2
topic readwrite foo/bar

这允许 user1 读取主题 foo/bar 并允许 user2 读取和写入主题。

password_file 选项可用于指定要查找 username/password 映射的文件。这个文件是用mosquitto_passwd命令编辑的,这里是man page.

这两个选项都可以替换为提供 API 来验证和授权用户的插件。目前只有一个公开可用的插件支持多个不同的数据库后端来存储 user/acl 数据。你可以找到它here