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

AWS Cognito对接Office 365 SAML后ID Token刷新及失效问题问询

问题解析与解决方案

首先明确:ID Token的刷新主体是AWS Cognito,而非Office 365(IDP),这就是你遇到步骤4现象的核心原因。

背后的逻辑

当你通过SAML完成SSO登录时,流程是:

  1. 用户被引导到Office 365完成身份验证,IDP返回SAML断言给Cognito
  2. Cognito验证SAML断言后,生成自己的ID Token、Access Token和Refresh Token返回给应用
  3. 后续刷新Token时,应用直接向Cognito发起请求,Cognito只会校验自身存储的Refresh Token有效性、用户在Cognito池中的状态,默认不会主动去Office 365验证用户的当前状态或会话有效性

所以会出现:

  • 步骤4中,Office 365禁用用户后,Cognito本地的用户状态还是正常的,Refresh Token也未失效,因此能正常刷新Token,用户可继续使用应用
  • 步骤5中,Cognito直接禁用用户,刷新时Cognito自身校验不通过,自然拒绝刷新并登出用户

解决办法

如果你希望IDP端的用户状态变更能同步到应用登录状态,可以尝试以下方案:

  • 配置Cognito用户数据同步:在Cognito用户池设置中开启与Office 365的定期同步,或者通过Post Authentication、Pre Token Generation等Lambda触发器,在每次刷新Token时主动调用Microsoft Graph API校验用户在Office 365中的状态,若发现用户已禁用,则拒绝生成新Token
  • 缩短Refresh Token有效期:在Cognito用户池的App Client设置里,把Refresh Token的过期时间调短(比如几小时),这样用户需要更频繁地重新跳转到IDP登录,能更快感知到IDP的状态变化
  • 应用端额外校验:在每次刷新Token后,调用Microsoft Graph API检查用户的账户状态和会话有效性,若发现异常则主动登出用户

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 00:31:14