Azure 服务总线 - 主题和订阅权限

Azure Service Bus - Topic & Subscription permissioning

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

我目前正在使用 Azure 服务总线对解决方案进行原型设计,但是我 运行 在权限方面遇到了一个小问题。

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

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

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

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

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

或者有 another/better/recommended 方法来做到这一点。

您的假设是正确的,只能针对命名空间 and/or 消息实体创建共享访问策略,在本例中为主题。您可以查看 here 了解更多信息。

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

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