Skip to content

Аутентификация через OpenID Connect с Okta

OIDC — протокол аутентификации, основанный на OAuth 2.0. Если вы настроите OIDC-интеграцию с Okta для инстанса серверной версии ТестОпс, пользователи смогут использовать учетные записи Okta для входа в ТестОпс.

Примечание

Чтобы настроить аутентификацию через OIDC с Okta, вам необходимы:

  • права администратора инстанса Okta;
  • доступ к конфигурационным файлам ТестОпс;
  • доступ к ТестОпс и Okta по протоколу HTTPS.

Принцип работы аутентификации через OIDC с Okta

  1. Пользователь открывает страницу входа в ТестОпс.
  2. ТестОпс перенаправляет пользователя на страницу аутентификации Okta.
  3. Пользователь вводит учетные данные на странице Okta.
  4. После успешной аутентификации Okta возвращает токен доступаЦифровой ключ, который подтверждает права пользователя или приложения на доступ к защищенным ресурсам с информацией о пользователе.
  5. ТестОпс аутентифицирует пользователя на основе данных из токена.

Настройка аутентификации через Okta

Чтобы настроить аутентификацию в ТестОпс через OIDC с Okta:

  1. Создайте OIDC-приложение для ТестОпс в Okta.
  2. Получите OIDC-эндпоинты из настроек Okta.
  3. Получите учетные данные приложения в Okta.
  4. Измените конфигурационные файлы ТестОпс.
  5. Настройте маппинг ролей между Okta и ТестОпс (при необходимости).

1. Создайте OIDC-приложение для ТестОпс в Okta

  1. Перейдите в консоль администратора Okta.

  2. В сайдбаре слева перейдите в раздел ApplicationsApplications.

  3. Нажмите Create App Integration.

  4. Заполните поля:

    • Sign-in method — выберите OIDC - OpenID Connect;
    • Application type — выберите Web Application.
  5. Нажмите Next.

  6. Заполните поля:

    • App integration name — введите название приложения (например, testops);

    • Grant type — убедитесь, что включен Authorization Code;

    • Sign-in redirect URIs — введите URI перенаправления в зависимости от вашего типа развертывания ТестОпс:

      • для Kubernetes — https://<домен_инстанса_ТестОпс>/login/oauth2/code/okta (например, https://testops.example.com/login/oauth2/code/okta);
      • для Docker Compose или DEB/RPM-пакетов — https://<домен_инстанса_ТестОпс>/login/oauth2/code/openid (например, https://testops.example.com/login/oauth2/code/openid);
    • Sign-out redirect URIs — оставьте пустым или укажите URL-адрес страницы входа в ТестОпс;

    • Controlled access — выберите, кому разрешен доступ к приложению.

  7. Нажмите Save.

Созданное приложение будет выступать в роли OIDC-клиента для ТестОпс — через него пользователи Okta смогут аутентифицироваться в ТестОпс.

2. Получите OIDC-эндпоинты из настроек Okta

  1. В сайдбаре слева перейдите в раздел SecurityAPI.

  2. Перейдите на вкладку Authorization Servers.

  3. Напротив названия нужного сервера авторизации скопируйте URI в буфер обмена.

  4. Откройте скопированный URI в браузере.

    Откроется файл в формате JSON, который содержит все эндпоинты вашего инстанса Okta.

  5. Скопируйте и сохраните значения полей:

    • authorization_endpoint,
    • token_endpoint,
    • jwks_uri,
    • userinfo_endpoint.

    Они понадобятся для настройки интеграции с Okta в конфигурационных файлах ТестОпс.

3. Получите учетные данные приложения в Okta

3.1. Получите ID приложения в Okta

  1. В карточке созданного приложения перейдите на вкладку General.

  2. В секции Client Credentials напротив поля Client ID нажмите Copy to clipboard, чтобы скопировать ID приложения в буфер обмена.

    Сохраните идентификатор в безопасном месте, он понадобится для настройки интеграции с Okta в конфигурационных файлах ТестОпс.

3.2. Получите секрет приложения в Okta

  1. В карточке созданного приложения перейдите на вкладку General.

  2. В секции Client Credentials в поле CLIENT SECRETS нажмите Copy to clipboard, чтобы скопировать секрет приложения в буфер обмена.

    Сохраните секрет в безопасном месте, он понадобится для настройки интеграции с Okta в конфигурационных файлах ТестОпс.

4. Измените конфигурационные файлы ТестОпс

Измените конфигурационные файлы ТестОпс в зависимости от вашего типа развертывания:

Измените параметры в файле values.yaml:

  • общие параметры:

    • auth.primary — введите openid, чтобы установить OIDC в качестве основного метода аутентификации;

    • auth.openid.defaultRole — введите глобальную роль ТестОпс по умолчанию, которая будет назначена новым пользователям из Okta. Рекомендуется указать ROLE_GUEST — глобальную роль «Гость», чтобы контролировать использование мест в основной лицензии.

      Примечание

      Если значение параметра auth.openid.defaultRole не указано, по умолчанию используется ROLE_GUEST.

  • подключение к Okta:

    • auth.openid.enabled — введите true, чтобы включить OIDC-аутентификацию;
    • auth.openid.clientName — введите название приложения (значение поля App integration name из шага 1);
    • auth.openid.clientId — введите уникальный идентификатор приложения (значение поля Client ID из шага 3). Okta использует этот идентификатор для проверки запросов от ТестОпс;
    • auth.openid.providerName — введите okta. Это значение отображается на кнопке входа в ТестОпс и используется в URI перенаправления;
    • auth.openid.clientSecret — введите секрет приложения, который вы сохранили на шаге 3. Okta использует этот секрет для аутентификации запросов от ТестОпс;
    • auth.openid.redirectUri — введите https://<домен_инстанса_ТестОпс>/login/oauth2/code/okta. Okta перенаправляет пользователя на этот адрес после успешной аутентификации;
    • auth.openid.scope — убедитесь, что указан список openid, email, profile. Он определяет, какие данные пользователя ТестОпс запрашивает у Okta;
    • auth.openid.authorizationGrantType — убедитесь, что указано значение authorization_code;
    • auth.openid.authorizationUri — введите значение поля authorization_endpoint, которое вы сохранили на шаге 2. ТестОпс перенаправляет пользователя на этот адрес для аутентификации;
    • auth.openid.jwksSetUri — введите значение поля jwks_uri, которое вы сохранили на шаге 2. ТестОпс использует этот адрес для проверки подписи токенов;
    • auth.openid.tokenUri — введите значение поля token_endpoint, которое вы сохранили на шаге 2. ТестОпс использует этот адрес для получения токена доступа;
    • auth.openid.userinfoUri — введите значение поля userinfo_endpoint, которое вы сохранили на шаге 2. ТестОпс использует этот адрес для получения данных о пользователе;
    • auth.openid.usernameAttribute — убедитесь, что указано значение preferred_username. Этот параметр из токена используется как имя пользователя в ТестОпс.

5. Настройте маппинг ролей между Okta и ТестОпс

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

Маппинг ролей позволяет контролировать использование мест в основной лицензии ТестОпс, предотвращать несанкционированный доступ к проектам ТестОпс и централизованно управлять правами пользователей из Okta.

5.1. Создайте группы в Okta

  1. Перейдите в консоль администратора Okta.

  2. В сайдбаре слева перейдите в раздел DirectoryGroups.

  3. Создайте две группы Okta для маппинга с глобальными ролями ТестОпс «Администратор» и «Пользователь». Чтобы создать каждую из этих групп:

    1. Нажмите Add group.

    2. Заполните поля:

      • Name — введите название группы (например, to_admins для глобальной роли «Администратор» и to_users для глобальной роли «Пользователь»);
      • Description — введите описание группы.
    3. Нажмите Save.

