Azure AD B2C ACS端点接收SiteMinder SAML响应时返回AADB2C90046错误
解决Azure AD B2C返回AADB2C90046错误(SiteMinder SAML认证场景)
认证完成后SiteMinder向Azure AD B2C的ACS端点发送SAML响应,B2C返回错误:
{"status":"400","errorCode":"AADB2C90046","message":"We are having trouble signing you in. You might want to try starting your session over from the beginning."}且Application Insights未揭示该错误的具体原因。
- 检查SAML响应格式与规范匹配度
- 确认SiteMinder发送的SAML响应符合SAML 2.0标准,重点核查:
- 断言签名是否有效,SiteMinder的签名证书是否已正确上传到Azure AD B2C身份提供商配置中
- 响应里的NameID格式要和B2C配置的一致(比如
emailAddress、unspecified等) - 断言必须包含B2C用户旅程要求的所有必要声明(比如姓名、邮箱等核心字段)
- 确认SiteMinder发送的SAML响应符合SAML 2.0标准,重点核查:
- 验证SAML响应的时间有效性
- 检查断言中的
NotBefore和NotOnOrAfter时间范围,确保当前服务器时间处于这个区间内,避免因双方服务器时间不同步导致验证失败
- 检查断言中的
- 核对B2C与SiteMinder的配置一致性
- 确认SiteMinder里配置的ACS端点URL和Azure AD B2C身份提供商设置的回复URL完全一致,包括大小写和路径
- 验证SiteMinder的实体ID(Issuer)和B2C配置中的Issuer值完全匹配,不能有拼写或格式错误
- 开启B2C诊断日志获取细节
- 虽然Application Insights没给出具体原因,但可以开启Azure AD B2C的诊断日志,将日志导出到Log Analytics,查看底层的SAML验证报错,比如签名验证失败、声明缺失这类具体问题
- 用工具捕获并分析SAML响应
- 使用SAML Tracer这类调试工具抓包SiteMinder发送的SAML响应,手动检查XML结构是否有语法错误,或者字段是否符合B2C的要求
内容的提问来源于stack exchange,提问作者Sarvesh Katariya
相关产品推荐
相关产品推荐

