Аутентификация через SAML 2.0
Важно
ТестОпс поддерживает только SAML версии 2.0.
Аутентификация через SAML доступна только в серверной версии ТестОпс.
SAML — открытый стандарт, который позволяет провайдеру идентификации передавать основному сервису данные об успешной аутентификации пользователя. Если вы настроите SAML-интеграцию для ТестОпс, пользователи смогут использовать учетные записи из сервера провайдера идентификации для входа в ТестОпс.
Принцип работы аутентификации через SAML
В основе SAML лежит общение сервиса (в данном случае ТестОпс) с провайдером идентификации (например, Okta и Keycloak) с помощью HTTP-перенаправлений:
- Пользователь пытается открыть страницу ТестОпс.
- Если пользователь не аутентифицирован, ТестОпс предлагает использовать SAML для аутентификации. Для этого пользователю нужно нажать кнопку с названием провайдера идентификации.
- Когда пользователь нажимает кнопку, ТестОпс формирует SAML-запрос (SAML request) и перенаправляет браузер пользователя с этой информацией на страницу провайдера идентификации.
- Пользователь вводит учетные данные на странице провайдера идентификации.
- Провайдер идентификации формирует SAML-ответ (SAML assertion), содержащий информацию, которая необходима ТестОпс для аутентификации пользователя, и перенаправляет браузер пользователя на специальную страницу ТестОпс.
- ТестОпс аутентифицирует пользователя на основе информации из SAML-ответа.
SAML может также использоваться без SAML-запросов. Например, пользователь может сначала зайти на страницу провайдера идентификации и после аутентификации нажать кнопку перехода в ТестОпс.
Настройка аутентификации через SAML
Чтобы настроить аутентификацию в ТестОпс через SAML, измените конфигурационные файлы ТестОпс в зависимости от вашего типа развертывания:
Измените параметры в файле values.yaml:
общие параметры:
network.tls.enabled— должно быть true;auth.primary— должно быть saml2.
подключение к серверу провайдера идентификации:
auth.saml.enabled— должно быть true;auth.saml.id— название провайдера идентификации. Будет использоваться в 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 на сервере провайдера идентификации.
названия атрибутов SAML:
auth.saml.firstNameAttribute— название атрибута, содержащего имя пользователя;auth.saml.lastNameAttribute— название атрибута, содержащего фамилию пользователя;auth.saml.emailAttribute— название атрибута, содержащего электронную почту пользователя;auth.saml.groups.groupRoleAttribute— название атрибута, содержащего названия групп пользователя.
сопоставление групп:
auth.saml.syncRoles— если true, ТестОпс будет назначать пользователям глобальные роли в соответствии с их группами на сервере провайдера идентификации;auth.saml.groups.roleUserGroups— список групп на сервере провайдера идентификации, разделенных запятыми, которые соответствуют глобальной роли «Пользователь» в ТестОпс;auth.saml.groups.roleAdminGroups— список групп на сервере провайдера идентификации, разделенных запятыми, которые соответствуют глобальной роли «Администратор» в ТестОпс;auth.defaultRole— глобальная роль нового пользователя по умолчанию.Допустимые значения: ROLE_ADMIN, ROLE_USER, ROLE_GUEST.
При
auth.saml.syncRoles: trueэтот параметр должен иметь значение ROLE_GUEST.
Примеры настроенных конфигурационных файлов ТестОпс для SAML
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 указан как основной способ аутентификации в ТестОпс, при необходимости вы также можете использовать локальную аутентификацию:
- Страница https://<домен_инстанса_ТестОпс>/login использует метод аутентификации, указанный в конфигурационных файлах ТестОпс в атрибуте
primaryилиALLURE_LOGIN_PRIMARY. Для данной инструкции это SAML. - Страница https://<домен_инстанса_ТестОпс>/login/system использует локальную аутентификацию ТестОпс.
Чтобы войти в ТестОпс, например, с глобальной ролью «Администратор», перейдите на https://<домен_инстанса_ТестОпс>/login/system и используйте учетные данные локального пользователя.

