5

所以,我正在尝试将我的应用程序与 SimpleSAMLphp 集成。

我必须配置 IdP 并且它们都工作正常(我可以在 simplesamlphp 管理页面上通过“测试配置的身份验证源”对其进行测试)

但是当我尝试与我的应用程序集成时,在使用 IdP 登录后,我卡在了 simplesamlphp 页面

像这样:

  1. 我打开我的应用程序

  2. 我的应用程序调用 requireAuth,它将我重定向到 simplesamlphp 页面,我可以在其中选择要使用的 IdP

  3. 我选择一个 IdP。我被重定向到 IdP 页面。我成功登录。

  4. IdP 将我重定向回 simplesamlphp IdP 选择屏幕。我被困在这里,因为当我打开我的应用程序时,它会将我重定向到同一页面。

有人知道我在做什么错吗?我认为这是一个配置问题,但我不知道可能是哪一个。此外,isAuthenticated 函数总是返回 false。

这是我的应用程序代码

<?php
require_once ('/var/simplesamlphp/lib/_autoload.php');

$as = new SimpleSAML_Auth_Simple ( 'default-sp' );

if ($as->isAuthenticated ()) {
  die ( 'ok' );
} else {
  $param = array (
    'ReturnTo' => 'http://teste.localhost' 
  );
  $as->requireAuth ( $param );
}

$attributes = $as->getAttributes ();
print_r ( $attributes );
4

1 回答 1

2

您应该检查 SimpleSAMLphp 的 config/config.php 文件中的“session.phpsession.savepath”选项。如果这与您的应用程序的会话保存路径不对应,则当 IdP 重定向回您时,会话 ID 将发生变化,SimpleSAMLphp 将无法识别登录并尝试再次对您进行身份验证。另一个快速而肮脏的解决方法是在 php.ini 中将 session.auto_start 设置为 1,但我建议不要这样做。

于 2015-02-09T16:49:38.913 回答