WSO2 - Получить активные сеансы для пользователя - PullRequest
0 голосов
/ 24 октября 2018

Мы используем WSO2 для аутентификации (SAML / SSO).

Я не знаю, как определить, вошел ли пользователь в систему (чтобы предотвратить одновременный вход в систему).Другие вопросы SO указали, что это можно узнать как с WSO2 IS Analytics, так и без.Я бы предпочел также не запускать WSO2 IS Analytics (здесь упоминается здесь , но никогда не разъясняется. Кроме того, я вижу, как таблица IDN_AUTH_SESSION_STORE заполняется и на которую ссылаются при входе в систему, но которая используетSESSION_ID (который передается файлом cookie commonAuth).

Поэтому я ищу прямой ответ на этот вопрос: во время потока аутентификации, как мы можем определить, вошел ли данный пользователь в систему?

1 Ответ

0 голосов
/ 25 октября 2018

Без использования аналитики, запросы, зарегистрированные пользователем в сеансах пользователя, не поддерживаются "из коробки" в WSO2 Identity Server.Позвольте мне объяснить, почему.

Когда пользователь проходит аутентификацию на сервере идентификации WSO2, создается сеанс.Эти сеансы хранятся в виде объектов контекста сеанса против cookie commonAuthId в реализации WSO2.Информация о зарегистрированном пользователе находится внутри этих объектов сеанса.Поэтому, если мы хотим получить сеанс для конкретного пользователя, мы должны запросить все активные сеансы и пройти все из них по одному, совпадая с пользователем.

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

Надеюсь, это поможет.

...