Документация TMS DoQAДокументация TMS DoQA
  • Начало работы

    • Быстрый старт
    • Проекты
    • Пространства
  • Тестовая документация

    • Тест-кейсы
    • Чек-листы
    • Общие шаги
    • Параметризация тестов
    • Атрибуты
    • Теги
    • AI-функции
    • История редактирования
  • Требования и покрытие

    • Требования
    • Коннектор требований
    • Матрица покрытия
  • Выполнение тестов

    • Прогоны
    • Баг-репорты
    • История запуска
  • Автоматизация

    • Автотесты
    • Публичный API
  • Организация и поиск

    • Папки
    • Фильтры
    • Корзина
  • Аналитика и обмен данными

    • Дашборд
    • Экспорт
    • Импорт
  • Совместная работа

    • Комментарии
    • Уведомления
  • Справочник

    • Горячие клавиши
    • Глоссарий
  • Лицензии

    • Лицензии и оплата (облачная версия)
    • Лицензии (серверная версия)
  • Пользователи и доступы

    • Создание проекта
    • Добавление пользователей
    • Редактирование пользователей
    • Сброс пароля
    • Роли и права пользователя
    • Уровень доступа для всех проектов
    • Права доступа к проекту
    • Права доступа к пространству и его разделам
    • Владелец системы
  • Настройка проекта

    • Атрибуты
  • Интеграции

    • Интеграции с трекерами
    • Интеграции с CI/CD
  • DoQA AI

    • Настройки DoQA AI
    • Настройка прокси для LLM-провайдеров
  • Требования
  • Утилита управления сервером
  • Описание параметров среды (.env)
  • Настройка сервера почты
  • Авторизация через LDAP
  • Корпоративный вход (SSO)
  • Релизы облачной версии DoQA
  • Релизы серверной версии DoQA
Скачать PDF
Получить триал
  • Начало работы

    • Быстрый старт
    • Проекты
    • Пространства
  • Тестовая документация

    • Тест-кейсы
    • Чек-листы
    • Общие шаги
    • Параметризация тестов
    • Атрибуты
    • Теги
    • AI-функции
    • История редактирования
  • Требования и покрытие

    • Требования
    • Коннектор требований
    • Матрица покрытия
  • Выполнение тестов

    • Прогоны
    • Баг-репорты
    • История запуска
  • Автоматизация

    • Автотесты
    • Публичный API
  • Организация и поиск

    • Папки
    • Фильтры
    • Корзина
  • Аналитика и обмен данными

    • Дашборд
    • Экспорт
    • Импорт
  • Совместная работа

    • Комментарии
    • Уведомления
  • Справочник

    • Горячие клавиши
    • Глоссарий
  • Лицензии

    • Лицензии и оплата (облачная версия)
    • Лицензии (серверная версия)
  • Пользователи и доступы

    • Создание проекта
    • Добавление пользователей
    • Редактирование пользователей
    • Сброс пароля
    • Роли и права пользователя
    • Уровень доступа для всех проектов
    • Права доступа к проекту
    • Права доступа к пространству и его разделам
    • Владелец системы
  • Настройка проекта

    • Атрибуты
  • Интеграции

    • Интеграции с трекерами
    • Интеграции с CI/CD
  • DoQA AI

    • Настройки DoQA AI
    • Настройка прокси для LLM-провайдеров
  • Требования
  • Утилита управления сервером
  • Описание параметров среды (.env)
  • Настройка сервера почты
  • Авторизация через LDAP
  • Корпоративный вход (SSO)
  • Релизы облачной версии DoQA
  • Релизы серверной версии DoQA
Скачать PDF
Получить триал
  • Начало работы

    • Быстрый старт
    • Проекты
    • Пространства
  • Тестовая документация

    • Тест-кейсы
    • Чек-листы
    • Общие шаги
    • Параметризация тестов
    • Атрибуты
    • Теги
    • AI-функции
    • История редактирования
  • Требования и покрытие

    • Требования
    • Коннектор требований
    • Матрица покрытия
  • Выполнение тестов

    • Прогоны
    • Баг-репорты
    • История запуска
  • Автоматизация

    • Автотесты
    • Публичный API
  • Сценарии

    • Сценарии
    • Первый прогон автотестов за 30 минут
    • Разбор упавших автотестов
    • От требования до решения о релизе
    • Корпоративный вход за вечер (SSO)
  • Организация и поиск

    • Папки
    • Фильтры
    • Корзина
  • Аналитика и обмен данными

    • Дашборд
    • Экспорт
    • Импорт
  • Совместная работа

    • Комментарии
    • Уведомления
  • Справочник

    • Горячие клавиши
    • Глоссарий

Корпоративный вход за вечер (SSO)

Путь администратора серверной версии: подключить корпоративный провайдер OIDC, включить автоматическое создание учётных записей, закрыть вход паролем и убедиться, что сотрудник заходит по корпоративной кнопке. Всё делается правкой .env и перезапуском приложения.

🎯 Задача

Перевести вход в DoQA на корпоративный провайдер: сотрудники заходят своей рабочей учётной записью, новые пользователи заводятся сами, локальный пароль остаётся только у аварийного списка.

💡 Решение

Настроить единственный OIDC-коннектор в .env, включить JIT-провижининг по списку доменов, а затем SSO_ENFORCE с заранее заполненным break-glass. Справочник по каждому параметру — Корпоративный вход (SSO); здесь мы проходим его по порядку.

📝 Что понадобится

  • Доступ к серверу box: правка .env и перезапуск через ./doqa.
  • Клиент (application), заведённый в вашем IdP — Keycloak, AD FS или Entra (Azure AD): client_id, client_secret и разрешённый redirect URI.
  • Список email для break-glass — учётные записи с локальным паролем, которым вход остаётся при недоступном провайдере.

⏱ Время: ≈40 мин

Шаг 1. Прописать OIDC в .env

Параметры SSO_* в поставляемый шаблон не входят — добавьте строки в .env вручную (см. раздел Аутентификация). Возьмите значения из карточки клиента в вашем IdP:

SSO_ENABLED=true
SSO_ISSUER=https://idp.company.ru/realms/company
SSO_CLIENT_ID=doqa
SSO_CLIENT_SECRET=<секрет клиента из IdP>
SSO_REDIRECT=https://doqa.company.ru/api/auth/sso/callback
SSO_SCOPES="openid email profile"
SSO_LABEL="Corporate SSO"

SSO_ISSUER — это базовый адрес провайдера. Остальные endpoint'ы (authorize, token, jwks) DoQA читает сама по {issuer}/.well-known/openid-configuration, отдельно их указывать не нужно. SSO_REDIRECT должен совпадать с адресом https://<APP_URL>/api/auth/sso/callback и быть в списке разрешённых redirect URI на стороне IdP.

Перезапустите приложение, чтобы .env применился:

./doqa stop && ./doqa start

✅ Результат: на странице входа появилась кнопка «Корпоративный вход (SSO)». Форма логина и пароля пока остаётся рядом — оба способа работают одновременно. Детали и тонкая настройка кэшей/таймаутов — раздел Включение.

Шаг 2. Включить автоматическое создание учётных записей (JIT)

Без JIT войти смогут только те, кого вы завели заранее. Чтобы сотрудник появлялся при первом входе, добавьте:

SSO_JIT_ENABLED=true
SSO_JIT_MODE=domain_allowlist
SSO_JIT_ALLOWED_DOMAINS=company.ru

domain_allowlist создаёт учётную запись только для email из SSO_JIT_ALLOWED_DOMAINS; значение open пропустит любого, кого вернул провайдер. Отдельного значения «выключено» у SSO_JIT_MODE нет — за это отвечает SSO_JIT_ENABLED. Домены перечисляются через запятую или пробел.

Роль нового пользователя — «просмотр», всегда. Роли из провайдера не читаются и не синхронизируются: права в DoQA древовидные, по проектам и пространствам, их выдаёт администратор внутри продукта (это Шаг 5).

Перезапустите приложение после правки.

✅ Результат: сотрудник с доменом из списка, войдя через провайдера впервые, заводится сам с ролью «просмотр» и без локального пароля. Порядок сопоставления и создания — Автоматическое создание пользователей (JIT).

