我有一个结构,我的休息服务(SP)是使用Spring boot + Spring SAML进行身份验证和使用Nginx作为反向代理的UI构建的。 如果通过直接URL返回/重写来调用服务,一切正常:调用IDP进行身份验证并返回响应。 但是,如果我使用proxy_pass调用相同的服务,则响应的InResponseToField失败并且对应于已发送的消息
我有使用NGINX作为Web服务器的UI和通过NGINX调用SP的结构。 SP在LB下有多个实例。使用SAMLContextProviderLB作为上下文提供程序。
如何使用Nginx进行此调用。
答案 0 :(得分:1)
我怀疑您的Nginx未配置为使用粘性会话。这导致来自IDP的响应可以落在服务器上,该服务器不知道最初从其他服务器发送的请求,因此无法验证它。 Spring SAML手册说:
确保将反向代理或负载均衡器配置为 使用粘性会话。
有多种可能的解决方案: