Учебная практика посвящена изучению и практической реализации протоколов аутентификации OAuth 2.0 и OpenID Connect, которые применяются для безопасного входа пользователей в веб-приложения через сторонние сервисы, на языке Python и фреймворке Flask
Проект состоит из двух независимых Flask-приложений:
клиента (client/) и провайдера (provider/)
- Клиент выступает в роли OAuth-клиента и предоставляет пользователю интерфейс для входа через одного из поддерживаемых провайдеров
- Провайдер реализует полноценный сервер авторизации OAuth 2.0 с расширением OpenID Connect.
- Python 3.13
- uv
- Flask
- PyJWT
- cryptography
- Requests
- Werkzeug
- TailwindCSS
- SQLite
Для запуска приложений требуется менеджер пакетов uv
uv sync
openssl genrsa -out provider/private_key.pem 2048
Необходимо создать .env файлы в директориях provider/ и client/
и настроить переменные окружения по образцу из .env.example
uv run python provider/src/app.py
uv run python client/src/app.py
uv sync --all-extras
PYTHONPATH=provider/src uv run pytest provider/tests/ -v
PYTHONPATH=client/src uv run pytest client/tests/ -v
uv run ruff check .
uv run ruff format --check .
uv run mypy provider/src/ client/src/ --explicit-package-bases