Можно ли распространять "loginContexts" (что похоже на кратковременный сеанс, поэтому некоторая информация из первого запроса будет по-прежнему доступна в следующем запросе, пока вход в систему не будет успешным - файл cookie "_idp_authn_lc_key") внутри кластера??
Мы используем Redis для хранения информации о сеансе, переопределяя StorageService Shibboleth. Во многих ответах на форуме говорится, что это возможно только с липкими сеансами и локальным сохранением loginContext.
Есть ли способ сохранить loginContexts в кластере без использования липких сеансов. В настоящее время мы получаем ошибку "Нет доступного контекста входа" в одном из файлов tomcat.
Наш поток запросов - Akamai - Серверы Apache (кластер) - Серверы Tomcat (кластер)
Примечание. Файл cookie _idp_session (долгоживущий сеанс) работает нормально,
Ответ 1 · рейтинг 1 · Cameron Kerr
Вот так. Контекст входа хранится через API, который нельзя экспортировать в такие решения, как EHCache, memcached или Redis. Вам нужно использовать липкие сессии.
Сеанс, который получает пользователь, доступен, и обычно это то, что распределяется между узлами кластера.
... если ваш балансировщик нагрузки не поддерживает фиксированные сеансы, вы можете получить некоторый пробег (очень непроверенный), используя обратный прокси-уровень перед вашим IdP, который просматривает файл cookie сеанса контекста входа в систему, определяет, какой узел это был для/от и перешлите его туда. Я предполагаю, что что-то вроде HAProxy или Nginx может сделать это. Вместо того, чтобы пытаться анализировать файл cookie сеанса контекста входа в систему, вы можете вместо этого сделать собственную вставку файла cookie для вашего балансировщика нагрузки второго уровня.
Наконец, вы также можете просто рассмотреть возможность создания кластера высокой доступности и использовать Active/Passive с плавающим IP-адресом.
Рад слышать, что вы используете REDIS для этого, так как мне нужно пересмотреть, как я собираюсь кластеризовать IdP для выхода из системы.