Skip to content
Main Navigation
Автоматизированное тестирование
Централизованное управление автотестами и результатами
Интеграции
Готовые коннекторы с CI/CD, трекерами и репозиториями
Ручное тестирование
Планирование, выполнение и контроль ручных проверок в одном месте
Дашборды и аналитика
Визуализация данных, отчёты и метрики тестов в реальном времени
Ресурсы
Документация
Материалы по установке, настройке и подключению интеграций в ТестОпс
Блог
Статьи и руководства по стратегиям и инструментам тестирования
События
Живое общение с командой ТестОпс на вебинарах и конференциях
Последнее из блога
Сокращение технического долга в UI-тестах
Сокращение технического долга в UI-тестах
Обзор причин нестабильности, практик повышения надёжности, архитектурных решений и возможностей платформы ТестОпс для контроля качества.
MCP-сервер: возможности и интеграция с Jira
MCP-сервер: возможности и интеграция с Jira
Рассматриваем протокол контекстного моделирования (MCP) для безопасной интеграции языковых моделей с корпоративными системами и его возможности при работе с Jira.
ИИ-инструменты в тестировании ПО
ИИ-инструменты в тестировании ПО
Разбираем, как использовать машинное обучение в QA для автоматической генерации сценариев для ускорения процессов и повышения стабильности релизов.
Перейти в блог
ТарифыПартнерыСвязаться с нами
Sidebar Navigation

Описание ТестОпс

О продукте

Информация о релизах

Миграция с других решений

Термины и определения

Часто задаваемые вопросы

Установка ТестОпс

Архитектура

Установка и первый запуск

Обзор

Kubernetes

Docker Compose

DEB-пакеты

RPM-пакеты

База данных

S3-совместимое хранилище

Конфигурация

Обзор

Сеть

Аутентификация

Обзор

Локальная аутентификация

LDAP

OpenID и Azure AD

OpenID и Keycloak

SAML 2.0

Настройка SMTP

Перенос данных в другой инстанс

Начало работы

1. Создайте проект

2. Запустите ручной тест

3. Запустите автотест

4. Создайте комбинированный запуск

5. Обработайте результаты тестов

Обзор ТестОпс

Обзор

Дашборды

Тест-кейсы

Общие шаги

Тест-планы

Запуски

Результаты тестов

Дефекты

Джобы

Меню пользователя

Тест-кейсы

Статусы воркфлоу

Сценарий ручного теста

Параметры ручного теста

Вложения

Теги

Тестовые слои

Ссылки

Задачи из таск-трекеров

Сторонние тест-кейсы

Участники

Связанные тест-кейсы

Кастомные поля

Ключи маппинга

Импорт

Запуски

Окружение

Обновление метаданных

Сравнение запусков

Категории ошибок

Проект

Обзор

Управление доступом

Деревья

Вебхуки

Администрирование

Обзор

Участники

Группы

Очистка данных

Журналы аудита пользователей

Интеграции

Обзор

CI-системы

AWS CodePipeline

Azure DevOps

Bamboo

Bitbucket

CircleCI

GitHub

GitLab

Jenkins

TeamCity

TeamCity (allurectl)

Таск-трекеры

Битрикс24

EvaProject

GitHub

GitLab

Jira Data Center

Jira Software Cloud

Kaiten

Redmine

Wrike

Yandex Tracker

YouTrack

Системы управления тестированием

TestRail

Xray

Zephyr

Экосистема ТестОпс

allurectl

AQL

API

Устранение неполадок

SaaS

ТестОпс как SaaS

Миграция в облако ТестОпс

On this page

Аутентификация через LDAP ​

Важно

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

LDAP — популярный протокол для поиска учетных записей пользователей на специальном сервере, таком как Active Directory или OpenLDAP. Если вы настроите ТестОпс для работы с LDAP-сервером, пользователи смогут использовать свои существующие учетные записи и не регистрировать новые в самом ТестОпс.

Важно

Пожалуйста, обратите внимание, что настройка интеграции с LDAP-сервером — сложный процесс. Протокол поддерживает широкий диапазон запросов и имен параметров, что приводит к значительным различиям между серверами. Поэтому универсального примера конфигурации не существует.

