2013-09-30 2 views
2

Мы разрабатываем веб-приложение, имеющее собственный механизм SignOn (механизм входа в систему с использованием имени пользователя и пароля). Механизм SIGNON реализуется с помощью фильтра приложений Web) контейнерShibboleth с собственным механизмом SignOn собственного веб-приложения

Веб-приложение является Apache Tomcat 6.0

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

Насколько технически возможно поддерживать как аутентификацию Shibboleth, так и механизм SignOn на основе фильтра веб-приложений?

Если возможно, со стороны фильтра веб-приложений, как мы можем проверить, был ли пользователь аутентифицирован уже Шибболетом? Есть ли токен аутентификации Shibboleth или сеанс пользователя Shibboleth?

Спасибо.

+0

Вы используете Apache перед своим Tomcat? – zerologiko

+0

Я использую Apache HTTPD 2.2 перед моим веб-приложением, содержащимся в Apache Tomcat 7.0.42 (обновлено с Apache Tomcat 6.0) –

+0

Хорошо, вы можете использовать модуль mod_shib_22.so на своем Apache для интеграции SP. См. Https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPApacheConfig – zerologiko

ответ

3

Я предполагаю, что вы ссылаетесь на Shibboleth SP (компонент поставщика услуг), а также на то, что вам понадобится Сибболет IdP (поставщик удостоверений) для обеспечения подлинной аутентификации.

... И да, это возможно, и эти два метода могут легко сосуществовать.

Когда пользователь успешно аутентифицирован Shibboleth SP (используя Поставщик удостоверений), он размещает известные атрибуты сеанса в атрибутах и ​​заголовках HTTP-запроса.

Вы можете просмотреть атрибуты сеанса посещения:

https://your-host/Shibboleth.sso/Session 

Так, внутри вашего приложения, вы можете проверить наличие и значение этих атрибутов, таких как:

request.getAttribute("NAME_OF_THE_ATTRIBUTE_IN_SESSION") 
request.getHeader("NAME_OF_THE_ATTRIBUTE_IN_SESSION") 

Затем, используя Шибболет атрибуты вам может выполнить необходимые операции до , разрешить или отрицать аутентификацию пользователя.

См. this официальную wiki, чтобы понять, как приложение «Shibbolize» и this для доступа к атрибутам.

Я бы порекомендовал начать чтение с самого начала this clear and comprehensive wiki по установке и настройке Shibboleth SP и IdP.