SimpleSAMLphp 作为 idp:未找到元数据

SimpleSAMLphp as idp : Metadata not found

我正在使用 SAML2 协议开发 SSO 身份验证系统。由于我还没有真正的 IDP 信息,我需要测试环境,所以我使用了 this docker 图像,效果很好。我可以通过 localhost:8080 毫无问题地访问它,也可以使用测试帐户登录。

但是,当我尝试登录我的 SP(我正在工作的网站)时,虽然我很好地重定向到位于 localhost:8080/simplesaml/saml2/idp/SSOService.php 的 idp,但我收到一条错误消息,告诉我未找到元数据。这是堆栈跟踪:

SimpleSAML_Error_MetadataNotFound: METADATANOTFOUND('%ENTITYID%' => '\'\'')

Backtrace:
    3 lib/SimpleSAML/Metadata/MetaDataStorageHandler.php:300 (SimpleSAML_Metadata_MetaDataStorageHandler::getMetaData)
    2 lib/SimpleSAML/Metadata/MetaDataStorageHandler.php:320 (SimpleSAML_Metadata_MetaDataStorageHandler::getMetaDataConfig)
    1 modules/saml/lib/IdP/SAML2.php:330 (sspmod_saml_IdP_SAML2::receiveAuthnRequest)
    0 www/saml2/idp/SSOService.php:19 (N/A)

有人遇到过同样的问题吗?因为我真的不明白 SimpleSAMLphp 试图从哪里获取这些元数据。

注意:

终于解决了。我发送的 Authn 请求包含空的 "issuer" 字段,而 idp 端需要这个字段,因为 simpleSAMLphp 似乎将 SP 元数据存储在像 Metdata['spName'] 这样的数组中。所以他们当然没有空字符串作为键的条目。