我正在尝试从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应用程序
答案 0 :(得分:0)
正如junnas所说,您只需在密钥库访问策略中添加webapp的MSI。
1。打开webapp Access policy
托管身份。
2。将身份添加到具有Get
秘密权限的密钥仓库Environment.GetEnvironmentVariable("AppsettingName");
中。
3。将Key Vault的引用添加到webapp应用程序设置中。
4。使用{{1}}来获取秘密信物。
以下是输出:
答案 1 :(得分:0)
实际上,我发现即使使用ConfiguraionManager.AppSettings [“ keyname”]也可以正常工作。就我而言,我已经完成了上面列出的所有操作,但是在App Service的“连接字符串”配置中启用了“插槽部署”选项。启用后,现在我可以访问我的关键文件库机密了。