Details

Title Разработка системы аутентификации, авторизации и аудита для REST API: выпускная квалификационная работа бакалавра: направление 09.03.04 «Программная инженерия» ; образовательная программа 09.03.04_03 «Разработка программного обеспечения» = Development of an authentication, authorization and auditing system for REST API
Creators Иванов Роман Андреевич
Scientific adviser Александрова Ольга Всеволодовна
Organization Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности
Imprint Санкт-Петербург, 2026
Collection Выпускные квалификационные работы ; Общая коллекция
Subjects аутентификация ; авторизация ; аудит ; REST API ; JWT ; TOTP ; gateway ; микросервисная архитектура ; GO ; authentication ; authorization ; audit ; microservice architecture
Document type Bachelor graduation qualification work
Language Russian
Level of education Bachelor
Speciality code (FGOS) 09.03.04
Speciality group (FGOS) 090000 - Информатика и вычислительная техника
DOI 10.18720/SPBPU/3/2026/vr/vr26-1594
Rights Доступ по паролю из сети Интернет (чтение, печать, копирование)
Additionally New arrival
Record key ru\spstu\vkr\41145
Record create date 7/14/2026

Allowed Actions

Action 'Read' will be available if you login or access site from another network

Action 'Download' will be available if you login or access site from another network

Group Anonymous
Network Internet

Целью данной работы является исследование методов управления доступом в распределённых веб-системах и разработка собственной системы с двухфакторной аутентификацией, гибким управлением правами и полным учётом запросов. В процессе исследования были поставлены и решены следующие задачи: 1.анализ предметной области и существующих решений; 2.проектирование микросервисной архитектуры системы; 3.разработка схемы базы данных; 4.реализация API-шлюза Gateway с системой валидации параметров и асинхронным логированием; 5.реализация сервиса аутентификации ServiceJwt с поддержкой JWT, TOTP и управления сессиями в Redis; 6.разработка вспомогательных библиотек; 7.создание демонстрационного веб-интерфейса; 8.проведение тестирования разработанной системы. В результате разработано и протестировано распределённое решение, обеспечивающее двухфакторную аутентификацию (TOTP), гибкое управление правами на основе ролевой модели с приоритетами, полный аудит всех запросов с асинхронным логированием, автоматическое восстановление gRPC-соединений и многоуровневую обработку ошибок с локализацией. Разработанная система включает API-шлюз Gateway и сервис аутентификации ServiceJwt, реализованные на языке Go с использованием технологий gRPC, MySQL и Redis. Созданные вспомогательные библиотеки CustomErrors, GrpcUnidirection и Logger обеспечивают стандартизацию ошибок, надёжную межсервисную коммуникацию и гибкое логирование. Реализованный демонстрационный веб-интерфейс подтверждает работоспособность системы и поддерживает двухфакторную аутентификацию с локализацией на русском и английском языках. Разработанное решение устраняет ключевые ограничения существующих аналогов (отсутствие встроенной 2FA, слабый аудит, негибкая фильтрация данных) и может быть интегрировано в коммерческие и некоммерческие проекты в качестве готового open-source решения для обеспечения безопасности REST API.

This work is devoted to the study of access control methods in distributed web systems and to develop a proprietary system with two-factor authentication, flexible access control and full request logging. The following tasks were formulated and solved during the research: 1.analysis of the subject area and existing solutions; 2.design of the microservice architecture; 3.database schema development; 4.implementation of the API Gateway with request validation and asynchronous logging; 5.implementation of the ServiceJwt authentication service with JWT, TOTP and Redis-based session management; 6.development of supporting libraries; 7.creation of a demonstration web interface; 8.testing of the developed system. As a result, a distributed solution has been developed and tested, providing two-factor authentication (TOTP), flexible priority-based role-based access control, complete request auditing with asynchronous logging, automatic gRPC connection recovery and multi-level error handling with localization. The developed system includes an API Gateway and an authentication service (ServiceJwt), implemented in Go using gRPC, MySQL and Redis. The supporting libraries CustomErrors, GrpcUnidirection and Logger ensure error standardization, reliable inter-service communication and flexible logging. The implemented demonstration web interface confirms the systems operability and supports two-factor authentication with localization in Russian and English. The developed solution eliminates the key limitations of existing alternatives (lack of built-in 2FA, weak auditing, inflexible data filtering) and can be integrated into commercial and non-commercial projects as a ready-made open-source solution for REST API security.

