我正在Azure中构建队列消息传递系统,而我想做的是Azure Storage Queue中的出站消息队列容器,该容器允许我的桌面Windows Services从该队列中获取最新消息。我面临的问题是,我希望每个租户在一个存储帐户中有多个队列(每个Windows服务为一个客户端提供服务)。据我所知,没有办法限制对每个队列的连接字符串访问。另一方面,对于我来说,为每个租户创建一个存储帐户是不切实际的。使用Azure中可用的当前安全方法,将客户端访问限制到一个特定队列的最佳方法是什么?我当时在考虑使用服务总线队列,但是即使那样也不能解决客户端应用程序中出现的连接字符串问题。
答案 0 :(得分:2)
我认为服务总线队列是您的答案;他们允许带有“主题”和各种过滤器等的多用户模型。
存储队列非常简单,对于这种特定情况不是正确的答案。
对不起,在我的手机上,所以还没有所有相关文档。
答案 1 :(得分:1)
一种选择是使用AAD身份和Storage的AAD身份验证支持(当前处于公共预览状态)。
为此,您需要为每个租户在Azure AD中提供一个服务主体, 并将主体添加到各自队列上的存储队列数据读取器或存储队列数据贡献者角色。
然后您可以使用委托人的凭据来获取特定于租户的访问令牌。
文档:
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