【发布时间】:2017-11-08 13:45:22
【问题描述】:
如何将发布限制为仅在 Mosquitto MQTT 代理上的选定用户?
我希望一些用户能够订阅,一些其他用户能够发布,我需要将这两组用户分开。
我知道有一个授权控制允许使用用户名:密码进行访问。但是我不清楚如何为用户分配角色。
如果没有这样的角色分配,是否可以为发布者和订阅者设置不同的端口?
【问题讨论】:
如何将发布限制为仅在 Mosquitto MQTT 代理上的选定用户?
我希望一些用户能够订阅,一些其他用户能够发布,我需要将这两组用户分开。
我知道有一个授权控制允许使用用户名:密码进行访问。但是我不清楚如何为用户分配角色。
如果没有这样的角色分配,是否可以为发布者和订阅者设置不同的端口?
【问题讨论】:
mosquitto 配置文件的 man 页面涵盖了所有这些。
acl_file 选项指定包含 ACL 列表的文件。该文件包含控制对主题或模式的访问以与主题匹配的条目组。例如
user user1
topic read foo/bar
user user2
topic readwrite foo/bar
这允许user1 读取主题foo/bar 并允许user2 读取和写入主题。
password_file 选项可用于指定文件以查找用户名/密码映射。这个文件是用mosquitto_passwd命令编辑的,这里是man page。
这两个选项都可以替换为提供 API 来验证和授权用户的插件。目前只有一个公开可用的插件支持多个不同的数据库后端来存储用户/ acl 数据。你可以找到它here
【讨论】: