SimpleSAMLphp as idp:找不到元数据

时间:2019-05-03 14:16:03

标签: docker single-sign-on simplesamlphp

我正在使用SAML2协议开发SSO身份验证系统。由于我还没有真正的IDP信息,因此我需要测试环境,因此我使用了this码头工人映像,该映像的工作原理很吸引人。我可以通过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在哪里尝试获取那些元数据。

注意:

  • 我可以手动在localhost:8080/simplesaml/saml2/idp/metadata.php

  • 中找到元数据
  • 这是我正在处理的一个旧项目,它是symfony 1的一个分支,因此我不能使用更多最新的插件。因此,对于SSO,我在服务提供商端使用this插件。

1 个答案:

答案 0 :(得分:0)

终于解决了。我发送的Authn请求包含一个空的“ issuer”字段,并且idp端需要此字段,因为simpleSAMLphp似乎将SP元数据存储在Metdata ['spName']之类的数组中。因此,他们当然没有空字符串作为键的条目。