Azure Service Bus - 主题&订阅许可

时间:2015-11-09 12:05:12

标签: azure azureservicebus servicebus

我需要从我们的系统向第三方公开一些消息(通知)功能。

我目前正在使用Azure Service Bus对解决方案进行原型设计,但是我遇到了一个允许的小问题。

                    --> SUB1 --> Provider 1
                   /
MyApp --> TOPIC --<
                   \
                    --> SUB2 --> Provider 2

我想将一条小JSON消息放入Topic。 该邮件将附加一个“ProviderId”属性,并根据过滤规则将该邮件过滤到特定于提供商的Subscription

但是,我似乎无法在Subscription上指定共享访问政策,以限制第三方提供商仅连接到他们自己的Subscription

我是否正确地假设我应该在订阅上设置auto-forwarding以将这些消息发送到另一个Queue,然后在那里应用提供商特定的安全性。

                    --> SUB1 --> AutoForward --> Q1 --> Provider 1
                   /
MyApp --> TOPIC --<
                   \
                    --> SUB2 --> AutoForward --> Q2 --> Provider 2

或者是否有其他/更好/推荐的方法来做到这一点。

1 个答案:

答案 0 :(得分:2)

您的假设是正确的,在这种情况下,只能针对名称空间和/或消息实体创建共享访问策略。您可以查看here了解详情。

在我看来,自动转发是最好的方式,更多信息here

但我可以想到的另一件事是使用生成的令牌加密消息内容,该令牌被提供给相应的提供者,因此它可以解密该订阅消息,但即使阅读其他订阅中的消息也无法解密它们。这意味着你需要管理这些令牌。