【问题标题】:Azure Service Bus Topics - Secure message from other subscribersAzure 服务总线主题 - 来自其他订阅者的安全消息
【发布时间】:2018-07-25 11:49:17
【问题描述】:

我有一个服务总线主题,其中有 50 个订阅者,他们有自己的过滤器。如果有人猜到订阅者的姓名,我如何能从其他 49 个订阅者那里获得消息?无论如何我可以验证订阅者凭据吗?

现在我的计划 B 是创建 50 个队列,这样每个队列都有自己的安全连接字符串。有人可以提出正确的方法吗?

【问题讨论】:

  • 如果您需要保护来自租户的消息,为什么不使用单独的命名空间?或者,您还可以拥有路径层次结构和自定义令牌提供程序,根据您允许或禁止访问的路径。
  • 是的,那是我的 B 计划。我正在寻找是否可以通过单个命名空间实现

标签: azure azureservicebus servicebus azure-servicebus-topics


【解决方案1】:

如果您希望保留在单个命名空间中并仍确保租户无法看到其他消息,则可以使用路径层次结构(tenant1/queue、tenant2/queue)和自定义令牌提供程序。自定义令牌提供者将根据提出请求的租户决定是否可以访问实体(queue。

您可以构建一个用户进行身份验证的 Web 服务,该 Web 服务将传递带有所需权限的适当令牌,并且这些权限的管理发生在服务总线 SAS 规则中。颁发的令牌将跨越用户有权访问的实体。

【讨论】:

  • 这个方案是不是意味着每个租户都需要一个队列?
  • 当然。一个租户 == 一个队列?
  • 对于将与这些队列交互的后端云托管组件,是否有一种简单的方法可以从所有这些队列中消费?或者您是否需要连接到管理节点,枚举所有可用的“租户”队列并启动任务以从它们中消费?
  • 如果您的租户有多个队列,该租户可以监听所有这些队列,也可以使用自动转发合并到单个队列并仅监听该队列。
  • 太好了,看来您已经找到答案了;)这里很好地解释了自动转发:docs.microsoft.com/en-us/azure/service-bus-messaging/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-02-12
  • 2017-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-06
  • 2021-06-24
相关资源
最近更新 更多