5.2. Добавьте пользователей в группы Okta

  1. В карточке созданной группы нажмите Assign people.
  2. Напротив нужных пользователей нажмите +.

5.3. Назначьте группы приложению Okta

  1. В сайдбаре слева перейдите в раздел ApplicationsApplications.
  2. Откройте карточку приложения, которое вы создали на шаге 1.
  3. Перейдите на вкладку Assignments.
  4. Нажмите AssignAssign to Groups.
  5. Нажмите Assign напротив групп, которые вы создали на шаге 5.1.
  6. Нажмите Done.

5.4. Добавьте информацию о группах в токен из Okta

  1. В сайдбаре слева перейдите в раздел SecurityAPI.

  2. Нажмите на название сервера авторизации, который использует ваше приложение.

  3. Перейдите на вкладку Claims.

  4. Нажмите Add Claim.

  5. Заполните поля:

    • Name — введите groups;
    • Include in token type — нажмите на выпадающий список и выберите ID Token, в дополнительном поле справа нажмите на выпадающий список и выберите Always;
    • Value type — нажмите на выпадающий список и выберите Groups;
    • Filter — нажмите на выпадающий список и выберите Matches regex и введите .*, чтобы включить все группы, назначенные приложению, или укажите регулярное выражение для нужных групп.
  6. Нажмите Create.

5.5. Настройте маппинг ролей в конфигурационных файлах ТестОпс

Измените параметры маппинга ролей в конфигурационных файлах ТестОпс в зависимости от вашего типа развертывания:

Измените параметры в файле values.yaml:

  • auth.openid.syncRoles — введите true, чтобы включить маппинг ролей между Okta и ТестОпс;
  • auth.openid.groupRoleAttribute — введите groups (значение поля Name из шага 5.4);
  • auth.openid.roleUserGroups — введите название группы Okta из шага 5.1, участники которой получат глобальную роль «Пользователь» в ТестОпс (например, to_users);
  • auth.openid.roleAdminGroups — введите название группы Okta из шага 5.1, участники которой получат глобальную роль «Администратор» в ТестОпс (например, to_admins).

Важно

Синхронизация ролей будет работать правильно только в случае, если параметр auth.openid.defaultRole из шага 4 имеет значение ROLE_GUEST.

Примеры настроенных конфигурационных файлов ТестОпс для OIDC с Okta

yaml
auth:
  primary: openid
  defaultRole: ROLE_GUEST
  openid:
    enabled: true
    clientName: testops
    clientId: 0oa1bc2de3fGhI4j5k6l
    clientSecret: Swi6lI8IpwSilx0WkmOx
    providerName: okta
    redirectUri: https://testops.example.com/login/oauth2/code/okta
    scope: openid, email, profile
    authorizationGrantType: authorization_code
    authorizationUri: https://example.okta.com/oauth2/default/v1/authorize
    jwksSetUri: https://example.okta.com/oauth2/default/v1/keys
    tokenUri: https://example.okta.com/oauth2/default/v1/token
    userinfoUri: https://example.okta.com/oauth2/default/v1/userinfo
    usernameAttribute: preferred_username
    defaultRole: ROLE_GUEST
    syncRoles: true
    groupRoleAttribute: groups
    roleUserGroups: to_users
    roleAdminGroups: to_admins

Использование OIDC вместе с локальной аутентификацией ТестОпс

Если OIDC указан как основной способ аутентификации в ТестОпс, при необходимости вы также можете использовать локальную аутентификацию:

  • Страница https://<домен_инстанса_ТестОпс>/login использует метод аутентификации, указанный в конфигурационных файлах ТестОпс в параметре primary или ALLURE_LOGIN_PRIMARY. Для данной инструкции это OIDC.
  • Страница https://<домен_инстанса_ТестОпс>/login/system использует локальную аутентификацию ТестОпс.

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

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