从Azure Key Vault参考中获取值(托管身份)

时间:2020-02-18 08:55:55

标签: azure azure-web-app-service azure-keyvault

我正在尝试从Azure App Service中的Azure密钥保管库中获取秘密值。 我的应用服务具有托管身份 在Azure密钥保管库中,此托管身份作为``密钥保管库参与者''添加在``角色分配''下 此外,访问策略已添加到天蓝色的密钥保管库中,以向AppServices的托管身份授予“获取”权限 现在在我的C#代码中,我试图使用代码获取AppSetting元素的值 ConfigurationManager.AppSettings ['something'];

在我的azure应用服务中,在应用设置下,我添加了一个名为“ something”的密钥,它的值指向密钥保管库的引用,如下所示:

@Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931)

现在,我可以从appsettings中检索值了,但是它代替了实际值,而是将输出拉为@Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mysecret/c96f02080254f109c51a1f1cdb1931)

我期望输出是我设置的值,而不是keyvault引用字符串本身。

我正在使用.Net MVC 4.7 Web应用程序

2 个答案:

答案 0 :(得分:0)

正如junnas所说,您只需在密钥库访问策略中添加webapp的MSI。

1。打开webapp Access policy托管身份。

2。将身份添加到具有Get秘密权限的密钥仓库Environment.GetEnvironmentVariable("AppsettingName");中。

3。将Key Vault的引用添加到webapp应用程序设置中。

4。使用{{1}}来获取秘密信物。

以下是输出:

enter image description here

答案 1 :(得分:0)

实际上,我发现即使使用ConfiguraionManager.AppSettings [“ keyname”]也可以正常工作。就我而言,我已经完成了上面列出的所有操作,但是在App Service的“连接字符串”配置中启用了“插槽部署”选项。启用后,现在我可以访问我的关键文件库机密了。