保护RabbitMQ消息

rsl1atfo  于 8个月前  发布在  RabbitMQ
关注(0)|答案(2)|浏览(77)

我在寻求一些建议。我已经在C#中使用RabbitMQ构建了一个多租户解决方案。它由一个云解决方案组成,通过RabbitMQ将消息推送到客户端应用程序。RabbitMQ的路由是使用路由键设置的,比如:myapp.messagestream.<customercode>
所有客户端都使用相同的用户名和密码连接到RabbitMQ。虽然客户端代码被混淆了,但获取用户名和密码仍然相对简单。有了这个,理论上,人们可以“猜测”任何其他客户ID并获得流。显然,这不是我们想要的。
我想解决这个问题的方法是使用每个客户的加密密钥加密所有消息。这样,即使你有RabbitMQ的用户名和密码,并且你猜到了正确的客户ID,你仍然看不到任何有用的信息。
有没有人能分享一下上面的观点?这看起来是个好主意吗?还是我完全疯了
先谢了。

ybzsozfc

ybzsozfc1#

即使消息是加密的,它也会被消费并从队列中删除。我想这不是你想允许的。
考虑创建不同的用户,并允许他们通过授权只从自己的队列中读取。您可以将其连接到LDAP。
编辑:隐藏传输中的消息总是一个好主意,但这可以通过SSL/TLS实现,无需在其上添加另一层

ocebsuys

ocebsuys2#

我知道我迟到了,但这是我所做的:
客户端应用程序已经向一个API验证了自己,然后该API发出了一个JWT。我为RabbitMQ的token(主题)添加了come claims,并启用了JWT身份验证插件。现在,当客户端使用此JWT向RabbitMQ进行身份验证时,它仅被授予对JWT中定义的主题的访问权限。

相关问题