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

标签 java spring-security saml-2.0 spring-saml spring-security-saml2

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

有人遇到过这样的情况吗?如果是这样,你是如何解决的? 谢谢

最佳答案

对于可能关心的人来说,Nginx 在传入请求中添加了错误的 Host header ,添加了 x.x.x.x.8443 主机值。通过调整 Nginx 以在示例中发送正确的主机 header 值“serviceprovider”来修复此问题。

关于java - 在反向代理后面使用 SP 时 Spring saml 出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51791407/

相关文章:

java - hibernate 错误 : executeQuery method cannot be used for update

java - 编辑中返回意外值 - JTree

java - 如何在不发送另一个身份验证请求的情况下保持来自跨源(CORS)Spring security的登录 session

java - 无法从我的 Oauth 服务器获取 token

saml-2.0 - 为什么在 ITfoxtec.Identity.Saml2 中存在 SigningCertificateFile

java - 构建霍夫曼树

java - 使用工厂方法实例化对象

java - Spring 社交登录和 Spring Security 自定义身份验证管理器

spring-security - 在 Spring 中使用 SAML 扩展和 Shibboleth 进行单点登录

java - 在 Azure AD 中生成用于 SSO 的 IDP 证书