You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure CLI出现Failed to connect to MSI错误,该如何解决?

解决Azure CLI获取MSI令牌时的400错误问题

先确认MSI基础配置是否到位

  • 检查当前运行环境(虚拟机、函数应用、VMSS等)是否已启用MSI:
    • 虚拟机:在Azure门户的VM资源页,进入「身份」选项卡,看系统分配身份是否开启,或者是否添加了用户分配身份。
    • 函数应用:同样在「身份」选项卡确认MSI状态为启用。
  • 给MSI配置认知服务的权限:去目标认知服务资源的「访问控制(IAM)」页,检查MSI是否被分配了Cognitive Services User或Contributor这类合适的角色。

直接验证MSI端点访问

  • 在启用MSI的环境里,直接调用元数据端点排查问题:
    • Linux环境执行:
      curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://cognitiveservices.azure.com' -H Metadata:true
      
    • 如果返回400,先检查resource参数是否准确(必须是https://cognitiveservices.azure.com,别加末尾斜杠);要是网络不通,确认环境能不能访问169.254.169.254这个Azure内部元数据地址,有没有防火墙规则拦截。

检查Azure CLI的状态和版本

  • 确保CLI登录的上下文正确:执行az login重新登录,Azure内部环境(比如VM)里CLI会自动用MSI登录,本地环境则要确认是通过MSI或服务主体登录的。
  • 更新CLI到最新版:执行az upgrade,旧版本可能存在兼容性问题。

用户分配MSI的额外处理

  • 如果用的是用户分配MSI,必须在命令里指定MSI的客户端ID或资源ID:
    az account get-access-token --resource https://cognitiveservices.azure.com --identity --username <MSI客户端ID或资源ID>
    
    • 把<MSI客户端ID或资源ID>换成实际的用户分配MSI标识,可在Azure门户的MSI资源页找到。

尝试恢复MSI服务

  • 虚拟机环境:重启VM试试能不能恢复MSI服务;函数应用则重启应用实例。
  • 查看Azure服务状态,确认所在区域有没有相关服务中断。

内容的提问来源于stack exchange,提问作者Manu Chadha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 13:12:53