Microsoft Graph API权限撤销后旧连接仍生效问题咨询
Microsoft Graph 委派权限与连接缓存的运行原理
自定义连接器的连接本质是缓存了用户授权流程中获取的两类令牌:
- 访问令牌(
access_token):调用Microsoft Graph接口时实际携带的凭证,为自包含JWT格式,令牌签发时会将当前生效的所有已授权委派权限写入scp声明字段,默认有效期为1小时。 - 刷新令牌(
refresh_token):用于在访问令牌过期后,自动向Entra ID(原Azure AD)申请新的访问令牌,默认有效期为90天,支持滚动续期。
Microsoft Graph接口做权限校验时,仅校验当前请求携带的访问令牌内置的权限声明,不会实时回源查询Entra ID中应用的最新权限配置,这是整个权限机制的核心逻辑。
两类场景的具体触发原因
- 新增权限后旧连接返回403:新增
Teams.Create权限并完成管理员同意后,旧连接缓存的访问令牌是权限变更前签发的,scp字段中不包含该权限,因此会被Graph判定为权限不足返回403。只有重新登录走完整授权流程,Entra ID才会签发带新权限声明的访问令牌,新建连接缓存新令牌后才能正常调用。 - 撤销权限后旧连接短时间内可正常调用:管理员撤销应用权限、移除授权同意后,Entra ID会默认将该应用对应用户的刷新令牌标记为失效,但已经签发且未过期的访问令牌不会被自动作废,在剩余有效期(最长1小时)内依然可以正常调用Graph接口。等当前访问令牌过期后,旧连接用已失效的刷新令牌申请新令牌时会被拒绝,连接会自动失去对应权限。
该行为是否为预期设计
该现象完全是Microsoft Entra ID与Microsoft Graph的标准设计行为,不属于产品缺陷。
这种自包含令牌的设计核心目的是平衡服务性能与安全:如果每次Graph调用都实时校验应用的最新权限配置,会带来极高的接口延迟,同时给Entra ID造成无法承载的查询压力。
针对反向场景的安全风险,不存在永久权限残留问题:
权限撤销后的最长残留访问窗口不超过1小时。如果需要立即终止所有现存连接的访问能力,管理员可以在Entra ID中主动执行用户会话吊销操作,强制所有已签发的令牌即时失效,无需等待令牌自然过期。
内容的提问来源于stack exchange,提问作者Marek Kyzivát
相关产品推荐
相关产品推荐

