如何使用 Azure AD 和 WebJobs SDK 连接到存储队列?

How can I connect to storage queue using Azure AD and WebJobs SDK?

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

{ "AzureWebJobsStorage": "connString" }

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

为此,我已将服务主体 运行 分配给应用程序 Queue Data Contributor Role 并将队列的连接类型从 Access key 切换到 Azure AD传送门。

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

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

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

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

相反,您可以将连接字符串存储在 KeyVault 中,并使用 KeyVault References feature which relies on Managed Identity 在运行时从 KeyVault 获取机密。

直接使用相应的客户端 SDK 是另一种选择。