Skip to content

Сервис централизованной авторизации для промышленных контроллеров в электроэнергетике

License

Notifications You must be signed in to change notification settings

Mitoshi-Team/central_auth_service

Repository files navigation

Сервис централизованной авторизации для Прософт-Системы

О сервисе

Основной функционал:

  • Хранение учетных данных пользователей в локальной базе данных
  • Идентификация и аутентификация
  • Автоматическое создание администратора
  • Принудительная смена пароля администратора
  • Авторизация администратора
    • Просмотр списка пользователей
    • Добавление/изменение/удаление пользователей
    • Экспорт/импорт пользователей
    • Просмотрт и экспорт логов
  • Безопасное хранение паролей
  • Интерфейс пользовтаеля (веб-интерфейс)

Используемый стек:

  • Бэкенд: C++ (Crow)
  • Фронтенд: HTML, CSS, JS
  • База данных: SQLIte
  • Конейнеризация: Docker

Безопасность

Безопасность обеспечена с помощью:

  • JWT-токены
  • хеширование паролей

База данных

  1. users
    • id (key) - идентификатор пользователя
    • last_name (text) - фамилия
    • first_name (text) - имя
    • patronymic (text) - отчество (необязательное поле)
    • login (text) - логин (уникальный)
    • password (text) - захешированный пароль
    • last_login (timestamp) - последний вход в систему
    • is_admin (bool) - проверка на админа
    • force_password_change (bool) - проверка на необходимость изменения пароля
  2. logs
    • id (key) - идентификатор записи
    • user_id (int) - пользователь, совершивший действие
    • action (text) - название действия
    • target (text) - объект, с которым совершили действие
    • date (timestamp) - дата и время действия
  3. sessions
    • id (key) - идентификатор сессии
    • user_id (int) - пользователь
    • token_hash (text) - SHA256 от JWT
    • issued_at (timestamp) - когда выпущена сессия
    • expires_at (timestamp) - когда окончится сессия
    • is_active (bool) - активность сессии

Интерфейс

изображение

Страница авторизации


изображение

Принудительная смена пароля для админа


изображение

Управление пользователями


изображение

Системный логи


изображение

Импорт и экспорт данных

Начало работы

  1. Клонируем репозиторий
git clone https://github.com/Mitoshi-Team/central_auth_service.git
  1. Создаем файл .env в корневой директории проекта на основе .env.example и вносим туда свои переменные для конфигурации:
  • JWT
  • базы данных
  • сервера
  • безопасности
  • логирования
  • CORS
  1. Запускаем docker-compose
docker compose up -d
  1. Переходим на сайт (хост и порт сервера указываются в .env)
https://{SERVER_HOST}:{SERVER_PORT}

Готово!

About

Сервис централизованной авторизации для промышленных контроллеров в электроэнергетике

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors 3

  •  
  •  
  •