Как плагины NOMAD могут помочь закрыть вопросы безопасности?

22 0

Совсем недавно вышли новые версии приложений NOMAD. Помимо расширения функциональности упор делался на повышении безопасности мобильных приложений.

Одно из самых интересных нововведений в этой области – учет устройств пользователей и возможность удаления данных приложения с нелегитимных устройств. Но в вопросах безопасности требования у различных организаций могут сильно отличаться. Для одних может быть избыточным использование сертификатов пользователей для аутентификации, а другим необходимо применение специализированных средств защиты на каждом рабочем месте. Очевидно, что требования эти могут быть весьма специфичными, и реализация их в базовой версии приложений NOMAD для использования всеми организациями является избыточной.

В связи с этим в сервере NOMAD были выделены специальные точки расширения, позволяющие дополнять реализацию соответствующих алгоритмов. Другими словами, специфичные требования могут быть реализованы за счет плагинов. И это касается не только безопасности.

Как это работает?

Технически, каждая точка расширения представляет собой открытый интерфейс программной платформы .NET. Доступные реализации таких интерфейсов регистрируются в сервере NOMAD при его запуске и вызываются по ходу работы.

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

Подробнее о создании и подключении плагинов можно узнать из документа Сервер NOMAD 2.8. Инструкция по созданию плагинов.

Какую функциональность можно расширить?

Сейчас сервер NOMAD предоставляет четыре точки расширения для следующей функциональности:

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

Аутентификация пользователей

Точка расширения аутентификации пользователей позволяет реализовать:

  • дополнительную аутентификацию пользователя по предъявленным реквизитам (например, логину и паролю) перед аутентификацией на сервере с возможностью изменения этих реквизитов;
  • аутентификации пользователя по его данным из СЭД после успешной аутентификации на сервере.

Вот несколько примеров использования этой точки расширения:

  • фиксация попыток несанкционированного доступа;
  • внешний контроль перебора паролей;
  • внешние правила блокировки доступа с использованием информации из сторонней системы;
  • "белые" и "черные" списки доступа;
  • замена токен-пароля на пароль Windows-пользователя.

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

Точка расширения доступна только при работе с DIRECTUM.

Регистрация устройств пользователей и двухфакторная аутентификация

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

  • фиксация доступа с новых устройств;
  • уведомление пользователей о доступе с нового устройства;
  • "белые" и "черные" списки устройств с привязкой к пользователям;
  • ограничение на количество используемых устройств;
  • двухфакторная аутентификация – вход с устройства будет разрешен только после того, как будет пройдена аутентификация по дополнительному фактору (подтверждение через e-mail, sms, сторонние средства аутентификации и др.).

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

В общем доступе выложена реализация другого варианта расширения – плагин HelloDevicePlugin. Плагин осуществляет уведомление пользователей по электронной почте о входе в систему с новых устройств под их учетными записями, как, например, это делает Google.

Обработка сообщений между клиентом и сервером

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

Возможные примеры использования точки расширения:

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

В дистрибутиве сервера NOMAD имеется плагин KazakhSupportPlugin, который на основе этой точки расширения осуществляет поддержку символов казахского алфавита на мобильных устройствах. Система DIRECTUM для обозначения символов, отсутствующих в кодировке Windows-1251 (английский и русский алфавиты плюс служебные символы), может подменить их на редко используемые служебные символы. Плагин такие символы подменяет на соответствующие казахскому алфавиту UTF-8 символы, которые успешно отображаются на мобильных устройствах. Реализация плагина выложена в общий доступ. По аналогии может быть реализована поддержка языков, отличных от русского и английского.

Фильтрация значений запрашиваемых параметров для задач и заданий

При создании задач и выполнении заданий мобильное приложение может запросить ввод необходимых параметров. В качестве значений параметров могут выступать записи справочников, например, регион или населенный пункт. При выборе значений одного из параметров, возможные значения других параметров могут изменяться. Например, в случае обработки логики ведущий-ведомый, когда возможные значения тех же населенных пунктов будут зависеть от выбранного региона. В случае если этот механизм дополнен логикой фильтрации, например, в вычислениях на справочники, эта логика отрабатываться в мобильных приложениях не будет.

Точка расширения фильтрации значений запрашиваемых параметров как раз позволяет реализовать эту дополнительную фильтрацию.

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

Точка расширения доступна только при работе с DIRECTUM.

В заключение

Появление плагинов в сервере NOMAD делает его по-настоящему гибким продуктом, и не только в области безопасности. Новый функционал может добавляться без участия вендора.

Мы планируем и далее развивать расширяемость приложений NOMAD. И будем рады всем пожеланиям и замечаниям, касающихся этого направления.

Пока комментариев нет.

Авторизуйтесь, чтобы написать комментарий