我正在按照https://docs.microsoft.com/en-us/azure/app-service/app-service-key-vault-references的指示进行操作>>
基本上,我试图在Azure Key保管库密钥后面保护用于AzureWebJobsDashboard和AzureWebJobsStorage的存储连接字符串。我无法使用注入的KeyVault服务来获取它,因为尚未构建我的服务容器。因此,我发现(通过上面的链接)我可以在配置中使用“ @ Microsoft.KeyVault()”表达式来表达此意图。这是一个示例,其中我将配置移至内联代码以使其简洁:
.ConfigureHostConfiguration(configurationBuilder => { configurationBuilder .AddConfiguration(configuration) .AddInMemoryCollection(new Dictionary<string, string> { ["ConnectionStrings:AzureWebJobsDashboard"] = "@Microsoft.KeyVault(SecretUri=https://host.vault.azure.net/secrets/secret-name/ec545689445a40b199c0e0a956f16fca)", ["ConnectionStrings:AzureWebJobsStorage"] = "@Microsoft.KeyVault(SecretUri=https://host.vault.azure.net/secrets/secret-name/ec545689445a40b199c0e0a956f16fca)", }); })
如果运行此命令,我会得到:
FormatException:未找到有效的帐户信息组合。
如果我将配置值从特殊注释更改为从Key Vault复制的机密值(“显示机密值”按钮下的蓝色复制按钮),则一切正常。这向我确认了我使用的连接字符串是正确的。
[此外,即使在构建主机之前,我还是手动使用KeyVaultClient w / AzureServiceTokenProvider来验证该过程在Visual Studio中本地运行时是否可以正常工作。我能够弄清楚这个秘密。这告诉我,我有足够的特权来获取秘密。
所以现在我想知道是否还支持此功能。有些页面暗示了这是可能的,例如https://medium.com/statuscode/getting-key-vault-secrets-in-azure-functions-37620fd20a0b。至少对于Azure Functions。我正在使用Azure Web Jobs,它通过ASP.NET Core服务作为控制台应用程序部署,但找不到具有该配置的示例。
任何人都可以澄清我在做什么吗?如果不是,在构建Azure Web Jobs主机之前获取存储在Azure Key Vault中的连接字符串的建议过程是什么?
谢谢
我正在遵循https://docs.microsoft.com/zh-cn/azure/app-service/app-service-key-vault-references上的指示,本质上,我正在尝试保护用于以下用途的存储连接字符串...
我已经浏览了很多联机资源,并且似乎都表明装饰特殊的@ Microsoft.KeyVault设置仅在该值位于Azure门户的AppSettings中而不在本地配置中时才起作用。有人请让我知道这是否是错误的评估。