Совсем недавно вышли новые версии приложений NOMAD. Помимо расширения функциональности упор делался на повышении безопасности мобильных приложений.
Одно из самых интересных нововведений в этой области – учет устройств пользователей и возможность удаления данных приложения с нелегитимных устройств. Но в вопросах безопасности требования у различных организаций могут сильно отличаться. Для одних может быть избыточным использование сертификатов пользователей для аутентификации, а другим необходимо применение специализированных средств защиты на каждом рабочем месте. Очевидно, что требования эти могут быть весьма специфичными, и реализация их в базовой версии приложений NOMAD для использования всеми организациями является избыточной.
В связи с этим в сервере NOMAD были выделены специальные точки расширения, позволяющие дополнять реализацию соответствующих алгоритмов. Другими словами, специфичные требования могут быть реализованы за счет плагинов. И это касается не только безопасности.
Технически, каждая точка расширения представляет собой открытый интерфейс программной платформы .NET. Доступные реализации таких интерфейсов регистрируются в сервере NOMAD при его запуске и вызываются по ходу работы.
Для создания нового плагина необходимо реализовать один из интерфейсов, разместить полученную сборку в нужном каталоге и указать необходимость ее использования в конфигурационном файле.
Подробнее о создании и подключении плагинов можно узнать из документа Сервер NOMAD 2.8. Инструкция по созданию плагинов.
Сейчас сервер NOMAD предоставляет четыре точки расширения для следующей функциональности:
Точка расширения аутентификации пользователей позволяет реализовать:
Вот несколько примеров использования этой точки расширения:
В дистрибутив сервера уже включен плагин UserGroupsValidationPlugin, осуществляющий аутентификацию пользователей по "белому" и "черному" списку имен их учетных записей и групп, в которые они входят.
Точка расширения доступна только при работе с DIRECTUM.
Точка расширения регистрации устройств пользователей позволяет определить поведение системы при входе пользователя с нового устройства, которое еще не было зарегистрировано в системе. В плагине могут быть реализованы:
В дистрибутив сервера уже включен плагин DeviceValidationPlugin, реализующие вариант двухфакторной аутентификации. Плагин имеет два режима работы – подтверждение устройства пользователя самим пользователем и подтверждение администратором. При входе пользователя с нового устройства на электронный адрес пользователя или администратора (в зависимости от режима работы) отправляется соответствующее уведомление. В уведомлении имеется описание устройства и две ссылки, перейдя по которым можно либо подтвердить устройство, либо отказать в его регистрации.
В общем доступе выложена реализация другого варианта расширения – плагин HelloDevicePlugin. Плагин осуществляет уведомление пользователей по электронной почте о входе в систему с новых устройств под их учетными записями, как, например, это делает Google.
Точка расширения обработки сообщений между клиентом и сервером позволяет управлять содержимым входящего и исходящего трафика сервера NOMAD.
Возможные примеры использования точки расширения:
В дистрибутиве сервера NOMAD имеется плагин KazakhSupportPlugin, который на основе этой точки расширения осуществляет поддержку символов казахского алфавита на мобильных устройствах. Система DIRECTUM для обозначения символов, отсутствующих в кодировке Windows-1251 (английский и русский алфавиты плюс служебные символы), может подменить их на редко используемые служебные символы. Плагин такие символы подменяет на соответствующие казахскому алфавиту UTF-8 символы, которые успешно отображаются на мобильных устройствах. Реализация плагина выложена в общий доступ. По аналогии может быть реализована поддержка языков, отличных от русского и английского.
При создании задач и выполнении заданий мобильное приложение может запросить ввод необходимых параметров. В качестве значений параметров могут выступать записи справочников, например, регион или населенный пункт. При выборе значений одного из параметров, возможные значения других параметров могут изменяться. Например, в случае обработки логики ведущий-ведомый, когда возможные значения тех же населенных пунктов будут зависеть от выбранного региона. В случае если этот механизм дополнен логикой фильтрации, например, в вычислениях на справочники, эта логика отрабатываться в мобильных приложениях не будет.
Точка расширения фильтрации значений запрашиваемых параметров как раз позволяет реализовать эту дополнительную фильтрацию.
В дистрибутив сервера включен плагин AskableParamValuesFiltrationPlugin, использующий для фильтрации вызовы соответствующих ISBL-сценариев. Плагин имеет возможность гибкой настройки через файл конфигурации.
Точка расширения доступна только при работе с DIRECTUM.
Появление плагинов в сервере NOMAD делает его по-настоящему гибким продуктом, и не только в области безопасности. Новый функционал может добавляться без участия вендора.
Мы планируем и далее развивать расширяемость приложений NOMAD. И будем рады всем пожеланиям и замечаниям, касающихся этого направления.
Авторизуйтесь, чтобы написать комментарий