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 устанавливается как основной способ аутентификации. Однако могут возникнуть ситуации, когда вам нужно использовать локальную аутентификацию, например, когда вы хотите войти как администратор инстанса. Для таких случаев ТестОпс позволяет использовать системную аутентификацию, когда SAML включен как основной способ аутентификации:

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

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

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