Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Shibboleth IDP в кластере

Автор вопроса: Bharathkumar K.R.Ответов: 1

Можно ли распространять "loginContexts" (что похоже на кратковременный сеанс, поэтому некоторая информация из первого запроса будет по-прежнему доступна в следующем запросе, пока вход в систему не будет успешным - файл cookie "_idp_authn_lc_key") внутри кластера??

Мы используем Redis для хранения информации о сеансе, переопределяя StorageService Shibboleth. Во многих ответах на форуме говорится, что это возможно только с липкими сеансами и локальным сохранением loginContext.

Есть ли способ сохранить loginContexts в кластере без использования липких сеансов. В настоящее время мы получаем ошибку "Нет доступного контекста входа" в одном из файлов tomcat.

Наш поток запросов - Akamai - Серверы Apache (кластер) - Серверы Tomcat (кластер)

Примечание. Файл cookie _idp_session (долгоживущий сеанс) работает нормально,

single-sign-onmod-proxyshibboleth

Ответы

Ответ 1 · рейтинг 1 · Cameron Kerr

Вот так. Контекст входа хранится через API, который нельзя экспортировать в такие решения, как EHCache, memcached или Redis. Вам нужно использовать липкие сессии.

Сеанс, который получает пользователь, доступен, и обычно это то, что распределяется между узлами кластера.

... если ваш балансировщик нагрузки не поддерживает фиксированные сеансы, вы можете получить некоторый пробег (очень непроверенный), используя обратный прокси-уровень перед вашим IdP, который просматривает файл cookie сеанса контекста входа в систему, определяет, какой узел это был для/от и перешлите его туда. Я предполагаю, что что-то вроде HAProxy или Nginx может сделать это. Вместо того, чтобы пытаться анализировать файл cookie сеанса контекста входа в систему, вы можете вместо этого сделать собственную вставку файла cookie для вашего балансировщика нагрузки второго уровня.

Наконец, вы также можете просто рассмотреть возможность создания кластера высокой доступности и использовать Active/Passive с плавающим IP-адресом.

Рад слышать, что вы используете REDIS для этого, так как мне нужно пересмотреть, как я собираюсь кластеризовать IdP для выхода из системы.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы