如何为每个租户确保"Azure Storage Queues"?

How to secure "Azure Storage Queues" for each tenant?

我正在 Azure 中构建队列消息传递系统,我正在尝试做的是 Azure 存储队列中的出站消息队列容器,它允许我的桌面 Windows 服务从中获取最新消息队列。我面临的问题是我想在一个存储帐户中为每个租户设置多个队列(每个 Windows 服务服务一个客户端)。据我所知,没有办法限制对每个队列的连接字符串访问。另一方面,为每个租户创建一个存储帐户对我来说不切实际。使用 Azure 中可用的当前安全方法来限制客户端访问一个特定队列的最佳方法是什么?我正在考虑使用服务总线队列,但即使那样也不能解决我在客户端应用程序中遇到的连接字符串问题。

我认为服务总线队列你的答案;他们允许使用 "subjects" 和各种过滤器等的多订户模型

存储队列非常简单,不是这个特定场景的正确答案。

抱歉,我在手机上,所以手边没有所有相关文档。

一种选择是使用 AAD 身份和存储的 AAD 身份验证支持(目前处于 public 预览阶段)。

为此,您需要在 Azure AD 中为每个租户分配一个服务主体, 并将主体添加到各自队列中的 Storage Queue Data ReaderStorage Queue Data Contributor 角色。

然后您可以使用委托人的凭据来获取特定于租户的访问令牌。

文档:

https://azure.microsoft.com/en-us/blog/announcing-the-preview-of-aad-authentication-for-storage/

https://joonasw.net/view/azure-ad-authentication-with-azure-storage-and-managed-service-identity