KAZTOKEN desktop

KAZTOKEN desktop

Приложение KAZTOKEN desktop является аналогом приложения NCALayer с такими дополнительными функциями, как возможность настройки известных устройств для выполнения подписания в один клик и подписание нескольких файлов одной операцией.

KAZTOKEN desktop 1.2.788.191

Поддержка операционных систем:

  • Windows 8+

Интеграция с удостоверяющими центрами:

  • НУЦ РК

Поддержка API:

  • NCALayer (WebSocket)
    • Applet
    • commonUtils
    • basics (дополнено возможностью подписывать несколько документов одной операцией)
  • SIGEX (HTTPS)
    • мультиподписание - для подписания более 3-х документов требует активной подписки Крупный бизнес на сервисе https://sigex.kz

Поддержка типов носителей ключей ЭЦП:

  • KAZTOKEN (вся линейка продуктов)

Описание API мультиподписания (SIGEX)

API мультиподписания, разработанное для SIGEX, работает по протоколу HTTPS в отличие от классических API NCALayer, работающих по протоколу WebSocket, поэтому запросы к этому API нужно слать методом POST на https://127.0.0.1:24680/.

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

Подписание выполняется в два этапа:

  1. Регистрация операции мультиподписания.
  2. Передача отдельных блоков данных на подписание.

Так же предусмотрена возможность отменить операцию.

Важно: для работы этого API необходимо чтобы сервер, со страницы которого осуществляются вызовы, устанавливал в заголовке Content-Security-Policy значение connect-src https://127.0.0.1:24680; иначе браузер не будет передавать в HTTP запросах к KAZTOKEN mobile/desktop куки operationCookie и вызовы будут возвращать 401 Unauthorized.

Поддержка API мультиподписания реализована в JS библиотеке с открытым исходным кодом ncalayer-js-client.

Проверка доступности

Для того, чтобы проверить доступность API мультиподписания, можно отправить GET на https://127.0.0.1:24680/.

Ответ будет содержать JSON с информацией о версии приложения.

Регистрация операции мультиподписания

Регистрация операции выполняется отправкой следующего JSON методом POST на https://127.0.0.1:24680/:

{
  "numberOfDocuments": 1,
  "base64": false,
  "encapsulateContent": false
}
  • numberOfDocuments - сколько документов (файлов) необходимо подписать;
  • base64 - флаг, указывающий что данные на этапе подписания будут передаваться в виде base64 строк и ответы приложение так же будет возвращать закодированными в base64;
  • encapsulateContent - флаг, указывающий что на этапе подписания данные должны быть вложены (encapsulated) в результирующий подписанный CMS.

При успешной регистрации приложение вернет ответ со следующими данными необходимым для последующих обращений:

  • тело ответа будет представлять из себя строку - идентификатор операции operationId;
  • куки operationCookie (установленный через заголовок Set-Cookie ответа) будет содержать уникальное строковое значение - вторую часть данных.
Передача отдельных блоков данных на подписание

Блоки данных на подписание следует отправлять методом POST на https://127.0.0.1:24680/{operationId} (вместо {operationId} нужно указать идентификатор операции подписания). Так же в составе запроса должен быть передан куки operationCookie со значением полученным на этапе регистрации. Приложение обработает только такое количество блоков данных, сколько их было указано в numberOfDocuments при регистрации процедуры.

В том случае, если был установлен флаг base64, то данные следует передавать закодированными в base64, иначе в бинарном виде.

При успешном подписании приложение в ответ вернет статус 200 и в качестве тела ответа сформированную CMS подпись. В том случае, если был установлен флаг base64, то подпись будет закодирована в base64, иначе приложение вернет ее в бинарном виде.

Отмена операции

Для того, чтобы отменить операцию мультиподписания, нужно отправить POST на https://127.0.0.1:24680/{operationId}/cancel (вместо {operationId} нужно указать идентификатор операции подписания). Так же в составе запроса должен быть передан куки operationCookie со значением полученным на этапе регистрации. Тело данного запроса должно быть пустым.

Ошибки

В том случае, если сервис по какой-то причине не может обработать запрос, он возвращает ответ с кодом отличным от 200, в качестве тела ответа он возвращает строку с кратким описанием:

  • 403 Forbidden - при попытке инициировать мультиподписание во время выполнения другой операций;
  • 400 BadRequest - технические проблемы с запросом (запрос поступил не целиком или структура запроса не верна);
  • 500 InternalServerError - произошла неожиданная ошибка в приложении (например исключение при формировании подписи);
  • 409 Conflict - пользователь кликнул Отмена во время выбора ключа для мультиподписания;
  • 402 PaymentRequired - выбранный ключ для мультиподписания не является ключом сотрудника организации у которой есть действующая корпоративная подписка SIGEX;
  • 401 Unauthorized - используется некорректный идентификатор процедуры мультиподписания operationId или куки operationCookie (в частности если пользователь кликнул Отмена в процессе мультиподписания и операция уже завершена);
  • 404 NotFound - путь в запросе некорректный.


©2024 ТОО "Цифровой поток - Инновации".