Личный кабинет брокера
Личный Кабинет Брокера (ЛК) – веб-приложение для сайта инвестиционной компании или банка, позволяющее организовать систему электронного документооборота между брокером и клиентом, а также для дистанционного предоставления финансовых услуг.
Функциональные характеристики программного обеспечения
Цели и назначение
Личный кабинет брокера предназначен для предоставления дистанционных финансовых услуг клиентам брокера на различных устройствах клиента (десктоп, планшет, смартфон) в браузере и PWA-приложении с целью исключить необходимость посещение офиса брокера.
Программное обеспечение Личный кабинет брокера реализовано в виде веб-приложения. Взаимодействие клиента с веб-приложением происходит на условиях полной конфиденциальности. Обмен данными между браузером клиента и сервером брокера с веб-приложением Личный кабинет брокера производится по протоколу https, предусмотрена 2-х уровневая аутентификация.
Ключевые функции
- Актуализация анкетных данных клиента
- Предоставление Клиенту данных о состоянии брокерского счета или инвестиционного портфеля
- Предоставление на подпись отчетов брокера и документов
- Прием на исполнение поручений по движению денежных средств/ценных бумаг, совершение внебиржевых сделок и неторговых операций
- Просмотр отчетности от брокера
- Служба поддержки (Helpdesk) для удобного общения брокера с клиентами (передача сообщений, файлов, изображений)
- Создание и изменение банковских реквизитов
- Создание поручений на вывод денежных средств и перевод ценных бумаг
- Уведомление пользователей (новости и информирование)
- Учет отправленных и полученных документов
- Электронный документооборот с ЭЦП (усиленная неквалифицированная RSA или ПЭП через смс)
- Работа в режиме мобильного приложения через PWA для смартфонов на Андроид и iPhone
Установка ЛК
Установить веб-приложение Личный кабинет брокера можно 2мя способами
-
Предоставить удалённый доступ к серверу и наши специалисты установят Личный кабинет брокера и настроят подключение к базам данных. Этот способ предпочтительнее, если нужно быстро развернуть веб-приложение или при отсутствии профильных IT-специалистов. Удалённый доступ можно ограничить подключением через VPN и по IP.
-
Установить Личный кабинет брокера силами своих IT-специалистов, следуя Инструкции по установке БД MariaDB и Личного кабинета брокера. В этом случае мы передаём пакет файлов, инструкции и консультируем по установке.
Установка БД MariaDB на ОС Debian
-
Выполните в командной строке
1) sudo apt update
2) sudo apt upgrade
- Добавление репозитория MariaDB
Выполните в командной строке
1) sudo nano /etc/apt/sources.list.d/mariadb.sources
Вставляем текст
MariaDB 11.1 repository list - created 2023-11-20 07:47 UTC
https://mariadb.org/download/
X-Repolib-Name: MariaDB
Types: deb
deb.mariadb.org is a dynamic mirror if your preferred mirror goes offline. See https://mariadb.org/mirrorbits/ for details.
URIs: https://deb.mariadb.org/11.1/debian
URIs: https://mirrors.aliyun.com/mariadb/repo/11.1/debian
Suites: bookworm
Components: main
Signed-By: /etc/apt/keyrings/mariadb-keyring.pgp
Сохраняем.
Следующим шагом, чтобы подтвердить подлинность пакетов, импортируйте ключ MariaDB GPG с помощью следующих команд
2) sudo apt install apt-transport-https curl
3) sudo mkdir -p /etc/apt/keyrings
4) sudo curl -o /etc/apt/keyrings/mariadb-keyring.pgp 'https://mariadb.org/mariadb_release_signing_key.pgp'
- Установка MariaDB
Выполните в командной строке
1) sudo apt update
2) sudo apt install mariadb-server
- Защита установки MariaDB
После завершения установки MariaDB необходимо защитить ее установку, запустив скрипт безопасности в командной строке
1) sudo mysql_secure_installation
Вам будет предложено установить пароль для пользователя root, удалить анонимного пользователя, отключить удаленный вход root, удалить тестовую базу данных и перезагрузить привилегии.
- Проверка установки MariaDB и работы службы
Выполните в командной строке
1) mysql --version
2) sudo systemctl status mariadb
3) sudo systemctl enable mariadb
- Создание пользователя LK
Выполните в командной строке
1) mysql -u root -p
2) GRANT ALL PRIVILEGES ON *.* TO 'lk'@'%' IDENTIFIED BY '!DabSystems!' WITH GRANT OPTION;
3) FLUSH PRIVILEGES;
4) exit
- Доступ к базе данных извне
Поскольку база данных личного кабинета и сам ЛК могут располагаться на разных серверах, то необходимо будет предоставить доступ к базе данных MariaDB из вне, для этого переходим в конфигурационный файл
1) sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
и меняем строчку
...
bind-address = 0.0.0.0
...
-
На этом установка и настройка БД MariaDB завершена
-
Перед началом установки Личного кабинета нужно выполнить на БД CABINET4 sql-скрипты
Установка и настройка ЛК на ОС Debian
- Установка asp.net 6.0 (Добавление репозитория Microsoft)
Для установки версии с помощью APT потребуется выполнить несколько команд. Перед установкой .NET выполните приведенные ниже команды, чтобы добавить ключ подписывания пакета Майкрософт в список доверенных ключей и добавить репозиторий пакетов.
1) sudo wget https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
2) sudo dpkg -i packages-microsoft-prod.deb
3) sudo rm packages-microsoft-prod.deb
4) sudo apt-get update
5) apt-get install -y dotnet-sdk-6.0
6) sudo apt-get install -y dotnet-runtime-6.0
7) dotnet --list-runtimes
- Установка веб-сервера Apache
Выполните в командной строке
1) sudo apt-get install -y apache2
2) sudo nano /etc/apache2/sites-available/app.conf
Вставляем текст
<VirtualHost *:*>
RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
</VirtualHost>
<VirtualHost *:80>
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:5000/
ProxyPassReverse / http://127.0.0.1:5000/
ErrorLog ${APACHE_LOG_DIR}/helloapp-error.log
CustomLog ${APACHE_LOG_DIR}/helloapp-access.log common
</VirtualHost>
В редакторе nano сохраняем Ctrl+O, закрываем Ctrl+X
3) sudo a2enmod proxy proxy_http
4) sudo a2dissite 000-default
5) sudo a2ensite app
6) sudo a2enmod headers
- Создание и настройка службы ЛК
Выполните в командной строке
1) nano /etc/systemd/system/Dablk-app.service
Вставляем текст
[Unit]
Description=.NET Example Site
After=network.target
[Service]
WorkingDirectory=/var/www/lk
ExecStart=/usr/bin/dotnet /var/www/lk/Dablk4.Web.dll
Restart=always
RestartSec=10
SyslogIdentifier=dotnet-example-site
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target
В редакторе nano сохраняем Ctrl+O, закрываем Ctrl+X
2) mkdir /var/www/lk
3) chown www-data:www-data /var/www/lk
4) Загрузить собранный проект ЛК в папку /var/www/lk
Также необходимо изменить права на следующие файлы и папки:
chmod 777 /var/www/lk/App_Data/texts/user.texts.en.json
chmod 777 /var/www/lk/App_Data/texts/user.texts.invariant.json
chmod 777 /var/www/lk/App_Data/texts/user.texts.ru.json
chmod 777 /var/www/lk/App_Data/templates/SettingsEdit/dashboardBannersCustomization.json
mkdir /var/www/lk/App_Data/upload
chmod 777 /var/www/lk/App_Data/upload/
5) nano appsettings.json
В файле appsettings.json содержится информация о подключении к базам данных ЛК и учетной системы. Для указания параметров подключения к базе данных ЛК необходимо изменить параметр Data.Default, указан нужный IP адрес, порт, наименование базы, пароль. База данных будет сгенерирована автоматически после запуска ЛК
-
Запуск служб
Выполните в командной строке
1) systemctl daemon-reload
2) systemctl stop apache2
3) systemctl enable apache2
4) systemctl start apache2
5) systemctl enable Dablk-app.service
6) systemctl status Dablk-app.service
-
Решение проблемы при использовании БД MsSQL учетной системы ДиБ Системс
Для решения проблемы с подключением к базе данный Microsoft Sql Server, если данная проблема связана с SSL Provider необходимо выполнить скрипт FixSSHErrorMsSQL.sh, который расположен в папке с ЛК.
Выполните в командной строке
1) chmod ugo+x FixSSHErrorMsSQL.sh
2) ./FixSSHErrorMsSQL.sh
Или выполнить команды вручную в командной строке по-очереди:
1) sed -i 's/\[openssl_init\]/# \[openssl_init\]/g' /etc/ssl/openssl.cnf
2) sed -i '$a\[openssl_init]' /etc/ssl/openssl.cnf
3) sed -i '$a\providers = provider_sect' /etc/ssl/openssl.cnf
4) sed -i '$a\ssl_conf = ssl_sect' /etc/ssl/openssl.cnf
5) sed -i '$a\[provider_sect]' /etc/ssl/openssl.cnf
6) sed -i '$a\default = default_sect' /etc/ssl/openssl.cnf
7) sed -i '$a\legacy = legacy_sect' /etc/ssl/openssl.cnf
8) sed -i '$a\[default_sect]' /etc/ssl/openssl.cnf
9) sed -i '$a\activate = 1' /etc/ssl/openssl.cnf
10) sed -i '$a\[legacy_sect]' /etc/ssl/openssl.cnf
11) sed -i '$a\activate = 1' /etc/ssl/openssl.cnf
12) sed -i '$a\[ssl_sect]' /etc/ssl/openssl.cnf
13) sed -i '$a\system_default = system_default_sect' /etc/ssl/openssl.cnf
14) sed -i '$a\[system_default_sect]' /etc/ssl/openssl.cnf
15) sed -i '$a\CipherString = DEFAULT:@SECLEVEL=0' /etc/ssl/openssl.cnf
Установка БД MariaDB на ОС Debian
1) sudo apt update
2) sudo apt upgrade
Выполните в командной строке
1) sudo nano /etc/apt/sources.list.d/mariadb.sources
Вставляем текст
MariaDB 11.1 repository list - created 2023-11-20 07:47 UTC
https://mariadb.org/download/
X-Repolib-Name: MariaDB
Types: deb
deb.mariadb.org is a dynamic mirror if your preferred mirror goes offline. See https://mariadb.org/mirrorbits/ for details.
URIs: https://deb.mariadb.org/11.1/debian
URIs: https://mirrors.aliyun.com/mariadb/repo/11.1/debian
Suites: bookworm
Components: main
Signed-By: /etc/apt/keyrings/mariadb-keyring.pgp
Сохраняем.
Следующим шагом, чтобы подтвердить подлинность пакетов, импортируйте ключ MariaDB GPG с помощью следующих команд
2) sudo apt install apt-transport-https curl
3) sudo mkdir -p /etc/apt/keyrings
4) sudo curl -o /etc/apt/keyrings/mariadb-keyring.pgp 'https://mariadb.org/mariadb_release_signing_key.pgp'
Выполните в командной строке
1) sudo apt update
2) sudo apt install mariadb-server
После завершения установки MariaDB необходимо защитить ее установку, запустив скрипт безопасности в командной строке
1) sudo mysql_secure_installation
Вам будет предложено установить пароль для пользователя root, удалить анонимного пользователя, отключить удаленный вход root, удалить тестовую базу данных и перезагрузить привилегии.
Выполните в командной строке
1) mysql --version
2) sudo systemctl status mariadb
3) sudo systemctl enable mariadb
Выполните в командной строке
1) mysql -u root -p
2) GRANT ALL PRIVILEGES ON *.* TO 'lk'@'%' IDENTIFIED BY '!DabSystems!' WITH GRANT OPTION;
3) FLUSH PRIVILEGES;
4) exit
Поскольку база данных личного кабинета и сам ЛК могут располагаться на разных серверах, то необходимо будет предоставить доступ к базе данных MariaDB из вне, для этого переходим в конфигурационный файл
1) sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
и меняем строчку
...
bind-address = 0.0.0.0
...
Установка и настройка ЛК на ОС Debian
Для установки версии с помощью APT потребуется выполнить несколько команд. Перед установкой .NET выполните приведенные ниже команды, чтобы добавить ключ подписывания пакета Майкрософт в список доверенных ключей и добавить репозиторий пакетов.
1) sudo wget https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
2) sudo dpkg -i packages-microsoft-prod.deb
3) sudo rm packages-microsoft-prod.deb
4) sudo apt-get update 5) apt-get install -y dotnet-sdk-6.0
6) sudo apt-get install -y dotnet-runtime-6.0
7) dotnet --list-runtimes
Выполните в командной строке
1) sudo apt-get install -y apache2
2) sudo nano /etc/apache2/sites-available/app.conf
Вставляем текст
<VirtualHost *:*>
RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
</VirtualHost>
<VirtualHost *:80>
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:5000/
ProxyPassReverse / http://127.0.0.1:5000/
ErrorLog ${APACHE_LOG_DIR}/helloapp-error.log
CustomLog ${APACHE_LOG_DIR}/helloapp-access.log common
</VirtualHost>
В редакторе nano сохраняем Ctrl+O, закрываем Ctrl+X 3) sudo a2enmod proxy proxy_http
4) sudo a2dissite 000-default 5) sudo a2ensite app
6) sudo a2enmod headers
Выполните в командной строке
1) nano /etc/systemd/system/Dablk-app.service
Вставляем текст
[Unit]
Description=.NET Example Site
After=network.target
[Service]
WorkingDirectory=/var/www/lk
ExecStart=/usr/bin/dotnet /var/www/lk/Dablk4.Web.dll
Restart=always
RestartSec=10
SyslogIdentifier=dotnet-example-site
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target
В редакторе nano сохраняем Ctrl+O, закрываем Ctrl+X
2) mkdir /var/www/lk
3) chown www-data:www-data /var/www/lk
4) Загрузить собранный проект ЛК в папку /var/www/lk
Также необходимо изменить права на следующие файлы и папки:
chmod 777 /var/www/lk/App_Data/texts/user.texts.en.json
chmod 777 /var/www/lk/App_Data/texts/user.texts.invariant.json
chmod 777 /var/www/lk/App_Data/texts/user.texts.ru.json
chmod 777 /var/www/lk/App_Data/templates/SettingsEdit/dashboardBannersCustomization.json
mkdir /var/www/lk/App_Data/upload
chmod 777 /var/www/lk/App_Data/upload/
5) nano appsettings.json
В файле appsettings.json содержится информация о подключении к базам данных ЛК и учетной системы. Для указания параметров подключения к базе данных ЛК необходимо изменить параметр Data.Default, указан нужный IP адрес, порт, наименование базы, пароль. База данных будет сгенерирована автоматически после запуска ЛК
Выполните в командной строке
1) systemctl daemon-reload
2) systemctl stop apache2
3) systemctl enable apache2
4) systemctl start apache2 5) systemctl enable Dablk-app.service 6) systemctl status Dablk-app.service
Для решения проблемы с подключением к базе данный Microsoft Sql Server, если данная проблема связана с SSL Provider необходимо выполнить скрипт FixSSHErrorMsSQL.sh, который расположен в папке с ЛК.
Выполните в командной строке
1) chmod ugo+x FixSSHErrorMsSQL.sh
2) ./FixSSHErrorMsSQL.sh
Или выполнить команды вручную в командной строке по-очереди:
1) sed -i 's/\[openssl_init\]/# \[openssl_init\]/g' /etc/ssl/openssl.cnf
2) sed -i '$a\[openssl_init]' /etc/ssl/openssl.cnf
3) sed -i '$a\providers = provider_sect' /etc/ssl/openssl.cnf
4) sed -i '$a\ssl_conf = ssl_sect' /etc/ssl/openssl.cnf
5) sed -i '$a\[provider_sect]' /etc/ssl/openssl.cnf
6) sed -i '$a\default = default_sect' /etc/ssl/openssl.cnf
7) sed -i '$a\legacy = legacy_sect' /etc/ssl/openssl.cnf
8) sed -i '$a\[default_sect]' /etc/ssl/openssl.cnf
9) sed -i '$a\activate = 1' /etc/ssl/openssl.cnf
10) sed -i '$a\[legacy_sect]' /etc/ssl/openssl.cnf
11) sed -i '$a\activate = 1' /etc/ssl/openssl.cnf
12) sed -i '$a\[ssl_sect]' /etc/ssl/openssl.cnf
13) sed -i '$a\system_default = system_default_sect' /etc/ssl/openssl.cnf
14) sed -i '$a\[system_default_sect]' /etc/ssl/openssl.cnf
15) sed -i '$a\CipherString = DEFAULT:@SECLEVEL=0' /etc/ssl/openssl.cnf