Rabbitmq基于密钥的身份验证

时间:2013-03-01 08:19:28

标签: node.js erlang rabbitmq mqtt

背景:我是RabbitMq的新手,我刚安装它并尝试使用它。

所以,我让RabbitMq在ec2(ubuntu)上运行,node.js服务器作为在本地机器上运行的RabbitMq客户端(用于pub / sub over websockets)我也在RabbitMq上启用了MQTT协议,以便在端口上运行1883年

使用node.js我使用MQTTClient但是每当node.js服务器与RabbitMq连接时,都会引发错误,拒绝连接:错误的用户名或密码

我计划对RabbitMQ服务器使用基于密钥的身份验证,以便来自浏览器的websockets发送编码字符串,node.js服务器解码并获取KEY并将该KEY发送到RabbitMQ,然后RabbitMQ决定是否存在或不。

我找到了另一个很棒的RabbitMQ插件,rabbitmq-auth-backend-http但这要求用户名/密码,可以是Key / Id组合。

我正在寻找建议,我如何实现这一目标?

还有一个问题是node.js客户端没有发送用户名/密码,所以这是否意味着我还必须编写node.js客户端?

1 个答案:

答案 0 :(得分:1)

MQTT客户端确实支持用户名和密码,尝试在创建连接时传入的options对象中设置它们。默认的RabbitMQ用户为guest,密码为guest

我不明白为什么你会使用RabbitMQ作为身份验证后端,因为它是一个消息队列,而不是一个身份存储。您提到的auth插件似乎允许您使用另一个HTTP服务器来验证RabbitMQ的客户端,但不允许RabbitMQ处理身份管理。