Чтобы реализовать SAML, нужен ли мне Shibbaleth SP, установленная на моем хосте?

StackOverflow https://stackoverflow.com/questions/8807477

Вопрос

У меня есть пара вопросов реализации SAML, чтобы прояснить мою путаницу ...

Мне нужно внедрить SSO в веб -приложении Java.

  1. Для этого нужно ли мне установлен Shibbaleth SP вот так, или я могу предоставить функциональность SP через OpenSAML?

  2. Я предполагаю, что Шибболет делает то же самое, что и OpenSAML, но только на уровне веб -сервера, тогда как OpenSAML сделает это на стороне программного обеспечения. Это предположение правильно?

РЕДАКТИРОВАТЬ: Итак, Шибболет (по словам Скотта Кантора), строится с OpenSaml ... хотя мое предположение все еще держится?

  1. Что потребуется для использования OpenSaml? Просто URL IDP и регистрация с IDP?

  2. Нужно ли мне предоставить каталог SP, например, ActiveDirectory/LDAP?

РЕДАКТИРОВАТЬ: Спасибо за ответы, но кто -то может напрямую ответить на вопросы выше и уточнить на них ...

Это было полезно?

Решение

Что потребуется для использования OpenSaml? Просто URL IDP и регистрация с IDP?

Вам нужна Java и веб -контейнер, и включите библиотеку OpenSAML в вашу войну.

Вам необходимо кэшировать метаданные IDP локально или искать их каждый раз, когда вы хотите отправлять AuthnRequest или процесс SAMLResponse. Также вы должны зарегистрировать метаданные SP на ВПЛ.

Если вы используете Shibboleth в качестве IDP, метаданные SP должны быть настроены в файле conf/relying-party.xml.

Нужно ли мне предоставить каталог SP, например, ActiveDirectory/LDAP?

Чтобы войти в IDP, вам необходимо настроить LDAP или сервер базы данных на стороне IDP и настройка его в конфликте/атрибут-resolver.xml и conf/login.config.

Другие советы

Обновления для решения ваших изменений:

Вот некоторые параметры SAML 2, которые вы можете использовать.

Shibbaleth sp - это товар что реализует SAML 2.0 для вас, но OpenSAML - это просто библиотека с которым вы можете реализовать решение SAML 2.0. Сама библиотека низкоуровневая и даже не близка к решению SSO. OpenSAML сам по себе не является решением SAML 2.0.

Использовать OpenSAML или Любые Решение SAML 2.0, вам нужно будет обменять метаданные, как отмечено ниже. С OpenSAML вам придется вручную вручную и вручную также для ваших собственных метаданных. Это будет большая работа, как отмечено ниже. Продукты SAML 2.0 генерируют этот файл метаданных XML для вас, а также генерируют необходимые ключи RSA, используемые для шифрования и подписания утверждений SAML 2.0. С OpenSAML у вас будет поддержка API для загрузки частей файлов XML и API для создания и анализа ваших утверждений, но вы будете писать код Java, который фактически создает взаимодействие SSO.

SP делает нет Обязательно нуждается в Activedirectory/LDAP, но вам понадобится какой -то тип каталога в вашем веб -приложении, который отслеживает пользователей. Если в вашем веб -приложении уже есть представление о пользователях с некоторой идентифицирующей информацией, которую вы можете использовать для их корреляции с понятием IDP об пользователях, вы можете просто отобразить те, которые в своем веб -приложении на основе значений атрибутов в ваших утверждениях SAML 2.0. (Если ваше веб -приложение не заботится о том, кто является пользователями, вы можете просто разрешить доступ к приложению на основе «достоверного» пользователя.)

--

Интеграция Shibbaleth2 SSO с веб -приложением Java не слишком сложно. Использование OpenSAML для реализации SSO будет работать, но это было бы гораздо больше усилий, чем интеграция сервера Apache с Shibboleth.

Использование Shibbaleth требует, чтобы у вас был Apache2 с включенным модулем Shibboleth а также что у вас установлен демон Shibbaleth SP. Как правило, они будут вместе на одной коробке. Если вы используете Tomcat для размещения веб -приложения Java, то я рекомендую вам использовать mod_proxy_ajp для связи между сервером http Apache2 и Tomcat. Таким образом, вы можете забрать представленные Shibolleth переменные в качестве атрибутов запроса сервлета. (Вы должны установить префикс переменной на «AJP_» в Shibbaleth2.xml.)

Пакет Shibbaleth SP уже обрабатывает все стандартные сценарии SAML SSO, с которыми вы можете ожидать, но попытка реализовать хотя бы одного из тех, у кого есть OpenSAML непосредственно в приложении Java, чревата опасностью как от того, чтобы заставить его работать, так и от того, чтобы сделать его безопасным. Анкет Вы также увеличите размер вашего веб -приложения, если вы используете OpenSaml. Стоит отметить, что Shibbaleth SP не написана на Java, поэтому у вас не будет примеров использования OpenSaml для этого, но вы можете получить некоторую информацию, посмотрев на код IDP Shibbaleth, который является веб -приложением Java.

В любом случае вам нужно будет обменять метаданные SP (легко создавая с помощью пакета Shibbaleth SP) с вашим поставщиком идентификаторов, а также получить метаданные поставщика идентификации на вашем SP (также просто с пакетом Shibbaleth SP, когда вы просто настраиваете Metadataprovider).

Документация Shibbaleth Online очень поможет вам, как только вы привыкнете к ней.

Я думаю, что у вас будут гораздо большие шансы на успех, если вы сможете использовать пакет Shibbaleth SP, а не реализовать решение SAML 2 SSO с библиотеками OpenSAML. Я не могу говорить с другими решениями All-Java SAML 2 SSO, но все они кажутся большими и чрезмерно предприимчивыми по сравнению с простой Shibbaleth 2 SP.

Вы должны опубликовать такие вопросы в соответствующие списки рассылки, управляемые проектом Shibbaleth.

OpenSAML - это очень низкий уровень инструментария для реализации SAML Solutions, Shibbaleth - это пакет SSO для веб -приложений, поддерживающих SAML, который построен с OpenSAML. Создание решений безопасности является сложным и требует опыта. Если у вас нет такого опыта, вы сделаете это плохо, и OpenSAML не задокументирован так, что типичный разработчик может создать решение с нуля.

Подумайте об использовании полной реализации, будь то Shibboleth или что -то еще. Если вы не можете жить с Apache и Native Code и нуждаетесь в Java, то вам следует попробовать один из существующих вариантов Java SP, который существует. Даже если они были неадекватными, вы должны опираться на них, а не дублировать их.

Да, вы должны установить SP на свой сервер или на вашем компьютере. И это будет зависеть от вашего веб -сервера, например, IIS или Apache.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top