Новые возможности контроля доступа


Всем привет!

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

Напомним что SIGEX в принципе не хранит самих подписанных документов, а для получения информации о подписях под документом, необходимо знать идентификатор подписанного документа или иметь ссылку на страницу подписанного документа (что по сути одно и то же, так как ссылка содержит идентификатор).

Настройки документов

В некоторых сценариях предпочтительно сильнее ограничить доступ к информации о подписях под документом, для этого мы разработали концепцию документов с ограниченным доступом. Любой документ в SIGEX может быть помечен как документ с ограниченным доступом, сделать это можно на странице настроек подписанного документа, перейти на которую можно нажав на символ шестеренки на странице подписанного документа:

Символ шестеренки

Программно управлять настройками документов можно через новый API POST /api/{id}/settings - изменение настроек документа

Просмотривать информации о документах с ограниченным доступом возможно только после входа (аутентификации) и только следующим пользователям:

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

Актуальная версия сервиса поддерживает следующие настройки документов:

  • ограничение на количество подписей под документом;
  • возможность настроить документ как документ с ограниченным доступом;
  • возможность запросить переключение документа в режим документа с ограниченным доступом после того, как под ним будет зарегистрировано допустимое количество подписей;
  • возможность потребовать чтобы ИИНы всех лиц, подписывающих документ, были уникальны (запретить одному лицу подписать документ дважды);
  • возможность потребовать чтобы БИНы организаций всех лиц, подписывающих документ, были уникальны (запретить сотрудникам одной и той же организации подписывать документ дважды), это подразумевает что все подписи должны быть сформированы с использованием сертификатов юридических лиц;
  • возможность указать набор требований к подписям, об этой функции чуть позже.

Настройки документа возможно устанавливать в момент первого подписания - достаточно кликнуть на ссылку “Расширенные настройки”:

Расширенные настройки

Обновленный API POST /api - регистрация нового документа в системе позволяет устанавливать настройки нового документа программно.

С помощью набора требований к подписям можно гибко контролировать то, какие подписи сервис разрешит добавлять. Сервис проверяет каждую новую подпись под документом на соответствие набору требований. Для того, чтобы подпись прошла проверку, ей достаточно соответствовать одному любому требованию из набора. Каждое требование может включать в себя следующие критерии (в любой комбинации):

  • ИИН;
  • БИН;
  • набор полномочий.

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

Права доступа

Всего текущая версия сервиса оперирует пятью типами прав доступа:

  1. просмотр информации о документе;
  2. изменение настроек документа;
  3. перечисление документов;
  4. просмотр/изменение настроек организации;
  5. просмотр/изменение настроек пользователя.

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

Права доступа на перечисление документов юридического лица и просмотр/изменение настроек организации устанавливаются в соответствующих секциях настроек каждой организации.

Перечисление документов пользователя и просмотр/изменение настроек пользователя доступно любому пользователю, вошедшему в систему.

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

Настройки организаций

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

Меню профиля

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

  • доступ к документам;
  • перечисление документов;
  • настройки документов;
  • настройки организации.

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

Так же в настройках организации можно указывать сертификаты для аутентификации информационных систем (о самой аутентификации информационных систем чуть ниже) - присутствует возможность указывать сертификаты вручную, либо воспользоваться функцией автоматической генерации ключевой пары и сертификата в браузере:

Опции генерации сертификатов

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

Каждому зарегистрированному сертификату можно предоставить права на выполнение действий аналогично тому, как это настраивается для полномочий. Таким образом разные ИС, действующие от имени одной организации, могут иметь разные права доступа в SIGEX.

Примечание: удаление сертификатов информационных систем не предусмотрено, но их можно помечать как отключенные.

Программно управлять настройками организаций возможно с помощью следующих API:

Аутентификация информационных систем

Для того, чтобы расширить возможности интеграции для информационных систем, мы реализовали новый механизм аутентификации - аутентификация информационных систем с помощью двустороннего TLS. Данный механизм позволит информационным системам действовать от имени организаций, но при этом не потребует хранения закрытых ключей от сертификатов НУЦ на серверах информационных систем (ведь это противоречит законодательству РК).

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

Примечание: в контексте аутентификация информационных систем мы никогда не говорим о сертификатах выпущенных НУЦ, либо другими удостоверяющими центрами. Речь идет о технических сертификатах, для SIGEX в этом контексте достаточно самоподписанных сертификатов.

Аутентификации посвящен отдельный раздел в документации для разработчиков: Аутентификация пользователей и информационных систем

Благодарим за внимание!