Network User group Action
ILC SPbPU Local Network All
Read Print Download
Internet Authorized users SPbPU
Read Print Download
Internet Anonymous
  • ОПРЕДЕЛЕНИЯ, ОБОЗНАЧЕНИЯ И СОКРАЩЕНИЯ
  • ВВЕДЕНИЕ
    • Цель работы
  • ГЛАВА 1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ
    • 1.1. Проблемы управления доступом в современных RE
      • 1.1.1. Безопасность и несанкционированный доступ
      • 1.1.2. Масштабируемость и управление правами
      • 1.1.3. Производительность и отказоустойчивость
      • 1.1.4. Совместимость и стандартизация
      • 1.1.5. Выводы
    • 1.2. Анализ существующих решений
      • 1.2.1. Коммерческие решения
      • 1.2.2. Open Source решения
      • 1.2.3. Сравнительный анализ существующих решений
      • 1.2.4. Выводы по обзору
    • 1.3. Заключение по главе 1
  • ГЛАВА 2. АРХИТЕКТУРА ПРЕДЛАГАЕМОГО РЕШЕНИЯ
    • 2.1. Общая архитектура системы
    • 2.2. Проектирование базы данных
    • 2.3. Проектирование API
    • 2.4. Проектирование системы обработки ошибок
    • 2.5. Проектирование gRPC-коммуникации
    • 2.6. Проектирование системы конфигурации
    • 2.7. Проектирование демонстрационного веб-интерфей
      • 2.7.1. Страницы веб-интерфейса
      • 2.7.2. Функциональные возможности
    • 2.8. Заключение по главе 2
  • ГЛАВА 3. РЕАЛИЗАЦИЯ
    • 3.1. Реализация библиотеки CustomErrors
      • 3.1.1. Структура библиотеки
      • 3.1.2. Механизм локализации ошибок
    • 3.2. Реализация библиотеки GrpcUnidirection
      • 3.2.1. Структура библиотеки
      • 3.2.2. Алгоритм автоматического восстановления сое
      • 3.2.3. Асинхронная обработка запросов на сервере
    • 3.3. Реализация библиотеки Logger
      • 3.3.1. Структура библиотеки
      • 3.3.2. Уровни логирования
      • 3.3.3. Определение места вызова
      • 3.3.4. Настройка целевого вывода
    • 3.4. Реализация API-шлюза Gateway
      • 3.4.1. Структура сервера и маршрутизация
      • 3.4.2. Система валидации параметров запросов
      • 3.4.3. Middleware для проверки JWT-токенов
      • 3.4.4. Асинхронное логирование запросов
      • 3.4.5. Горячая перезагрузка конфигурации
    • 3.5. Реализация сервиса аутентификации ServiceJwt
      • 3.5.1. Структура сервиса и инициализация
      • 3.5.2. Реализация обработчиков запросов
      • 3.5.3. Управление JWT-токенами
      • 3.5.4. Двухфакторная аутентификация (TOTP)
      • 3.5.5. Управление сессиями в Redis
      • 3.5.6. Проверка прав доступа
      • 3.5.7. Отправка email-уведомлений
    • 3.6. Реализация демонстрационного веб-интерфейса
      • 3.6.1. Структура веб-приложения
      • 3.6.2. Управление токенами на клиенте
      • 3.6.3. Локализация интерфейса
      • 3.6.4. Примеры работы системы
    • 3.7. Заключение по главе 3
  • ГЛАВА 4. ТЕСТИРОВАНИЕ
    • 4.1. Модульное тестирование
      • 4.1.1. Тестирование валидации конфигурации Gateway
      • 4.1.2. Тестирование валидации конфигурации Service
      • 4.1.3. Тестирование механизма кэширования проверок
      • 4.1.4. Тестирование модуля аутентификации
      • 4.1.5. Тестирование проверки прав доступа
    • 4.2. Интеграционное тестирование API
      • 4.2.1. Тестирование аутентификации
      • 4.2.2. Тестирование ролевой модели
      • 4.2.3. Тестирование управления пользователями
      • 4.2.4. Тестирование двухфакторной аутентификации
      • 4.2.5. Тестирование модуля аудита
      • 4.2.6. Тестирование маскирования ошибок
      • 4.2.7. Тестирование демонстрационного интерфейса
    • 4.3. Нагрузочное тестирование
      • 4.3.1. Методика нагрузочного тестирования
      • 4.3.2. Анализ результатов нагрузочного тестировани
    • 4.4. Тестирование отказоустойчивости
      • 4.4.1. Обрыв gRPC-соединения
      • 4.4.2. Недоступность Redis
      • 4.4.3. Недоступность MySQL
      • 4.4.4. Graceful shutdown
    • 4.5. Анализ выявленных проблем и их устранение
      • 4.5.1. Задержка обновления кэша прав доступа
      • 4.5.2. Утечка информации через HTTP-статусы
      • 4.5.3. Проблемы с обработкой вложенных структур в
    • 4.6. Заключение по главе 4
  • ЗАКЛЮЧЕНИЕ
  • СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ
  • Приложение А
...