IDP v3.4.4升级至v5.1.3时出现SAML端点解析失败错误求助
Shibboleth IDP v3.4.4升级至v5.1.3后SAML请求返回BAD REQUEST问题
环境信息
- Java 17
- Apache Tomcat 10.1.24
- Shibboleth IDP v5.1.3
- 应用为独立应用,已通过外部登录认证定制IDP
问题描述
将IDP从v3.4.4升级至v5.1.3后,访问应用URL时会重定向至SP,SP生成SAML请求并发送至IDP地址http://localhost:8080/idp/profile/SAML2/POST/SSO,之后返回BAD REQUEST。
错误日志
ERROR: [net.shibboleth.idp.saml.profile.impl.PopulateBindingAndEndpointContexts:449] Profile Action PopulateBindingAndEndpointContexts: 无法为依赖方'http://ipau.sp.sso.manager/sso'解析出站消息端点:EndpointCriterion[type={urn:oasis:names:tc:SAML:2.0:metadata}AssertionConsumerService, Binding=urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST, Location=http://localhost:8080/SSOSPManager/SSO, trusted=false] 2024-08-09 17:58:20,090 - 0:0:0:0:0:0:0:1 - WARN [org.opensaml.profile.action.impl.LogEvent:94] - 处理请求时发生非继续事件:EndpointResolutionFailed。
排查与解决建议
- 检查SP元数据配置
- 确认IDP加载的SP元数据中,
AssertionConsumerService端点的Binding、Location与日志内容完全匹配。 - 检查元数据内该端点是否标记为
trusted=true,v5版本对端点信任性的校验逻辑比v3更严格。
- 确认IDP加载的SP元数据中,
- 验证IDP端点解析策略
- 查看IDP的
conf/saml-nameid.xml或相关配置文件,确认端点解析规则允许使用该SP的HTTP-POST绑定端点。 - 升级后可能需要调整
EndpointSelectionPredicate配置,确保符合条件的端点能被正常选中。
- 查看IDP的
- 核对实体ID一致性
- 确认日志中依赖方实体ID
http://ipau.sp.sso.manager/sso与IDP元数据里配置的SP实体ID完全一致,注意大小写、路径等细节。
- 确认日志中依赖方实体ID
- 检查网络与容器配置
- 确认IDP所在Tomcat能正常访问SP的
http://localhost:8080/SSOSPManager/SSO地址,无防火墙、端口拦截问题。 - 检查Tomcat的
server.xml连接器配置,确保Host、端口设置未影响端点解析。
- 确认IDP所在Tomcat能正常访问SP的
- 对比版本配置差异
- Shibboleth v5在SAML端点处理、元数据校验上有多处变更,参考官方升级文档,确认定制的外部登录认证模块未破坏端点解析流程。
内容的提问来源于stack exchange,提问作者Rammohan Reddy
相关产品推荐
相关产品推荐

