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

未配置offline_access权限仍获取Azure AD刷新令牌的原因

问题原因分析

你的测试流程回顾

  1. 先调用OAuth2授权接口获取授权码:
    https://login.microsoftonline.com/{{ Tenant-ID }}/oauth2/v2.0/authorize?......
    
    其中response_type设为code,请求scope包含offline_access。
  2. 再用拿到的授权码调用令牌接口:
    https://login.microsoftonline.com/{{ Tenant-ID }}/oauth2/v2.0/token
    
    请求中指定的scope为:
    --data-urlencode 'scope=https://graph.microsoft.com/user.read offline_access'
    
    最终成功获取到access_token和refresh_token,但你疑惑为什么没在应用里配置offline_access权限还能拿到刷新令牌。

核心原因

  • offline_access是用户可自主授予的标准权限:Azure AD里,offline_access属于低风险的基础权限,不需要预先在应用注册的API权限列表中配置。只要你在授权请求的scope里带上它,用户完成授权流程(哪怕是静默同意),Azure AD就会返回refresh_token。
  • 混淆了应用权限和用户授权scope:你提到的“未配置offline_access API权限”,指的是应用注册里添加的应用级权限(多用于客户端凭据流),而授权码流中通过scope传递的是用户级权限,两者不是一回事。用户级的offline_access不需要提前配置,用户同意后就能生效。
  • 测试环境的权限管控特性:如果用的是个人Microsoft账户测试,Azure AD对这类账户的权限限制更宽松,offline_access会自动允许;如果是工作/学校账户,只要管理员没设置强制审批策略,用户也能自行授予这个权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 20:10:08