Настройка лимита сеансов и времени жизни 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. -
|
Изменение переменных для настройки сеансов
Чтобы изменить настройки сеансов пользователей:
-
Через командную строку
-
Через Lens
-
Подключитесь к кластеру.
-
Задайте новое значение необходимой переменной в 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>" } }' -
-
Сохраните изменения в ConfigMap.
-
Перезапустите контроллер Deployment
evo.core.access, выполнив команду:kubectl -n <namespace> rollout restart deployment evo.core.accessЗдесь:
-
<namespace>— название пространства имен, в котором установлена система.
-
-
Подключитесь к кластеру.
-
В выпадающем меню свойств кластера выберите пункт Config → Config Maps.
-
Выберите ConfigMap
evo.core-access-envв нужном пространстве имен. В правой части экрана отобразится панель настроек конфигурации. -
В разделе Data панели настроек измените значения требуемых переменных окружения, представленных в разделе Переменные окружения для настройки сеансов.
Если переменная EVO_CORE_ACCESS_SINGLE_SESSIONотсутствует, ее необходимо добавить. -
Сохраните изменения в ConfigMap.
-
В выпадающем меню свойств кластера выберите пункт Workloads → Deployments.
-
Выберите контроллер Deployment
evo.core.accessв таблице. В правой части экрана откроется панель свойств контроллера. -
Чтобы применить настройки, перезагрузите контроллер, нажав на кнопку Restart на панели свойств.
Была ли полезна эта страница?