我們使用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