Обновление сервисов до версии 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,
"Параметр": {
"Параметр": "Значение"
}
}
}