Интеграцию с SSO (Single Sign-On — технология единого входа) Keycloak (на базе Open ID) можно использовать, если нет возможности подключить интеграцию с Active Directory.
Интеграция с SSO позволяет:
- Выполнять защищенный вход в приложение через единую учетную запись.
- Создавать и изменять пользователей.
- Назначать роли пользователям.
- Просматривать список пользователей, которые находятся онлайн на инстансе в данный момент (аналогично просмотру пользователей со статусом В сети). Список активных пользователей вы можете просмотреть только на данный момент, без возможности просмотра данных в прошлом.
Подключить интеграцию вы можете в файле конфигурации с помощью специальной настройки:
- Если настройка включена, все пользователи при входе или выходе из Case.one будут перенаправлены на страницу аутентификации Keycloak.
- Если настройка выключена, используется аутентификация согласно настройкам приложения.
При включенной интеграции с SSO Keycloak в Case.one недоступно:
- Создание пользователей.
- Редактирование сведений о пользователе в Case.one, которые указаны в обязательных полях и синхронизируются с SSO Keycloak.
- Изменение ролей пользователей.
- Изменение групп у пользователей.
Авторизация через SSO
При передаче данных SSO Keycloack в Case.one поиск пользователя в Case.one выполняется по значению параметра email.
Благодаря проверке по адресу электронной почты не возникнет ошибка авторизации, связанная с повторным созданием ранее созданного пользователя в SSO Keycloak на другом сервере SSO Keycloak.
При попытке авторизации пользователя с уже зарегистрированным адресом электронной почты:
- Если внешний идентификатор не совпадает:
- Выполнится связь пользователя в Case.one с данными из SSO Keycloack
- Пользователь будет авторизован
- Если идентификатор отсутствует, авторизация будет выполнена.

Вид и функциональность страницы аутентификации реализован на стороне Keycloak.
При авторизации пользователя через SSO Keycloak, если авторизация прошла успешно, на стороне Case.one выполняются проверки:
- Статуса пользователя — заблокированный пользователь не сможет авторизоваться.
- Наличия активных лицензий — если активная подписка найдена, пользователь успешно авторизовывается в Case.one.
- Проверка IP-адреса пользователя:
- Включено ли ограничение доступа по IP-адресу
- Соответствует ли IP-адрес пользователя разрешенному диапазону IP-адресов
Если хоть одна проверка не пройдена:
- Выполняется разрыв активной сессии авторизации пользователя в SSO (Keykloack).
- Пользователь будет перенаправлен на страницу с описанием ошибки:
- Если пользователь заблокирован в Case.one — Пользователь заблокирован, обратитесь к администратору. Для возврата на форму авторизации обновите страницу
- Если отсутствует активная лицензия — Не найдено ни одной активной лицензии, обратитесь к администратору. Для возврата на форму авторизации обновите страницу
- Если IP-адрес пользователя не соответствует разрешенному диапазону IP-адресов — Вы пытаетесь зайти в систему с недопустимым IP-адресом, пожалуйста, обратитесь к администратору. Для возврата на форму авторизации обновите страницу
Создание пользователя
Через SSO будет создана новая карточка пользователя:
- При новой попытке авторизоваться, если пользователь был удален на стороне Case.one.
- Если в Case.one нет аутентифицированного пользователя.
При передаче данных SSO Keycloack предоставляет уникальный идентификатор пользователя в Keycloack, при создании пользователя в Case.one этот идентификатор сохраняется.
По уникальному идентификатору пользователя можно определить, является ли пользователь новым или уже существует в Case.one.
В карточку пользователя будет внесена следующая информация, полученная от SSO:
- Фамилия
- Имя
- Инициалы — добавляются в Case.one на основании ФИО
- Внешний идентификатор
- Должность и Организация — при отсутствии сведений поля будут пустыми
Если пользователь уже существует Case.one, его роли и информация по нему автоматически обновляются при получении данных из SSO.
При включенной интеграции также доступно назначение ролей пользователям на основе сведений, полученных через SSO Keycloak:
- Если сведения о роли получены:
- При наличии в Case.one соответствия пользователю будет назначена указанная роль
- Если в Case.one нет соответствия или роль не указана, пользователь будет создан без роли
- При наличии нескольких совпадений ролей в Case.one пользователю будет назначена первая роль из списка совпавших.