Azure B2C自定义策略仅在Safari中失效,报错AADB2C90091求助
Azure B2C自定义策略Safari浏览器偶尔报AADB2C90091错误的解决方案
针对你使用自定义短信验证码DisplayControl模板时,仅在Safari浏览器偶尔出现ServerError: AADB2C90091: The user has cancelled entering self-asserted information错误的问题,可按以下方向排查解决:
处理Safari第三方Cookie限制
Safari默认严格拦截第三方Cookie,而Azure B2C的会话依赖Cookie维持状态。可尝试:- 将B2C租户域名与应用域名配置为同一父域(如均为
*.yourdomain.com),或启用自定义域并配置Cookie共享策略 - 在自定义策略的
UserJourney中调整会话配置,设置SessionExpiryType为Rolling并缩短超时时间,降低Cookie被拦截的概率 - 引导用户临时在Safari设置中为B2C站点开启第三方Cookie(路径:设置>隐私与安全性>阻止跨站跟踪,关闭该选项或添加站点例外)
- 将B2C租户域名与应用域名配置为同一父域(如均为
优化DisplayControl前端交互逻辑
Safari的表单处理、自动填充机制与其他浏览器存在差异,需针对性调整:- 检查模板中的JS代码,确保提交按钮点击事件未被Safari的默认行为阻止,添加按钮点击后立即禁用的逻辑,避免重复提交
- 将短信验证码输入框的
autocomplete属性设置为one-time-code,适配Safari的自动验证码填充功能,减少手动操作引发的异常 - 替换模板中老旧的JS/CSS资源,使用Azure B2C官方最新版的页面模板,提升兼容性
修复策略会话状态问题
- 在自定义策略的
SelfAssertedPage元数据中添加data-preload="true",优化Safari页面加载顺序,避免会话状态丢失 - 检查
UserJourney中的跳转逻辑,移除不必要的页面跳转,确保自断言页面的会话连贯性
- 在自定义策略的
临时调试方案
- 指导用户清除Safari浏览器的缓存与Cookie后重试,排除缓存导致的会话异常
- 在Azure B2C租户中开启详细日志,捕获报错时的请求头、会话ID等信息,定位具体触发场景
内容的提问来源于stack exchange,提问作者Nazar Chuba
相关产品推荐
相关产品推荐

