Интеграция с 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 выполняются проверки:

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

  • Выполняется разрыв активной сессии авторизации пользователя в 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 Keycloak:

  • Если сведения о роли получены:
    • При наличии в Case.one соответствия пользователю будет назначена указанная роль
    • Если в Case.one нет соответствия или роль не указана, пользователь будет создан без роли
  • При наличии нескольких совпадений ролей в Case.one пользователю будет назначена первая роль из списка совпавших.