我们使用simplesamlphp作为服务提供者。我们已经整合了一些Idp的。一切正常。Simplesamlphp在负载平衡器后面失败
现在我们要将我们的服务器架构更改为load balancer -> webserver -> database server
。当我们将load balancer
放在webserver
的前面时,问题就出现了。这个idp出错了。
load balancer
终止https
,我相信这是问题发生的地方。所以当load balancer
发送请求到webserver
这是一个正规的http
请求。
当我登录初始发生的事情,我得到
我要简化xml
了一下,把那名不同
与load balancer
Session: 'idp-name' not valid because we are not authenticated.
Saved state: '_somelongstringofnumbersandletters'
Sending SAML 2 AuthnRequest to '{{their info}}'
Sending message:
<samlp:AuthnRequest ... AssertionConsumerServiceURL="http://{{our-info}}">
<saml:Issuer>http://{{our-info}}</saml:Issuer>
<samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient" AllowCreate="true"/>
</samlp:AuthnRequest>
所以只有部分上面的部分指向load balancer
和webserver
之间的差异分别是http
和https
。
不确定是否有办法让simplesamlphp
只返回https
。或者它会一直检查请求的当前状态并假设http
。
只是为了确保我给所有的数据。该过程由SP初始化。所以他们只需要像https://oursite.com/idp-name这样的网址。我们总是使用https
。
让我知道我是否需要澄清一些事情。
UPDATE我们通过NOT解决了这个问题终止于负载平衡器的HTTPS请求,并允许该请求通过传递给服务器。所以我们的SSL证书直接在我们的Web服务器上,而不是负载均衡器上。
我无法得到工作解决方案,但这可能只是我自己的错。我们需要快速解决方案,而不是在负载平衡器上解密SSL是最简单的方法。
你的问题解决了吗?我面临类似的问题,如果您能更新为您工作的解决方案,那将是非常好的。谢谢!! – wanjarisushil
@wanjarisushil我对问题进行了更新。不知道它是否会帮助。 – James