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

Единый вход через Keycloak

Настройка единого входа в Trialix через Keycloak по OpenID Connect или SAML 2.0. Оба варианта проверены вживую и проверяются автотестом на каждом выпуске Trialix (Keycloak 26.4): проверочный вход, вход сотрудника, группы в отделы, TOTP для администраторов, отклонение поддельного ответа SAML. Общие правила единого входа - в разделе «Вход в компанию и Яндекс 360».

Перед началом

  • В лицензии компании есть единый вход (тарифы Бизнес и Корпорация).
  • В ЛК, «Вход в компанию», «Домены компании» подтверждён домен почты сотрудников.
  • У пользователей Keycloak заполнена почта на этом домене.
  • Для OIDC: адреса Keycloak доступны из интернета по HTTPS с сертификатом, которому доверяют публичные браузеры. Серверы Trialix сами обращаются к discovery, token endpoint и JWKS. Для SAML достаточно, чтобы Keycloak был доступен браузеру сотрудника: ответ приходит через браузер.

Адреса Trialix

ЧтоЗначение
Redirect URI (OIDC)https://app.trialix.ru/auth/sso/callback
Entity ID и метаданные SP (SAML)https://app.trialix.ru/auth/sso/saml/metadata/<ID компании>, точный адрес показан в мастере
ACS (SAML, HTTP-POST)https://app.trialix.ru/auth/sso/saml/acs

Мастер «Единый вход (SSO)»: выбор провайдера и адреса для провайдера

Вариант 1. OpenID Connect

Клиент в Keycloak

  1. Консоль администратора Keycloak, нужный realm, «Clients», «Create client».
  2. «Client type»: OpenID Connect. «Client ID»: например trialix. «Next».
  3. «Capability config»: «Client authentication» - On, «Standard flow» - On, «Direct access grants» - Off. «Next».
  4. «Login settings»: «Valid redirect URIs» - https://app.trialix.ru/auth/sso/callback. «Save».
  5. Вкладка «Credentials»: скопируйте «Client secret».
  6. Рекомендуем: вкладка «Advanced», «Proof Key for Code Exchange Code Challenge Method» - S256. Trialix всегда отправляет PKCE S256.

Группы и признак MFA

  1. «Clients», trialix, вкладка «Client scopes», trialix-dedicated, «Add mapper», «By configuration», «Group Membership».
  2. «Name» и «Token Claim Name»: groups. «Full group path» - Off. «Add to ID token» - On. «Save».
  3. Чтобы Trialix видел многофакторный вход и не спрашивал у администраторов TOTP повторно: в Keycloak 25 и новее добавьте тем же способом mapper «Authentication Method Reference (AMR)» с «Add to ID token» - On. Trialix принимает значения otp, mfa, hwk, sms, swk, fido, totp в amr или уровни 2, 3, aal2, aal3, loa2, loa3 в acr.

Параметры в ЛК

ЛК, «Вход в компанию», карточка «Единый вход (SSO)»:

ПолеЗначение
ПровайдерKeycloak
Discovery URL или issuerhttps://sso.company.ru/realms/company или полный адрес https://sso.company.ru/realms/company/.well-known/openid-configuration
Client IDtrialix
Client secretсекрет из вкладки «Credentials»
Scopeopenid email profile
Утверждение с группамиgroups

«Сохранить параметры». Trialix сразу проверяет адрес discovery и сообщает, если он не отвечает.

Вариант 2. SAML 2.0

Клиент в Keycloak

  1. «Clients», «Create client». «Client type»: SAML. «Client ID»: Entity ID из мастера Trialix (https://app.trialix.ru/auth/sso/saml/metadata/<ID компании>). «Next».
  2. «Valid redirect URIs» и «Assertion Consumer Service POST Binding URL» (вкладка «Advanced»): https://app.trialix.ru/auth/sso/saml/acs. «Save».
  3. Вкладка «Settings», блок «SAML capabilities»: «Name ID format» - email, «Force name ID format» - On, «Force POST binding» - On.
  4. Блок «Signature and Encryption»: «Sign documents» - On, «Sign assertions» - On. Trialix требует подпись и ответа, и утверждения.
  5. Вкладка «Keys»: «Client signature required» - Off. Запросы Trialix не подписываются.
  6. Вкладка «Client scopes», …-dedicated, «Add mapper», «By configuration»:
    • «User Property»: Property email, SAML Attribute Name email, NameFormat Basic;
    • «Group list»: SAML Attribute Name groups, «Full group path» - Off;
    • для имени и фамилии - «X500 givenName» и «X500 surname».

Параметры в ЛК

ПолеЗначение
ПровайдерДругой SAML 2.0
Адрес входа IdP (SSO URL)https://sso.company.ru/realms/company/protocol/saml
Entity ID провайдераhttps://sso.company.ru/realms/company
Сертификат подписи IdP (PEM)«Realm settings», «Keys», ключ RS256, «Certificate»; или значение ds:X509Certificate из https://sso.company.ru/realms/company/protocol/saml/descriptor
Атрибут с группамиgroups

Сертификат можно вставить с заголовками -----BEGIN CERTIFICATE----- или без них.

Проверочный вход и включение

  1. В карточке «Единый вход (SSO)» нажмите «Проверить вход».
  2. Войдите в Keycloak учётной записью сотрудника с почтой на подтверждённом домене. Учётная запись в Trialix при этом не создаётся.
  3. Trialix покажет «Проверка пройдена: провайдер вернул …, группы: …». Если группы не пришли - проверьте mapper.
  4. Нажмите «Включить SSO для сотрудников». Состояние сменится на «включён».
  5. В карточке «Правила входа» задайте сопоставление групп и отделов, например trialix-lawyers = Юридический отдел, и остальные правила (см. «Правила входа»).

Любое изменение параметров снимает отметку проверки, и SSO включается снова только после новой проверки.

Частые ошибки

СообщениеЧто сделать
«Провайдер не отвечает по адресу discovery»адрес Keycloak недоступен из интернета или сертификат не доверенный
«Провайдер отказал при обмене кода: invalid_client»неверный Client secret или выключено «Client authentication»
«Провайдер отказал при обмене кода: invalid_grant»Redirect URI в клиенте не совпадает с https://app.trialix.ru/auth/sso/callback
«Провайдер вернул …: домен не подтверждён для компании»у пользователя почта не на подтверждённом домене
«Подпись ответа SAML не прошла проверку»в Trialix вставлен не тот сертификат или в Keycloak выключено «Sign documents» или «Sign assertions»

Полный список - в разделе «Диагностика ошибок».

Обновлено 29.09.2026