首页 > 解决方案 > 如何使用 Azure AD 和 WebJobs SDK 连接到存储队列?

问题描述

我的 WebJobs 应用使用 Azure 存储队列触发器。当在配置中设置到队列应用程序监听的存储帐户的连接字符串时,它运行顺利;即appsettings.json。

{ "AzureWebJobsStorage": "connString" }

但是,我不想在配置中公开任何秘密,更重要的是,我想完全避免访问密钥,而是依赖 Azure AD 和基于角色的访问控制 (RBAC)。

为此,我为运行应用程序的服务主体分配了队列数据参与者角色,并将队列的连接类型从门户切换Access keyAzure AD

我的意图是使用Azure Identity SDK并新建一个实例,DefaultAzureCredential并使用它将我的应用程序连接到队列。

但据我所知,Webjobs SDK 期望使用英亩键进行连接,即连接字符串。使用独立存储队列客户端时,这很简单,因为我可以使用上述 Identity SDK 创建队列客户端。但是在 WebJobs 中,我似乎无法覆盖连接到该队列的方法。

如何通过 Azure AD 和 RBAC 访问该队列?非常感谢您对此的任何帮助!

标签: azure-active-directoryazure-webjobsazure-storage-queuesazure-rbac

解决方案


目前,与 WebJobs SDK 一起使用的绑定不支持使用身份 SDK。

相反,您可以将连接字符串存储在 KeyVault 中,并使用依赖托管标识的KeyVault 引用功能在运行时从 KeyVault 获取机密。

直接使用相应的客户端 SDK 将是另一种方式。


推荐阅读