Spring 在反向代理后面使用 SP 时出现 saml 问题

Spring saml issues when using SP behind a reverse proxy

我们已经使用 Spring SAML 扩展实现了带有 ADFS 身份验证的 SAML。 SP 在 Nginx 后面的服务器 A 上,URL 的形式是 https://serviceprovider/saml/login (just made it up), the ADFS is on the customer side in a separate network. The customers can access the https://serviceprovider/saml/login URL and they get the prompt from the ADFS to enter credentials, they do and for some reason they are getting redirected to the an URL with the internal IP address where the SP is hosted (server A), which is of course not accessible over the Internet, something like https://x.x.x.x:8443。 我们的代码中没有任何硬编码,Spring/SAML 设置全部使用站点 URL 作为 SP 和 IdP。还验证了 https://serviceprovider/saml/login/metadata returns 正确的值。

有没有人处理过这样的情况?如果是这样,您是如何修复的? 谢谢

您是否尝试过为 LB 配置它?

https://docs.spring.io/spring-security-saml/docs/1.0.4.BUILD-SNAPSHOT/reference/html/configuration-advanced.html#configuration-load-balancing

可能有人担心,Nginx 在传入请求中添加了错误的主机 header,添加了 x.x.x.x.8443 主机值。通过调整 Nginx 以在示例中发送正确的主机 header 值 'serviceprovider' 来解决此问题。