К содержанию
Trialix

SCIM: Keycloak

Автоматическое создание и отключение учётных записей Trialix из Keycloak по протоколу SCIM 2.0. Встроенного клиента SCIM в Keycloak нет, нужен сторонний модуль. Мы рекомендуем открытое расширение keycloak-scim-outbound. Настройка описана по документации расширения и Keycloak, живой проверки связки с Trialix пока не было. Сервер SCIM Trialix покрыт автотестами по официальным сценариям проверки Entra и Okta, они прогоняются на каждом выпуске.

Если вход в Trialix уже настроен через Keycloak, а сотрудники заводятся при первом входе («Создавать учётную запись при первом входе»), SCIM нужен только для своевременного отключения уволенных.

Какое расширение

ЧтоЗначение
Названиеkeycloak-scim-outbound
Репозиторийhttps://github.com/Termindiego25/keycloak-scim-outbound
Версия1.2.0 (версия в pom.xml, собрана под Keycloak 26.3.5; готовых сборок в репозитории нет, собирается из исходников)
Проверенный коммит6514623fa4a143dcdf8d9b8af9e7bf581c7b3fc2 (15.08.2026)
ЛицензияGPL-3.0
Что умеетсоздание, изменение и отключение пользователей (PATCH active=false), фильтр по группе Keycloak, выбор userName (логин, почта или атрибут), синхронизация групп в /Groups по желанию

Почему не другие: scim-for-keycloak (Captain-P-Goldfish) стал платным, открытые сборки остановились на Keycloak 20; mitodl/keycloak-scim собран под Keycloak 25 и почти не развивается; keycloak-scim2-storage (suvera) не обновлялся с 2024 года; keycloak-scim-server (Metatavu) - это сервер SCIM внутри Keycloak, а не клиент. Сведения о репозиториях актуальны на 29.09.2026. Проверяйте актуальность перед установкой: расширение поддерживает один автор.

Токен в ЛК

  1. ЛК, «Каталоги», карточка «SCIM 2.0».
  2. Скопируйте «Адрес (Tenant URL)» - https://api.trialix.ru/scim/v2.
  3. «Выпустить токен», скопируйте значение из «Токен (показывается один раз)».

Карточка «SCIM 2.0»: адрес и токен

Сборка и установка

Нужны JDK 17 и Maven 3.8 или новее.

git clone https://github.com/Termindiego25/keycloak-scim-outbound.git
cd keycloak-scim-outbound
git checkout 6514623fa4a143dcdf8d9b8af9e7bf581c7b3fc2
mvn clean package
cp target/keycloak-scim-outbound-1.2.0.jar /opt/keycloak/providers/
/opt/keycloak/bin/kc.sh build
systemctl restart keycloak      # или ваш способ перезапуска

Для Keycloak в контейнере положите jar в /opt/keycloak/providers/ в своём образе и выполните kc.sh build при сборке образа.

Настройка в Keycloak

Слушатель событий

  1. Консоль администратора, нужный realm, «Realm settings», вкладка «Events».
  2. «Event listeners»: добавьте keycloak-scim-outbound. «Save».
  3. «Admin events settings»: включите «Save events». Изменения, которые делает администратор в консоли (создание, блокировка, удаление пользователя), Keycloak передаёт слушателям только при включённых событиях администратора.

Поставщик SCIM

«User federation», «Add provider», keycloak-scim-outbound:

ПолеЗначение
SCIM Base URLhttps://api.trialix.ru/scim/v2
SCIM Tokenтокен trxs_…
Filter Groupгруппа Keycloak с сотрудниками, которым нужен Trialix; пусто - все пользователи realm
userName Strategyemail
Deprovision Actiondeactivate
Sync Groupstrue, если группы Keycloak должны стать отделами Trialix
Sync Groups Filterназвания групп через запятую; пусто - все группы

«Save».

Что учесть

  • Расширение отправляет изменения по событиям. Пользователи и группы, созданные до установки, само оно не переносит. Для первоначального переноса запустите синхронизацию в карточке поставщика в «User federation», если ваша версия расширения её показывает, либо заведите сотрудников в Trialix приглашением или через единый вход.
  • При включённом «Sync Groups» уже существующие группы и их состав не переносятся, только изменения после включения.
  • Вложенные группы Keycloak передаются плоскими группами.
  • Удаление пользователя из группы расширение отправляет как PATCH с фильтром пути members[value eq "…"], Trialix такую форму принимает.
  • userName должен быть почтой на домене, подтверждённом в ЛК, «Вход в компанию», поэтому «userName Strategy» - email.
  • Защита Trialix от массового отключения действует и здесь: больше max(5, 10 % сотрудников) деактиваций за час - ответ 429 и письмо администраторам до нажатия «Разрешить массовые отключения на час».
  • Журнал расширения - в журнале Keycloak, строки начинаются с [keycloak-scim-outbound].

Проверка

  1. Создайте в Keycloak тестового пользователя с почтой на подтверждённом домене и добавьте его в группу из «Filter Group».
  2. В ЛК Trialix, «Сотрудники», появится сотрудник с источником «каталог».
  3. Уберите пользователя из группы «Filter Group» или удалите его в Keycloak: расширение отправит active=false, и учётная запись в Trialix будет деактивирована.

Обновлено 29.09.2026