e7e901f6e5
- Add PHP LDAP extension to Docker container - Implement LdapSync class for authentication and user synchronization - Add automatic user sync via cron (every 30 minutes) - Create role-based access control system (admin, manager, viewer) - Add LDAP configuration UI in settings - Support for both Active Directory and OpenLDAP - Group-to-role mapping with flexible configuration - Add 50+ translations (EN + RU) for LDAP features - Include comprehensive setup documentation - Enhance Auth::login() with LDAP fallback - Add LDAP settings page with connection testing
3.9 KiB
3.9 KiB
LDAP Integration - Feature Branch
✅ Реализовано
Базовая инфраструктура:
- ✅ PHP LDAP расширение в Dockerfile
- ✅ Миграции БД (ldap_configs, user_roles, ldap_group_mappings)
- ✅ Класс
LdapSync.php- подключение, аутентификация, синхронизация - ✅ Интеграция в
Auth.php- авто-переключение между LDAP/локальной авторизацией - ✅ Cron задача синхронизации (каждые 30 мин)
- ✅ UI страница настроек LDAP (templates/settings/ldap.twig)
- ✅ Документация LDAP_SETUP.md
Функционал:
- Авторизация через LDAP/Active Directory
- Автоматическая синхронизация пользователей
- Маппинг LDAP групп на роли (admin/manager/viewer)
- Тест подключения к LDAP
- Fallback на локальную авторизацию
⚠️ Требуется доработка
Критичное:
-
Добавить маршруты в
public/index.php:$router->add('GET', '/settings/ldap', [SettingsController::class, 'ldapSettings']); $router->add('POST', '/settings/ldap/save', [SettingsController::class, 'saveLdapSettings']); $router->add('POST', '/settings/ldap/test', [SettingsController::class, 'testLdapConnection']); -
Создать методы в
controllers/SettingsController.php:ldapSettings()- показать страницуsaveLdapSettings()- сохранить конфигурациюtestLdapConnection()- протестировать подключение
-
Добавить переводы в миграции 002-006 (ru, en, es, de, fr, zh):
- ldap_settings
- enable_ldap_auth
- test_connection
- ldap_host / ldap_port / base_dn / bind_dn
- sync_interval
- ldap_group_mappings
Опционально:
- Логи LDAP операций в отдельный файл
- Валидация LDAP настроек на фронтенде
- Более детальные сообщения об ошибках
🧪 Тестирование
Локально:
# Пересобрать контейнеры с LDAP расширением
docker-compose build
# Применить миграции
docker-compose exec web php -r "require 'inc/Config.php'; require 'inc/DB.php'; DB::runMigrations();"
# Тест LDAP подключения
docker-compose exec web php bin/sync_ldap_users.php
Проверить:
- Страница
/settings/ldapоткрывается - Сохранение настроек работает
- Тест подключения выполняется
- Авторизация через LDAP (если настроен тестовый LDAP сервер)
📋 TODO перед слиянием в master
- Добавить маршруты и контроллер
- Добавить переводы для всех языков
- Протестировать с реальным LDAP/AD сервером
- Проверить обратную совместимость (без LDAP всё работает как раньше)
- Обновить README.md с информацией о LDAP
🔒 Безопасность
- ❌ Пароли LDAP не шифруются (TODO: добавить шифрование в БД)
- ✅ Опциональная функция - не влияет на существующий функционал
- ✅ Fallback на локальную авторизацию
- ✅ TLS/SSL поддержка для LDAP
📖 Документация
См. LDAP_SETUP.md для:
- Примеры конфигурации AD/OpenLDAP
- Настройка групп безопасности
- Troubleshooting
- Best practices