2016-10-10 117 views
0

我一直在開發一個Symfony應用程序(學習Symfony的目標是用它替換現有的「舊學校」PHP腳本),並且遇到了將它放在我們的Shibboleth身份驗證背後的問題。將Shibboleth身份驗證添加到Symfony

爲什麼這樣做?對於這個應用程序,我需要$ _SERVER ['REMOTE_USER']。該應用程序沒有本地帳戶,用戶不會登錄到應用程序,但是像許多資源一樣,我們使用某種形式的身份驗證來保護它們。

我有兩個站點 - 在同一臺物理服務器上運行的虛擬主機。 (CentOS 7)。第一個網站在其.htaccess文件如下:

authtype shibboleth 
ShibRequestSetting requireSession 1 
require valid-user 

我在那裏有一個「phpinfo.php的」文件也一樣,並且可以運行該腳本,並且在Shibboleth的認證步驟後,得到的輸出,包含REMOTE_USER的正確值。

其他虛擬主機被設置爲Symfony 3.1應用程序。我已經將這三行添加到了「.htaccess」文件的頂部 - 但是在完成Shibboleth身份驗證步驟之後,瀏覽器進入循環並且不再進行更多操作。 (在Chrome中,將「圖標」被替換爲一個循環的箭頭,它永遠不會停止轉動。)

如果我打,然後查看這仍然空頁面的源代碼,我看到了以下錯誤消息:

Error Message: Error decoding authentication request message 

我不知道如何開始解決這個問題,並希望有人看到了這一點,並知道如何提供幫助。

謝謝。

最佳, 斯蒂芬

+0

幾乎肯定是一個重定向循環。我更改了虛擬主機的DocumentRoot -/var/www/vhost/candy - 並將Shibboleth特定的.htaccess文件放在那裏。 Symfony文件夾位於/ var/www/vhost/candy/bar中,如果我將瀏覽器指向'candy/bar/web /',我將通過Shibboleth步驟,然後進入Symfony應用程序。 –

回答

0

如果我沒有理解好,你正試圖使在Symfony的服務提供商一部分,你已經有一個IDP與Shibboleth的工作。

在我的情況下,我也有一個類似的問題,這是因爲斷言後,apache SP返回到根URL。我讀了很多資料後瞭解到,如果不正確設置,您可以在shibbolet2.xml配置堪稱homeURL添加一個屬性:

<ApplicationDefaults entityID="https://sso/saml2/idp/metadata.php" 

    REMOTE_USER="mail" 

    homeURL="https://symfonyApp/redirect/after/login"> 

嘗試,並且重新啓動shib守護程序:在/ etc /初始化。 d/shibd重啓

它也可能是另一個。但是聽起來我的SP端存在一些錯誤配置。