我正在尝试在Azure Pipelines中运行Azure Resource Group Deployment task。我已经部署了Azure Pipelines self-hosted agent on an Azure VM running Windows,并且在我的Azure DevOps组织中设置了Azure Resource Manager service connection to a VM with a managed service identity。
但是,当尝试使用具有托管身份的服务连接来配置Azure资源组部署任务时,出现以下错误:
GetUserAccessToken:无法获取标识的访问令牌。 AAD返回了静默失败。
截屏:
我已经确认我已将对VM的托管身份的访问权限(贡献者)授予目标资源组:
该服务连接的作用域还仅限于Azure订阅:
感谢您对诊断此问题的任何帮助。谢谢!
通常在会话期满后无法获取访问令牌。
解决这些问题:
参考:
看来是因为出现了问题,因为已验证到Azure DevOps的用户帐户正在检索订阅信息。 Azure DevOps是不使用托管身份以检索订阅信息。
特别是,我最初的Azure DevOps用户帐户已启用MFA以对Azure订阅进行身份验证(例如,portal.azure.com),但not却已启用MFA进行身份验证至Azure DevOps(例如,开发人员。 azure.com/)。我认为这是导致无法获取访问令牌的问题:
我在我的Azure AD中创建了一个不同的用户帐户,授予它对我的Azure DevOps组织的访问权限,并确保此新用户帐户对目标订阅具有读取权限,并且[没有打开MFA。这解决了使用托管身份时获取订阅信息的问题: