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

Azure机器学习在线端点部署中的MSI身份验证失败问题

Azure机器学习在线端点部署中的MSI身份验证失败问题

我看到你在部署Azure机器学习托管在线端点时,遇到了MSI身份验证的问题,报错提示连接MSI失败并返回405状态码。结合你提到的已经确认工作区是系统分配的托管身份且有租户ID,我整理了几个常见的排查方向,你可以逐一试试:

  • 检查score.py中的MSI认证代码是否正确
    405错误通常是请求方法不匹配导致的,系统分配MSI的token获取端点只接受GET请求。你可以确认下代码里有没有用错请求方法,比如误写成POST。这里给你一个正确的示例代码参考:

    import requests
    
    def get_ml_workspace_token():
        # 系统分配MSI的token获取地址,必须用GET请求
        token_url = "http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://ml.azure.com/"
        headers = {"Metadata": "true"}
        try:
            response = requests.get(token_url, headers=headers)
            response.raise_for_status()
            return response.json()["access_token"]
        except Exception as e:
            raise RuntimeError(f"获取MSI token失败: {str(e)}")
    
  • 确认托管端点的MSI权限配置
    即便工作区是系统分配MSI,也要确保这个身份拥有访问目标资源的权限。你可以登录Azure门户,进入对应工作区的「访问控制(IAM)」页面,检查该系统分配的MSI是否被赋予了合适的角色(比如「Azure机器学习工作区参与者」),没有的话手动添加角色权限试试。

  • 验证端点环境的MSI服务可用性
    托管在线端点的运行环境通常会自动配置MSI服务,但偶尔可能出现异常。你可以尝试重新部署端点,或者检查端点的网络配置:如果端点部署在虚拟网络中,要确保NSG或防火墙规则没有阻断对元数据服务地址169.254.169.254的访问,这个本地地址是MSI获取token的关键通道。

  • 核对租户ID与资源URI的正确性
    再仔细检查下代码中指定的租户ID是否和工作区实际的租户ID一致,同时确认请求token时的resource参数是否正确(Azure机器学习工作区的标准resource URI是https://ml.azure.com/),参数错误也可能导致身份验证失败。

如果以上步骤都尝试后仍然无法解决问题,建议查看部署日志里更详细的请求细节(比如具体的请求方法、完整的请求URL),这能帮你进一步定位问题所在。

备注:内容来源于stack exchange,提问作者Chidera Ferdinand

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 11:55:29