簡體   English   中英

RabbitMQ + Web Stomp和安全性

[英]RabbitMQ + Web Stomp and security

RabbitMQ + Web Stomp非常棒。 但是,我有一些主題我想要以只讀或只寫方式保密。

看來保護這些的唯一機制是使用rabbitmqctl。 我可以創建一個vhost,一個用戶,然后應用一些權限。 然而,這就是Stomp和Rabbit實現開始崩潰的地方。

主題采取形式:/ topic / blah in stomp,它使用路由鍵“blah”路由到Rabbit中的“amq.topic”。 似乎沒有辦法為路由鍵設置權限。 似乎:

rabbitmqctl set_permissions -p vhost user ".*" ".*" "^amq\.topic"

是我能做的最好的,這仍然是“所有”主題。 我也研究過交流,但是在javascript中無法動態定義這些交換。

我在這里錯過了什么嗎?

參考: http//www.rabbitmq.com/blog/2012/05/14/introducing-rabbitmq-web-stomp/

試試這個https://github.com/simonmacmullen/rabbitmq-auth-backend-http它更加靈活。 基本上它是兔子的小型auth插件,它通過http(你有完全控制權)將ACL決定委托給一個腳本,只需要回復“allow”或“deny”

是的,使用RabbitMQ-WebStomp,你幾乎只限於普通的RabbitMQ權限集。 這不是理想的,但您應該能夠正確地獲得基本權限設置。 看看RabbitMQ文檔:

http://www.rabbitmq.com/access-control.html

快速查看stomp文檔:

http://www.rabbitmq.com/stomp.html

是的,您無法為特定路由密鑰設置權限。 也許你應該使用'exchange'語義,加上明確地綁定一個隊列交換(即:不使用主題):

/交換/ EXCHANGE_NAME [/ routing_key]。

請在rabbitmq-discuss郵件列表上詢問有關RMQ權限的具體問題。 那里的人真的很有幫助。

不幸的是,對於一些更復雜的場景,RMQ權限集還不夠。 在這種情況下,您可能希望:

  • 僅使用STOMP 讀取數據,並僅使用可在內部直接與Rabbit通信的外部AJAX接口發布消息。
  • 或者,不要使用web-stomp插件並手動在SockJS和RabbitMQ之間編寫一個簡單的橋接器。 這為您提供了更多靈活性,但需要更多工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM