Config | ||
Console | ||
Database | ||
Entities | ||
Http | ||
Providers | ||
Public | ||
Resources | ||
Tests | ||
.gitignore | ||
composer.json | ||
module.json | ||
README.md | ||
start.php |
freescout-openid
Данный модуль предоставлят возможность аутентификации через OpenID для Freescout
Тестирование и разработка модуля происходили для интеграции с Keycloak.
Для корректной работы модуля требуется установить расширение php curl на сервер.
Данный модуль полностью заменяет стандартную форму логина.
Если вам необходимо попасть на стандартую форму логина, добавьте query параметр disable_openid
к пути логина: (/login?disable_openid=1
)
Установка
- загрузите модуль в папку Modules внутри установленного экземпляра FreeScout, название папки модуля должно быть OpenID, в ином случае работать НЕ БУДЕТ.
- включите модуль в панели администратора FreeScout
- выполните настройку модуля, заполнив требуемые поля (client id/secret/etc)
Привязка агентов к почтовым ящикам
В списке параметров в административной панели присутствует параметр mailbox_ids (Default mailbox IDs for linking users)
Если требуется привязывать при аутентификации пользователей к конкретным Mailbox, установите параметр как непустую строку, где через запятую слитно указываются требуемые идентификаторы почтовых ящиков (например 1,2,3). Во время любой аутентификации пользователя через Identity Provider, пользователю будут назначены права на работу с этими почтовыми ящиками.
Заметки
В связи с тем, что аутентификация будет работать в режиме SSO, требуется учитывать, что пользователь после выхода в Identity Provider не будет разлогинен во Freescout.
Рекомендуется установить во Freescout переменную окружения SESSION_LIFETIME (измеряется в минутах), равную вашим потребностям (я применяю 30 минут).
В случае, когда сессия во Freescout короче, чем в Identity Provider и пользователь там ещё ааторизован, пользователь будет перенаправлен в провайдера, а затем обратно почти мгноваенно.
Благодарности ❤️
Большая благодарность @fhirter-vkb, чей модуль fhirter-vkb/freescout-oauth стал фундаментом данного решения.