【问题标题】:How to authenticate automatically with Azure Identity library running Docker container locally如何使用本地运行 Docker 容器的 Azure Identity 库自动进行身份验证
【发布时间】:2023-02-18 05:33:53
【问题描述】:

在我的物理开发人员笔记本电脑上本地的 Azure Function v4 Linux 容器内运行 .NET 6 应用程序时,我想使用来自 Docker 主机的 Azure CLI 凭据向 Azure 进行身份验证。 IE。我已经在运行 Docker 的主机上登录到 Azure,我想在 Docker 容器内重用这些相同的凭据,而无需重新输入用户名/密码,无需对凭据进行硬编码,也无需创建服务主体。

我尝试在 Docker 容器内将 $HOME/.azure 挂载为 ~/.azure,但每当我在容器内执行 Azure CLI 命令时,Azure CLI 都会提示我登录,给我错误 User '<my email>' does not exist in MSAL token cache. Run 'az login'.

【问题讨论】:

    标签: azure docker azure-identity


    【解决方案1】:

    Azure CLI 在 Windows 上使用加密存储来缓存令牌。将此存储安装到 Docker 容器中是无用的,因为 Docker 容器不知道(也不可能)知道加密密钥。

    我们正在使用两种解决方法:

    • 使用 WSL,在其中安装 Azure CLI 并从此处生成令牌。它们不会被加密,因为您使用的是 Linux 版本的 Azure CLI。
    • 使用另一个目录,运行 mcr.microsoft.com/azure-cli 的另一个 docker 容器并使用设备代码处理登录。同样,您使用的是 Linux 版本的 Azure CLI,这会导致使用纯文本缓存存储。

    你可以做docker run --rm -v "$HOME/.azure-unencrypted:/root/.azure" mcr.microsoft.com/azure-cli az login --use-device-code然后挂载$HOME/.azure-unencrypted到你的容器作为/root/.azure

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-17
      • 1970-01-01
      • 1970-01-01
      • 2022-12-16
      • 2013-03-31
      • 2018-08-12
      • 1970-01-01
      相关资源
      最近更新 更多