8.0 KiB
8.0 KiB
🔐 OpenID Connect с ZITADEL - Документация
🎯 Статус: ✅ Готово к использованию
OpenID Connect с ZITADEL полностью интегрирован в MC Panel!
📚 Документация
🚀 Начало работы
Выберите подходящий файл в зависимости от ваших потребностей:
| Файл | Для кого | Время чтения |
|---|---|---|
| СЛЕДУЮЩИЕ_ШАГИ.md | Все | 2 минуты |
| РЕЗЮМЕ.md | Все | 1 минута |
| ZITADEL_QUICK_START.md | Пользователи | 3 минуты |
| OPENID_CONNECT_SETUP.md | Администраторы | 10 минут |
| OIDC_CHANGES.md | Разработчики | 5 минут |
| СХЕМА_РАБОТЫ.md | Разработчики | 5 минут |
| ИТОГИ_РАБОТЫ.md | Менеджеры | 5 минут |
| ГОТОВО_OIDC.md | Все | 3 минуты |
⚡ Быстрый старт
0. Установите зависимости (если ещё не установлены)
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
# backend/.env
ZITADEL_ISSUER=https://your-instance.zitadel.cloud
ZITADEL_CLIENT_ID=123456789012345678@your-project
ZITADEL_CLIENT_SECRET=your-secret-here
3. Запустите
# Backend
cd backend && python main.py
# Frontend
cd frontend && npm run dev
4. Проверьте
→ http://localhost:3000
→ Кнопка "Войти через ZITADEL" 🔐
📖 Подробная документация
Для пользователей
СЛЕДУЮЩИЕ_ШАГИ.md
Что делать сейчас
- Краткий план действий
- Проверка работы
- Визуальное представление
- Решение проблем
ZITADEL_QUICK_START.md
Быстрый старт за 4 шага
- Создание приложения в ZITADEL
- Настройка .env файла
- Запуск приложения
- Проверка работы
ГОТОВО_OIDC.md
Итоговая инструкция
- Что сделано
- Как использовать
- Документация
- Возможности
Для администраторов
OPENID_CONNECT_SETUP.md
Полное руководство
- Подробная настройка ZITADEL
- Конфигурация backend
- Конфигурация frontend
- Безопасность
- Troubleshooting
РЕЗЮМЕ.md
Краткое резюме
- Что выполнено
- Список файлов
- Инструкция по использованию
- Таблица документации
Для разработчиков
OIDC_CHANGES.md
Технические детали
- Изменения в коде
- Структура данных
- API endpoints
- Зависимости
- Безопасность
СХЕМА_РАБОТЫ.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
🎯 Рекомендации
Для разработки
- Используйте ZITADEL Cloud (бесплатно)
- Тестируйте на localhost
- Проверяйте логи backend
- Используйте DevTools браузера
Для продакшена
- Используйте HTTPS
- Настройте правильные redirect URIs
- Регулярно обновляйте client_secret
- Включите логирование
- Добавьте мониторинг
🆘 Помощь
Проблемы?
| Проблема | Решение |
|---|---|
| Кнопка не появляется | Проверьте .env и перезапустите backend |
| Ошибка redirect_uri | Проверьте настройки в ZITADEL |
| Ошибка invalid_client | Проверьте Client ID и Secret |
| Не создаётся пользователь | Проверьте логи backend |
Подробнее: ZITADEL_QUICK_START.md → Раздел "Проблемы?"
📊 Статистика
- Файлов изменено: 2
- Файлов создано: 8 (документация)
- Файлов удалено: 1
- Строк кода: ~50 изменено
- Строк документации: ~1500 добавлено
- Время настройки: ~7 минут
- Сложность: Низкая
🎉 Готово!
OpenID Connect с ZITADEL полностью интегрирован и готов к использованию!
Следующий шаг
→ Откройте СЛЕДУЮЩИЕ_ШАГИ.md и начните настройку!
Вопросы? Смотрите документацию выше или проверьте логи backend.
Всё работает? Отлично! Можете начинать использовать систему! 🚀