【发布时间】:2016-10-10 23:39:05
【问题描述】:
我一直在开发一个 Symfony 应用程序(学习 Symfony 的目的是用它替换现有的“老派”PHP 脚本)并且在将其置于我们的 Shibboleth 身份验证“后面”时遇到了问题。
为什么要这样做?对于这个应用程序,我需要 $_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 中,'favicon' 被替换为循环箭头,并且它永远不会停止转动。)
如果我点击然后查看这个仍然为空的页面的来源,我会看到以下错误消息:
Error Message: Error decoding authentication request message
我不知道如何开始解决这个问题,希望有人看到这个并知道如何提供帮助。
谢谢。
最好, 斯蒂芬
【问题讨论】:
-
几乎可以肯定是一个重定向循环。我更改了虚拟主机的 DocumentRoot - /var/www/vhost/candy - 并将 Shibboleth 特定的 .htaccess 文件放在那里。 Symfony 文件夹位于 /var/www/vhost/candy/bar 中,如果我将浏览器指向“candy/bar/web/”,我会执行 Shibboleth 步骤,然后进入 Symfony 应用程序。
标签: php .htaccess authentication symfony shibboleth