Детальная информация

Название Разработка системы аутентификации, авторизации и аудита для REST API: выпускная квалификационная работа бакалавра: направление 09.03.04 «Программная инженерия» ; образовательная программа 09.03.04_03 «Разработка программного обеспечения» = Development of an authentication, authorization and auditing system for REST API
Авторы Иванов Роман Андреевич
Научный руководитель Александрова Ольга Всеволодовна
Организация Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности
Выходные сведения Санкт-Петербург, 2026
Коллекция Выпускные квалификационные работы ; Общая коллекция
Тематика аутентификация ; авторизация ; аудит ; REST API ; JWT ; TOTP ; gateway ; микросервисная архитектура ; GO ; authentication ; authorization ; audit ; microservice architecture
Тип документа Выпускная квалификационная работа бакалавра
Язык Русский
Уровень высшего образования Бакалавриат
Код специальности ФГОС 09.03.04
Группа специальностей ФГОС 090000 - Информатика и вычислительная техника
DOI 10.18720/SPBPU/3/2026/vr/vr26-1594
Права доступа Доступ по паролю из сети Интернет (чтение, печать, копирование)
Дополнительно Новинка
Ключ записи ru\spstu\vkr\41145
Дата создания записи 14.07.2026

Разрешенные действия

Действие 'Прочитать' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети

Действие 'Загрузить' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети

Группа Анонимные пользователи
Сеть Интернет

Целью данной работы является исследование методов управления доступом в распределённых веб-системах и разработка собственной системы с двухфакторной аутентификацией, гибким управлением правами и полным учётом запросов. В процессе исследования были поставлены и решены следующие задачи: 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.

Место доступа Группа пользователей Действие
Локальная сеть ИБК СПбПУ Все
Прочитать Печать Загрузить
Интернет Авторизованные пользователи СПбПУ
Прочитать Печать Загрузить
Интернет Анонимные пользователи
  • ОПРЕДЕЛЕНИЯ, ОБОЗНАЧЕНИЯ И СОКРАЩЕНИЯ
  • ВВЕДЕНИЕ
    • Цель работы
  • ГЛАВА 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
  • ЗАКЛЮЧЕНИЕ
  • СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ
  • Приложение А
...