首页 > 解决方案 > 如何更改在 Azure Pipelines 中运行的管道的用户帐户

问题描述

我们正在 Azure Pipelines 中设置一个新管道,该管道执行对 Azure DevOps 存储库的 git 提交。管道由 Windows 自托管代理执行。代理已经使用来自具有管理权限的用户的令牌注册,但是当启动管道时,我们看到 git 提交正在由另一个无权访问存储库的用户执行。我们想为这个 git commit 步骤定义一个不同的用户。

阅读 Azure Pipelines 文档后,我看到代理使用了三种不同的身份验证令牌:

文档的这一部分使我们认为特定于作业的 OAuth 令牌是我们需要更改的令牌:

当作业可用时,代理会下载作业以及特定于作业的 OAuth 令牌。此令牌由 Azure Pipelines/TFS 为管道中指定的范围标识生成。该令牌是短暂的,代理使用它来访问该作业中 Azure Pipelines 或 TFS 上的资源(例如,源代码)或修改资源(例如,上传测试结果)。

在 Azure Pipelines 中,我们如何或在何处更改自托管代理在执行管道时使用的特定于作业的 OAuth 令牌?

任何有关此主题的帮助或澄清将不胜感激。

标签: azure-pipelinesazure-devops-self-hosted-agent

解决方案


在挖掘运行 Azure DevOps 代理的机器后,我们看到用于针对 Azure DevOps 进行身份验证的令牌存储在 Windows 凭据管理器中。

存储在自托管生成计算机中的 Azure Devops 个人访问令牌

在此窗口中,您可以删除所有存储的凭据,然后在机器下次尝试通过 Git 访问 Azure Devops 存储库时,系统会提示您在 Azure Devops 中输入新的有效凭据。Git 使用这种机制是因为我们在设置 Git 时已经为 Windows 安装了 Git Credential Manager。它管理远程存储库的身份验证,例如 Azure Devops 或 Github,将凭据存储在 Windows 凭据管理器中。正如此 SO question中所述,您还可以通过键入以下命令通过命令行管理它们,而不是从该窗口对话框调整凭据:

git credential-manager

推荐阅读