Перед настройкой убедитесь, что вы хорошо понимаете параметры вашего LDAP-сервера, или проконсультируйтесь с коллегой, знакомым с его конфигурацией.

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

  1. ТестОпс устанавливает соединение с LDAP-сервером, используя служебную учетную запись.

  2. На странице входа пользователь вводит свои учетные данные: имя пользователя (или адрес электронной почты) и пароль.

    В зависимости от конфигурации ТестОпс может автоматически преобразовать имя пользователя в нижний регистр.

  3. ТестОпс отправляет запрос на LDAP-сервер, чтобы определить, существует ли указанная учетная запись.

    В зависимости от конфигурации для этого запроса может использоваться либо фильтр поиска, либо шаблоны DN. Обратите внимание, что эти два варианта взаимоисключающие и вы не должны настраивать их одновременно.

  4. Если учетная запись найдена, LDAP-сервер передает ТестОпс информацию о пользователе, включая уникальный идентификатор (UID) и группы, к которым пользователь принадлежит. После этого ТестОпс ищет внутреннюю учетную запись, соответствующую указанному UID. Если такой записи не существует, ТестОпс создает новую запись.

    В зависимости от конфигурации ТестОпс может обновить информацию о пользователе данными с LDAP-сервера (имя, электронная почта, роли и аватар).

  5. После успешной аутентификации ТестОпс перенаправляет пользователя на целевую или главную страницу.

Настройка ​

Важно

Мы настоятельно рекомендуем следующую последовательность настройки LDAP-аутентификации:

  1. Настройте базовую функциональность — тестовый пользователь должен иметь возможность войти в ТестОпс.
  2. При необходимости включите синхронизацию ролей с LDAP-группами, чтобы завершить настройку.

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

База и фильтр поиска пользователей ​

Обязательным шагом настройки LDAP-интеграции является указание параметров поиска учетных записей: базы поиска (Base DN) и фильтра поиска (LDAP search filter). Уточнить значения этих параметров вы можете у администратора вашего LDAP-сервера или с помощью утилиты ldapsearch (см. ниже).

База поиска обычно соответствует доменному имени сервера, к которому дополнительно добавляется категория для сужения области поиска (например, People для поиска пользователей). Готовое значение выглядит примерно следующим образом:

ou=People,dc=example,dc=org

Фильтр поиска используется для выбора тех LDAP-записей, которые нужны приложению. ТестОпс использует для работы идентификатор пользователя, которому предоставляется доступ (обычно это атрибут uid). Готовое значение может выглядеть следующим образом:

(&(objectClass=person)(uid={0}))

Итоговый набор параметров для поиска пользователей может выглядеть следующим образом:

yaml
auth:
  ldap:
    ...
    user:
      searchBase: ou=People,dc=example,dc=org
      searchFilter: (&(objectClass=person)(uid={0}))

Чтобы проверить названия атрибутов на вашем LDAP-сервере, вы можете использовать утилиту ldapsearch:

sh
ldapsearch -x -H <URL> -b <Base DN> -D <Bind DN> -w <Password> <Filter>