Шаг 3. Собрать break-glass и включить enforce

SSO_ENFORCE=true запрещает вход по локальному паролю тем, кто считается управляемым через SSO (домен из SSO_JIT_ALLOWED_DOMAINS или есть привязанная внешняя учётная запись), и скрывает форму логина. Автоматических исключений нет — владелец инстанса и суперадмин попадают под enforce на общих основаниях.

Поэтому сначала заполните аварийный список, и только потом включайте enforce:

SSO_ENFORCE=true
SSO_BREAKGLASS_EMAILS=admin@company.ru

Убедитесь, что у перечисленных учётных записей задан пароль. Задать его можно из консоли сервера (ввод скрытый):

docker compose exec api php artisan users:set-password admin@company.ru

Форма пароля под enforce скрыта, но не удалена: чтобы открыть её для break-glass, добавьте к адресу входа ?password — https://<APP_URL>/auth/login?password. Вход по этой форме пройдёт только для email из SSO_BREAKGLASS_EMAILS.

Перезапустите приложение.

✅ Результат: SSO-управляемые пользователи заходят только через провайдера, форма пароля на обычной странице входа скрыта, а у break-glass остаётся аварийный вход. Подробно — Обязательный вход через SSO (enforce).

Шаг 4. Проверить вход

  1. Откройте страницу входа. Нет кнопки «Корпоративный вход (SSO)» — значит SSO_ENABLED не применился: проверьте, что приложение перезапущено после правки .env.
  2. Нажмите кнопку — браузер должен уйти на страницу аутентификации провайдера.
  3. Войдите рабочей учётной записью. Провайдер вернёт вас в DoQA.

Если вместо возврата страница показывает «Не удалось войти через внешнего провайдера», причина — в адресной строке параметром error=sso_* и в логах (docker compose logs -f api). Расшифровка кодов и порядок диагностики — Проверка настройки.

✅ Результат: сотрудник вошёл через корпоративный провайдер и оказался в DoQA. Если он завёлся впервые — он в списке пользователей с ролью «просмотр».

Шаг 5. Выдать роли и лицензии

Пользователь, созданный через JIT, места в лицензии не занимает и прав на редактирование не имеет. Дальше всё делается внутри продукта, во вкладке «Пользователи» панели администратора:

  • Назначьте пользователя на слот лицензии, чтобы сделать его редактором, — см. Добавление пользователей и Лицензии (серверная версия).
  • Выдайте права на проекты и пространства. Роли из провайдера не синхронизируются, поэтому доступ настраивается вручную.

✅ Результат: сотрудник входит по корпоративной кнопке, назначен на слот и имеет нужные права. Инсталляция переведена на корпоративный вход.

⚠️ Возможные трудности

Включили SSO_ENFORCE=true с пустым SSO_BREAKGLASS_EMAILS. При недоступном провайдере в DoQA не сможет войти никто: паролем вход запрещён, а через провайдера он не проходит. Восстановить доступ можно будет только правкой .env на сервере и перезапуском. Заполняйте break-glass до включения enforce и проверяйте, что у этих учётных записей задан пароль.

Опечатка в SSO_JIT_MODE. Любое значение, кроме domain_allowlist и open, молча ломает вход новым сотрудникам: пользователи не создаются вообще, а во входе отказывается без внятной причины (в логах — error=sso_not_allowed). Проверьте написание значения по буквам.

SSO_JIT_MODE=open шире, чем кажется. Учётную запись в DoQA получит каждый, кто может войти в ваш провайдер. Убедитесь, что круг пользователей IdP совпадает с кругом сотрудников, которым нужен DoQA, иначе оставайтесь на domain_allowlist.

Кнопки SSO нет после правки .env. Приложение не перезапущено либо SSO_ENABLED не true. Параметры SSO_* в шаблон .env не входят — проверьте, что строка добавлена вручную, и повторите ./doqa stop && ./doqa start.

📚 Смотрите также

  • Корпоративный вход (SSO) — полный справочник параметров и кодов ошибок
  • Описание параметров среды (.env) — где и как править .env
  • Добавление пользователей — приглашения, роли и лицензии внутри продукта
Последнее обновление:
Prev
От требования до решения о релизе