首页 > 解决方案 > Azure KeyVault 配置提供程序在更改时重新加载值

问题描述

我正在使用 Azure Key Vault 配置提供程序在应用启动时读取一些机密。然而,这些秘密整天都在轮换,我希望能够在轮换发生时重新加载新值。

我说的和reloadOnChangeapi类似

.ConfigureAppConfiguration((context, config) =>
{
    config.AddJsonFile("appsettings.json", reloadOnChange: true);
})

这可能吗?

这是一个 webapi 项目,因此在实践中,如果更好/更可行,我可以手动重新加载每个 HttpRequest 的值。

标签: c#.netazureasp.net-coreazure-keyvault

解决方案


使用Microsoft.Extensions.Configuration.AzureKeyVault (v3),您可以执行以下操作:

configurationBuilder.AddAzureKeyVault(new AzureKeyVaultConfigurationOptions
{
    Vault = configuration["KeyVaultUrl"],
    ReloadInterval = TimeSpan.FromMinutes(10),
    Client = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(
       new AzureServiceTokenProvider().KeyVaultTokenCallback))
});

现在,当您在服务中请求时IConfiguration,KeyVault 机密将可用并根据您的重新加载间隔刷新。


推荐阅读