【发布时间】:2020-10-11 15:23:40
【问题描述】:
我发现使用托管标识很容易连接到 Azure KeyVault。文档显示了如何做到这一点:
var azureServiceTokenProvider = new AzureServiceTokenProvider();
var keyVaultClient = new KeyVaultClient(
new KeyVaultClient.AuthenticationCallback(
azureServiceTokenProvider.KeyVaultTokenCallback));
config.AddAzureKeyVault(
$"https://{builtConfig["KeyVaultName"]}.vault.azure.net/",
keyVaultClient,
new DefaultKeyVaultSecretManager());
然后我意识到它需要包 Microsoft.Azure.KeyVault 已弃用。所以我很难弄清楚如何使用 SDK 4 完成上述操作。我找到的所有文档都与 SDK 3 相关。
[编辑]
我发现以下代码可以使用带有 SDK 4 的托管身份获取 azure KeyVault Secret。但是我看不到如何将其添加到我的配置中。它曾经使用 Microsoft.Extensions.Configuration.AzureKeyVault 包中的 config.AddAzureKeyVault() 完成,但它与 SDK 4 SecretClient 不兼容:
return Host.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((context, config) =>
{
var azureCredentialOptions = new DefaultAzureCredentialOptions();
var credential = new DefaultAzureCredential(azureCredentialOptions);
var secretClient = new SecretClient(new System.Uri("https://mykeyvault.vault.azure.net/"), credential);
var secret = secretClient.GetSecret("StorageConnectionString");
config.AddAzureKeyVault()
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}
【问题讨论】:
-
您是如何发现它已被弃用的?查看nuget,版本似乎还可以,不是最新但未弃用:nuget.org/packages/Microsoft.Azure.KeyVault
-
@Thomas 看上面的截图
-
我猜你可以改正你自己的配置生成器?
-
microsoft.azure.keyvault 包已弃用
标签: azure azure-keyvault azure-managed-identity