问题 “收到了一个在将来有效的断言。检查IdP和SP上的时钟同步“


我在用着 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上)。


3833
2018-05-05 04:08


起源



答案:


“问题”是众所周知的 - 见 这里  - 归结为服务提供商和身份提供商之间错误的时钟同步。

可能,它们现在大约是60秒的时间限制,因此“时不时地”它们会失去同步边界。

您可以通过以下方式修复此问题

  • (最好)同步  系统通过ntpd到达相同的已知时基。
  • 将两个系统中的一个从一个时钟转移到另一个系统。

还有更多创造性的可能性,例如:

这两个“解决方案”容易出错和“时间跳过”问题(即时钟不会从WRONG_TIME缓慢地漂移到CORRECT_TIME,而是直接设置为“正确”值)。这也可能有 其他令人讨厌的影响 取决于其他条件/软件。

最后你可以修改modules / saml / lib / Message.php并增加时间增量,即使这是“纸上谈论问题”,假设有一些过程, 保持 两个系统最多60“不同步(那里  一些创新的时间安排方案,不是基于ntpd,可以这样做)。


9
2018-05-27 20:29



当我们使用SimpleSAML进行身份验证并稍后在应用程序级别处理单独的会话时,modules / saml / lib / Message.php中的时间会增加吗? - AnkitK
它不是一个非常干净的解决方案,你必须维护它。如果可能的话,解决真正的问题:同步时钟。 - LSerni


答案:


“问题”是众所周知的 - 见 这里  - 归结为服务提供商和身份提供商之间错误的时钟同步。

可能,它们现在大约是60秒的时间限制,因此“时不时地”它们会失去同步边界。

您可以通过以下方式修复此问题

  • (最好)同步  系统通过ntpd到达相同的已知时基。
  • 将两个系统中的一个从一个时钟转移到另一个系统。

还有更多创造性的可能性,例如:

这两个“解决方案”容易出错和“时间跳过”问题(即时钟不会从WRONG_TIME缓慢地漂移到CORRECT_TIME,而是直接设置为“正确”值)。这也可能有 其他令人讨厌的影响 取决于其他条件/软件。

最后你可以修改modules / saml / lib / Message.php并增加时间增量,即使这是“纸上谈论问题”,假设有一些过程, 保持 两个系统最多60“不同步(那里  一些创新的时间安排方案,不是基于ntpd,可以这样做)。


9
2018-05-27 20:29



当我们使用SimpleSAML进行身份验证并稍后在应用程序级别处理单独的会话时,modules / saml / lib / Message.php中的时间会增加吗? - AnkitK
它不是一个非常干净的解决方案,你必须维护它。如果可能的话,解决真正的问题:同步时钟。 - LSerni


对我来说,它看起来像是一个时间问题,可能是没有正确同步。

有一个工具(也是一个守护进程),可以留意你的时间, NTP,所以你可以随时同步。安装它并配置守护进程,我想这可以解决你的问题。


2
2018-05-21 14:35