【问题标题】:Adding Shibboleth authentication to Symfony向 Symfony 添加 Shibboleth 身份验证
【发布时间】: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


【解决方案1】:

如果我理解得很好,您正试图让服务提供者成为 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/init.d/shibd restart

它也可能是另一个。但在我看来,您的 SP 端存在一些错误配置。

【讨论】:

    猜你喜欢
    • 2015-01-22
    • 1970-01-01
    • 2012-09-06
    • 2014-11-28
    • 2017-04-04
    • 1970-01-01
    • 2020-08-21
    • 1970-01-01
    • 2015-04-27
    相关资源
    最近更新 更多