Session Token service — OAuth2 / OIDC платформа и единственный источник истины для токенов. Сервис выпускает access token и refresh token, а также отвечает за ротацию токенов.
Ключевая роль:
- выпуск JWT access token;
- выпуск и ротация refresh token;
- source of truth для token lifecycle;
- отделение token logic от orchestration-слоя
Auth Service.
Интерфейсы и связи:
- внешний протокол:
REST; - публичный API: да;
- использует:
Account service,API Gateway; - используется сервисом:
Auth Service.
Разделы
- Код:
services/auth/session-token-service/ - Язык: Python (planned)
- Протокол: REST (public API)
- Приоритет: HIGH
- Владелец: Алексей Шалаев
- Статус: Planned
Ответственность
Token Issuance
- Выдача JWT access tokens на основе assertion от Auth Service
- Выдача refresh tokens для продления сессии
- JWT signing с использованием RS256 (asymmetric keys)
Token Validation
- Валидация JWT токенов (подпись, expiration, claims)
- Проверка refresh token при ротации
- Revocation list для invalidated tokens
Token Lifecycle
- Access token: короткий TTL (15 минут)
- Refresh token: длинный TTL (30 дней), rotating refresh tokens
- Logout — добавление токенов в revocation list
OAuth2 / OIDC Compliance
- OAuth2 flows: Authorization Code, Refresh Token
- OIDC: ID Token с user claims
- Discovery endpoint (
.well-known/openid-configuration)
Зависимости
Uses (downstream)
- Account service — получает user claims для включения в токен
- API Gateway — публикует public keys для JWT validation
Used by (upstream)
- Auth Service — передает assertion для выдачи токенов
- API Gateway — валидирует JWT токены на входящих запросах
Data Stores (planned)
- PostgreSQL —
token_db(refresh_tokens, revocation_list) - Redis — кеш для revocation list, rate limiting
Паттерны (planned)
- JWT (RS256) — асимметричное подписание токенов
- Rotating Refresh Tokens — при каждом refresh выдается новый refresh token
- Token Revocation — centralized revocation list
- Rate Limiting — защита token endpoints от abuse
Связанные страницы
Фичи
- Authentication Feature — Session Token service обеспечивает token issuance
Архитектура
- Security Architecture / Authentication — JWT-based auth
- Integration Architecture / API Integrations — OAuth2/OIDC endpoints
Сервисы
- Auth Service — оркестрирует получение assertion для токенов
- API Gateway — валидирует токены, публикует JWKS
- Account service — предоставляет user claims
Инженерия
- Backend / API Guidelines — REST API стандарты
- Backend / Idempotency — идемпотентность token refresh
Каталог
- Service Catalog — полный список сервисов