Skip to content

Аутентификация через SAML 2.0

Важно

ТестОпс поддерживает только SAML версии 2.0.

Аутентификация через SAML доступна только в серверной версии ТестОпс.

SAML — открытый стандарт обмена аутентификационными данными между провайдером учетных записей (Identity Provider, IdP) и основным сервисом (Service Provider, SP). Если вы настроите SAML-интеграцию для ТестОпс, пользователи смогут использовать существующие в IdP учетные записи для входа в ТестОпс.

Как это работает

В основе SAML лежит общение сервиса (в данном случае ТестОпс) с IdP (например, Okta и Keycloak) с помощью HTTP-перенаправлений:

  1. Пользователь пытается открыть страницу ТестОпс.
  2. Если пользователь не аутентифицирован, ТестОпс предлагает использовать SAML для аутентификации. Для этого пользователю нужно нажать кнопку с названием IdP.
  3. Когда пользователь нажимает кнопку, ТестОпс формирует SAML-запрос (SAML request) и перенаправляет браузер пользователя с этой информацией на страницу IdP.
  4. Пользователь вводит учетные данные на странице IdP.
  5. IdP формирует SAML-ответ (SAML assertion), содержащий информацию, которая необходима ТестОпс для аутентификации пользователя, и перенаправляет браузер пользователя на специальную страницу ТестОпс.
  6. ТестОпс аутентифицирует пользователя на основе информации из SAML-ответа.

SAML может также использоваться без SAML-запросов. Например, пользователь может сначала зайти на страницу IdP и после аутентификации нажать кнопку перехода в ТестОпс.

Настройка

Отредактируйте параметры в файле values.yaml:

  • общие параметры:

    • network.tls.enabled — должно быть true;
    • auth.primary — должно быть saml2.
  • подключение к IdP:

    • auth.saml.enabled — должно быть true;
    • auth.saml.id — название IdP. Будет использоваться в URL-адресах и на кнопке входа. Не используйте пробелы и специальные символы;
    • auth.saml.entityIdhttps://<домен>/api/login/saml2/authenticate/{registrationId}, где <домен> — домен вашего инстанса ТестОпс;
    • auth.saml.acsUrlhttps://<домен>/api/login/saml2/sso/{registrationId}, где <домен> — домен вашего инстанса ТестОпс;
    • auth.saml.identityProviderMetadataUri — URL-адрес файла metadata.xml на сервере IdP.
  • названия атрибутов SAML:

    • auth.saml.firstNameAttribute — название атрибута, содержащего имя пользователя;
    • auth.saml.lastNameAttribute — название атрибута, содержащего фамилию пользователя;
    • auth.saml.emailAttribute — название атрибута, содержащего электронную почту пользователя;
    • auth.saml.groups.groupRoleAttribute — название атрибута, содержащего названия групп пользователя.
  • сопоставление групп:

    • auth.saml.syncRoles — если true, ТестОпс будет назначать пользователям глобальные роли в соответствии с их группами в IdP;

    • auth.saml.groups.roleUserGroups — список групп IdP, разделенных запятыми, которые соответствуют глобальной роли «Пользователь» в ТестОпс;

    • auth.saml.groups.roleAdminGroups — список групп IdP, разделенных запятыми, которые соответствуют глобальной роли «Администратор» в ТестОпс;

    • auth.defaultRole — глобальная роль нового пользователя по умолчанию.

      Допустимые значения: ROLE_ADMIN, ROLE_USER, ROLE_GUEST.

      При auth.saml.syncRoles: true этот параметр должен иметь значение ROLE_GUEST.

Примеры

yaml
network:
  ...
  tls:
    enabled: true

auth:
  primary: saml2
  defaultRole: ROLE_GUEST
  saml:
    enabled: true
    id: "testsaml"
    entityId: https://<ваш домен ТестОпс>/api/login/saml2/authenticate/{registrationId}
    acsUrl: https://<ваш домен ТестОпс>/api/login/saml2/sso/{registrationId}
    identityProviderMetadataUri: https://адрес/файла/metadata.xml
    syncRoles: false
    firstNameAttribute: firstNameAttribute
    lastNameAttribute: lastNameAttribute
    emailAttribute: emailAttribute
    groups:
      groupRoleAttribute: groupRoleAttribute
      roleUserGroups: testops_users
      roleAdminGroups: testops_admins

Использование SAML вместе со стандартной аутентификацией

Как правило, когда компания настраивает аутентификацию SAML для ТестОпс, указанный IdP считается первоисточником данных об учетных записях пользователей и SAML устанавливается как основной способ аутентификации. Однако могут возникнуть ситуации, когда вам нужно использовать локальную аутентификацию, например, когда вы хотите войти c глобальной ролью «Администратор». Для таких случаев ТестОпс позволяет использовать системную аутентификацию, когда SAML включен как основной способ аутентификации:

  • Страница /login использует метод аутентификации, установленный в настройках как primary. Для данной инструкции это SAML.
  • Страница /login/system всегда использует системную аутентификацию.

Чтобы войти как администратор инстанса, перейдите на https://<URL>/login/system и используйте учетные данные локального пользователя.

Logo © 2026 Все права защищены. Сайт принадлежит компании ООО «Инструменты тестирования»