Rabbitmq 如何将MQTT用户限制为仅一个主题

Rabbitmq 如何将MQTT用户限制为仅一个主题,rabbitmq,mqtt,Rabbitmq,Mqtt,我正在寻找一种将用户访问权限限制在专用主题的方法,例如: user1只能访问user1/#主题, 因此,他可以订阅/发布user1/sensor/1或user1/conf/mode,但不能订阅/发布user2/sensor/2等 类似地,user2应该只能访问user2/#和所有子主题 我可以通过使用ACL设置在eMQTT代理中完成,但在RabbitMQ中找不到类似的设置。我已经在我的项目中使用了AMQP,所以我希望避免安装额外的eMQTT代理,特别是当RabbitMQ可以支持MQTT时。从我可

我正在寻找一种将用户访问权限限制在专用主题的方法,例如:

user1只能访问user1/#主题, 因此,他可以订阅/发布user1/sensor/1或user1/conf/mode,但不能订阅/发布user2/sensor/2等

类似地,user2应该只能访问user2/#和所有子主题


我可以通过使用ACL设置在eMQTT代理中完成,但在RabbitMQ中找不到类似的设置。我已经在我的项目中使用了AMQP,所以我希望避免安装额外的eMQTT代理,特别是当RabbitMQ可以支持MQTT时。

从我可以看出,基于主题的身份验证是RabbitMQ正在进行的工作。请查看这两个讨论,了解更多上下文:

看起来它将包含在未来的版本中,但是,快速浏览一下changelog,它似乎还没有实现


我没有使用过它,但Antione Galataud的主题授权插件看起来可能会为您提供一个临时解决方案,直到正式的解决方案存在:

我们已经实现了它,并已投入生产。我们使用IBMIMAMessageBroker,在主题中有{groupId}占位符。这个{groupId}可以在IMA中链接到外部LDAP

我建议使用RabbitMQ代理文档并检查它们支持的安全特性