# 🔐 OpenID Connect с ZITADEL - Документация ## 🎯 Статус: ✅ Готово к использованию OpenID Connect с ZITADEL полностью интегрирован в MC Panel! ## 📚 Документация ### 🚀 Начало работы Выберите подходящий файл в зависимости от ваших потребностей: | Файл | Для кого | Время чтения | |------|----------|--------------| | **[СЛЕДУЮЩИЕ_ШАГИ.md](СЛЕДУЮЩИЕ_ШАГИ.md)** | Все | 2 минуты | | **[РЕЗЮМЕ.md](РЕЗЮМЕ.md)** | Все | 1 минута | | **[ZITADEL_QUICK_START.md](ZITADEL_QUICK_START.md)** | Пользователи | 3 минуты | | **[OPENID_CONNECT_SETUP.md](OPENID_CONNECT_SETUP.md)** | Администраторы | 10 минут | | **[OIDC_CHANGES.md](OIDC_CHANGES.md)** | Разработчики | 5 минут | | **[СХЕМА_РАБОТЫ.md](СХЕМА_РАБОТЫ.md)** | Разработчики | 5 минут | | **[ИТОГИ_РАБОТЫ.md](ИТОГИ_РАБОТЫ.md)** | Менеджеры | 5 минут | | **[ГОТОВО_OIDC.md](ГОТОВО_OIDC.md)** | Все | 3 минуты | ## ⚡ Быстрый старт ### 0. Установите зависимости (если ещё не установлены) ```bash cd backend pip install authlib==1.3.0 httpx==0.26.0 ``` ### 1. Создайте приложение в ZITADEL ``` → zitadel.cloud → New Application → Web Application → Code (with PKCE) → Redirect URI: http://localhost:8000/api/auth/oidc/zitadel/callback ``` ### 2. Настройте .env ```bash # backend/.env ZITADEL_ISSUER=https://your-instance.zitadel.cloud ZITADEL_CLIENT_ID=123456789012345678@your-project ZITADEL_CLIENT_SECRET=your-secret-here ``` ### 3. Запустите ```bash # Backend cd backend && python main.py # Frontend cd frontend && npm run dev ``` ### 4. Проверьте ``` → http://localhost:3000 → Кнопка "Войти через ZITADEL" 🔐 ``` ## 📖 Подробная документация ### Для пользователей #### [СЛЕДУЮЩИЕ_ШАГИ.md](СЛЕДУЮЩИЕ_ШАГИ.md) **Что делать сейчас** - Краткий план действий - Проверка работы - Визуальное представление - Решение проблем #### [ZITADEL_QUICK_START.md](ZITADEL_QUICK_START.md) **Быстрый старт за 4 шага** - Создание приложения в ZITADEL - Настройка .env файла - Запуск приложения - Проверка работы #### [ГОТОВО_OIDC.md](ГОТОВО_OIDC.md) **Итоговая инструкция** - Что сделано - Как использовать - Документация - Возможности ### Для администраторов #### [OPENID_CONNECT_SETUP.md](OPENID_CONNECT_SETUP.md) **Полное руководство** - Подробная настройка ZITADEL - Конфигурация backend - Конфигурация frontend - Безопасность - Troubleshooting #### [РЕЗЮМЕ.md](РЕЗЮМЕ.md) **Краткое резюме** - Что выполнено - Список файлов - Инструкция по использованию - Таблица документации ### Для разработчиков #### [OIDC_CHANGES.md](OIDC_CHANGES.md) **Технические детали** - Изменения в коде - Структура данных - API endpoints - Зависимости - Безопасность #### [СХЕМА_РАБОТЫ.md](СХЕМА_РАБОТЫ.md) **Визуальная схема** - Поток аутентификации - Диаграммы - Структура данных - Безопасность #### [ИТОГИ_РАБОТЫ.md](ИТОГИ_РАБОТЫ.md) **Полный отчёт** - Что было сделано - Проверка качества - Статистика - Результаты ## 🔍 Структура проекта ``` MC Panel/ ├── backend/ │ ├── main.py # OAuth инициализация и endpoints │ ├── oidc_config.py # Конфигурация ZITADEL │ ├── .env.example # Пример настроек │ └── requirements.txt # Зависимости (authlib, httpx) │ ├── frontend/ │ └── src/ │ ├── App.jsx # Обработка callback │ └── components/ │ └── Auth.jsx # Кнопка ZITADEL │ └── docs/ ├── СЛЕДУЮЩИЕ_ШАГИ.md # Что делать сейчас ├── РЕЗЮМЕ.md # Краткое резюме ├── ZITADEL_QUICK_START.md # Быстрый старт ├── OPENID_CONNECT_SETUP.md # Полная инструкция ├── OIDC_CHANGES.md # Технические детали ├── СХЕМА_РАБОТЫ.md # Визуальная схема ├── ИТОГИ_РАБОТЫ.md # Полный отчёт ├── ГОТОВО_OIDC.md # Итоговая инструкция └── README_OIDC.md # Этот файл ``` ## ✨ Возможности ### Функциональность - ✅ Вход через ZITADEL - ✅ Автоматическое создание пользователей - ✅ Обновление данных при входе - ✅ JWT токены для MC Panel - ✅ Безопасность (PKCE, state, nonce) ### Интерфейс - ✅ Кнопка "Войти через ZITADEL" 🔐 - ✅ Автоматический вход после OAuth - ✅ Красивый дизайн - ✅ Адаптивность ### Безопасность - ✅ PKCE (Proof Key for Code Exchange) - ✅ State parameter (CSRF защита) - ✅ Nonce (replay защита) - ✅ JWT с истечением - ✅ Проверка redirect_uri ## 🎯 Рекомендации ### Для разработки 1. Используйте ZITADEL Cloud (бесплатно) 2. Тестируйте на localhost 3. Проверяйте логи backend 4. Используйте DevTools браузера ### Для продакшена 1. Используйте HTTPS 2. Настройте правильные redirect URIs 3. Регулярно обновляйте client_secret 4. Включите логирование 5. Добавьте мониторинг ## 🆘 Помощь ### Проблемы? | Проблема | Решение | |----------|---------| | Кнопка не появляется | Проверьте `.env` и перезапустите backend | | Ошибка redirect_uri | Проверьте настройки в ZITADEL | | Ошибка invalid_client | Проверьте Client ID и Secret | | Не создаётся пользователь | Проверьте логи backend | **Подробнее:** [ZITADEL_QUICK_START.md](ZITADEL_QUICK_START.md) → Раздел "Проблемы?" ## 📊 Статистика - **Файлов изменено:** 2 - **Файлов создано:** 8 (документация) - **Файлов удалено:** 1 - **Строк кода:** ~50 изменено - **Строк документации:** ~1500 добавлено - **Время настройки:** ~7 минут - **Сложность:** Низкая ## 🎉 Готово! **OpenID Connect с ZITADEL полностью интегрирован и готов к использованию!** ### Следующий шаг → Откройте **[СЛЕДУЮЩИЕ_ШАГИ.md](СЛЕДУЮЩИЕ_ШАГИ.md)** и начните настройку! --- **Вопросы?** Смотрите документацию выше или проверьте логи backend. **Всё работает?** Отлично! Можете начинать использовать систему! 🚀