229 lines
8.0 KiB
Markdown
229 lines
8.0 KiB
Markdown
# 🔐 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.
|
||
|
||
**Всё работает?** Отлично! Можете начинать использовать систему! 🚀
|