Обновление сервисов до версии 24.2
Начиная с версии 24.2 в файле конфигурации appsettings.Production.json
любого веб-приложения/сервиса должна присутствовать секция "Authentication"
.
Если предполагается совместная работа сервисов, ключ "SecurityKey"
должен быть для них одинаковым.
Структура конфигурации
В целях безопасности ключ в "SecurityKey"
в примере был изменен.
"Authentication": {
"AuthenticationMethod": 1,
...
"BuiltInJwtBearer": {
"SecurityKey": "bwdC&YiKXcPWt^lREtnckN!hiQ8Dw%H8"
}
}
Значение "AuthenticationMethod" | Описание |
---|---|
0 | Токен не генерируется и не используется, прямое подключение к БД. |
1 | Прямое подключение к БД, генерируется токен с подписанием указанным ключом и алгоритмом и т.п. Это означает, что сервис может взаимодействовать с другим сервисом: выполнять и валидировать запросы. |
2 | Строка соединения с БД содержит единый логин/пароль. |
3 | Строка соединения с БД содержит единый логин/пароль, токен не генерируется а получается от внешнего провайдера (КС ID, Альфа ID, и т.п.). |
При обновлении программного комплекса с версии 24.1 до 24.2 необходимо выполнить ручную генерацию секретного ключа.
Сервис развернут на операционной системе Windows:
- Скачайте файл по ссылке https://keysystems.ru/files/admin_d/soft/key_generator.ps1
- Найдите файл в проводнике, с помощью правой кнопки мыши откройте контекстное меню и выберите строку «Выполнить с помощью PowerShell». В результате рядом с файлом
key_generator.ps1
появится файлkey.txt
. - Откройте файл
key.txt
и скопируйте ключ. - Сделайте резервную копию файла
appsettings.Production.json
. - Откройте файл конфигурации
appsettings.Production.json
в каталоге сервиса. - Добавьте секцию
“Authentication”
со сгенерированным ключом ключом перед секцией «SystemSettings»:
"Authentication": {
"AuthenticationMethod": 1,
"BuiltInJwtBearer": {
"SecurityKey": "Сюда вставить сгенерированный ключ"
}
},
"SystemSettings": {
"SqlCache_comment": "Строка соединения со служебной БД кеша данных",
Если файл appsettings.Production.json
пустой, то просто добавьте секцию “Authentication”
со сгенерированным ключом (запятая после секции в этом случае не ставится):
{
"Authentication": {
"AuthenticationMethod": 1,
"BuiltInJwtBearer": {
"SecurityKey": "Сюда вставить сгенерированный ключ"
}
}
}
- Сохраните изменения и перезапустите контейнер WEB-Сервер-КС.
Сервис развернут на операционной системе linux:
- В терминале выполните команду:
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 32; echo
- Скопируйте ключ.
- Сделайте резервную копию файла
appsettings.Production.json
. - Откройте файл конфигурации
appsettings.Production.json
в каталоге сервиса. - Добавьте секцию
“Authentication”
со сгенерированным ключом:"Authentication": { "AuthenticationMethod": 1, "BuiltInJwtBearer": { "SecurityKey": "Сюда вставить сгенерированный ключ" } },
Если файл appsettings.Production.json
пустой, то просто добавьте секцию “Authentication”
со сгенерированным ключом (запятая после секции в этом случае не ставится):
{
"Authentication": {
"AuthenticationMethod": 1,
"BuiltInJwtBearer": {
"SecurityKey": "Сюда вставить сгенерированный ключ"
}
}
}
- Сохраните изменения и перезапустите контейнер WEB-Сервер-КС либо перезапустите только сервис.
Для перезапуска WEB-Сервер-КС выполните команду (версию и порт укажите в соответствии с вашим сервером):
systemctl restart wsks-6.0.9_443
Для перезапуска сервиса выполните команду (версию и порты укажите в соответствии с вашим сервисом):
bash /opt/wsks-6.0.9_443/ctl/ws_ctlapp.sh -p "54430" -m "restart"
Дополнительная информация
Ниже приведена общая структура файла appsettings.Production.json
для понимания:
{
"Секция 1": {
"Параметр": 1,
"Параметр": {
"Параметр": "Значение"
}
},
"Секция 2": {
"Параметр": 2,
"Параметр": {
"Параметр": "Значение"
}
},
"Секция 3": {
"Параметр": 3,
"Параметр": {
"Параметр": "Значение"
}
}
}