2015-12-26 72 views
1

我們使用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 balancerwebserver之間的差異分別是httphttps

不確定是否有辦法讓simplesamlphp只返回https。或者它會一直檢查請求的當前狀態並假設http

只是爲了確保我給所有的數據。該過程由SP初始化。所以他們只需要像https://oursite.com/idp-name這樣的網址。我們總是使用https

讓我知道我是否需要澄清一些事情。

UPDATE

我們通過NOT解決了這個問題終止於負載平衡器的HTTPS請求,並允許該請求通過傳遞給服務器。所以我們的SSL證書直接在我們的Web服務器上,而不是負載均衡器上。

我無法得到工作解決方案,但這可能只是我自己的錯。我們需要快速解決方案,而不是在負載平衡器上解密SSL是最簡單的方法。

+0

你的問題解決了嗎?我面臨類似的問題,如果您能更新爲您工作的解決方案,那將是非常好的。謝謝!! – wanjarisushil

+0

@wanjarisushil我對問題進行了更新。不知道它是否會幫助。 – James

回答

2

James!

我相信你正在使用負載平衡器作爲反向代理,所以一定要確保,在phpsimplesaml你的config/config.php文件設置了正確的變量,尤其是要注意baseurlpath

$config = array(

/** 
* Setup the following parameters to match the directory of your installation. 
* See the user manual for more details. 
* 
* Valid format for baseurlpath is: 
* [(http|https)://(hostname|fqdn)[:port]]/[path/to/simplesaml/] 
* (note that it must end with a '/') 
* 
* The full url format is useful if your simpleSAMLphp setup is hosted behind 
* a reverse proxy. In that case you can specify the external url here. 
* 
* Please note that simpleSAMLphp will then redirect all queries to the 
* external url, no matter where you come from (direct access or via the 
* reverse proxy). 
*/ 
'baseurlpath' => 'https://sso.yourcompanyname.com/simplesaml/', 
... 

...

除了確保,這可以追溯到的SP回覆返回正確的協議(https)

事實上,錯誤日誌將不勝感激,如果我的假定了解是正確的