是否有任何提示可以在MQTT中获取连接的客户端输入的用户名和密码,尤其是Mosquitto



我是 mqtt 中的新手,我尝试创建一些东西来仅通过他们的用户名密码对发布者和订阅者进行身份验证(因此允许匿名的 MQTT 配置是真的(。如果两者(发布者和订阅者(具有相同的用户名密码,则数据表单发布者将发送给订阅者。这样,我们就不需要在 mqtt 代理中设置新的用户名密码。

因此,我需要一些东西来帮助我获取发布者和订阅者输入的用户名和密码。 我正在使用Linux和go语言。帮助解决这些情况将非常有帮助。谢谢

Mosquitto有一个身份验证插件API,可用于验证和授权客户端。您可以使用它来检查用户的用户名/密码,还可以存储控制用户和发布/订阅的主题的 ACL。

话虽如此,正常的 MQTT 身份验证机制通过控制对主题的访问来工作。给定的使用可以对主题(或主题模式(具有读取(订阅者(和/或写入(发布者(访问权限。

这意味着 ACL 是在订阅或发布时应用的,而不是在确定是否应将消息传递到特定客户端时应用的。

您可以通过在任何给定主题前面加上用户名来实现您想要的,例如

用户Foo将始终在foo/...上发布消息,并可以订阅foo/#

mosquitto ACL 方案内置了对将用户名替换为主题模式的支持,因此您可以执行以下操作:

pattern readwrite %u/# 

最新更新