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

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

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

像这样:

  • 我打开我的应用程序
  • 我的应用程序调用requireAuth,这将我重定向到simplesamlphp页面,在这里我可以选择要使用
  • 的IdP
  • 我选择一个IdP。我被重定向到IdP页面。我已成功登录。
  • 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 );
    

    最佳答案

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

    关于php - Simplesamlphp-与我的应用程序集成时卡在simplesamlphp页面中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25556925/

    10-11 02:16