我想将机密存储在 Azure Key Vault 中,拉入应用程序服务中的应用程序设置(正在运行),当我运行应用程序时,我可以检索数据。
现在我想使用Visual Studio在本地开发中获取这个值
感谢此视频的帮助: https://www.youtube.com/watch?v=vEaCnhvggz0
如果你跳到 9 分钟标记,我就能
将此值用作:
@Microsoft.KeyVault(SecretUri=https://keyVaultName/secrets/SecretName/1121283182091283/)
然后在代码中引用 Secret_Value 使用:
在我的 web.config 中:
<add key="Secret_Value" value="localDev" />
C#
var Secret = ConfigurationManager.AppSettings["Secret_Value"];
当我在 VS 上本地运行应用程序时,它会返回“localDev”,但当我在应用程序服务上运行时,它会正确返回来自 KV 的值
如何获取本地开发的价值?因为我不能这样做:
<add key="Secret_Value" value="@Microsoft.KeyVault(SecretUri=https://keyVaultName/secrets/SecretName/1121283182091283/)" />
这可能吗?我知道我可以将 KeyVault 添加为 Nuget 包和 obtian,如下所示:
var client = new SecretClient(new Uri(keyVaultURL), new DefaultAzureCredential());
var secret = client.GetSecret(CRM_Secret_KeyVaultName);
但我不想要这个。
我想直接从KV中提取本地webconfig的值,这可以吗?无需编写任何额外代码?感谢您的回复
那么有没有办法从本地完成而不编写代码?
我们无法直接在本地配置文件中绑定 Key Vault 引用。
我尝试通过本地参考来设置和检索秘密。
你可以看到它不起作用。
在这种情况下,您可以将本地配置和生产配置分开。
Web.config
)。或
您可以在
secrets.xml
中设置秘密值。
据我所知,您只能使用代码或仅在已部署的 Azure 应用服务中使用 Key Vault 引用来检索 Azure Key Vault 机密。
感谢@RyanHill-MSFT 的评论。 您还可以参考 GitHub 链接,其中也有相同的解释。