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

Azure AD B2C IEF自定义策略下SSO会话状态不持久如何排查?

排查SSO会话持久化问题的方案

一、使用Application Insights验证会话状态的方法

首先需要确保你已经完成了Identity Experience Framework(IEF)诊断日志到Application Insights的对接配置,开启了详细日志收集。完成后可以通过以下关键字段和事件排查:

  • 搜索事件关键字SSOSessionProvider,用户完成首次身份认证后,确认日志中存在SSO session created事件:该事件会记录生成的会话唯一标识、被写入会话存储的所有声明列表,你可以核对需要用于后续流程的声明是否已经被正确写入会话。
  • 当用户从外部资料编辑站点跳转回B2C时,查找SSO session retrieved事件:如果该事件不存在,说明会话持久化失败或者会话读取条件不匹配;如果该事件存在,可以对比事件中携带的声明值和首次写入时的内容是否一致,确认会话数据完整性。
  • 若会话读取失败,日志中会明确返回SSO session not found、SSO session invalid等错误标识,可对应排查:会话Cookie作用域配置错误、会话提供程序的IncludeInSso属性被设置为false、不同用户旅程的SessionManagementType配置不统一等问题。

二、会话状态提供程序的配置示例

以下是跨用户旅程共享SSO会话的标准配置参考:

  1. 统一全局会话配置
    在所有需要共享会话的信赖方策略中,保持SessionManagementType配置一致:
<RelyingParty>
  <DefaultUserJourney ReferenceId="ProfileEdit" />
  <UserJourneyBehaviors>
    <SessionManagementType>Default</SessionManagementType>
    <!-- 其他行为配置 -->
  </UserJourneyBehaviors>
</RelyingParty>
  1. 认证环节关联会话管理技术概要
    在登录完成的技术概要节点下,指定对应的SSO会话提供程序,示例如下:
<TechnicalProfile Id="AAD-UserReadUsingAlternativeSecurityId">
  <!-- 现有技术概要配置 -->
  <UseTechnicalProfileForSessionManagement ReferenceId="SM-AAD" />
</TechnicalProfile>

注意事项

  • 从外部OIDC站点跳转回B2C的请求中,不要携带prompt=login或prompt=consent参数,这类参数会强制B2C忽略现有会话,触发重新认证。
  • 若需要跨域名共享会话,需要在会话提供程序配置中显式指定Cookie的域属性,确保不同子域名下的B2C流程都能读取到会话Cookie。

内容的提问来源于stack exchange,提问作者Brad C.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:06:01