Быстрый старт

Назначение и архитектура JC-WebClient

JC-WebClient представляет из себя приложение на основе технологии локального web-сервера, который работает на стороне клиента, принимает локальные HTTPS-запросы от браузера на порту 24738 и отправляет команды токену и/или Антифрод-терминалу. Локальный web-сервер не вмешивается в процесс передачи прикладного трафика от браузера до удалённого сервера. Браузер обращается к локальному web-серверу только для доступа к функциям токена и/или Антифрод-терминала, который отрабатывает поступающие команды и возвращает результат выполнения обратно приложению. Приложение, в свою очередь, возвращает результат работы в браузер.

JC-WebClient поддерживает:

  • все популярные платформы: Microsoft Windows, OS X, Linux;
  • все популярные браузеры: Google Chrome, Opera, Mozilla Firefox, Apple Safari, Microsoft IE, Microsoft Edge.

В качестве средства строгой двухфакторной аутентификации и электронной подписи JC-WebClient поддерживает USB-токены/смарт-карты JaCarta и eToken с аппаратно реализованными российскими криптоалгоритмами. В их числе — JaCarta ГОСТ, JaCarta PKI/ГОСТ, eToken ГОСТ. В качестве доверенного Trust Screen-устройства – Антифрод-терминал, собственный продукт компании «Аладдин Р.Д.».

Архитектура JC-WebClient приведена на рисунке ниже:

../../../../_images/webclient.png

Основные компоненты JC-WebClient:

  • Локальный web-сервер
    • обеспечивает взаимодействие между web-страницей и токеном/Антифрод-терминалом по протоколу HTTPS;
    • обеспечивает разделение PC/SC контекстов для различных вкладок браузера.
  • Клиентский скрипт JCWebClient.js
    • предоставляет web-страницам JavaScript API для работы с методами JC-WebClient;
    • загружается на web-страницу с локального web-сервера;
    • при вызове из контекста страницы web-приложения методов объектов, реализованных в файле JCWebClient.js, управление передаётся на локальный web-сервер и далее к токену.
  • Сервис мониторинга, выполненный в виде службы ОС
    • запускает локальный web-сервер при загрузке ОС;
    • контролирует целостность локального web-сервера;
    • перезапускает локальный web-сервер в случае нештатных ситуаций/сбоев в ОС.

Интеграция в код web-страницы

Для поддержки JC-WebClient в код web-страницы необходимо внести следующие изменения:

  1. Подключить скрипт, который требуется для обеспечения взаимодействия между браузером и приложением JC-WebClient:

    <script type="text/javascript" src="https://localhost:24738/JCWebClient.js"></script>
    
  2. Вызвать метод initialize():

    JCWebClient().initialize()
    

Как определить, установлен ли клиент JC-WebClient

Определить, установлен ли клиент JC-WebClient, можно, добавив в код web-страницы следующий фрагмент:

if((typeof JCWebClient != 'undefined') && (typeof JCWebClient.id == 'undefined')) {
    // Клиент JC-WebClient установлен, можно работать с его методами
}
else {
    // Клиент JC-WebClient не установлен. Необходимо предложить пользователю сделать установку
}

Разделение контекста между вкладками браузера

В JC-WebClient реализовано разделение контекста (сеансов работы с токеном) при работе из различных вкладок браузера. Это означает, что сеанс работы с токеном, установленный из одной вкладки, недоступен для сеанса работы с токеном, установленного из другой вкладки.

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

JC-WebClient предоставляет возможность явного указания на необходимость обнуления контекста при выходе за пределы данной web-страницы. Для этого установите на этой web-странице значение параметра JCWebClient().saveSession в false:

JCWebClient().saveSession = false;

Указанное значение параметра будет действовать только в пределах данной web-страницы.

В JC-WebClient реализован таймаут в размере 1 минуты, по истечении которого контекст автоматически обнуляется, если приложение определило, что web-страница перестала отвечать. При этом также удаляется и сеанс работы с токеном. Это произойдёт, например, в следующих случаях:

  • после закрытии web-страницы (в том числе средствами DOM и jQuery) или браузера;
  • после перехода в данной вкладке на любую другую web-страницу, которая не поддерживает работу с JC-WebClient.

Примечание

Если в текущем сеансе работы с токеном был введён PIN-код и токен находится в состоянии “залогиненности”, то после обнуления контекста состояние “залогиненности” будет недоступно web-приложению, т.е. PIN-код потребуется вводить заново.

Более детальная информация по работе с JC-WebClient представлена в следующих разделах:

Руководство по работе с SDK

Примеры

Справочник API