2015-05-05 11 views
8

Tôi đang sử dụng https://simplesamlphp.org/ trong ứng dụng của mình. Hầu hết thời gian là tốt và không có vấn đề gì. Lần khác tôi nhận được điều này:"Đã nhận được xác nhận hợp lệ trong tương lai. Kiểm tra đồng bộ hóa đồng hồ trên IdP và SP"

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) 

Tại sao điều này xảy ra và làm cách nào để giải quyết? Tôi có cần phải thay đổi thời gian hệ thống của mình không? (Tôi đang dùng Debian).

Trả lời

6

"Đã xảy ra sự cố" - xem here - đồng thời giảm đồng bộ hóa đồng hồ sai giữa nhà cung cấp dịch vụ và nhà cung cấp nhận dạng.

Có thể, hiện tại chúng đã ở trong giới hạn thời gian là 60 giây, do đó "mọi lúc và sau đó" chúng rơi ra khỏi ranh giới đồng bộ hóa.

Bạn có thể khắc phục điều này bằng cách:

  • (tốt nhất) đồng bộ cả hệ thống cùng, cơ sở thời gian được biết đến qua ntpd.
  • cắt một trong hai đồng hồ của hệ thống này sang đồng hồ khác.

Ngoài ra còn có khả năng sáng tạo hơn, ví dụ:

  • có một công việc cron mà các cuộc thăm dò một hệ thống và sets the clock on the other via SSH
  • chạy netdate trong khoảng thời gian trên một trong hai hệ thống

Hai "các giải pháp" dễ bị lỗi và các vấn đề "bỏ qua thời gian" (tức là đồng hồ không được trôi nhẹ nhàng từ WRONG_TIME sang CORRECT_TIME, nó được đặt thành giá trị "đúng" một cách thẳng thắn). Điều này cũng có thể có other nasty effects tùy thuộc vào các điều kiện/phần mềm khác.

Cuối cùng, bạn có thể sửa đổi mô-đun/saml/lib/Message.php và tăng đồng bằng thời gian, ngay cả khi điều này "làm mờ vấn đề", giả sử rằng có một số quá trình giữ hai hệ thống 60 "không được đồng bộ hóa (có một số lược đồ tính thời gian quảng cáo, không dựa trên ntpd, có thể làm như vậy).

2

Đối với tôi, có vẻ như vấn đề về thời gian, có khả năng không được đồng bộ hóa chính xác.

Có một công cụ (và cũng là một daemon) có thể theo dõi thời gian cho bạn, ntp, vì vậy bạn luôn có thể đồng bộ hóa. Cài đặt nó và cấu hình daemon, tôi đoán điều này có thể giải quyết vấn đề của bạn.

Các vấn đề liên quan