Skip to content

uk User Manager Auth

wiki-sync edited this page Apr 15, 2026 · 1 revision

Автентифікація, керування користувачами та безпека

Автентифікація модулів за токеном

  • Усі API-запити вимагають Authorization: Bearer <token>
  • Токени зберігаються у файлах /secure/module_tokens/*.token
  • Кожен модуль отримує власний токен під час встановлення
  • Токен для розробки: задайте змінну оточення DEV_MODULE_TOKEN для тестування

Модель безпеки

  • iptables: UI-маршрути (/api/ui/*) доступні лише з localhost
  • API-маршрути (/api/v1/*) вимагають Bearer-токен
  • Модулі не мають прямого доступу до каталогу /secure/
  • Події core.* можуть публікувати лише компоненти ядра
  • ACL Module Bus контролює дозволи для кожного типу модуля

Обмеження частоти запитів

  • 120 запитів за 60 секунд на клієнта
  • Налаштовується у RateLimitMiddleware

Профілі користувачів (системний модуль user_manager)

  • Підтримка кількох профілів користувачів
  • Автентифікація за PIN-кодом (4-8 цифр)
  • Захист від перебору PIN-коду: 5 спроб — блокування на 10 хвилин

Біометрична автентифікація (лише локально)

  • Face ID через камеру (розпізнавання обличчя)
  • Speaker ID за голосовим відбитком (resemblyzer)
  • Уся обробка виконується локально, без хмарних сервісів
  • Біометричні дані зберігаються у /secure/

Сховище секретів (системний модуль secrets_vault)

  • Шифрування AES-256-GCM
  • Зберігає OAuth-токени, API-ключі
  • Розташування: /secure/tokens/
  • API: POST /api/v1/secrets, GET /api/v1/secrets
  • Модулі отримують доступ через API, ніколи не читаючи /secure/ напряму

Журнал аудиту

  • Усі дії користувачів логуються до таблиці SQLite audit_log
  • 10 000 записів з автоматичною ротацією
  • Поля: action, user_id, timestamp, details
  • Запити через API системного модуля user_manager

Інтеграція з OAuth

  • Google OAuth для прив'язки облікового запису
  • Tuya OAuth для інтеграції розумних пристроїв
  • Облікові дані у .env: GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET тощо

Tailscale VPN (системний модуль remote_access)

  • Безпечний віддалений доступ через Tailscale
  • Ключ автентифікації у .env: TAILSCALE_AUTH_KEY
  • Прокидання портів не потрібне

Clone this wiki locally