Делимся опытом по интеграции SSO средствами SAML 2.0
1. Предыстория Не смотря на то, что функция централизованного входа (Single Sign On, SSO) существует, обсуждается и применяется уже давно, на практике ее внедрение зачастую сопровождается преодолением самых различных проблем. Целью данной статьи будет показать, как реализовать простейший собственный Service Provider 1 (SP) для SAML 2.0 identity provider (idP) и с его помощью осуществить интеграции SSO в Java Web приложение. Одним из наших последних проектов была подготовка и кластеризация портального решения для крупного университета. В рамках проекта мы столкнулись с задачей реализации (а также кластеризации) функции единой аутентификации для следующих систем: Liferay version 6.1.20-ee-ga2. Простое java web-приложение. Google apps. Со стороны заказчика были выдвинуты основные требования построения SSO: Для построения SSO должен использоваться протокол SAML 2.0. Требуется интеграция с Jasig CAS для поддержания работы уже существующих систем. LDAP используется для проверки аутентификации пользователей. В качестве idP решили использовать Shibboleth (http://shibboleth.net/about/index.html) как open source-систему, реализующую в полном объеме протоколы SAML 1.0 && SAML 2.0. Сложные моменты, с которыми мы столкнулись при решении данной задачи: Отсутствие экспертизы по работе с протоколом SAML 2.0 и продуктом Shibboleth. Сырая и еще не достаточно хорошо структурированная документация по Shibboleth от производителя. Отсутствие качественных примеров по реализации Service Provider«а для интеграции SSO в свое Java Web-приложение. Преодоление этих барьеров и стало мотивацией для публикации данной статьи. Мы хотим поделиться приобретенными знаниями, помочь разработчикам решать подобные задачи, а также облегчить знакомство с протоколом SAML 2.0.2. Для кого предназначена статья? Данная статья ориентирована на следующую аудиторию: Разработчики, интегрирующие функцию SSO в своих проектах средствами SAML 2.0. Java-Разработчики, которым нужен практический пример интеграции в свое приложение функции SSO средствами SAML 2.0. Java-Разработчики, которые хотят опробовать в качестве SSO Identity Provider«а (idP) компонент Shibboleth. Для понимания статьи рекомендуется иметь минимальные знания по протоколу SAML 2.0. Читать дальше →