所以我这样做只是为了测试我在OpenAM上的SAML配置是否正常工作。我已经按照安装说明安装了simpleSAMLphp(尽管我跳过了"'cert '"部分)。然后我发现这个教程非常棒OpenAM simpleSAMLphp教程]1
现在一切似乎都很好,当我选择使用OpenAM登录时,它将我重定向到OpenAM的登录页面,我输入我的用户名和密码,然后我被重定向到SimpleSAMLphp,有以下例外:
SimpleSAML_Error_Error: UNHANDLEDEXCEPTION
Backtrace:
0 /var/www/html/services/simplesamlphp/www/module.php:180 (N/A)
Caused by: Exception: Reference validation failed
Backtrace:
8 /var/www/html/services/simplesamlphp/vendor/robrichards/xmlseclibs/xmlseclibs.php:1056 (XMLSecurityDSig::validateReference)
7 /var/www/html/services/simplesamlphp/vendor/simplesamlphp/saml2/src/SAML2/Utils.php:54 (SAML2_Utils::validateElement)
6 /var/www/html/services/simplesamlphp/vendor/simplesamlphp/saml2/src/SAML2/Assertion.php:517 (SAML2_Assertion::parseSignature)
5 /var/www/html/services/simplesamlphp/vendor/simplesamlphp/saml2/src/SAML2/Assertion.php:247 (SAML2_Assertion::__construct)
4 /var/www/html/services/simplesamlphp/vendor/simplesamlphp/saml2/src/SAML2/Response.php:37 (SAML2_Response::__construct)
3 /var/www/html/services/simplesamlphp/vendor/simplesamlphp/saml2/src/SAML2/Message.php:509 (SAML2_Message::fromXML)
2 /var/www/html/services/simplesamlphp/vendor/simplesamlphp/saml2/src/SAML2/HTTPPost.php:76 (SAML2_HTTPPost::receive)
1 /var/www/html/services/simplesamlphp/modules/saml/www/sp/saml2-acs.php:16 (require)
0 /var/www/html/services/simplesamlphp/www/module.php:135 (N/A)
在我发布我的消息之前,我已经检查了事情,OpenAM的SAML响应似乎很好,它被卡在Assertion.php文件中。
我真的尝试了所有的方法,但它只是到了让我头疼的地步,我不想再看SimpleSAMLphp的代码了。
任何帮助将不胜感激:-)
在我看来,从OpenAM传递的属性不是uri格式。您可以从SP捕获SAML请求并从IDP捕获响应并发布它吗?这将有助于查看请求的内容和提供的内容。