【发布时间】:2022-06-13 16:19:24
【问题描述】:
我正在尝试将我的环境设置为能够从 Azure 外部访问 Azure 资源。
在查看不同的选项时,我主要遇到了许多其他选项
选项 1: 使用 Azure CLI 创建服务主体并使用客户端机密进行令牌检索和访问资源 Get Client secrets Run Time
选项 2: 使用 DefaultAzureCredential (Azure.Identity) 进行令牌检索和访问资源 DefaultAzureCredential
我目前正在尝试使用 DefaultAzureCredential 选项来访问 Azure 资源,例如 ADF、Blob 存储等。
我可以使用 Visual Studio 凭据 (VS 2019) 执行此操作。然而,挑战仍然是通过在 Azure 之外运行的管道执行相同的操作。我不想在代码中保存任何秘密。这是否意味着我不能将环境变量用于目的?
如果这确实可行,那么需要代码方面的帮助。
环境: .网络框架 4.8/核心 3.1
所需流量:
使用 Visual Studio 凭据进行本地开发和测试。
通过 DevOps Pipeline 任务使用环境变量或 DefaultAzureCredential 支持的其他任务。
代码:
var tokenCredential = new DefaultAzureCredential();
var accessToken = await tokenCredential.GetTokenAsync(
new TokenRequestContext(scopes: new string[] { ResourceId + "/.default" }) { }
);
【问题讨论】:
-
您熟悉 Azure DevOps 中的服务连接的概念吗?如果没有,从那里开始。
-
谢谢,丹尼尔,我还没有尝试这个选项。然而,为了清晰起见,我们正试图通过代码来处理这个问题。
标签: azure-devops defaultazurecredential