gpt4 book ai didi

docker - 来自本地运行的 docker 容器内的 Azure 托管标识

转载 作者:行者123 更新时间:2023-12-02 17:35:49 25 4
gpt4 key购买 nike

我正在运行一个由 asp.net core 2.2 api 组成的 docker 容器。此 API 需要访问 Azure key 保管库,并且我已使用在 key 保管库上具有正确访问策略以检索 secret 的用户登录到 Visual Studio。但是,当我使用 docker 的 Visual Studio 工具调试容器时,此特定登录似乎并未在本地运行的容器内传播。但是当我在本地运行应用程序时(没有在 docker 容器中运行它),asp net core 配置提供程序似乎获取了我的 Visual Studio 登录信息。任何关于此的指针都有帮助

最佳答案

我的 Mac 上的 docker 和 MSI 也有同样的问题。我最终做了以下解决方法:

首先从 CLI 获取访问 token 并将其设置为环境(并记住将其传递给 docker)

export ACCESS_TOKEN=$(az account get-access-token --resource=https://vault.azure.net | jq -r .accessToken)

在代码中,如果 token 在环境中,则选择它:
KeyVaultClient keyVaultClient;
var accessToken = Environment.GetEnvironmentVariable("ACCESS_TOKEN");
if (accessToken!=null)
{
keyVaultClient = new KeyVaultClient(
async (string a, string r, string s)=> accessToken);
}
else
{
var azureServiceTokenProvider = new AzureServiceTokenProvider();
keyVaultClient = new KeyVaultClient(
new KeyVaultClient.AuthenticationCallback(
azureServiceTokenProvider.KeyVaultTokenCallback));
}

关于docker - 来自本地运行的 docker 容器内的 Azure 托管标识,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54880080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com