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

Azure AD B2C账户删除后如何失效已有B2C会话并清除旧objectId?

Azure AD B2C 自主删账后会话残留问题解决方案

方案1:删账流程末尾主动清除B2C SSO会话

在你的删除账户用户旅程中,确认用户已从目录删除完成后,新增一个步骤调用专门的会话清除技术配置文件,配置示例如下:

<TechnicalProfile Id="Session-Clear">
  <DisplayName>Clear B2C SSO Session</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.DefaultSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <PersistedClaims RemoveAll="true" />
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="objectIdFromSession" DefaultValue="false" />
  </OutputClaims>
</TechnicalProfile>

该配置会直接移除当前会话中所有持久化存储的声明,包括你提到的旧objectId,同时终止当前B2C会话。

方案2:正确配置invalidateAllRefreshTokens实现全端令牌失效

此前很多用户反馈该配置不生效,核心原因是只做了策略侧配置,没有配合调用Graph API完成后端刷新令牌失效,完整步骤如下:

  1. 在删账策略的输出声明中添加配置:<OutputClaim ClaimTypeReferenceId="invalidateAllRefreshTokens" DefaultValue="true" />
  2. 在删除用户的技术配置文件中,同步调用Microsoft Graph的invalidateAllRefreshTokens接口,对目标用户的所有历史刷新令牌做失效处理,后端令牌失效后即使用户持有旧会话也无法正常获取新的访问凭证。

方案3:重定向登出端点做兜底清理

删账流程执行完成后,不要直接返回应用,而是将用户重定向到B2C租户的登出端点,该操作会同时清除B2C侧的SSO会话cookie,以及所有关联信任应用的会话状态。

额外兼容处理

针对所有已上线的自定义策略,在读取objectIdFromSession声明后新增一步用户有效性校验:读取目录中该objectId对应的用户状态,如果返回用户不存在,直接触发会话清除逻辑并跳转登录页,避免残留的会话声明导致逻辑异常。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 10:45:07