Интеграция с SSO Keycloak

Интеграцию с 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-адреса пользователя:
  • Проверка наличия ограничений по количеству пользователей в системе согласно тарифному плану.
  • Проверка наличия запрета авторизации на инстансе Case.one пользователям с определенными ролями.

Если хоть одна проверка не пройдена:

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

Создание пользователя

Через SSO будет создана новая карточка пользователя:

  • При новой попытке авторизоваться, если пользователь был удален на стороне Case.one.
  • Если в Case.one нет аутентифицированного пользователя.

При передаче данных SSO Keycloack предоставляет уникальный идентификатор пользователя в Keycloack, при создании пользователя в Case.one этот идентификатор сохраняется.

По уникальному идентификатору пользователя можно определить, является ли пользователь новым или уже существует в Case.one


В карточку пользователя будет внесена следующая информация, полученная от SSO:

  • Фамилия
  • Имя
  • Отчество
  • Инициалы — добавляются в Case.one на основании ФИО
  • Email
  • Внешний идентификатор
  • Должность и Организация — при отсутствии сведений поля будут пустыми

Если пользователь уже существует Case.one, его роли и информация по нему автоматически обновляются при получении данных из SSO.


При включенной интеграции с SSO Keycloack данные о пользователе будут автоматически обновляться, например:

  • При изменении значения поля Отчество в SSO Keycloack значение будет автоматически обновлено в Case.one при следующем обмене данными
  • Если поле Отчество не заполнено в SSO Keycloack, значение поля в Case.one будет сброшено при следующем обмене данными
  • В конфигурационном файле возможно указать соответствия поля Отчество

При включенной интеграции также доступно назначение ролей пользователям на основе сведений, полученных через SSO Keycloak:

  • Если сведения о роли получены, при наличии в Case.one соответствия пользователю будет назначена указанная роль.
  • При наличии нескольких совпадений ролей в Case.one пользователю будет назначена первая роль из списка совпавших.
  • Если роль не найдена или не указана, в Case.one будет автоматически создана новая роль:
    • Название роли в Case.one будет получено из SSO Keycloack
    • В роли будут назначены права Просмотр на раздел Личный кабинет → Профиль (на остальные разделы права не будут присвоены) 
  • Если интеграция включена, в Case.one недоступно создавать, удалять роли или изменять название.
  • При назначении или изменении роли через SSO Keycloack в разделе Действия в системе в Case.one будут добавлен следующие события от имени системы (Workflow Service):
    • Редактирование данных пользователя
    • Создание роли
    • Изменение прав созданной роли на Просмотр в разделе Личный кабинет → Профиль