与我的应用程序集成时,simplesamlphp页面中的Simplesamlstuck


Simplesamlstuck in the simplesamlphp page when integrating with my application

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

我必须配置IdP,它们都运行良好(我可以在simplesamlphp管理页面上通过"测试配置的身份验证源"进行测试)

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

像这样:

  1. 我打开我的应用程序

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

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

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

有人知道我做错了什么吗?我认为这是一个配置问题,但我不知道哪一个可能是。此外,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 );

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