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 试图从哪里获取这些元数据。
注意:
我可以手动在 localhost:8080/simplesaml/saml2/idp/metadata.php
找到元数据
这是我工作的一个旧项目,它是 symfony 1 的一个分支,所以我不能使用更新的插件。因此,对于 SSO,我在服务提供商端使用 this 插件。
终于解决了。我发送的 Authn 请求包含空的 "issuer" 字段,而 idp 端需要这个字段,因为 simpleSAMLphp 似乎将 SP 元数据存储在像 Metdata['spName'] 这样的数组中。所以他们当然没有空字符串作为键的条目。
我正在使用 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 试图从哪里获取这些元数据。
注意:
我可以手动在
localhost:8080/simplesaml/saml2/idp/metadata.php
找到元数据
这是我工作的一个旧项目,它是 symfony 1 的一个分支,所以我不能使用更新的插件。因此,对于 SSO,我在服务提供商端使用 this 插件。
终于解决了。我发送的 Authn 请求包含空的 "issuer" 字段,而 idp 端需要这个字段,因为 simpleSAMLphp 似乎将 SP 元数据存储在像 Metdata['spName'] 这样的数组中。所以他们当然没有空字符串作为键的条目。