- Хранение учетных данных пользователей в локальной базе данных
- Идентификация и аутентификация
- Автоматическое создание администратора
- Принудительная смена пароля администратора
- Авторизация администратора
- Просмотр списка пользователей
- Добавление/изменение/удаление пользователей
- Экспорт/импорт пользователей
- Просмотрт и экспорт логов
- Безопасное хранение паролей
- Интерфейс пользовтаеля (веб-интерфейс)
- Бэкенд: C++ (Crow)
- Фронтенд: HTML, CSS, JS
- База данных: SQLIte
- Конейнеризация: Docker
Безопасность обеспечена с помощью:
- JWT-токены
- хеширование паролей
- 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) - проверка на необходимость изменения пароля
- logs
- id (key) - идентификатор записи
- user_id (int) - пользователь, совершивший действие
- action (text) - название действия
- target (text) - объект, с которым совершили действие
- date (timestamp) - дата и время действия
- sessions
- id (key) - идентификатор сессии
- user_id (int) - пользователь
- token_hash (text) - SHA256 от JWT
- issued_at (timestamp) - когда выпущена сессия
- expires_at (timestamp) - когда окончится сессия
- is_active (bool) - активность сессии
Страница авторизации
Принудительная смена пароля для админа
Управление пользователями
Системный логи
Импорт и экспорт данных
- Клонируем репозиторий
git clone https://github.com/Mitoshi-Team/central_auth_service.git
- Создаем файл
.envв корневой директории проекта на основе.env.exampleи вносим туда свои переменные для конфигурации:
- JWT
- базы данных
- сервера
- безопасности
- логирования
- CORS
- Запускаем docker-compose
docker compose up -d
- Переходим на сайт (хост и порт сервера указываются в
.env)
https://{SERVER_HOST}:{SERVER_PORT}
Готово!