首页 > 解决方案 > Mosquitto Broker 中用户认证的范围是什么?

问题描述

我想在我的平台中集成 MQTT 和 Mosquitto。看来我可以进行用户身份验证(用户/密码,但我更喜欢基于令牌,但这是另一个问题)。我读到的所有内容似乎都在处理用户是否可以访问服务器,但不确定我是否可以建立权限来限制客户端是否可以订阅特定的发布(unix 中的文件权限)

我正在查看文档,似乎没有选项可以处理它或委派此控制,所以我想它无法完成。但我想确定

标签: mqttiotmosquitto

解决方案


mosquitto 文档应该很清楚,它涵盖了身份验证和授权。

开箱即用的 mosquitto 支持password_file保存用户名/密码信息的密码文件(由 config 参数指定)。这与将allow_annonymous参数设置为 false 相结合,将确保您只能以经过身份验证的用户身份连接到代理。

acl_fileconfig 选项指向控制给定用户可以订阅或发布的主题的 ACL 列表。它使用以下格式:

user <username>
topic [read|write|readwrite] <topic>
pattern [read|write|readwrite] <topic-pattern>

用户名,后跟给出特定主题或主题模式的行以及该用户应具有的访问级别。(模式可以包含%c替换 clientID 或%u替换用户名)。

除了基于文件的支持,mosquitto 还有一个身份验证插件 api,这意味着您可以将所有信息卸载到可以在数据库中查找用户和 acls 的代码中。JPMens 有一个示例插件https://github.com/jpmens/mosquitto-auth-plug


推荐阅读