net core 应用程序无法访问 azure key vault

net core app fails to access azure key vault

我正在尝试使用 Azure 密钥保管库来存储一些机密。按照本教程: https://docs.microsoft.com/en-us/azure/key-vault/vs-secure-secret-appsettings

在调试时工作,但当我将应用程序发布到 Azure 时,它​​失败了,因为我的密钥返回 null。

然后我尝试了这个教程:https://medium.com/@patoncrispy/securing-settings-in-dot-net-core-apps-using-azure-key-vault-d4ec82de00b8

这在调试期间也有效,但是当我发布到 Azure 时,它​​也失败了,因为我的密钥返回 null。

任何关于我应该如何解决这个问题的帮助都会很棒。为什么我会在生产环境中得到 null,但在提供相同凭据时却无法调试?

为了使应用能够使用 AppAuthentication 库访问 Azure 中的 Key Vault,它应该启用托管服务标识。

此外,需要授予自动创建的服务主体访问 Key Vault 中机密的权限。

在 Azure 中指定 KeyVault 端点 URL 可以在第一个示例中使用带有密钥 KEYVAULT_ENDPOINT 的应用程序设置来完成。

// Create a new secret client using the default credential from Azure.Identity using environment variables previously set,
// including AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID.
var client = new SecretClient(vaultUri: new Uri(keyVaultUrl), credential: new DefaultAzureCredential());

// Create a new secret using the secret client.
KeyVaultSecret secret = client.SetSecret("secret-name", "secret-value");

// Retrieve a secret using the secret client.
secret = client.GetSecret("secret-name");