python – 以编程方式设置mosquitto中的访问控制限制
我正在开发一个将使用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 name pattern read out/%u # an admin may subscribe to 'in' # and publish to all subtopics of 'out/' (note the +) user adminWithSecretName topic read in topic 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. 我建议使用TLS或按消息加密.两者都应该,正确实施和应用,导致可比较的安全性. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |