python – 以编程方式设置mosquitto中的访问控制限制

python – 以编程方式设置mosquitto中的访问控制限制,第1张

概述我正在开发一个将使用mqtt的应用程序.我将使用 python库.我一直倾向于使用mosquitto,但却无法以编程方式为其设置访问控制限制.我正在编写的应用程序需要能够区分用户,并且只允许他们订阅某些主题.当前的解决方案看起来像是从配置文件中完成的.在mosquitto中是否有可扩展的访问控制限制解决方案?如果没有,你知道一个mqtt经纪人存在吗? 即使这可能不再涉及到你,其他人也会发现它很有用 我正在开发一个将使用mqtt的应用程序.我将使用 python库.我一直倾向于使用mosquitto,但却无法以编程方式为其设置访问控制限制.我正在编写的应用程序需要能够区分用户,并且只允许他们订阅某些主题.当前的解决方案看起来像是从配置文件中完成的.在mosquitto中是否有可扩展的访问控制限制解决方案?如果没有,你知道一个mqtt经纪人存在吗?解决方法 即使这可能不再涉及到你,其他人也会发现它很有用.我在这里关注mosquitto的 man page.

有两个配置文件,一般是一个,比如说是mosquitto.conf,另一个是ACL(访问控制列表),比如acl.conf.

mosquitto.conf启用acl.conf文件进行访问控制:

acl_file acl.conf

acl.conf定义访问控制行为:

# users can anonymously publish to the topic 'in'topic write in# users can subscribe topics named 'out/%u',where %u is the user's namepattern read out/%u# an admin may subscribe to 'in' # and publish to all subtopics of 'out/' (note the +)user adminWithSecretnametopic read intopic write out/+

我们用配置文件执行mosquitto -c mosquitto.conf来运行mosquitto.

在这种情况下,可以通过使用随机生成的用户名来建立动态认证机制.

示例:Alice想要订阅,以便她可以在此处阅读私人消息.她将她的凭证与nonceN1一起发送到.此外,她还使用N1作为用户名将主题输出/ N1.读出的模式/%u允许这样做.

第三方服务器应用程序,以adminWithSecretname连接并订阅主题,接收Alice的消息.它验证其真实性,然后生成新的nonce N2并将其发布到Alice已订阅的out / N1.

从现在开始 – 至少对于此会话 – out / N2是常规主题,其中Alice分别在此处设备将接收消息.因此,Alice取消订阅并断开form out / N1并订阅out / N2.第三方服务器应用程序将属于Alice的所有新消息发布到主题out / N2.

进一步的考虑因素:人们可能还想反思安全性的其他方面,如TLS和/或按消息加密.根据目标安全/隐私的等级,此处讨论的配置可能还需要TLS.
另一方面,如果消息是单独加密的,这可能会过时.如果她有权访问有线/ WiFi流,可以拦截(甚至订阅!)消息,因为她会将秘密用户名称视为纯文本.但是:当一个人已经可以访问数据流时,无论如何他/她都可以拦截这些字节.它们使用TLS或按消息加密以任一方式加密.此外,traffic analysis可以应用于两种方法.

我建议使用TLS或按消息加密.两者都应该,正确实施和应用,导致可比较的安全性.

总结

以上是内存溢出为你收集整理的python – 以编程方式设置mosquitto中的访问控制限制全部内容,希望文章能够帮你解决python – 以编程方式设置mosquitto中的访问控制限制所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1194685.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存