где:

  • URL — URL-адрес LDAP-сервера (например, ldap://ldap.example.org:389);
  • Base DN — база поиска (например, dc=example,dc=org);
  • Bind DN — DN пользователя, от имени которого будет совершен запрос (например, cn=admin,dc=example,dc=org);
  • Password — пароль пользователя, от имени которого будет совершен запрос;
  • Filter — фильтр поиска. Например, чтобы найти пользователя с фамилией Иванов, можно использовать фильтр (cn=*Иванов*).

Пример:

sh
ldapsearch -x -H "ldap://ldap.example.org:389" -b "dc=example,dc=org" -D "cn=admin,dc=example,dc=org" -w "password" "(cn=*Иванов*)"

После выполнения команды вы должны получить подобный результат:

yaml
dn: cn=Иван Иванов,ou=People,dc=example,dc=org
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: person
cn: Иван Иванов
givenName: Иван
sn: Иванов
mail: [email protected]
uid: ivan

На основе этого результата вы можете получить значения для параметров поиска:

  • dn: cn=Иван Иванов,ou=People,dc=example,dc=org,

    В качестве базы для поиска пользователей в файлах конфигурации укажите ou=People,dc=example,dc=org.

  • objectClass: person и uid: ivan.

    Учетные записи пользователей имеют атрибут objectClass со значением person, а идентификатор пользователя хранится в атрибуте uid. Поэтому в качестве фильтра укажите (&(objectClass=person)(uid={0})).

Автоматическое назначение ролей ​

После получения информации о пользователе от LDAP-сервера ТестОпс создает новую учетную запись с ролью по умолчанию, указанной в конфигурационном файле. Мы рекомендуем использовать для этого роль «Гость». Пользователи с ролью «Гость» не учитываются при подсчете пользователей для условий вашего тарифного плана, поэтому вы не рискуете случайно превысить этот лимит. Вы можете изменить роль пользователя в любое время в разделе Администрирование.

yaml
auth:
  defaultRole: ROLE_GUEST

При использовании LDAP-аутентификации вы можете дополнительно настроить автоматическое назначение ролей. В таком случае пользователям будут назначаться роли в соответствии с их LDAP-группами. Для этого вам нужно указать в конфигурационном файле параметры поиска групп по аналогии с параметрами поиска пользователей и указать названия LDAP-групп, которые будут использоваться для назначения ролей.

База и фильтр поиска групп ​

Чтобы настроить поиск LDAP-групп:

  1. Укажите название категории (organizational unit), которая используется для групп на вашем LDAP-сервере (например, Groups).

    Пример значения для конфигурационного файла: ou=Groups,dc=example,dc=org.

  2. Укажите название атрибута, который используется для хранения идентификаторов пользователей, входящих в группу (например, memberUid).

    Пример значения для конфигурационного файла: memberUid={1}.

    Важно

    Обратите внимание, что memberUid является примером. В вашей реализации этот параметр, скорее всего, будет иметь другое имя.

Итоговый набор параметров для поиска групп может выглядеть следующим образом:

yaml
auth:
  ldap:
    ...
    group:
      searchBase: ou=Groups,dc=example,dc=org
      searchFilter: memberUid={1}

Чтобы проверить названия атрибутов на вашем LDAP-сервере, вы можете использовать утилиту ldapsearch:

sh
ldapsearch -x -H <URL> -b <Base DN> -D <Bind DN> -w <Password> <Filter>

где:

  • URL — URL-адрес LDAP-сервера (например, ldap://ldap.example.org:389);
  • Base DN — база поиска (например, dc=example,dc=org);
  • Bind DN — DN пользователя, от имени которого будет совершен запрос (например, cn=admin,dc=example,dc=org);
  • Password — пароль пользователя, от имени которого будет совершен запрос;
  • Filter — фильтр поиска. Например, чтобы найти группу admins, можно использовать фильтр (cn=admins).

Пример:

sh
ldapsearch -x -H "ldap://ldap.example.org:389" -b "dc=example,dc=org" -D "cn=admin,dc=example,dc=org" -w "password" "(cn=admins)"

После выполнения команды вы должны получить подобный результат:

yaml
dn: cn=admins,ou=Groups,dc=example,dc=org
objectClass: posixGroup
objectClass: top
cn: admins
memberUid: admin
memberUid: ivan

На основе этого результата вы можете получить значения для параметров поиска:

  • dn: cn=admins,ou=Groups,dc=example,dc=org,

    В качестве базы для поиска групп в файлах конфигурации укажите ou=Groups,dc=example,dc=org.

  • memberUid: ivan.

    Для хранения идентификаторов пользователей, входящих в группу, используется атрибут memberUid. Поэтому в файлах конфигурации укажите фильтр memberUid={1}.

Сопоставление LDAP-групп и ролей ТестОпс ​

После настройки параметров поиска групп, вам необходимо указать LDAP-группы, которые будут использоваться для автоматического назначения ролей. Для этого перечислите их названия через запятую в соответствующих параметрах конфигурационного файла:

yaml
# LDAP-группы, участникам которых будет назначена роль «Пользователь»
userGroupName: testops_users1,testops_users2
# LDAP-группы, участникам которых будет назначена роль «Администратор»
adminGroupName: testops_admins

Только после того как вы проверили все указанные параметры, мы рекомендуем включить автоматическое назначение ролей. Для этого установите для параметра syncRoles значение true:

yaml
auth:
  ldap:
    ...
    syncRoles: true

Изменение файлов конфигурации ​

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

  • подключение к LDAP-серверу:

    • auth.ldap.enabled — должно быть true;
    • auth.ldap.url — URL-адрес LDAP-сервера;
    • auth.ldap.auth.user — имя служебной учетной записи;
    • auth.ldap.auth.pass — пароль служебной учетной записи.
  • названия атрибутов LDAP:

    • auth.ldap.uidAttribute — название атрибута, который хранит UID пользователя;
    • auth.ldap.passwordAttribute — название атрибута, который хранит пароль пользователя;
    • auth.ldap.usernamesToLowercase — если true, имя пользователя будет преобразовано в нижний регистр перед поиском;
    • auth.ldap.group.roleAttribute — название атрибута, который хранит название группы.
  • сопоставление групп:

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

    • auth.ldap.userGroupName — список групп LDAP, разделенных запятыми, которые соответствуют роли «Пользователь» в ТестОпс;

    • auth.ldap.adminGroupName — список групп LDAP, разделенных запятыми, которые соответствуют роли «Администратор» в ТестОпс;

    • auth.defaultRole — роль ТестОпс, которая должна использоваться для пользователей LDAP, которые не принадлежат ролям «Пользователь» и «Администратор».

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

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

  • параметры поиска пользователей:

    • auth.ldap.user.searchBase — база поиска пользователей;

    • auth.ldap.user.searchFilter — фильтр для поиска пользователей;

    • auth.ldap.user.dnPatterns — список шаблонов, разделенных запятыми, для поиска пользователей.

      Важно

      Не указывайте параметры searchFilter и dnPatterns одновременно.

  • параметры поиска групп:

    • auth.ldap.group.searchBase — база поиска групп;
    • auth.ldap.group.searchFilter — фильтр для поиска групп.

Примеры ​

yaml
auth:
  primary: ldap
  defaultRole: ROLE_GUEST
  ldap:
    enabled: false
    auth:
      user: user
      pass: SecretPaSSw0rd
    referral: follow
    url: ldap://ldap.example.com:389
    usernamesToLowercase: false
    passwordAttribute: userPassword
    user:
      dnPatterns: ""
      searchBase: ou=People,dc=example,dc=org
      searchFilter: (&(objectClass=person)(uid={0}))
    syncRoles: false
    uidAttribute: uid
    group:
      searchBase: ou=Groups,dc=example,dc=org
      searchFilter: memberUid={1}
      roleAttribute: cn
    userGroupName: testops_users
    adminGroupName: testops_admins

Тестирование с помощью ldapsearch ​

Перед перезапуском ТестОпс с новыми параметрами настоятельно рекомендуем проверить их вручную с помощью утилиты ldapsearch. В зависимости от операционной системы утилита может входить в состав пакетов ldap-utils или ldap-clients.

После установки утилиты попробуйте найти пользователя на LDAP-сервере по его UID:

sh
ldapsearch \
    -H 'ldap://ldap.example.com:389' \
    -D 'cn=admin,dc=example,dc=com' \
    -w 'SecretPa$$w0rd' \
    -b 'dc=example,dc=com' \
    '(&(objectClass=person)(uid=ivan))'

Аргументы соответствуют следующим параметрам конфигурации:

  • -H — auth.ldap.url,
  • -D — auth.ldap.auth.user,
  • -w — auth.ldap.auth.pass,
  • -b — auth.ldap.user.searchBase,
  • запрос — auth.ldap.user.searchFilter или auth.ldap.user.dnPatterns с именем пользователя вместо {0}.

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

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

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

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

Устранение неполадок ​

Если вы получаете ошибку "Request failed with status code 401" при попытке входа с использованием LDAP, проверьте следующее:

  1. Убедитесь, что URL-адрес LDAP-сервера, указанный в файле конфигурации, правильный.
  2. Убедитесь, что вы используете действительный SSL-сертификат.
  3. Проверьте, что учетные данные, указанные в файле конфигурации, правильные и не содержат пробела в конце (например, для Docker Compose это LDAP_LOGIN_SA и LDAP_LOGIN_SA_PASS).
Pager
Previous pageЛокальная аутентификация
Next pageOpenID и Azure AD

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