logo

[ELMA3] Создание собственного модуля авторизации

Общая информация

Внимание!

Данная статья актуальна только для версий системы ELMA до 3.11 не включительно. Начиная с версий системы 3.11, была изменена работа сервиса управления учетными записями пользователей. Подробнее см. соответствующую статью. Инструкция по изменению работы сервиса управления учетными записями пользователей содержится в статье.

Стандартный модуль интеграции с LDAP EleWise.ELMA.IntegrationLdap.Web поддерживает работу только с одним сервером LDAP одновременно. В случае, если необходима авторизация более, чем на одном сервере, реализация собственных методов работы с сервером службы каталогов или поддержка иных систем, можно создать собственный модуль интеграции.
Перед началом создания собственного модуля авторизации ознакомьтесь со статьями по разработке:

Серверная часть

Класс LdapExternalMembershipService - представляет собой реализацию точки расширения внешней авторизации EleWise.ELMA.Security.IExternalMembershipService:
  • ServiceUid – уникальный идентификатор реализованного сервиса авторизации. Сущность (объект) User пользователя ELMA хранит этот номер в атрибуте AuthProviderGuid;
  • Description – краткое название. Используется для отображения названия сервиса в веб-приложении (например, в профиле пользователя или при импорте пользователей);
  • Sync – метод привязки данных о пользователе из сервиса авторизации к атрибутам пользователя ELMA;
  • FindUsers – метод поиск пользователя по подстроке. Реализует поиск пользователей в сервисе авторизации по параметру searchString. Возвращает список пользователей ELMA;
  • GetSettings – метод, возвращающий настройки сервиса авторизации. На данный момент не используется;
  • ValidateUser – на данный момент не используется.
Класс LdapUserModelMembershipEventHandler – представляет собой реализацию точки расширения обработчика события авторизации в системе EleWise.ELMA.Security.Services. IMembershipServiceEventHandler:
  • Validating – метод проверки авторизации;
  • Validated – метод, реализующий действия, выполняемые после авторизации;
  • SetPassword – метод смены пароля. На данный момент не используется.

Настройка подключения

Для описания настроек модуля интеграции используется класс IntegrationLdapSettings (серверная часть модуля). Загрузка представлений и отображение в разделе Администрирование – Настройки системы осуществляется методами контроллеров IntegrationLdapSettingsController и IntegrationLdapSettingsModuleController (веб-часть модуля).

Представления настроек находятся в веб-части модуля в ~/Views/IntegrationLdapSettings/:

  • View.cshtml – представление отображения настроек;
  • Edit.cshtml – представление редактирования настроек.
Пример для создания собственного модуля
В качестве примера для создания собственного модуля авторизации можно использовать приложенный в архиве исходный код проекта авторизации LDAP, используемого в ELMA по умолчанию (в версии 3.2.3).

Дополнительны ссылки

Прикрепленные файлы