Azure DevOps新建ACR服务连接时加载注册表无限卡顿问题求助
Azure DevOps连接租户B ACR时"Loading Registries"无限加载问题
问题场景
在Azure DevOps中搭建基于Docker镜像的CI/CD流水线,此前在租户A环境操作完全正常。获得客户租户B的访问权限后,创建ACR服务连接时出现异常:
- 可选订阅列表包含租户A的2个订阅和租户B的1个订阅
- 选择租户B的订阅后,页面持续显示**"Loading Registries"**,无限加载无法完成
- 选择租户A的订阅则能正常加载并选择ACR资源
已完成的排查操作:
- 清除浏览器缓存
- 使用浏览器隐身模式尝试
- 自身持有租户B的User Access Administrator角色,权限理论上满足配置需求
控制台捕获的错误信息:
{ "$id": "1", "innerException": null, "message": "TF400898: An Internal Error Occurred. Activity Id: 34...", "typeName": "Microsoft.Identity.Client.MsalUiRequiredException, Microsoft.Identity.Client", "typeKey": "MsalUiRequiredException", "errorCode": 0, "eventId": 0 }
可行解决方法
1. 补充ACR相关资源权限
User Access Administrator角色主要用于管理用户权限分配,可能不足以访问ACR资源本身:
- 给你的账户在租户B的目标ACR(或其所在资源组)添加ACR Owner、ACR Contributor或Contributor角色
- 确认权限已生效(可能需要等待15-30分钟的权限同步时间)
2. 重新完成跨租户身份授权
- 在服务连接创建页面,选择租户B订阅后,点击页面右上角的重新授权按钮(若存在),重新完成租户B的身份验证流程
- 切换到手动创建服务连接模式,直接输入ACR登录服务器地址、服务主体ID、密钥等信息,绕过自动加载环节
3. 重置Azure AD身份验证上下文
- 注销所有Azure关联账户(包括租户A和B),清理浏览器的身份验证Cookie,重新登录租户B账户后再尝试操作
- 使用Azure CLI执行以下命令,确保本地身份上下文切换到租户B:
完成后回到Azure DevOps页面重试az login --tenant <租户B的租户ID> az account set --subscription <租户B的订阅ID>
4. 排查租户B的条件访问策略
租户B可能存在限制访问的条件策略:
- 检查是否有策略要求必须使用MFA登录,当前操作未满足该条件
- 确认是否有策略限制了非信任位置、特定设备的访问,或者阻止了Azure DevOps应用的访问权限
5. 提交Azure支持工单
若以上方法均无效,MsalUiRequiredException通常指向跨租户身份验证链路问题,可提交Azure支持工单,提供控制台中的Activity ID,让官方团队排查租户间的身份验证配置异常。
内容的提问来源于stack exchange,提问作者anthino12
相关产品推荐
相关产品推荐

