Аутентификация через SAML 2.0
Важно
ТестОпс поддерживает только SAML версии 2.0.
Аутентификация через SAML доступна только в серверной версии ТестОпс.
SAML — открытый стандарт обмена аутентификационными данными между провайдером учетных записей (Identity Provider, IdP) и основным сервисом (Service Provider, SP). Если вы настроите SAML-интеграцию для ТестОпс, пользователи смогут использовать существующие в IdP учетные записи для входа в ТестОпс.
Как это работает
В основе SAML лежит общение сервиса (в данном случае ТестОпс) с IdP (например, Okta и Keycloak) с помощью HTTP-перенаправлений:
- Пользователь пытается открыть страницу ТестОпс.
- Если пользователь не аутентифицирован, ТестОпс предлагает использовать SAML для аутентификации. Для этого пользователю нужно нажать кнопку с названием IdP.
- Когда пользователь нажимает кнопку, ТестОпс формирует SAML-запрос (SAML request) и перенаправляет браузер пользователя с этой информацией на страницу IdP.
- Пользователь вводит учетные данные на странице IdP.
- IdP формирует SAML-ответ (SAML assertion), содержащий информацию, которая необходима ТестОпс для аутентификации пользователя, и перенаправляет браузер пользователя на специальную страницу ТестОпс.
- ТестОпс аутентифицирует пользователя на основе информации из 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.entityId— https://<домен>/api/login/saml2/authenticate/{registrationId}, где <домен> — домен вашего инстанса ТестОпс;auth.saml.acsUrl— https://<домен>/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 и используйте учетные данные локального пользователя.

