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

Azure ADB2C集成Microsoft AD认证后跳转白屏问题问询

问题排查分析

首先可以明确:大概率是你的自定义策略或微软身份提供商的配置问题,而非ADB2C自身的全局问题——因为谷歌SSO和本地账户登录都正常,说明ADB2C的基础认证流程、页面渲染逻辑是正常的,问题仅出在微软SSO的特定流程中。

核心排查方向

1. 检查微软Azure AD应用的配置

  • 确认应用的重定向URI完全匹配ADB2C策略的回调地址,格式应为:https://<你的B2C租户名>.b2clogin.com/<你的B2C租户名>.onmicrosoft.com/<自定义策略名>/oauth2/authresp
  • 确保应用已启用ID令牌(用于OpenID Connect登录),且令牌的受众(Audience)设置正确,指向你的ADB2C租户ID或关联的应用ID

2. 核对自定义策略中微软SSO的技术配置文件

  • 检查对应<TechnicalProfile>的<Metadata>节点,确认ResponseType包含id_token或code,PartnerClaimType的映射没有遗漏关键用户声明
  • 对比谷歌SSO的技术配置文件,找出两者在回调处理、声明映射、令牌验证逻辑上的差异,尤其是涉及资源路径(remoteResource相关)的配置项

3. 启用ADB2C调试日志

开启ADB2C的调试模式,捕获完整的认证流程日志,重点查看:

  • 微软身份提供商返回的令牌内容是否完整,有没有缺失resource类的关键参数
  • 认证流程中remoteResource参数的生成逻辑,是否因微软SSO的特殊返回格式导致未被正确赋值

临时修复思路

如果紧急需要恢复功能,可以尝试在自定义策略的页面布局中,对remoteResource参数增加判空处理(不过这属于临时 workaround,建议优先从根源配置解决):

// 修改后的代码片段
if (remoteResource && remoteResource.indexOf(window.staticHost) === 0) {
    var initialPrepend = remoteResource.indexOf("?") === -1 ? "?" : "&";
    remoteResource += initialPrepend + "slice=" + window.targetSlice;
    remoteResource += "&dc=" + window.targetDc;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.01 13:07:38