Node.js 使用和保护rabbitmq mqtt websocket并在浏览器中使用
我们需要一些异步工作者来完成一些1-2分钟的任务,然后从这些任务中提供用户反馈 其想法是使用rabbitmq mqtt websocket插件,并在计算直接在浏览器中完成时提供用户反馈 对于我们的“旧”堆栈,我们有一些api端点作为用户(浏览器)和rabbitmq服务之间的一个层,这些服务或多或少起到了fire and forget的作用 如前所述,我们现在需要向用户WebSocket(rabbitmq mqtt插件)提供我们认为应该创建的反馈 但我们想知道如何为每个用户保护公开的websocket端点?目前这不是一个问题,因为我们有一个X.509的amqps客户端 我们的新功能需要具有公共访问权限,因此我们无法事先对用户进行身份验证 有没有一种方法可以直接安全地使用暴露的端点,或者我们需要像现在这样在两者之间设置一个层?支持TLS。然后,您可以使用用户名/密码对用户进行身份验证,或者使用客户端证书 如果需要公共访问,则无法保护端点。这适用于所有MQTT代理,而不仅仅是RabbitMQNode.js 使用和保护rabbitmq mqtt websocket并在浏览器中使用,node.js,browser,websocket,rabbitmq,mqtt,Node.js,Browser,Websocket,Rabbitmq,Mqtt,我们需要一些异步工作者来完成一些1-2分钟的任务,然后从这些任务中提供用户反馈 其想法是使用rabbitmq mqtt websocket插件,并在计算直接在浏览器中完成时提供用户反馈 对于我们的“旧”堆栈,我们有一些api端点作为用户(浏览器)和rabbitmq服务之间的一个层,这些服务或多或少起到了fire and forget的作用 如前所述,我们现在需要向用户WebSocket(rabbitmq mqtt插件)提供我们认为应该创建的反馈 但我们想知道如何为每个用户保护公开的websock
注意:RabbitMQ团队监控
RabbitMQ用户
,有时只回答有关StackOverflow的问题。如果您使用可插入的身份验证源(抱歉,不熟悉RabbitMQ提供的内容),例如在数据库中存储用户/密码。然后,您可以为每个会话生成一组短期凭据,网页可以通过RESTAPI从服务器请求这些凭据,然后使用这些凭据通过WebSocket验证MQTT连接
这意味着凭据在浏览器中仅在短时间内作为临时变量公开,一旦web会话/操作完成,就可以很容易地撤销这些临时变量。好吧,公共访问有点广泛,这是我的错。客户端的公共访问只能订阅其ID,而不能从其他用户处订阅。这可能吗?类似于动态用户创建(如果我们有10000个用户,这将是开销…),或者有没有办法在rabbitmq中直接限制这一点而不创建用户?您需要创建用户并使用rabbitmq的权限系统来限制对某些主题的访问。