3 回答
TA贡献1111条经验 获得超0个赞
使用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 机密将可用并根据您的重新加载间隔刷新。
TA贡献1797条经验 获得超6个赞
与 Bobby Koteski 提议的相同,但使用更新的Azure.Extensions.AspNetCore.Configuration.Secrets包,因为Microsoft.Extensions.Configuration.AzureKeyVault已弃用。
ReloadInterval
是在尝试轮询 Azure Key Vault 以获取更改之间等待的时间。
configurationBuilder.AddAzureKeyVault(
new SecretClient(
new Uri(configuration["KeyVaultBaseUrl"]),
new ManagedIdentityCredential(configuration["UserAssignedManagedIdentityClientId"])
),
new AzureKeyVaultConfigurationOptions()
{
ReloadInterval = TimeSpan.FromSeconds(1000)
}
);
以及指向源代码的链接以查看其实际工作原理:)
TA贡献1872条经验 获得超3个赞
秘密被缓存直到IConfigurationRoot.Reload()
被调用。在执行重新加载之前,应用程序不会考虑密钥保管库中过期、禁用和更新的机密。
Configuration.Reload();
- 3 回答
- 0 关注
- 150 浏览
添加回答
举报