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

使用Microsoft Graph API时令牌过期,如何无用户交互刷新令牌?

无需用户交互刷新Microsoft Graph API令牌的解决方案

针对内部应用使用Microsoft Graph API时的令牌过期问题,根据你的应用场景,有两种无交互的令牌刷新方案:

1. 客户端凭证流(无用户上下文)

适合后台服务类内部应用,无需依赖用户身份,直接以应用自身身份获取令牌:

  • 请求令牌的端点:https://login.microsoftonline.com/{tenantid}/oauth2/v2.0/token
  • 请求参数(POST表单格式):
    • grant_type: client_credentials
    • client_id: 你的Azure AD应用客户端ID
    • client_secret: 应用客户端密钥(推荐用证书替代密钥提升安全性)
    • scope: https://graph.microsoft.com/.default
  • 令牌过期后,直接重复上述请求即可获取新令牌,无需刷新令牌。
  • 权限说明:需在Azure AD中为应用授予应用权限(如Contacts.Read),而非委派权限,才能调用/users/{userid}/contacts接口。

2. 刷新令牌流(带用户上下文)

如果你的应用需要基于特定用户身份操作,且已通过授权码流获取过访问令牌和刷新令牌:

  • 使用同一令牌端点,通过刷新令牌获取新访问令牌,无需用户交互:
    • 请求参数(POST表单格式):
      • grant_type: refresh_token
      • client_id: 你的Azure AD应用客户端ID
      • client_secret: 应用客户端密钥(机密客户端需提供)
      • refresh_token: 之前获取的有效刷新令牌
      • scope: 与初始授权请求一致的权限范围(如https://graph.microsoft.com/User.Read Contacts.Read)
  • 注意事项:
    • 刷新令牌默认有效期90天,定期使用会自动返回新的刷新令牌(滚动更新),若长期未使用会失效。
    • 刷新令牌需安全存储在服务端,禁止暴露给前端或不安全环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 14:26:06