如何利用azure.identity结合已有令牌创建GraphServiceClient?
使用Azure Identity + Microsoft Graph Python SDK基于已有Refresh Token构建客户端
直接用azure.identity中的RefreshTokenCredential类就能实现你的需求,它会自动处理access token过期时的刷新逻辑,无需手动调用刷新接口。
步骤1:安装依赖
确保安装必要的包:
pip install azure-identity msgraph-sdk
步骤2:初始化凭证与Graph客户端
from azure.identity import RefreshTokenCredential from msgraph import GraphServiceClient # 替换为你的实际参数 tenant_id = "你的Azure AD租户ID" client_id = "你的应用客户端ID" client_secret = "你的应用客户端密钥" refresh_token = "你持有的Refresh Token" # 创建RefreshToken凭证,自动处理令牌刷新 credential = RefreshTokenCredential( tenant_id=tenant_id, client_id=client_id, client_secret=client_secret, refresh_token=refresh_token ) # 构建Graph Service客户端 graph_client = GraphServiceClient(credential)
步骤3:发起Graph API请求
以获取当前用户信息为例:
try: user = graph_client.me.get() print(f"用户名: {user.display_name}, 邮箱: {user.mail}") except Exception as e: print(f"请求失败: {e}")
关键说明
RefreshTokenCredential会自动检测access token的过期状态,到期时自动用refresh token获取新的access token和refresh token- 确保你的refresh token拥有调用目标Graph API所需的权限范围
- 客户端密钥请勿硬编码在代码中,建议通过环境变量或密钥管理工具注入
内容的提问来源于stack exchange,提问作者Demian Licht
相关产品推荐
相关产品推荐

