2014-10-30 2 views
1

У нас есть кластер JBoss EAP 6.3 с двумя узлами. Мы также включили SSO.SSO - JBoss 7.x и JSF

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

С одной стороны, мы получили свойство session-timeout в web.xml для каждого веб-приложения, а с другой стороны, мы получили SSO в JBoss.

Правильно ли такое значение тайм-аута сеанса для всех веб-приложений? Следует ли игнорировать эту ценность и сосредоточиться на каком-то глобальном значении тайм-аута сеанса SSO? Какова наилучшая практика для настройки тайм-аута сеанса для каждого веб-приложения в этом сценарии?

Спасибо, ребята, С уважением.

ответ

2

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

Как работает SSO
Если ресурс не защищен, пользователь не будет оспорено для аутентификации на всех. Если пользователь обращается к защищенному ресурсу, для аутентификации требуется пользователь .

После успешной аутентификации, связанные с пользователем роли хранятся и используются для авторизации всех других связанных ресурсов.

Если пользователь входит из-за приложения или приложения аннулирует сессии программно, все сохранялось данные авторизации удаляются, и процесс начинается заново.

Тайм-аут сеанса не отменяет сеанс единого входа, если другие сеансы остаются действительными.

Так что, если вы хотите аннулировать SSO authtentication через кластер, вы можете вызвать метод Request.logout(), например.

Параметры конфигурации SSO:

maxEmptyLife:
кластерного SSO только. Максимальное количество секунд, в течение которого может быть использовано SSO , без активных сеансов, до истечения срока действия . Положительное значение позволяет надлежащим образом обрабатывать остановку узла , если он является единственным с активными сеансами, подключенными к клапану. Если для параметра maxEmptyLife установлено значение 0, то в то же время, как и у , копии локальных сеансов прекращаются, но резервные копии сеансов от кластерных приложений доступны для других узлов кластера.Разрешение затвор, оставшийся после жизни управляемых сеансов, дает пользователю другой запрос, который затем может переходить на другой узел, где он активирует резервную копию сеанса. По умолчанию 1800 секунд (30 минут).

Se также: Use Single Sign On (SSO) In A Web Application

Другое дело, не возможно настроить значение по умолчанию session-timout в JBoss 7 (как JBoss 4, 5 и 6), так что вы должны настроить это значение в каждом приложении.

Например,. добавьте в свой web.xml:

<session-config> 
    <session-timeout>20</session-timeout> 
</session-config> 

Я надеюсь, что эта помощь.

+0

Спасибо Федерико, еще одно сомнение, что с «Тайм-аут сеанса не отменяет сеанс единого входа, если другие сеансы по-прежнему действительны». ? Что должно случиться с пользователем в этом веб-приложении? – Mateo

+1

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

+0

Хорошо, я протестировал этот сценарий: пользователь регистрируется через веб-приложение (Portal), у которого есть форма входа в систему (он получает два файла cookie, один из которых представляет сеанс веб-приложения, а другой - сеанс SSO), затем подождите до истечения срока действия веб-приложения. Неожиданно я могу перейти к другому веб-приложению и получить форму сеанса для этого веб-приложения. Это правильное поведение? Я что-то упускаю? – Mateo

Смежные вопросы