Подтвердить что ты не робот

Как реализовать или интегрировать единый вход с SAML и Shibboleth

У нас есть два отдельных продукта, включая веб-приложение и сервер.

Мы хотим реализовать Single Sign On для обоих из них, поэтому, когда пользователь зарегистрировался в одном продукте, он может автоматически получать доступ к ресурсам в другом принадлежащем ему товаре.

Я немного изучил и нашел, что SAML - это хороший подход, который мы можем принять, но мы не уверены, как мы будем продолжать.

Можно ли реализовать собственный поставщик услуг? Я посмотрел на Shib SP, но выглядит, если я хочу интегрировать его в свои продукты, это тоже будет нелегко.

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

Другой вопрос - какой ресурс я могу изучить, если мне нужно реализовать SP с помощью OpenSaml? Похоже, что не много учебников или примеров, на которые я могу ссылаться.

Мне также очень понравилось бы, если кто-нибудь может просто указать на некоторые большие процедуры или компоненты, которые должен содержать мой собственный SP.

ИЗМЕНИТЬ 1:

Просто попробуйте предоставить более подробную информацию о том, что я хочу. У нас есть два отдельных продукта. В настоящее время мы можем экстернализировать базу данных пользователей. Например, наши продукты могут быть сконфигурированы для подключения к LDAP-серверу или любой другой внешней пользовательской БД, если они правильно реализуют сервис.

Теперь наша цель - мы хотим использовать SSO для обоих наших продуктов. Один из сценариев состоит в том, что у нас есть собственный компонент SP (либо реализовать, либо интегрировать) в оба продукта. У клиента может быть собственный IdP. С некоторой конфигурацией наш SP может подключиться к их IdP и выполнять аутентификацию оттуда, и пользователю не нужно дважды входить в систему для доступа к обоим продуктам. Из-за этого мы можем предоставить код IdP, если клиент его не имеет.

4b9b3361

Ответ 1

Самая большая проблема с Shibboleth заключается в том, что она является эффективной ссылкой на спецификацию SAML v2.0.

Однако для большинства обычных установок вам действительно нужно очень мало спецификации SAML, чтобы включить несколько веб-приложений для SSO.

Но так как Shibboleth реализует все это, со всеми его возможностями, это может быть медведь для настройки.

Мы сделали проект с Shibboleth (и это было, по общему признанию, на примере использования края), и для меня, новичок SAML в то время, это была настоящая работа, чтобы все поднять и работать.

Для нашего следующего удара я просмотрел спецификацию SAML для SSO через веб-профиль. Если вы прочтете это, это довольно просто для этого ограниченного варианта использования. И мы решили, что вместо использования Shibboleth мы будем писать собственные IdP и SP, используя библиотеки OpenSAML.

Мы могли бы заставить Шибболет работать быстрее? Вероятно. Но я не думаю, что у нас было бы понимание этого, что мы делаем сами. Немного Не изобретенного - здесь, конечно, но этот материал достаточно запутан, когда вы понимаете программное обеспечение и словарный запас, а тем более, когда вы этого не делаете. И SAML переполнена новым лексиконом.

Вы также можете использовать SimpleSAML как IdP и написать свой собственный SP для своих веб-приложений. SimpleSAML находится на PHP, но это немного более удобно. Вы можете просто рассматривать его как автономную службу apache.

Я скажу, что наш SP весит около 1000 строк кода javadoc'd, но в основном он объединяет материалы OpenSAML и некоторые полезные утилиты. По правде говоря, это не так страшно. Будьте готовы действительно наслаждаться чтением подписанных XML-блоков, хотя.

Это расстраивает то, что это действительно не проще, но это немного курица/яйцо о принятии и т.д.

И если ничто из этого не подходит вам, вы можете посмотреть OAuth2 и некоторые его профили.

Ответ 2

Если вы только хотите реализовать SSO между двумя продуктами, я думаю, да, создание чего-то с нуля проще. Если это Java, Shibboleth OpenSaml - очень хорошая библиотека.

По мере того, как вы начинаете внедрять больше материала и некоторые сложные сценарии, выбор для уже построенного - лучший выбор. Вы также должны знать о нескольких материалах, которые вы, вероятно, будете писать на основе каждой системы (например, генерация утверждения, xml-dsig, проверка и т.д.).

С первого взгляда может показаться, что уже построенные продукты слишком сложны или сложны в масштабировании или адаптируются к вашим конкретным потребностям. Но ваши соединители и реализации, написанные разработчиком, могут быть вознаграждены, если вам хочется взломать все возможности SAML.

Было бы очень полезно, если бы вы могли более подробно объяснить, чего вы хотите достичь; Я чувствую, что ваш вопрос довольно открыт...

Ответ 3

У меня нет личного опыта работы с провайдером услуг Shibboleth, но в настоящее время я разрабатываю архитектуру, которая использует Shibboleth IdP, сервис обнаружения Shibboleth и поставщик услуг Guanxi. Интеграция облегченного гвардейского модуля от Guanxi Service Provider с Java Webapp - это кусок пирога, и вы можете легко получить архитектуру на основе Shibboleth без написания собственных модулей. Существует учебник по локальному хосту для настройки Guanxi SP, просто пропустите части о Guanxi WAYF и IdP и используйте компоненты Shibboleth вместо них.