Ответ 1
Вы можете попробовать проект OpenSAML; он предоставляет библиотеку Java для создания и проверки токенов SAML.
Я бы хотел написать веб-приложение, которое выполняет аутентификацию с помощью токенов SAML 2.0, выданных поставщиком удостоверений. Я понимаю, согласно этому question, что в мире PHP существует жизнеспособное решение, используя simpleSAMLphp.
Есть ли эквивалентный метод в мире Java? Существуют ли готовые решения и/или учебные пособия для обычных контейнеров servlet
или серверов приложений?
Вы можете попробовать проект OpenSAML; он предоставляет библиотеку Java для создания и проверки токенов SAML.
Вы можете взглянуть на 2 продукта:
Оба имеют довольно впечатляющий список функций и предлагают широкий список агентов единого входа.
Основное преимущество подхода агента заключается в том, что вам не нужно заботиться о вашем процессе аутентификации, поскольку он обрабатывается агентом и инфраструктурой единого входа.
Если вы собираетесь разработать собственный поставщик услуг SAML2, использование OpenSAML - это путь. Недостатком является то, что эта библиотека не так хорошо документирована. Тем не менее вы должны легко найти некоторые обучающие материалы по OpenSAML в Интернете.
Вы можете реализовать его, например, как фильтр сервлета, так что ваш код приложения не привязан к SAML.
Недавно реализовав аутентификацию SAML для приложения, я нашел самую полезную информацию в техническом обзорном документе OASIS SAML2. Он очень читабельн и содержит реальные примеры передаваемых XML-сообщений.
В разделе 5.1 описывается взаимодействие с запросом на получение запроса YOUR (поставщик услуг или SP) поставщику удаленной идентификации (Idp).
Предоставление более актуального ответа, поскольку это не было посещено через некоторое время:
Если вы выполняете проект spring, у меня уже был успех с spring Security SAML. Вам не нужно защищать ваше приложение с помощью spring Security, чтобы использовать расширение SAML, хотя это немного упростит.
http://www.softwareborsen.dk/projekter/softwarecenter/brugerstyring/oio-saml-java
Все, что вам нужно, это сайт OpenSSO, OpenAM в качестве преемника.