Skip to content

Обязательная конфигурация аутентификации в appsettings.Production.json

Обязательное требование

В файле конфигурации appsettings.Production.json любого веб-приложения/сервиса должна присутствовать секция "Authentication".

В случае, если предполагается совместная работа сервисов, ключ "SecurityKey" должен быть для них одинаковым.

Структура конфигурации

В целях безопасности ключ в "SecurityKey" в примере был изменен. В случае, если необходимо использовать другую аутентификацию, обратитесь к описанию Настройки аутентификации.

appsettings.Production.json
json
  "Authentication": {
    "AuthenticationMethod": 1,
    ...
    "BuiltInJwtBearer": { 
      "SecurityKey": "bwdC&YiKXcPWt^lREtnckN!hiQ8Dw%H8", 
    }
  }
Значение "AuthenticationMethod"Описание
0Токен не генерируется и не используется, прямое подключение к БД.
1Прямое подключение к БД, генерируется токен с подписанием указанным ключом и алгоритмом и т.п. Это означает, что сервис может взаимодействовать с другим сервисом: выполнять и валидировать запросы.
2Строка соединения с БД содержит единый логин/пароль,
3Строка соединения с БД содержит единый логин/пароль, токен не генерируется а получается от внешнего провайдера (КС ID, Альфа ID, и т.п.).

Ошибка, при отсутсвии секции аутентификации и ключа "SecurityKey" в appsettings.Production.json Бюджет-NEXT 24.2 и выше:

Ошибка получения токена
System.InvalidOperationException: Не настроен ключ подписывания.
at Keysystems.Webservice.Lib.Identity.SingleUserJwtGenerator.GetTokenAsync(String userName, String password, String dataSourceType, String server, String database, String scope, CancellationToken cancellationToken) in C:\GitLab-Runner\builds\_mMsGmyqH\0\dsr\webdev\webnext\webnext.budget\platform\Keysystems.Webservice.Lib\Identity\SingleUserJwtGenerator.cs:line 131
at Keysystems.WebNext.Registrations.Models.DataBaseAuthManager.GetToken(PreLoginInfo preLoginInfo, CancellationToken cancellationToken) in C:\GitLab-Runner\builds\_mMsGmyqH\0\dsr\webdev\webnext\webnext.budget\Modules\core.web\Keysystems.WebNext.Registrations\Models\DataBaseAuthManager.cs:line 500

Что произойдёт, если секция отсутствует?

  • Сервис не сможет аутентифицировать запросы от других прикладных сервисов Кейсистемс;
  • Все межсервисные вызовы будут получать ответ 401 Unauthorized.


Принципы работы аутентификации между сервисами с JWT (HS256)

Общая схема работы

Все сервисы системы используют единый секретный ключ для подписи и проверки JWT-токенов. Это означает:

  • Любой сервис может самостоятельно генерировать токены;
  • Любой другой сервис может проверять подлинность этих токенов;
  • Для проверки используется один и тот же секретный ключ (SecurityKey).

Процесс взаимодействия

1. Генерация токена (Сервис А)

  • Сервис создаёт JWT с нужным claims (данными поьзователя, правами и т.д);
  • Подписывает токен с помощью единого секретного ключа (алгоритм HS256);
  • Передает токен клиенту или другому сервису.

2. Генерация токена (Сервис B)

  • Получает JWT от сервиса;
  • Проверяет подпись токена, используя тот же секретный ключ;
  • Если подпись верна - токен считается подлинным.

© 2003—2025 ООО «Кейсистемс». Все права защищены.