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

Posted

技术标签:

【中文标题】在反向代理后面使用 SP 时出现 Spring saml 问题【英文标题】:Spring saml issues when using SP behind a reverse proxy 【发布时间】:2019-01-18 08:36:24 【问题描述】:

我们使用 Spring SAML 扩展实现了带有 ADFS 身份验证的 SAML。 SP 位于 nginx 后面的服务器 A 上,URL 的格式为 https://serviceprovider/saml/login(刚刚编造),ADFS 位于单独网络中的客户端。客户可以访问https://serviceprovider/saml/login URL,并从 ADFS 获得输入凭据的提示,他们这样做了,并且由于某种原因,他们被重定向到具有托管 SP 的内部 IP 地址的 URL(服务器 A),这当然不能通过 Internet 访问,例如 https://x.x.x.x:8443。 我们的代码没有硬编码,Spring/SAML 设置都使用 SP 和 IdP 的站点 URL。还验证了 https://serviceprovider/saml/login/metadata 返回正确的值。

有没有人处理过这样的情况?如果是这样,你是如何解决的? 谢谢

【问题讨论】:

【参考方案1】:

它可能会担心,Nginx 在传入请求中添加了错误的 Host 标头,添加了 x.x.x.x.8443 主机值。已通过调整 Nginx 以在示例中发送正确的 Host 标头值“serviceprovider”来修复。

【讨论】:

【参考方案2】:

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

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

【讨论】:

以上是关于在反向代理后面使用 SP 时出现 Spring saml 问题的主要内容,如果未能解决你的问题,请参考以下文章

nginx做反向代理时出现302错误

使用SSL配置nginx反向代理时出现400错误请求错误。

在反向代理后面使用 OAuth2 的 Spring Boot

nginx做反向代理,下载大文件时出现err_connection_reset错误

在Spring应用调试中实现反向代理服务器

在代理后面的heroku上推送rails应用程序时出现问题