Я разрабатываю модуль безопасности для веб-приложения с использованием Spring Security. Есть 3 отдельных войны (3 приложения) с использованием отдельного входа в систему, развернутые на сервере JBOSS. Требуется следующее: если пользователь аутентифицирован в одном приложении, он должен иметь доступ к другим приложениям без входа в систему. Можно ли разделить контекст безопасности между веб-приложением (разные войны не в одном EAR). Мы обсуждали SSO, но мы пытаемся достичь этого с помощью Spring безопасности и с поддержкой сервера приложений. Там в любом случае ? Пожалуйста, поделитесь своими ценными предложениями и предложениями. Если вам нужна дополнительная информация, дайте мне знать.
Нужны предложения по дизайну безопасности для веб-приложения
Ответы (2)
Самый простой способ - использовать обычную аутентификацию Spring Security (например, на основе формы с именем пользователя / паролем) и включить функция" запомнить меня ".
Пока все три приложения развернуты в одном домене (и, следовательно, могут совместно использовать свои файлы cookie), функция «запомнить меня» будет работать без проблем для всех из них, то есть как только пользователь аутентифицируется в любом из приложений, он сможет получить доступ к другие без необходимости повторной аутентификации.
Это, конечно, не решает таких проблем, как единый выход из системы, но в любом случае это, похоже, не является вашей целью.
Вы можете настроить это за короткое время, и вам не нужны сторонние компоненты SSO. Хотя ретрансляция по стандартным протоколам SSO и выделенным технологиям, как правило, является более безопасным вариантом.
Недавно я сделал это с помощью SSO и Spring Security, однако я написал для использования наш собственный фильтр безопасности, который получает значение HttpServletRequest.getRemoteUser (), предоставляемое фильтром SPNEGO. Одно дело с SSO: большинство механизмов используют Kerberos, который действительно работает только в локальных средах рабочего стола. Можно написать резервный механизм, который перенаправит пользователя на страницу входа в систему, но тогда у вас все еще есть проблема.
Другой вариант - переупаковать ваши приложения в виде EAR (см. здесь).