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

托管身份调用GraphRbacManagementClient出现Connection reset错误如何解决

问题原因与解决方法

核心错误原因

你遇到的连接重置问题首先来自API版本不兼容:

  • 你使用的azure.graphrbac依赖库调用的是Azure AD Graph(graph.windows.net),该API已在2022年6月30日正式弃用,微软已逐步关闭该端点的公共访问,直接触发连接被重置报错。
  • 你给托管身份(MSI)配置的是Microsoft Graph的Directory.ReadAll权限,和你调用的Azure AD Graph端点不匹配,即使端点可用也会触发权限错误。

正确实现步骤

  1. 替换依赖包:卸载废弃的azure-graphrbac包,安装微软官方支持的Microsoft Graph相关依赖:
    pip install azure-identity msgraph-core
  2. 修改代码调用当前生效的Microsoft Graph端点https://graph.microsoft.com,示例代码如下:
from azure.identity import ManagedIdentityCredential
from msgraph.core import GraphClient
import logging

# 初始化系统分配托管身份凭证
credential = ManagedIdentityCredential()
# 初始化Graph客户端,使用你已配置的Directory.ReadAll应用权限
graph_client = GraphClient(credential=credential, scopes=["https://graph.microsoft.com/.default"])

# 调用组列表接口
resp = graph_client.get("/groups")
if resp.status_code == 200:
    groups = resp.json().get("value", [])
    for group in groups:
        logging.info(group.get("displayName"))
else:
    logging.error(f"请求失败,状态码:{resp.status_code},错误:{resp.text}")
  1. 确认权限配置生效:你已配置的Microsoft Graph 应用权限 Directory.ReadAll符合要求,注意必须在权限配置页点击授予租户管理员同意,权限才会正式生效。

网络排查(替换SDK后仍报错时检查)

如果修改代码后仍报连接错误,可按以下顺序确认网络配置:

  • 若Function App配置了VNet集成,检查VNet关联的网络安全组(NSG)出站规则,是否允许443端口访问graph.microsoft.com
  • 若配置了Azure Firewall或第三方出站防火墙,需要将graph.microsoft.com加入出站白名单
  • 若开启了Function App私有端点,确认私有DNS配置未覆盖Microsoft Graph的公共域名解析

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 07:24:03