Всем привет!
Эта вводная статья поможет разработчикам разобраться в том как интегрировать ЭЦП в информационные системы.
Процесс интеграции цифровых подписей в информационные системы разумно разделить на четыре этапа:
Схема взаимодействия выглядит следующим образом:
Для того, чтобы не путаться в терминологии и хорошо понимать принципы работы цифровых подписей, стоит ознакомиться со статьей Что такое ЭЦП?.
Важно: Мы настоятельно рекомендуем взаимодействовать с нашими API с бекенда, так как только так Вы можете быть уверенными в достоверности ответов!
Мы рекомендуем подписывать электронные документы в формате PDF по следующим причинам:
Важно понимать что тот документ (файл), который был передан на подписание пользователю, нужно будет хранить в неизменном виде. Если допустить изменение хоть одного байта в нем, цифровые подписи под ним перестанут проходить проверку. Вот примеры ситуаций приводящих к непреднамеренной (и визуально незаметной) порче документов:
Наша опция архивирования подлинников электронных документов предназначена для обеспечения сохранности документов. Попавший в архив документ нельзя удалить или изменить.
Вычислять цифровые подписи под электронными документами можно с помощью следующих инструментов:
Особенностью KAZTOKEN desktop и KAZTOKEN mobile является то, что они работают только с ключами ЭЦП на устройствах KAZTOKEN. То есть подписывать файловыми ключами ЭЦП с помощью этих приложений не получится.
Интеграция с NCALayer, KAZTOKEN desktop и KAZTOKEN mobile выполняется на фронтенде веб приложений или в клиентской части других видов приложений, так как они все являются WebSocket серверами, запущенными на компьютерах (или мобильных устройствах) пользователей и ожидающих запросов с локального хоста (127.0.0.1
). То есть, к примеру, обратиться к NCALayer запущенному на компьютере определенного пользователя можно только с компьютера этого пользователя.
Для интеграции этих трех инструментов во фроненды веб приложений удобно использовать JavaScript библиотеку с открытым исходным кодом ncalayer-js-client. Интеграция, чаще всего, сводится к трем действиям: создать экземпляр класса, подключиться к NCALayer, подписать. Примеры использования приведены на странице приложения. Библиотека подходит как для десктопов (NCALayer или KAZTOKEN desktop), так и для мобильных платформ (KAZTOKEN mobile).
Разработчикам других видов приложений потребуется реализовать взаимодействие по протоколу WebSocket самостоятельно, описание команд, а так же песочница для их выполнения, доступно на странице интерактивной документации по KAZTOKEN mobile (основной API у этих трех приложений одинаковый): https://kaztoken.kz/mobile-docs/
С 1С ситуация несколько специфичнее так как в 1С нет нативной поддержки протокола WebSocket. Для того, чтобы добавить поддержку ЭЦП в 1С, можно воспользоваться HTTP API KAZTOKEN desktop.
Получится следующая процедура подписания на примере NCALayer (вместо него может быть KAZTOKEN desktop или KAZTOKEN mobile) и веб приложения:
Принцип работы мобильных приложений eGov mobile и eGov business тоже основан на ЭЦП, но взаимодействие с ними осуществляется по другому: через QR код или диплинк приложению передается ссылка на скачивание документа, оно выкачивает документ, пользователь проверяет его и подтверждает подписание, после этого приложение возвращает подпись серверу. Подробности в статьях: ЭЦП через QR на базе eGov mobile (QR подписание) и Мы добавили функцию подписания документов прямо на мобильных устройствах.
На тарифе Крупный бизнес доступен Упрощенный API для подписания через eGov mobile/business.
Подписи, полученные от eGov mobile и eGov business нужно точно так же проверять, как и подписи полученные из NCALayer, KAZTOKEN desktop и KAZTOKEN mobile.
Не смотря на то, что мы опубликовали JavaScript библиотеку с открытым исходным кодом для упрощения интеграции с нашими API подписания через QR, для серьезных внедрений мы рекомендуем взаимодействовать с этими API не с фронтенда, а с бекенда. Коллекцию Postman для этих API можно найти в документации по методам API.
В заключении рекомендуем обратить внимание на статью Мультиподписание - подписываем большое количество документов.
Для обеспечения юридической значимости электронных документов, подписанных ЭЦП, в соответствии с Законодательством РК, необходимо выполнять проверку ЭЦП и документа. Наш сервис выполняет эти проверки в момент регистрации документов и подписей.
Процедура регистрации нового документа и подписи состоит, как минимум, из двух обращений:
Важно: Только после вызова двух этих API документ считается зарегистрированным.
Для того, чтобы добавить подпись под документ следует воспользоваться POST /api/{id} - добавление подписи к документу.
Получить информацию о документе и зарегистрированных под ним подписях можно с помощью GET /api/{id}?lastSignId=X - получение данных о зарегистрированном документе.
Рекомендуем обратить внимание на настройки документов, которые задаются в момент регистрации, они позволяют указывать требования к подписантам, отправлять уведомления по электронной почте и управлять контролем доступа.
Так же с помощью нашего сервиса легко реализовать Взаимодействие с внешними контрагентами.
Мы поддерживаем различные форматы экспорта электронных документов и цифровых подписей:
Документация по API находится в открытом доступе в разделе Для разработчиков (API), тематические статьи для разработчиков мы публикуем в разделе Интеграция и API, если у Вас остались вопросы, спросите нас, контакты здесь.
Портал SIGEX использует файлы cookie и другие технологии хранения данных в браузере только для персонализации пользовательского опыта: отображения уведомлений, напоминаний и подсказок, а так же хранения некоторых настроек. Мы не используем этих технологий для слежения за своими пользователями, сбора о них информации или отображения рекламы и не предоставляем подобных возможностей третим сторонам. Детали изложены в Политике конфиденциальности.
Мы проводим вебинары про электронные документы, ЭЦП и юридическую значимость.