[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).
Дополнительны ссылки