Simplesamlphp 错误的元数据

Simplesamlphp wrong metadata

我正在使用 simplesaml 创建两个应用程序,一个是服务提供商,一个是身份提供商。

当我尝试测试它们时,出现以下错误:

SimpleSAML_Error_MetadataNotFound: METADATANOTFOUND('%ENTITYID%' => '\'http://samlsp.dev/module.php/saml/sp/metadata.php/default-sp\'')
Backtrace:
3 /var/www/samlidp/lib/SimpleSAML/Metadata/MetaDataStorageHandler.php:301 (SimpleSAML_Metadata_MetaDataStorageHandler::getMetaData)
2 /var/www/samlidp/lib/SimpleSAML/Metadata/MetaDataStorageHandler.php:318 (SimpleSAML_Metadata_MetaDataStorageHandler::getMetaDataConfig)
1 /var/www/samlidp/modules/saml/lib/IdP/SAML2.php:303 (sspmod_saml_IdP_SAML2::receiveAuthnRequest)
0 /var/www/samlidp/www/saml2/idp/SSOService.php:18 (N/A)

这是 sp 的元数据:

$metadata['http://samlidp.dev/saml2/idp/metadata.php'] = array (
    'name' => 'test',
    'description' => 'next login test',
    'SingleSignOnService' => 'http://samlidp.dev/saml2/idp/SSOService.php',
    'SingleLogoutService' => 'samlidp.dev/saml2/idp/SingleLogoutService.php',
    'certFingerprint' => '38:EB:B2:DB:6F:45:C2:D6:92:CE:85:29:6B:CE:A6:D0:CE:91:19:7A'
);

这是 IdP 的元数据:

$metadata['http://samlsp.dev'] = array(
    'AssertionConsumerService'=> 'http://samlsp.dev/module.php/saml/sp/saml2-acs.php/default-sp',
    'SingleLogoutService'=> 'http://samlsp.dev/module.php/saml/sp/saml2-logout.php/default-sp'
);

我自己找到了答案。显然我调用了错误的元数据。

首先是这个

$metadata['http://samlsp.dev'] = array(
    'AssertionConsumerService'=> 'http://samlsp.dev/module.php/saml/sp/saml2-acs.php/default-sp',
    'SingleLogoutService'=> 'http://samlsp.dev/module.php/saml/sp/saml2-logout.php/default-sp'
);

但它必须是这样的:

$metadata['http://samlsp.dev/module.php/saml/sp/metadata.php/default-sp'] = array(
    'AssertionConsumerService'=> 'http://samlsp.dev/module.php/saml/sp/saml2-acs.php/default-sp',
    'SingleLogoutService'=> 'http://samlsp.dev/module.php/saml/sp/saml2-logout.php/default-sp'
);

我调用了错误的元数据,我的 IdP 找不到它的元数据