1

我在本地计算机上安装了 SimpleSAMLPHP,因此我构建了 2 个虚拟主机:

<VirtualHost auth.saml.net>
    ServerAdmin toto@gmail.com
    ServerName  auth.saml.net
    AddDefaultCharset UTF-8
    Alias /simplesaml c:/wamp/www/Idp/simplesamlphp/www/    
    <Directory c:/wamp/www/Idp/simplesamlphp/www/   >
        Order Deny,Allow   
        Allow from all 
    </Directory>
</VirtualHost>

<VirtualHost client.saml.net>
    ServerAdmin toto@gmail.com
    ServerName  client.saml.net
    AddDefaultCharset UTF-8
    Alias /simplesaml c:/wamp/www/Sp/simplesamlphp/www/
    <Directory c:/wamp/www/Sp/simplesamlphp/www/    >
        Order Deny,Allow   
        Allow from all 
    </Directory>
</VirtualHost>

第一个用于我的身份提供者,第二个用于我的服务提供者。

但是当我尝试通过这种方式连接到我的身份提供者时:

require_once('../../Sp/simplesamlphp/lib/_autoload.php');
$authService = new SimpleSAML_Auth_Simple("default-sp");
$authService->requireAuth();

我有这个错误:

SimpleSAML_Error_NoState: NOSTATE
Backtrace:
2 C:\wamp\www\Sp\simplesamlphp\lib\SimpleSAML\Auth\State.php:225 (SimpleSAML_Auth_State::loadState)
1 C:\wamp\www\Sp\simplesamlphp\modules\saml\www\sp\saml2-acs.php:63 (require)
0 C:\wamp\www\Sp\simplesamlphp\www\module.php:134 (N/A)

我在某个论坛上看到,在这种情况下,我必须在文件 config/config.php 中替换:

'store.type'                    => 'phpsession',

经过 :

'store.type'                    => 'sql',

所以我在服务提供者和身份提供者的文件中替换了:

'store.type'                    => 'sql',

'store.sql.dsn'                 => 'mysql:host=localhost;dbname=test',

 'store.sql.username' => 'root',
 'store.sql.password' => '',

 'store.sql.prefix' => 'simpleSAMLphp',

我有一些数据到达我的数据库,但我仍然有同样的错误。

奇怪的是,当我尝试将服务提供商平台上的我直接连接到身份提供商时,我没有出现此错误。

4

2 回答 2

0

我发现解决方案是一个小白痴。

当我尝试通过这种方式连接到服务提供商时:

require_once('../../Sp/simplesamlphp/lib/_autoload.php');
$authService = new SimpleSAML_Auth_Simple("default-sp");
$authService->requireAuth();

我在我的本地主机上,而不是在我的服务提供商(client.saml.net)上,所以我只需将我的文件移动到路径 /Sp/simplesamlphp/www/ 并更改第一行,现在它就可以工作了。

于 2015-06-02T14:43:04.763 回答
0

我遇到了同样的问题,就我而言,我在同一个域上有 IDP 和 SP,就像你的一样。我发现,IDP 和 SPsession.phpsession.cookiename在 config/config.php 中应该有不同的值。

于 2020-09-18T11:44:55.463 回答