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

О сервисе

Параметр Значение
Системное название chart shturval-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.

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

Событие Инициатор Эффект
List backend API JSON-список сессий.
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)
Отдельный Service svc-session-manager

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

Компонент Роль
sh-session-manager Gin-приложение ограниченных маршрутов.
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_PASSWD Redis-параметры данных сессий.
TOKEN_STORE_ADDR, TOKEN_STORE_PASSWD Redis-параметры связанных token-записей.
STORE_MASTER, SENTINEL_PASSWD Sentinel topology.
LOG_LEVEL Уровень журналирования.

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