Обновление сервисов до версии 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:
  1. Скачайте файл по ссылке https://keysystems.ru/files/admin_d/soft/key_generator.ps1
  2. Найдите файл в проводнике, с помощью правой кнопки мыши откройте контекстное меню и выберите строку «Выполнить с помощью PowerShell». В результате рядом с файлом key_generator.ps1 появится файл key.txt.
  3. Откройте файл key.txt и скопируйте ключ.
  4. Сделайте резервную копию файла appsettings.Production.json.
  5. Откройте файл конфигурации appsettings.Production.json в каталоге сервиса.
  6. Добавьте секцию “Authentication” со сгенерированным ключом ключом перед секцией «SystemSettings»:
  "Authentication": {
    "AuthenticationMethod": 1,
    "BuiltInJwtBearer": { 
      "SecurityKey": "Сюда вставить сгенерированный ключ"
    }
  },

  "SystemSettings": {
    "SqlCache_comment": "Строка соединения со служебной БД кеша данных",

Если файл appsettings.Production.json пустой, то просто добавьте секцию “Authentication” со сгенерированным ключом (запятая после секции в этом случае не ставится):

{
  "Authentication": {
    "AuthenticationMethod": 1,
    "BuiltInJwtBearer": { 
      "SecurityKey": "Сюда вставить сгенерированный ключ"
    }
  }
}
  1. Сохраните изменения и перезапустите контейнер WEB-Сервер-КС.
Сервис развернут на операционной системе linux:
  1. В терминале выполните команду:
    cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 32; echo
  2. Скопируйте ключ.
  3. Сделайте резервную копию файла appsettings.Production.json.
  4. Откройте файл конфигурации appsettings.Production.json в каталоге сервиса.
  5. Добавьте секцию “Authentication” со сгенерированным ключом:
    "Authentication": {
    "AuthenticationMethod": 1,
    "BuiltInJwtBearer": { 
      "SecurityKey": "Сюда вставить сгенерированный ключ"
    }
    },

Если файл appsettings.Production.json пустой, то просто добавьте секцию “Authentication” со сгенерированным ключом (запятая после секции в этом случае не ставится):

{
  "Authentication": {
    "AuthenticationMethod": 1,
    "BuiltInJwtBearer": { 
      "SecurityKey": "Сюда вставить сгенерированный ключ"
    }
  }
}
  1. Сохраните изменения и перезапустите контейнер 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,
    "Параметр": { 
      "Параметр": "Значение"
    }
  }

}