SimplesamlPHP 错误
SimplesamlPHP error
我尝试在本地安装一个 SP 和一个 IDP,所以我创建了另一个主机:
127.0.0.1 localhost
::1 localhost
127.0.0.1 auth.saml.net
我创建了 2 个虚拟主机(一个用于 SP,另一个用于 Idp)
<VirtualHost auth.saml.net:80>
ServerAdmin toto@gmail.com
ServerName auth.saml.net
AddDefaultCharset UTF-8
Alias /simplesaml c:/wamp/www/var2/simplesamlphp/www/
<Directory c:/wamp/www/var2/simplesamlphp/www/ >
Order Deny,Allow
Allow from all
</Directory>
</VirtualHost>
<VirtualHost localhost:80>
ServerAdmin toto@gmail.com
ServerName localhost
AddDefaultCharset UTF-8
Alias /simplesaml c:/wamp/www/var/simplesamlphp/www/
</VirtualHost>
(文件夹 var2 用于我的 IDP,文件夹 var 用于我的 SP,它不是很干净,但实际上我只是想让它工作)
第二步,我通过编辑每个文件夹中的文件 config/config.php 配置我的 SP 和我的 idp(我不会忘记将 IDP 的 enable.saml20-idp 设置为 true )
接下来我从我的 idp 编辑文件 config/authsources.php,我有 2 个假用户:
'example-userpass' => array(
'exampleauth:UserPass',
'user1:pwd' => array(
'uid' => array('user1'),
'mail' => 'user1@test.com',
'first_name' => 'User',
'last_name' => 'One'
),
'user2:pwd' => array(
'uid' => array('user2'),
'mail' => 'user2@test.com',
'first_name' => 'User',
'last_name' => 'Two'
)
)
我还在我的 SP 部分编辑文件 config/authsources.php :
'default-sp' => array(
'saml:SP',
'entityID' => 'auth.saml.net',
'idp' => 'auth.saml.net/simplesaml/saml2/idp/metadata.php',
'ssoPortalUrl'=> 'auth.saml.net/simplesaml/saml2/idp/SSOService.php',
'discoURL' => null
);
接下来,我将元数据从我的 IDP(联合 -> 打印元数据 -> SimpleSAMLphp 平面文件格式)复制到文件 "metadata/saml20-idp-remote.php" 中的 SP:
$metadata['auth.saml.net/simplesaml/saml2/idp/metadata.php'] = array (
'metadata-set' => 'saml20-idp-remote',
'entityid' => 'auth.saml.net/simplesaml/saml2/idp/metadata.php',
'SingleSignOnService' =>
array (
0 =>
array (
'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',
'Location' => 'auth.saml.net/simplesaml/saml2/idp/SSOService.php',
),
),
'SingleLogoutService' =>
array (
0 =>
array (
'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',
'Location' => 'auth.saml.net/simplesaml/saml2/idp/SingleLogoutService.php',
),
),
'certData' => 'certData',
'NameIDFormat' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:transient',
);
以及文件 'metadata/saml20-sp-remote.php' 中从我的 SP 到我的 IDP 的元数据:
$metadata['auth.saml.net'] = array (
'SingleLogoutService' =>
array (
0 =>
array (
'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',
'Location' => 'http://localhost/simplesaml/module.php/saml/sp/saml2-logout.php/default-sp',
),
),
'AssertionConsumerService' =>
array (
0 =>
array (
'index' => 0,
'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',
'Location' => 'http://localhost/simplesaml/module.php/saml/sp/saml2-acs.php/default-sp',
),
1 =>
array (
'index' => 1,
'Binding' => 'urn:oasis:names:tc:SAML:1.0:profiles:browser-post',
'Location' => 'http://localhost/simplesaml/module.php/saml/sp/saml1-acs.php/default-sp',
),
2 =>
array (
'index' => 2,
'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact',
'Location' => 'http://localhost/simplesaml/module.php/saml/sp/saml2-acs.php/default-sp',
),
3 =>
array (
'index' => 3,
'Binding' => 'urn:oasis:names:tc:SAML:1.0:profiles:artifact-01',
'Location' => 'http://localhost/simplesaml/module.php/saml/sp/saml1-acs.php/default-sp/artifact',
),
),
);
但是当我尝试通过单击 'test configured authentication sources' 进行测试时,我收到此错误消息:
Exception during login:
SimpleSAML_Error_Exception: Could not find the metadata of an IdP with entity ID 'auth.saml.net/simplesaml/saml2/idp/metadata.php'
Backtrace:
6 C:\wamp\www\var\simplesamlphp\modules\saml\lib\Auth\Source\SP.php:134 (sspmod_saml_Auth_Source_SP::getIdPMetadata)
5 C:\wamp\www\var\simplesamlphp\modules\saml\lib\Auth\Source\SP.php:308 (sspmod_saml_Auth_Source_SP::startSSO)
4 C:\wamp\www\var\simplesamlphp\modules\saml\lib\Auth\Source\SP.php:390 (sspmod_saml_Auth_Source_SP::authenticate)
3 C:\wamp\www\var\simplesamlphp\lib\SimpleSAML\Auth\Default.php:65 (SimpleSAML_Auth_Default::initLogin)
2 C:\wamp\www\var\simplesamlphp\lib\SimpleSAML\Auth\Simple.php:136 (SimpleSAML_Auth_Simple::login)
1 C:\wamp\www\var\simplesamlphp\modules\core\www\authenticate.php:45 (require)
0 C:\wamp\www\var\simplesamlphp\www\module.php:134 (N/A)
我已经尝试从头开始重建配置,但错误仍然存在。当我转到 link 'auth.saml.net/simplesaml/saml2/idp/metadata.php' 时,元数据打印良好。
config/authsources.php为SP应该做的。
'default-sp' => 数组(
'saml:SP',
'idp' => 'auth.saml.net/simplesaml/saml2/idp/metadata.php',
);
我犯了几个错误:
- 首先不要用localhost做另一个virtualHost
- 其次你必须
在 SP 上也做一个证书目录
- 第三个最重要的祈祷我
重新启动它 5 次,因为它的工作,我仍然不明白为什么
其他时候不行。
我尝试在本地安装一个 SP 和一个 IDP,所以我创建了另一个主机:
127.0.0.1 localhost
::1 localhost
127.0.0.1 auth.saml.net
我创建了 2 个虚拟主机(一个用于 SP,另一个用于 Idp)
<VirtualHost auth.saml.net:80>
ServerAdmin toto@gmail.com
ServerName auth.saml.net
AddDefaultCharset UTF-8
Alias /simplesaml c:/wamp/www/var2/simplesamlphp/www/
<Directory c:/wamp/www/var2/simplesamlphp/www/ >
Order Deny,Allow
Allow from all
</Directory>
</VirtualHost>
<VirtualHost localhost:80>
ServerAdmin toto@gmail.com
ServerName localhost
AddDefaultCharset UTF-8
Alias /simplesaml c:/wamp/www/var/simplesamlphp/www/
</VirtualHost>
(文件夹 var2 用于我的 IDP,文件夹 var 用于我的 SP,它不是很干净,但实际上我只是想让它工作)
第二步,我通过编辑每个文件夹中的文件 config/config.php 配置我的 SP 和我的 idp(我不会忘记将 IDP 的 enable.saml20-idp 设置为 true )
接下来我从我的 idp 编辑文件 config/authsources.php,我有 2 个假用户:
'example-userpass' => array(
'exampleauth:UserPass',
'user1:pwd' => array(
'uid' => array('user1'),
'mail' => 'user1@test.com',
'first_name' => 'User',
'last_name' => 'One'
),
'user2:pwd' => array(
'uid' => array('user2'),
'mail' => 'user2@test.com',
'first_name' => 'User',
'last_name' => 'Two'
)
)
我还在我的 SP 部分编辑文件 config/authsources.php :
'default-sp' => array(
'saml:SP',
'entityID' => 'auth.saml.net',
'idp' => 'auth.saml.net/simplesaml/saml2/idp/metadata.php',
'ssoPortalUrl'=> 'auth.saml.net/simplesaml/saml2/idp/SSOService.php',
'discoURL' => null
);
接下来,我将元数据从我的 IDP(联合 -> 打印元数据 -> SimpleSAMLphp 平面文件格式)复制到文件 "metadata/saml20-idp-remote.php" 中的 SP:
$metadata['auth.saml.net/simplesaml/saml2/idp/metadata.php'] = array (
'metadata-set' => 'saml20-idp-remote',
'entityid' => 'auth.saml.net/simplesaml/saml2/idp/metadata.php',
'SingleSignOnService' =>
array (
0 =>
array (
'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',
'Location' => 'auth.saml.net/simplesaml/saml2/idp/SSOService.php',
),
),
'SingleLogoutService' =>
array (
0 =>
array (
'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',
'Location' => 'auth.saml.net/simplesaml/saml2/idp/SingleLogoutService.php',
),
),
'certData' => 'certData',
'NameIDFormat' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:transient',
);
以及文件 'metadata/saml20-sp-remote.php' 中从我的 SP 到我的 IDP 的元数据:
$metadata['auth.saml.net'] = array (
'SingleLogoutService' =>
array (
0 =>
array (
'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',
'Location' => 'http://localhost/simplesaml/module.php/saml/sp/saml2-logout.php/default-sp',
),
),
'AssertionConsumerService' =>
array (
0 =>
array (
'index' => 0,
'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',
'Location' => 'http://localhost/simplesaml/module.php/saml/sp/saml2-acs.php/default-sp',
),
1 =>
array (
'index' => 1,
'Binding' => 'urn:oasis:names:tc:SAML:1.0:profiles:browser-post',
'Location' => 'http://localhost/simplesaml/module.php/saml/sp/saml1-acs.php/default-sp',
),
2 =>
array (
'index' => 2,
'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact',
'Location' => 'http://localhost/simplesaml/module.php/saml/sp/saml2-acs.php/default-sp',
),
3 =>
array (
'index' => 3,
'Binding' => 'urn:oasis:names:tc:SAML:1.0:profiles:artifact-01',
'Location' => 'http://localhost/simplesaml/module.php/saml/sp/saml1-acs.php/default-sp/artifact',
),
),
);
但是当我尝试通过单击 'test configured authentication sources' 进行测试时,我收到此错误消息:
Exception during login:
SimpleSAML_Error_Exception: Could not find the metadata of an IdP with entity ID 'auth.saml.net/simplesaml/saml2/idp/metadata.php'
Backtrace:
6 C:\wamp\www\var\simplesamlphp\modules\saml\lib\Auth\Source\SP.php:134 (sspmod_saml_Auth_Source_SP::getIdPMetadata)
5 C:\wamp\www\var\simplesamlphp\modules\saml\lib\Auth\Source\SP.php:308 (sspmod_saml_Auth_Source_SP::startSSO)
4 C:\wamp\www\var\simplesamlphp\modules\saml\lib\Auth\Source\SP.php:390 (sspmod_saml_Auth_Source_SP::authenticate)
3 C:\wamp\www\var\simplesamlphp\lib\SimpleSAML\Auth\Default.php:65 (SimpleSAML_Auth_Default::initLogin)
2 C:\wamp\www\var\simplesamlphp\lib\SimpleSAML\Auth\Simple.php:136 (SimpleSAML_Auth_Simple::login)
1 C:\wamp\www\var\simplesamlphp\modules\core\www\authenticate.php:45 (require)
0 C:\wamp\www\var\simplesamlphp\www\module.php:134 (N/A)
我已经尝试从头开始重建配置,但错误仍然存在。当我转到 link 'auth.saml.net/simplesaml/saml2/idp/metadata.php' 时,元数据打印良好。
config/authsources.php为SP应该做的。
'default-sp' => 数组( 'saml:SP', 'idp' => 'auth.saml.net/simplesaml/saml2/idp/metadata.php',
);
我犯了几个错误:
- 首先不要用localhost做另一个virtualHost
- 其次你必须 在 SP 上也做一个证书目录
- 第三个最重要的祈祷我
重新启动它 5 次,因为它的工作,我仍然不明白为什么 其他时候不行。