Azure 中的 Docker 容器应用服务。如何使用 Keyvault 的 DefaultAzureCredential

Cat*_*lMF 5 containers azure azure-keyvault defaultazurecredential

我有一个在天蓝色中运行的容器应用程序服务,它工作正常。

但是,如果我想在本地运行此容器,它会失败,因为它无法进行身份验证以读取天蓝色中的密钥保管库。

.ConfigureAppConfiguration((context, config) =>
{
    var builtConfig = config.Build();

    string SecretUri = $"https://{builtConfig["KeyVaultName"]}.vault.azure.net/";
    var secretClient = new SecretClient(new Uri(SecretUri), new DefaultAzureCredential(new DefaultAzureCredentialOptions { ExcludeSharedTokenCacheCredential = true }));
    config.AddAzureKeyVault(secretClient, new KeyVaultSecretManager());
})
Run Code Online (Sandbox Code Playgroud)

在 azure 中运行时,DefaultAzureCredential 将从应用程序服务继承其权限,并且工作正常。

但是,如果我想在本地运行容器以在天蓝色之外进行测试,它不知道要使用什么权限。我应该如何处理这个问题?我可以以某种方式告诉容器使用哪些权限而不对容器进行开发更改吗?

And*_*ndy 0

当我在 Visual Studio 中进行开发时,我通常将默认的 Azure Key Vault 开发凭据存储在本地用户设置中。然后,我将相同的凭据作为环境变量放入 Azure 应用服务中。如果凭据名称相同,那么它将在两个地方工作。

您可以通过右键单击 Visual Studio 中的项目来访问本地用户机密

在此输入图像描述

请参阅文档了解更多详细信息。

  • 但是,您在环境变量中拥有不安全的凭据,从而违背了拥有天蓝色密钥保管库的目的。 (2认同)