← К схеме

Auth / Security

cross-cutting concern

Сквозной слой безопасности, пронизывающий все модули. Отвечает за аутентификацию пользователей, авторизацию действий и контроль доступа к данным на уровне отдельных записей.

Архитектура

Точки входа
Authentication — кто пользователь?
Идентификация пользователя. Все точки входа сходятся к единому user_id.
argon2id JWT HS256 NIST 800-63B zxcvbn + HIBP SSO/OIDC MFA TOTP
Authorization — что разрешено?
Owner Admin Member
Эндпоинты проверяют permissions через require()ROLE_PERMISSIONS, а не роли напрямую
Data-level ACL — что доступно?
Источник данных — единственная инстанция, определяющая, кто что видит.
Двойной фильтр: Source ACL + Platform ACL — доступ предоставляется лишь при срабатывании обоих.
Identity Mapping Container ACL Email auto-match Fail-safe

Токены и сессии

запрос Access истёк Refresh новая пара
Access Token короткий · 15м
Тип JWT, stateless
TTL 15 минут
Хранение В памяти JS
Передача Authorization: Bearer
Header alg, typ, kid
Claims sub, role, exp, iat, jti, iss, aud
ротация
Refresh Token длинный · 30д
Тип Stateful (БД)
TTL 30д sliding / 90д ceiling
Хранение cookie
Флаги httpOnly, Secure, SameSite=Strict
Семья family_id (UUIDv7)
⟳ Rotation & Reuse Detection
Каждый refresh выдаёт новую пару, старый токен инвалидируется. Повторное использование отозванного токена влечёт аннулирование всей цепочки (token family), но не всех сессий пользователя.

Защита

запрос TLS Заголовки CORS CSRF Перебор Крипто-ядро Аудит-лог ✓ обработка
Рубеж защиты от перебора — детально:
по IP с 3-й неудачи 10 неудач
порог по IP
Rate limit по IP
20 попыток / 15 мин. Redis sliding window.
с 3-й неудачи
Задержка на уровне аккаунта
Первые 2 попытки без задержки, затем 1с → 2с → 4с → 8с (предел 30с). На стороне сервера.
после 10 неудач
Alert Owner/Admin
Уведомление Owner/Admin — без блокировки.
API

Workzone Проектирование

Детальные решения по проектированию модуля.


Макеты Wireframes

Экраны — описание и макет каждого.


Фичи Features

Многоэкранные сценарии — описание, технические требования, переходы.