Pull to refresh

Делимся опытом по интеграции SSO средствами SAML 2.0

Reading time34 min
Views48K
1. Предыстория

Не смотря на то, что функция централизованного входа (Single Sign On, SSO) существует, обсуждается и применяется уже давно, на практике ее внедрение зачастую сопровождается преодолением самых различных проблем. Целью данной статьи будет показать, как реализовать простейший собственный Service Provider 1 (SP) для SAML 2.0 identity provider (idP) и с его помощью осуществить интеграции SSO в Java Web приложение.

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

  1. Liferay version 6.1.20-ee-ga2.
  2. Простое java web-приложение.
  3. Google apps.

Со стороны заказчика были выдвинуты основные требования построения SSO:
  1. Для построения SSO должен использоваться протокол SAML 2.0.
  2. Требуется интеграция с Jasig CAS для поддержания работы уже существующих систем.
  3. LDAP используется для проверки аутентификации пользователей.

В качестве idP решили использовать Shibboleth (http://shibboleth.net/about/index.html) как open source-систему, реализующую в полном объеме протоколы SAML 1.0 && SAML 2.0.

Сложные моменты, с которыми мы столкнулись при решении данной задачи:

  1. Отсутствие экспертизы по работе с протоколом SAML 2.0 и продуктом Shibboleth.
  2. Сырая и еще не достаточно хорошо структурированная документация по Shibboleth от производителя.
  3. Отсутствие качественных примеров по реализации Service Provider’а для интеграции SSO в свое Java Web-приложение.

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

2. Для кого предназначена статья?

Данная статья ориентирована на следующую аудиторию:
  1. Разработчики, интегрирующие функцию SSO в своих проектах средствами SAML 2.0.
  2. Java-Разработчики, которым нужен практический пример интеграции в свое приложение функции SSO средствами SAML 2.0.
  3. Java-Разработчики, которые хотят опробовать в качестве SSO Identity Provider’а (idP) компонент Shibboleth.

Для понимания статьи рекомендуется иметь минимальные знания по протоколу SAML 2.0.

Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments11