我在https://biz.dev.originsystems.co.za上设置了服务提供商.我在http://stage.originsystems.co.za上设置了IdP .
使用https://biz.dev.originsystems.co.za/simplesaml/module.php/core/authenticate.php上的工具测试身份验证时,一切正常.它回到Dev网站,具有所需的属性,一切都快乐和快乐.
但是,当我尝试在https://biz.dev.originsystems.co.za上的代码中实际点击IdP时,我被重定向到舞台登录页面但登录后我收到"状态信息丢失"错误.我得到以下调试信息:
SimpleSAML_Error_NoState: NOSTATE
Backtrace:
2 /webdevroot/Updraft/web/external/System/SSO/simplesaml/lib/SimpleSAML/Auth/State.php:225 (SimpleSAML_Auth_State::loadState)
1 /webdevroot/Updraft/web/external/System/SSO/simplesaml/modules/saml/www/sp/saml2-acs.php:63 (require)
0 /webdevroot/Updraft/web/external/System/SSO/simplesaml/www/module.php:134 (N/A)
Run Code Online (Sandbox Code Playgroud)
我已经完成了页面要求我做的所有故障排除,但情况仍然存在.
我在浏览器上打开了开发工具并观看了cookie信息.biz.dev.originsystems.co.za的cookies包含一个SimpleAMLAuthToken,因此我认为cookie正在运行.我用来点击IdP的代码是:
$as = new SimpleSAML_Auth_Simple("stage-sso-sp");
$as->requireAuth();
$attributes = $as->getAttributes();
print_r($attributes);
Run Code Online (Sandbox Code Playgroud)
更新:
这里有更多信息......
我想确定问题是否与我如何设置IdP有关,所以我开始使用SSO Circle作为IdP.在SSO Circle上进行身份验证后,状态信息也会丢失.我认为这意味着问题出在我的SimpleSAML服务提供商设置的某个地方.这是发生了什么......
当我访问https://biz.stage.originsystems.co.za/simplesaml上的SimpleSAML测试认证来源页面时,我有以下cookie值...
Name Value
SimpleSAMLAuthToken _a53569c0701dd02832532df14cf10cd0b2d9fcd6b6
biz.stage.originsystems.co.za 10fc356e0bfbf707af5fa5854c378755
ccof RGN002
xbrF 84aadc624fc51c0c9340d45645c08643
Run Code Online (Sandbox Code Playgroud)
除SimpleSAMLAuthToken之外的所有内容都来自我们的应用程序,不应影响SimpleSAML.一旦我被重定向到SSO Circle并进行身份验证,我将返回到我的SimpleSAML页面,并且Auth Token现在具有值,_39679e07cb1911e08b2bff3580a9929faddd07e9b6并且正确返回所有相关信息.日志文件显示以下活动.
Feb 02 12:58:22 simplesamlphp DEBUG [7c4534ae0a] Received SAML2 Response from 'http://idp.ssocircle.com'.
Feb 02 12:58:22 simplesamlphp DEBUG [7c4534ae0a] No certificate in message when …Run Code Online (Sandbox Code Playgroud)