PC – программный комплекс, предназначенный для подтверждения пользователем операций в системах дистанционного банковского обслуживания и/или электронного документооборота.
PC призван, в первую очередь, повысить уровень удобства подтверждения и информационной безопасности по сравнению с такими способами подтверждения как SMS, одноразовые пароли (One-Time Password), скретч-карты, MAC-токены и пр.
При помощи PC могут подтверждаться волеизъявления на совершение банковских транзакций, аутентификация, создание и исполнение документов, факты получения и/или ознакомления с определённой информацией.
Назначение
Настоящий документ предназначен работникам организаций, выполняющим прикладные задачи по обслуживанию серверов PC.
Общее описание
Сервер PC функционирует на базе фреймворка Spring Boot, работающего в среде Java 17 или 21, и состоит из следующих модулей:
- PC Server (PCS) – основной модуль PC. Располагается внутри локальной сети. Взаимодействует с прикладной системой. Хранит данные в БД PCS. Отправляет данные на PCP, получает данные с PCE.
- PC External (PCE). С этим сервером взаимодействуют приложения на мобильных устройствах для получения информации о данных платежа и отправки результатов подтверждения транзакций. Располагается в DMZ-зоне с доступом извне. Должен иметь внешний фиксированный IP-адрес. Должно быть присвоено доменное имя и выпущен сертификат внешним УЦ для обеспечения TLS (исключением может являться эксплуатация в тестовомо контуре).
- PC Pusher (PCP) – опциональный модуль, отправляющий Push-уведомления о появлении неподтверждённой транзакции у пользователя (без содержания информации о транзакции). Как правило располагается в DMZ-зоне, имеющей доступ к сети Интернет. Требуется доступ к серверам Google, Apple и Huawei. Может быть размещён в т.ч. на одном сервере с PCS или PCE (в зависимости от требований по ИБ к ИТ инфраструктуре и функциональных возможностей ИТ инфраструктуры).
- АРМ РКС (PCCRT, сокр. от PC Conflict Resolving Tool) - опциональный модуль, который устанавливается отдельно. Предназначен для получения подробной информации о пользователе PC, его транзакциях и событиях, а также для проверки значения ЭП с возможностью формирования акта по факту проверки, загрузки лицензионных файлов PC и получения общей информации о сервере PC.
- PC Server Signer (PCSS) - опциональный модуль, который устанавливается во внутреннем контуре сети, возможна установка на один сервер с PCS. Этот модуль позволяет подтверждать транзакции от имени представителя организации, где развёрнут PC, и работает аналогично мобильному клиенту PC. Ключи ЭП пользователей, созданных в компоненте содержатся в зашифрованном виде в БД PCSS. Взаимодействует с сервером PC.
Развёртывание
Схема включения
PC инсталлируется в инфраструктуру заказчика, в соответствии с одной из выбранных схем включения в инфраструктуру из предложенных в документе Варианты включения в инфраструктуру.
Руководство по инсталляции
Руководство по инсталляции PC доступно по ссылке.
Перевод PC в промышленную эксплуатацию
При переводе комплекса PC в промышленную эксплуатацию необходимо убедиться, что:
- сервер PC External доступен из сети Интернет по протоколу HTTPS и только по нему;
- отключён вывод расширенного логирования (либо спланировать выделение достаточного количество дискового пространства для хранения журналов);
- включена очистка данных транзакций (включена по умолчанию).
Запуск и остановка служб сервера PC
Linux
Запуск, остановка и перезапуск производится с помощью системной утилиты systemctl. Названия служб:
- pcs.service
- pce.service
- pcp.service
- pccrt.service
- pcss.service
Примеры
Запуск
systemctl start pcs.service
Остановка:
systemctl stop pcs.service
Перезапуск:
systemctl restart pcs.service
Windows
Из графического интерфейса
Запуск, остановка и перезапуск службы осуществляется из консоли управления службами сервера (консоль services.msc).
С помощью командной строки
Запуск:
sc start pc-server
sc start pc-pusher
sc start pc-external
sc start pc-crt
sc start pc-server-signer
Остановка:
sc stop pc-server
sc stop pc-pusher
sc stop pc-external
sc stop pc-crt
sc stop pc-server-signer
Журналирование
Для журналирования процесса фукционирования PC используются механизмы среды, в которых запущены модули PC. В случае, если PC запущен в среде ОС, то запись осуществляется в системный журнал ОС, если в среде контейнеризации, то в stdout
.
Доступ к данным журнала в среде ОС Linux
В общем случае записываются только сведения об ошибках, при их возникновении.
Просмотр логов осуществляется с помощью системной утилиты journalctl
, указав навание интересующего сервиса (pc-server,pc-external,pc-pusher,pc-crt,pc-server-signer):
Пример вывода логов для PCS:
journalctl -fu pc-server.service
Включение вывода информационных данных работы PC
Для расширенного логирования процесса работы модуля необходимо в application.yml
добавить:
logging:
level:
tech.paycon: debug
Также включить режим отладки можно задав переменную окружения:
LOGGING_LEVEL_TECH_PAYCON=debug
В обоих случаях, после установки параметра необходимо перезапустить сервис.
PCS
Опциональным вариантом включения режима отладки модуля PCS, является установка знчения 1
для параметра DEBUG_INFO
путём отправки HTTP POST запросов на сервер PCS — http[s]://PCS/pc-api/system_settings
с телом в формате JSON с названиями параметров в качестве ключа, и желаемым значением. Пример:
{
"DEBUG_INFO":"1"
}
Также включить вывод отладочной информации на PCS (DEBUG_INFO=1
) можно через интерфейс АРМ РКС (при наличии), в разделе настроек сервера PCS.
Вывод журнала в другие приёмникиx
Для вывода логов, например в файл, и более гибкой их настройки воспользуйтесь документацией на фреймворк Spring Boot:
- https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.logging
- https://www.baeldung.com/spring-boot-logging
Пример настройки для вывода логов компонента PCS в файл:
- Добавить в application.yml
logging:
config: logback-spring.xml
- Создать файл logback-spring.xml и добавить туда
<?xml version = "1.0" encoding = "UTF-8"?>
<configuration>
<appender name = "FILE" class = "ch.qos.logback.core.FileAppender">
<File>/opt/pc/pcs/pcs.log</File>
<encoder>
<pattern>[%d{yyyy-MM-dd'T'HH:mm:ss.sss'Z'}] [%C] [%t] [%L] [%-5p] %m%n</pattern>
</encoder>
</appender>
<root level = "INFO">
<appender-ref ref = "FILE"/>
</root>
</configuration>
- Перезапустить сервис.
Вывод в журнал идентификатора пользователя и запроса
Пример настройки для вывода в лог идентификатора пользователя(PCS) и идентификатора запроса(PCS,PCE):
- Добавить в application.yml
logging:
config: logback-spring.xml
- Создать файл logback-spring.xml и добавить туда
<?xml version = "1.0" encoding = "UTF-8"?>
<configuration>
<appender name = "console" class = "ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} user_id - [%X{user_id}] request_id - [%X{request_id}] [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level = "INFO">
<appender-ref ref = "console"/>
</root>
</configuration>
- Перезапустить сервис.
Вывод HTTP-запросов и результатов их выполнения
Для записи запросов и результатов их выполнения в журнал работы сервера необходимо добавить в файл application.yml
следующие строки:
logging:
level:
org:
springframework:
web:
servlet:
mvc:
method:
annotation:
RequestResponseBodyMethodProcessor: TRACE
и перезапустить службу.
Установка лицензии
Если установка лицензионного файла не проводилась на сервер, то он работает в демонстрационном режиме, ограничивающем возможность заведения более 20 пользователей PC. Также при включённом выводе информационных данных работы PC, в журнал выводятся сообщения сообщения вида:
2018-12-07 11:51:07,295 INFO [ru.safetech.ws.PayControl.services.utils.licenseManager.LicenseManager] (default task-2) --- no license found in database
2018-12-07 11:51:07,295 INFO [ru.safetech.ws.PayControl.services.impl.PayControlServiceV3Impl] (default task-2) --- Error load License, cheking if free users count exceeded
2018-12-07 11:51:07,295 INFO [ru.safetech.ws.PayControl.services.impl.PayControlServiceV3Impl] (default task-2) --- ATTENTION! LICENSE NOT FOUND! You are using unlicensed demo-only version of the service
Загрузка через АРМ РКС
При наличии модуля
В АРМ РКС загрузка файла лицензии производится на вкладке Система
(System Info
) с помощью кнопки Загрузить файл лицензии
(Upload license file
).
Перед обновлением лицензии убедитесь, что в директории загрузки файла лицензии не находится старый файл лицензии.
Путём копирования лицензионного файла на сервер
Файл лицензии необходимо скопировать на сервер PCS в одну из папок:
- /opt/pc/
- C:\pc\
- По пути, заданному в параметре LICENSE_FILE_LOCATION (БД PCS, таблица pc_sys_property).
После установки лицензии через файловую систему, файл следует убрать из директории, в которую он был размещён для загрузки.
Через запрос по API сервера Change System Settings
Посредством передачи содержимого файла лицензии в качестве параметра при вызове метода изменения параметров системы, описанного в актуальной версии API сервера PC.
Перед обновлением лицензии убедитесь, что в директории загрузки файла лицензии не находится старый файл лицензии.
Эксплуатация
Контроль
Администратору PC необходимо в плановом режиме выполнять проверку:
- Достаточности свободного места на серверах PC;
- Достаточности свободного места, выделенного дискового пространства базам данных PC (БД PCS).
Плановые работы
В состав плановых работ по обслуживанию входит:
- Замена сертификата для обеспечения HTTPS защиты сервера PCE;
- Замена сертификатов для обеспечения HTTPS защиты на серверах PCS и PCP при их наличии.