我已经通过AzureServicesAuthConnectionString
环境变量为本地开发创建了服务主体,并授予了该主体对密钥库的访问权限。
但是,当我读取configuration["secret"]
中密钥库的机密时,它为null,并且如果我检查配置对象中的提供程序,则看不到密钥库提供程序,仅看到我的appsettings文件的json提供程序。我缺少一个步骤吗?
答案 0 :(得分:1)
您可以尝试使用我们必须将机密直接注入“应用程序设置”中的新功能。
这里是展示如何设置的博客。这很容易,也可以通过模板部署来工作。
https://docs.microsoft.com/en-us/azure/app-service/app-service-key-vault-references
答案 1 :(得分:0)
我创建了一个.net核心网络应用,并在我的网站中进行了良好的测试。这是您可以参考的代码。
在Program.cs中:
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureAppConfiguration(builder =>
{
var azureServiceTokenProvider = new AzureServiceTokenProvider();
var keyVaultClient =new KeyVaultClient(
new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
builder.AddAzureKeyVault("https://yourkeyvaultname.vault.azure.net/",
keyVaultClient, new DefaultKeyVaultSecretManager());
})
.UseStartup<Startup>();
在HomeController.cs中:
private readonly IConfiguration _configuration;
public HomeController(IConfiguration configuration)
{
_configuration = configuration;
}
public IActionResult Index()
{
ViewBag.Secret = _configuration["yoursecretname"];
return View();
}
快照:
有关更多详细信息,您可以参考此article。