Azure DevOps部署令牌获取失败,修改服务连接遇内部错误求助
在完成Pull Request并部署至Azure DevOps时,遇到以下错误:
Could not fetch access token for Azure. Verify if the Service Principal used is valid and not expired.
因旧令牌过期,我新增了令牌并删除旧令牌,但重新部署仍出现相同错误。
随后尝试了Stack Overflow上的解决方案步骤:
- 进入「项目设置 > 服务连接」,选中需要修改的服务连接
- 点击右上角的「编辑」,对服务连接做任意修改(最简单的方式是添加描述)
- 点击「保存」,此步骤请勿尝试验证
- 退出服务连接编辑窗口,刷新服务连接页面
- 再次点击右上角的「编辑」,选择「验证」(若未选择有效资源组,需先选择)
- 点击「保存」
但执行第6步点击「保存」时,出现错误:
TF400898: An Internal Error Occurred: Activity Id:
补充说明:我已创建新令牌和联合凭据,更新配置中的AzureAd.Client Id和TenantId后重新运行Pull Request,仍出现相同错误。我已确认ClientId和TenantId与密钥及联合凭据匹配。
- 证书与密钥截图
- 联合凭据截图
- 配置截图
排查建议
重新创建服务连接
直接删除现有服务连接,从头新建一个,使用最新的服务主体凭据(新令牌/联合凭据)。创建时确保选择正确的租户、订阅和资源组,完成后验证连接有效性,再重新关联到部署管道。检查管道变量与凭据同步
确认部署管道中是否有硬编码的旧凭据变量,或者是否引用了未更新的变量组。进入管道编辑页面,检查所有与Azure身份验证相关的变量,确保和新的ClientId、TenantId、令牌信息一致。清除缓存与重启代理
- 退出Azure DevOps账号,清除浏览器缓存后重新登录
- 如果使用了自托管代理,重启代理服务,确保代理拉取到最新的服务连接配置
验证服务主体权限与联合凭据配置
登录Azure门户,找到对应的服务主体,确认它拥有目标资源组的Contributor或更高权限;同时检查联合凭据的受众、实体ID是否和Azure DevOps项目的配置完全匹配(比如项目ID、组织名称是否正确)。查看Azure活动日志
登录Azure门户,进入「活动日志」,筛选服务主体相关的操作,查看是否有具体的权限拒绝或令牌验证失败的详细日志,以此定位具体问题。
内容的提问来源于stack exchange,提问作者Matthew Pourroy

