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。
这在调试期间也有效,但是当我发布到 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");
我正在尝试使用 Azure 密钥保管库来存储一些机密。按照本教程: https://docs.microsoft.com/en-us/azure/key-vault/vs-secure-secret-appsettings
在调试时工作,但当我将应用程序发布到 Azure 时,它失败了,因为我的密钥返回 null。
这在调试期间也有效,但是当我发布到 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");