我们已经使用 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/