我在用着 https://simplesamlphp.org/ 在我的应用程序中大部分时间都很好,没有问题。其他时候我得到这个:
SimpleSAML_Error_Error: UNHANDLEDEXCEPTION
Backtrace:
0 ssoclient/www/module.php:180 (N/A)
Caused by: SimpleSAML_Error_Exception: Received an assertion that is valid in the future. Check clock synchronization on IdP and SP.
Backtrace:
3 ssoclient/modules/saml/lib/Message.php:565 (sspmod_saml_Message::processAssertion)
2 ssoclient/modules/saml/lib/Message.php:523 (sspmod_saml_Message::processResponse)
1 ssoclient/modules/saml/www/sp/saml2-acs.php:75 (require)
0 ssoclient/www/module.php:135 (N/A)
为什么会发生这种情况,我该如何解决?我需要更改系统时间吗? (我在Debian上)。
“问题”是众所周知的 - 见 这里 - 归结为服务提供商和身份提供商之间错误的时钟同步。
可能,它们现在大约是60秒的时间限制,因此“时不时地”它们会失去同步边界。
您可以通过以下方式修复此问题
- (最好)同步 都 系统通过ntpd到达相同的已知时基。
- 将两个系统中的一个从一个时钟转移到另一个系统。
还有更多创造性的可能性,例如:
这两个“解决方案”容易出错和“时间跳过”问题(即时钟不会从WRONG_TIME缓慢地漂移到CORRECT_TIME,而是直接设置为“正确”值)。这也可能有 其他令人讨厌的影响 取决于其他条件/软件。
最后你可以修改modules / saml / lib / Message.php并增加时间增量,即使这是“纸上谈论问题”,假设有一些过程, 保持 两个系统最多60“不同步(那里 是 一些创新的时间安排方案,不是基于ntpd,可以这样做)。
“问题”是众所周知的 - 见 这里 - 归结为服务提供商和身份提供商之间错误的时钟同步。
可能,它们现在大约是60秒的时间限制,因此“时不时地”它们会失去同步边界。
您可以通过以下方式修复此问题
- (最好)同步 都 系统通过ntpd到达相同的已知时基。
- 将两个系统中的一个从一个时钟转移到另一个系统。
还有更多创造性的可能性,例如:
这两个“解决方案”容易出错和“时间跳过”问题(即时钟不会从WRONG_TIME缓慢地漂移到CORRECT_TIME,而是直接设置为“正确”值)。这也可能有 其他令人讨厌的影响 取决于其他条件/软件。
最后你可以修改modules / saml / lib / Message.php并增加时间增量,即使这是“纸上谈论问题”,假设有一些过程, 保持 两个系统最多60“不同步(那里 是 一些创新的时间安排方案,不是基于ntpd,可以这样做)。
对我来说,它看起来像是一个时间问题,可能是没有正确同步。
有一个工具(也是一个守护进程),可以留意你的时间, NTP,所以你可以随时同步。安装它并配置守护进程,我想这可以解决你的问题。