Download the PHP package iperson1337/pimcore-keycloak-bundle without Composer
On this page you can find all versions of the php package iperson1337/pimcore-keycloak-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download iperson1337/pimcore-keycloak-bundle
More information about iperson1337/pimcore-keycloak-bundle
Files in iperson1337/pimcore-keycloak-bundle
Package pimcore-keycloak-bundle
Short Description Keycloak SSO Integration Bundle for Pimcore
License MIT
Informations about the package pimcore-keycloak-bundle
Keycloak SSO для Pimcore 11
Бандл для интеграции административного интерфейса Pimcore 11 с системой единого входа Keycloak SSO.
Возможности
- Аутентификация в административном интерфейсе Pimcore через Keycloak SSO
- Автоматическое создание пользователей Pimcore на основе данных из Keycloak
- Синхронизация данных пользователя при каждом логине
- Поддержка Single Logout (выход одновременно из Pimcore и Keycloak)
- Соответствие ролей Keycloak и Pimcore
- Управление аккаунтом Keycloak из интерфейса Pimcore
Требования
- Pimcore 11
- Symfony 6.4
- PHP 8.1 или выше
- Настроенный сервер Keycloak
Установка
1. Установка пакета через Composer
-
Включите бандл в
config/bundles.php
-
Запуск инсталлятора
-
Добавьте переменные окружения в
.env
файл -
Настройте security.yaml
-
Добавьте маршруты в конфигурацию
-
Обновите cookie_samesite для поддержки OAuth2
- Очистите кэш
Настройка Keycloak
- Создайте новый клиент в Keycloak
- Установите Client ID как
pimcore-admin
(или то, что указано в конфигурации) - Установите Access Type как
confidential
- Включите "Standard Flow" и "Direct Access Grants"
- Установите Valid Redirect URIs как
https://your-pimcore-domain.com/auth/keycloak/check
- После сохранения перейдите на вкладку Credentials для получения Client Secret
Маппинг пользователей
Когда пользователь впервые входит через Keycloak, соответствующий пользователь Pimcore создается автоматически (если включена опция auto_create_users
) со следующим маппингом:
- Keycloak preferred_username → Pimcore username
- Keycloak email → Pimcore email
- Keycloak given_name → Pimcore firstname
- Keycloak family_name → Pimcore lastname
Маппинг ролей
Бандл автоматически преобразует роли Keycloak в роли Symfony Security. Например:
- Роль
admin
в Keycloak преобразуется вROLE_ADMIN
иROLE_PIMCORE_ADMIN
в Symfony и устанавливает флаг admin для пользователя Pimcore - Другие роли Keycloak преобразуются с префиксом
ROLE_
Расширение функциональности
Для настройки более сложной логики маппинга ролей вы можете расширить сервис UserMapperService
:
Затем зарегистрируйте ваш сервис в services.yaml
:
Поддержка Single Logout
Бандл поддерживает Single Logout - когда пользователь выходит из Pimcore, он также выходит из Keycloak. Для этого:
- Убедитесь, что ваш logout route использует контроллер
iperson1337_pimcore_keycloak_auth_logout
- Или настройте ваш собственный logout handler, который будет включать вызов Keycloak endpoints
Логирование
Бандл использует отдельный канал логирования keycloak
. Вы можете настроить его в monolog.yaml
:
Безопасность и рекомендации
- Всегда включайте SSL-верификацию в продакшн-окружении (
ssl_verification: true
) - Регулярно проверяйте и обновляйте клиентские секреты Keycloak
- Используйте HTTPS для всех взаимодействий между Pimcore и Keycloak
- Ограничьте список разрешенных редиректов в настройках клиента Keycloak
Устранение неполадок
При возникновении проблем проверьте:
- Правильность настроек клиента в Keycloak
- Корректность URL-адресов и разрешенных редиректов
- Настройки scope и mappers в Keycloak
- Логи в файле keycloak.log
Дополнительные руководства по устранению неполадок доступны в документации в папке docs/
.
Лицензия
MIT
All versions of pimcore-keycloak-bundle with dependencies
pimcore/pimcore Version ^11.0
symfony/framework-bundle Version ^6.2
knpuniversity/oauth2-client-bundle Version ^2.10
stevenmaguire/oauth2-keycloak Version ^2.0