WEB-приложение Сведение отчетности   (02.06.2015)
Клиент не может авторизоваться в системе

Описание проблемы:

На клиенте - ошибка " 403 Forbidden " при попытке входа в систему.

На сервере  - наблюдается неконтролируемый рост числа сессий с одного ip-адреса.

Причины проблемы:

Удаленные клиенты идентифицируются сервером при помощи ip-адреса и "идентификатора сессии", который поддерживается посредством механизма cookies.

Механизм cookies используется следующим образом:

- при первом обращении клиента к серверу, сервер генерирует идентификатор cookie (GUID) и передает его вместе с ответом клиенту; при этом каждая cookie имеет свое время жизни; время жизни задается сервером как момент времени, в который cookie будет уничтожена. Этот момент (в будущем) определяется настройкой "время жизни сессии". В соответствии с требованием стандарта для единства операций со временем (сервер и клиент могут находиться в разных часовых поясах) время указывается по Гринвичу (GMT);

- клиент, получив cookie, прикрепляет ее к каждому своему дальнейшему запросу, до тех пор, пока ее время жизни не истечет; когда время жизни истекает, сервер получает запрос без cookie и выдает ошибку авторизации;

- для сравнения своего текущего времени со временем на Гринвиче и сервер и клиент используют информацию о своем системном времени и своем часовом поясе.

При неверной установке системного времени и/или часового пояса на сервере или на клиенте, возникнет рассинхронизация, и клиент может ошибочно считать время жизни cookie истекшим.

Также очевидно, что решение проблемы лежит не в области функциональности программного продукта, а в области его эксплуатации, конкретнее - решение заключается в настройке web-сервера и рабочих мест удаленных пользователей. Проблема должна решаться специалистами, отвечающими за сопровождение программного продукта у тех клиентов, у которых имеет место описанная проблема.

Пути решения проблемы:

  1. Корректно установить время и часовой пояс в системных настройках web-сервера. Для применения новых значений достаточно выполнить перезапуск сервиса DataMill Application Server. 
  2. Если, после коррекции системного времени и часового пояса сервера (или если изначально они были установлены правильно), от удаленных пользователей продолжают поступать сообщения об ошибках авторизации, рекомендовать удаленным пользователям корректно выставить системное время и часовой пояс на своей локальной машине. Для применения новых значений пользователю достаточно перезапустить свой браузер.
  3. Установить значение параметра "время жизни сессии" в значение, существенно превосходящее один час (например, два часа), поскольку из-за ошибочных установок перехода на летнее время время клиента может расходиться с реальным на час. Это несколько увеличит нагрузку на сервер, однако позволит таким клиентам нормально работать. Следует принимать во внимание, что после отмены перехода на зимнее время часовым поясом для Москвы стал часовой пояс GMT+4.