用于订阅的Azure ServiceBus SAS密钥

时间:2017-11-07 08:15:42

标签: azure security azureservicebus servicebus

我有以下架构:1个主题,其中发布者发布消息和3个订阅。由于" 1 = 1"所有消息都在3个订阅中发送。规则。 创建3个订阅以提供发布到3个不同应用程序的消息。 我为发布商提供了一个SAS密钥" Write"对该主题的许可。 我现在需要使用" listen"创建3个SAS密钥。对3个应用程序的许可,但我看到我无法将密钥与订阅相关联,只能与主题或命名空间级别相关联。 我正在寻找的是一种避免app#1收听不专用的订阅的方法。 有可能吗?

2 个答案:

答案 0 :(得分:0)

我意识到实现这一目标的唯一方法是通过使用Listen和Send SAS键分别拥有三个“监听器”主题。

为了将其与发布者应用程序分离,您可以将“发布”主题与其发送SAS密钥保持一致,并创建一个Listen订阅和SAS密钥,并编写一个小的第二个“广播者”应用程序,它只读取“发布”主题并将消息分发给三个“监听器”主题。

这样只有你知道所有4个Send SAS密钥和主要“发布”主题的Listen SAS密钥,你可以独立分发其他三个Listen SAS密钥。

我相信你可能考虑过这个,但觉得必须有一个更简单的方法! : - )

我快速浏览了事件中心和继电器,但是Relays似乎不合适,事件中心可能会提供功能,但我认为它并不是它们的目的。我认为它们也花了很多钱。

答案 1 :(得分:0)

您可以为每个订阅创建一个附加队列,启用从每个订阅到其关联队列的自动转发,并在每个队列上配置侦听器策略,以便每个客户端只能从其专用队列中读取。

明显的缺点是它确实意味着配置3个其他队列和自动转发。但是它应该提供接收者之间的完全隔离。