Менеджер сессий (session-manager)

О сервисе

ПараметрЗначение
Системное название chartshturval-auth
Компонентsh-session-manager
Назначение в кластереHTTP API для списка активных пользовательских сессий и удаления сессии с каскадной очисткой OAuth-токенов.
КритическийДа
Неймспейсshturval-backend

session-manager входит в Helm chart shturval-auth. Обычно компонент размещается рядом с authn-server, а backend API обращается к нему через SESSION_LIST_URL и SESSION_DELETE_URL.

Содержание

  1. Обзор
  2. Архитектура
  3. Установка / развёртывание
  4. Диагностика
  5. Жизненный цикл
  6. Параметры сервиса

1. Обзор

Назначение: поддерживать административные и пользовательские сценарии отзыва сессий после входа. Сервис предоставляет отдельное HTTP-приложение, которое вызывается backend и синхронно работает с Redis session store и связанным token store.

Создание сессии при login остаётся на стороне authn-server.

Функции

КонтурНазначение
GET /sessionsВывод активных пользовательских сессий.
DELETE /sessions/:sidУдаление сессии и связанных токенов.
Redis storeОбщее хранилище session/token данных с authn-server.

Сценарии инициации

СобытиеИнициаторЭффект
Listbackend APIJSON-список сессий.
Delete sidОператор платформы или автоматизацияСессия и связанные token-записи удаляются из Redis.
Стартовая проверкаpod initНедоступный Redis блокирует готовность workload.

Ограничения и следствия

ОграничениеСледствие
Порт зафиксирован :8082Порт нельзя сменить без совместимого изменения поставки.
Нет /health и /readyzПробы должны опираться на TCP/exec или другой утверждённый механизм.
Только Redis, без режима памятиRedis обязателен для корректной работы.
CORS всегда AllowAllOriginsУчитывайте сетевую поверхность API.

Место в цепочке управления

Backend API направляет запросы управления активными входами пользователей в session-manager. authn-server создаёт сессии и использует общие интерфейсы хранилища session/token при login-flow.

Ключевые характеристики

ХарактеристикаЗначение
Бинарьsh-session-manager
Порт процесса0.0.0.0:8082
Совместное размещениеSidecar в том же Deployment, что и authn (helm/auth/templates/dep-authn.yaml)
Отдельный Servicesvc-session-manager

2. Архитектура

КомпонентРоль
sh-session-managerGin-приложение ограниченных маршрутов.
Session Redis clientЧтение и удаление пользовательских сессий.
Token Redis clientКаскадная очистка OAuth-токенов при удалении SID.
Backend APIВызывающий компонент платформы.

3. Установка / развёртывание

Развёртывание задаёт Helm chart shturval-auth. Основное размещение — совместный pod с процессами auth и отдельный Service для внутреннего вызова из backend.

Параметры Redis и URL интеграции задаются через управляемые значения платформы и ShturvalServicePatch (SSP).

4. Диагностика

kubectl get svc -n "${NAMESPACE}"
kubectl logs -n "${NAMESPACE}" "${POD}" -c sh-session-manager --tail=200
СимптомПричинаДействие
HTTP 503 или timeout удаления SIDНедоступен token storeВосстановить Redis sentinel или credentials.
List пуст, хотя UI авторизует пользователейНеверно указан URL session-manager в backendПроверить SESSION_LIST_URL и SESSION_DELETE_URL.
Split-brain записей при нескольких podНедоступен sentinel или master endpointПроверить topology Redis и credentials.

Отсутствие стандартного health-route повышает требования к наблюдению: используйте утверждённые платформой проверки для конкретной установки.

5. Жизненный цикл

ЭтапПоведение
ListСервис читает store и формирует ответ платформе.
DeleteСервис последовательно удаляет сессию, затем связанную token-запись.
StartВыполняется блокирующая проверка Redis-подключений.

6. Параметры сервиса

ПеременнаяНазначение
SESSION_STORE_ADDR, SESSION_STORE_PASSWDRedis-параметры данных сессий.
TOKEN_STORE_ADDR, TOKEN_STORE_PASSWDRedis-параметры связанных token-записей.
STORE_MASTER, SENTINEL_PASSWDSentinel topology.
LOG_LEVELУровень журналирования.

Ссылки backend SESSION_*_URL настраиваются в chart shturval-backend и должны указывать на Service session-manager из chart shturval-auth.