Поздравляем с Новым Годом!
   
Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: LXXVII Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 13 мая 2019 г.)

Наука: Информационные технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Михеев А.С. ПРОЕКТИРОВАНИЕ МОДУЛЯ УПРАВЛЕНИЯ АВТОРИЗАЦИЕЙ СИСТЕМЫ AEM С ИСПОЛЬЗОВАНИЕМ СТАНДАРТА SAML // Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ: сб. ст. по мат. LXXVII междунар. студ. науч.-практ. конф. № 5(76). URL: https://sibac.info/archive/technic/5(76).pdf (дата обращения: 29.12.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

ПРОЕКТИРОВАНИЕ МОДУЛЯ УПРАВЛЕНИЯ АВТОРИЗАЦИЕЙ СИСТЕМЫ AEM С ИСПОЛЬЗОВАНИЕМ СТАНДАРТА SAML

Михеев Александр Сергеевич

студент 2 курса магистратуры, кафедра информационных систем, Университет ИТМО,

РФ, г. Санкт-Петербург

Термины и определения

OSGI – спецификация для построения модульных систем для платформы Java.

AEM – это система управления контентом которая осуществляет обработку и доставку различных видов контента. Система реализована на языке Java с использованием большого количества фреймворков, но основой системы является фреймворк построения модульного приложения – OSGI.

SAML – язык разметки декларации безопасности — язык разметки, основанный на языке XML. Открытый стандарт обмена данными аутентификации и авторизации между участниками, в частности, между поставщиком учётных записей и поставщиком сервиса.

Технология единого входа – технология, при использовании которой пользователь проходит аутентификацию один раз и может посещать другие порталы, приложения и сайты без повторной аутентификации.

Введение

Система AEM имеет различные роли пользователей они рассчитаны на контент-менеджеров и администраторов системы. Если система используется в среде компании, где имеются другие системы с единым пользователем на все системы, то есть применяется технология единого входа, необходимо разработать функционал, который будет осуществлять авторизацию и аутентификацию пользователя.

В данной статье будет рассмотрен процесс проектирование компонента, осуществляющего управление авторизацией в системе AEM.

Анализ и проектирование

В рамках статьи будет рассмотрено проектирование модуля системы AEM выступающего в качестве сервиса авторизации. На первом этапе необходимо проанализировать существующие библиотеки для реализации единого входа с использованием SAML и выбрать наиболее подходящий для среды OSGI. На следующем этапе будет выделены подмодули, из которых будет состоять приложение с учетом ранее выбранной библиотеки. Библиотеки, выбранные для анализа перечислены на официальном сайте стандарта [1]:

-  OpenSAML 3 [2];

-  OneLogin [3];

-  Spring Security SAML [4];

-  Pac4j [5].

Для проведения сравнения и выбора подходящей библиотеки были составлены критерии оценивания:

-  Соответствие стандарту;

-  Поддержка;

-  Примеры;

-  Работа в среде OSGI.

В результате анализа библиотек были выявлены трудности их интеграции со средой AEM в связи с чем было принято решение разработать прототип с использованием каждой библиотеки для проверки его работоспособности в системе.

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

Spring Security SAML – Использует внутри OpenSAML 2, выполняет оборачивание базовых методов, но не поддерживает все типы сообщений доступные в стандарте. Используется устаревшая версия OpenSAML 2. Плохо совместим с OSGI средой. Поддерживает большинство популярный провайдеров идентификации. Имеет несколько примеров использования.

OpenSAML 3 – наиболее соответствующая стандарту реализация. Активно развивается и поддерживается. Требуется переопределение стартовой конфигурации так как не предназначено для работы в OSGI среде [6]. Имеет хорошую документацию и множество примеров использования [7], так-же имеется печатное руководство по использованию.

Pac4j – Использует внутри OpenSAML3, оборачивает базовые методы что позволяет реализовывать функции гораздо быстрее. Ограничен в доступных методах и настройках. Не предназначен для работы в OSGI среде. В отличие от OpenSAML 3 инициализация не может быть легко изменена что делает библиотеку не удобной в использование и требует большего времени доработки.

OneLogin – Не предназначен для работы в OSGI среде, сложно изменить инициализацию. Работает с ограниченным набором провайдеров авторизации. Отсутствуют подробные примеры использования.

В результате анализа было принято решение разработать приложение с применением библиотеки – OpenSAML3 как наиболее полно соответствующей стандарту и самой удобной для использования в среде OSGI.

Поскольку выбранная библиотека является довольно низкоуровневой и предназначена в основном для создания XML сообщений проектируемый модуль было решено разделить на два подмодуля.

Подмодуль работы с SAML (рис. 1) – генерирует SAML сообщения с использованием выбранной библиотеки, выполняет валидацию принятых сообщений, а так-же выполняет настройку библиотеки при установке в систему. Имеет пакет конфигурации, который позволяет использовать проектируемый модуль во всех системах AEM с различными настройками провайдера авторизации.

Подмодуль аутентификации (рис. 2) – принимает запросы на аутентификацию и ответы от провайдера авторизации, обрабатывает и определяет их тип. Отправляет запросы к провайдеру авторизации вместе с сгенерированными сообщениями.

 

Рисунок 1. Диаграмма классов подмодуля работы с SAML

 

 

 

 

 

Рисунок 2. Диаграмма классов подмодуля аутентификации

 

 

 

Выводы

В результате создания прототипа и проектирования решения были выявлены проблемы при интеграции системы AEM со сторонними библиотеками, не предназначенными для работы в среде OSGI.

Использование таких библиотек требует переопределения конфигурации данных библиотек и данный механизм предусмотрен в среде OSGI, что позволяет использовать библиотеки с небольшими доработками.

Несмотря на большое количество библиотек, реализующих стандарт SAML для работы в среде OSGI, наиболее подходящей оказалась только библиотека Open SAML 3, реализующая все типы сообщений, описанных в стандарте.

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

 

Список литературы:

  1. Oasis SAML Wiki page [Электронный ресурс]. URL: https://wiki.oasis-open.org/security/FrontPage (дата обращения: 3.05.2019).
  2. OpenSAML 3 [Электронный ресурс]. URL: https://wiki.shibboleth.net/confluence/display/OS30/Home (дата обращения: 03.05.2019).
  3. One login saml [Электронный ресурс]. URL: https://developers.onelogin.com/saml (дата обращения: 03.05.2019).
  4. Spring Security SAML [Электронный ресурс]. URL: https://projects.spring.io/spring-security-saml/ (дата обращения: 03.05.2019).
  5. Pac4j [Электронный ресурс]. URL: https://www.pac4j.org/ (дата обращения: 03.05.2019).
  6. Class loader issues in OSGi | Third-party libs using the Thread context [Электронный ресурс]. URL: https://helpx.adobe.com/ru/experience-manager/kb/OsgiClassLoading3Party.html (дата обращения: 03.05.2019).
  7. Blog about Open SAML framework [Электронный ресурс]. URL: https://blog.samlsecurity.com/ (дата обращения: 03.05.2019).
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий