Настройка лимита сеансов и времени жизни JWT-токенов

В системе предусмотрены следующие возможности по управлению жизненным циклом пользовательских сеансов:

  • настройка лимита для одновременных активных сеансов;

  • настройка времени жизни для токенов доступа (JSON Web Token, JWT).

Авторизация в системе осуществляется с помощью следующих JWT-токенов:

  • Access token — токен, выдаваемый пользователю при входе в систему. Имеет короткое время жизни.

  • Refresh token — токен, предназначенный для периодического обновления Access token. Имеет более продолжительное время жизни.

Переменные окружения для настройки сеансов

Настройки сеансов пользователей задаются с помощью следующих переменных окружения:

  • EVO_CORE_ACCESS_JWT_ACCESS_TOKEN_EXPIRATION_TIME — время жизни токена Access token. Указывается вместе с единицами измерения. Дробные части отделяются точкой. Например: 30m, 1.5h или 2d.

    По умолчанию установлено значение 2m (2 минуты).

  • EVO_CORE_ACCESS_JWT_REFRESH_TOKEN_EXPIRATION_TIME — время жизни токена Refresh token. Указывается вместе с единицами измерения. Дробные части отделяются точкой. Например: 30m, 1.5h или 2d.

    По умолчанию установлено значение 1.5h (1,5 часа).

  • EVO_CORE_ACCESS_SINGLE_SESSION — настройка лимита для одновременных сеансов. Допустимые значения:

    • true — для одной учетной записи в системе разрешен только один сеанс с активным токеном Refresh token. При старте нового сеанса (например, при авторизации с другого устройства) Refresh token предыдущего сеанса отзывается. Сам предыдущий сеанс автоматически завершается, как только истекает время жизни его Access token.

    • false — ограничения на количество одновременных сеансов отсутствуют.

    По умолчанию установлено значение false.

  • Значение EVO_CORE_ACCESS_JWT_ACCESS_TOKEN_EXPIRATION_TIME должно быть меньше, чем время бездействия для завершения сеанса пользователя.

  • Значение EVO_CORE_ACCESS_JWT_REFRESH_TOKEN_EXPIRATION_TIME должно быть меньше, чем период неактивности для блокировки неиспользуемой учетной записи.

  • Значение EVO_CORE_ACCESS_JWT_REFRESH_TOKEN_EXPIRATION_TIME должно быть строго больше значения EVO_CORE_ACCESS_JWT_ACCESS_TOKEN_EXPIRATION_TIME.

Изменение переменных для настройки сеансов

Чтобы изменить настройки сеансов пользователей:

  • Через командную строку

  • Через Lens

  1. Подключитесь к кластеру.

  2. Задайте новое значение необходимой переменной в ConfigMap evo.core-access-env, выполнив команду:

    kubectl patch configmap -n <namespace> evo.core-access-env -p '{
      "data": {
        "<variable>": "<value>"
      }
    }'

    Здесь:

    • <namespace> — название пространства имен, в котором установлена система.

      Вы можете получить название пространства имен, в котором установлена система, с помощью утилиты evoctl.
    • <variable> — одна из переменных, представленных в разделе Переменные окружения для настройки сеансов.

    • <value> — значение переменной.

    При необходимости вы можете изменить значения сразу нескольких переменных, вводя их через запятую с новой строки. Например:

    kubectl patch configmap -n <namespace> evo.core-access-env -p '{
      "data": {
        "<variable_1>": "<value_1>",
        "<variable_2>": "<value_2>"
      }
    }'
  3. Сохраните изменения в ConfigMap.

  4. Перезапустите контроллер Deployment evo.core.access, выполнив команду:

    kubectl -n <namespace> rollout restart deployment evo.core.access

    Здесь:

    • <namespace> — название пространства имен, в котором установлена система.

  1. Подключитесь к кластеру.

  2. В выпадающем меню свойств кластера выберите пункт Config → Config Maps.

  3. Выберите ConfigMap evo.core-access-env в нужном пространстве имен. В правой части экрана отобразится панель настроек конфигурации.

  4. В разделе Data панели настроек измените значения требуемых переменных окружения, представленных в разделе Переменные окружения для настройки сеансов.

    Если переменная EVO_CORE_ACCESS_SINGLE_SESSION отсутствует, ее необходимо добавить.
  5. Сохраните изменения в ConfigMap.

  6. В выпадающем меню свойств кластера выберите пункт Workloads → Deployments.

  7. Выберите контроллер Deployment evo.core.access в таблице. В правой части экрана откроется панель свойств контроллера.

  8. Чтобы применить настройки, перезагрузите контроллер, нажав на кнопку Restart на панели свойств.

Была ли полезна эта страница?

Обратная связь