Mosquitto Broker中的用户身份验证的范围是什么?

时间:2019-07-16 17:08:30

标签: mqtt iot mosquitto

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

我在看文档,似乎没有选择来处理它或委派此控件,所以我猜想它无法完成。但我想肯定知道

1 个答案:

答案 0 :(得分:1)

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

现成的mosquitto支持包含用户名/密码信息的密码文件(由public static class SettingsFragment extends PreferenceFragmentCompat { @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { setPreferencesFromResource(R.xml.test2, rootKey); } } config参数指定)。结合将password_file参数设置为false可以确保您只能以经过身份验证的用户身份连接到代理。

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

acl_file

用户名,后跟给出特定主题或主题模式的行以及该用户应具有的访问级别。 (模式可以包含user <username> topic [read|write|readwrite] <topic> pattern [read|write|readwrite] <topic-pattern> 代替clientID或%c代替用户名)。

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

有一个示例插件