Аутентификация через OpenID с Microsoft Entra ID
Важно
Аутентификация через OpenID доступна только в серверной версии ТестОпс.
OpenID Connect — это протокол аутентификации, основанный на OAuth 2.0. Если вы настроите OpenID-интеграцию с Microsoft Entra ID (ранее Azure AD) для вашего инстанса ТестОпс, пользователи смогут использовать учетные записи Microsoft Entra ID для входа в ТестОпс.
Примечание
Чтобы настроить аутентификацию через OpenID с Microsoft Entra ID, вам необходимы:
- права администратора инстанса Microsoft Entra ID;
- доступ к конфигурационным файлам ТестОпс;
- единый протокол для связи в инстансах ТестОпс и Microsoft Entra ID — HTTPS.
Принцип работы аутентификации через OpenID с Microsoft Entra ID
- Пользователь открывает страницу входа в ТестОпс.
- ТестОпс перенаправляет пользователя на страницу аутентификации Microsoft Entra ID.
- Пользователь вводит учетные данные на странице Microsoft.
- После успешной аутентификации Microsoft Entra ID возвращает токен доступаЦифровой ключ, который подтверждает права пользователя или приложения на доступ к защищенным ресурсам с информацией о пользователе.
- ТестОпс аутентифицирует пользователя на основе данных из токена.
Настройка аутентификации через Microsoft Entra ID
Чтобы настроить аутентификацию в ТестОпс через OpenID с Microsoft Entra ID:
- Зарегистрируйте приложение в Microsoft Entra ID.
- Получите OpenID-эндпоинты из настроек Microsoft Entra ID.
- Получите учетные данные приложения в Microsoft Entra ID.
- Измените конфигурационные файлы ТестОпс.
- Настройте маппинг ролей между Microsoft Entra ID и ТестОпс (при необходимости).
1. Зарегистрируйте приложение в Microsoft Entra ID
Перейдите на портал Microsoft Azure.
В секции Azure services найдите и откройте Microsoft Entra ID.
В сайдбаре слева перейдите в раздел Manage → App registrations.
В верхней части страницы нажмите New registration.
Заполните поля:
Name — введите название приложения (например, testops);
Supported account types — выберите тип учетных записей, которым разрешены доступ к приложению и аутентификация в ТестОпс. Для большинства сценариев подойдет вариант Single tenant only;
Redirect URI — выберите платформу Web и введите URI перенаправления в зависимости от вашего типа развертывания ТестОпс:
- для Kubernetes — https://<домен_инстанса_ТестОпс>/login/oauth2/code/azure (например, https://testops.example.com/login/oauth2/code/azure);
- для Docker Compose или DEB/RPM-пакетов — https://<домен_инстанса_ТестОпс>/login/oauth2/code/openid (например, https://testops.example.com/login/oauth2/code/openid).
Нажмите Register.
Созданное приложение будет выступать в роли OpenID-клиента для ТестОпс — через него пользователи Microsoft Entra ID смогут аутентифицироваться в ТестОпс.
2. Получите OpenID-эндпоинты из настроек Microsoft Entra ID
Убедитесь, что на портале Microsoft Azure открыта карточка созданного приложения с разделом Overview.
В верхней части страницы нажмите Endpoints.
Напротив поля OpenID Connect metadata document нажмите иконку Copy to clipboard, чтобы скопировать URL-адрес документа в буфер обмена.
Откройте скопированный URL-адрес в браузере.
Откроется файл в формате JSON, который содержит все эндпоинты вашего инстанса Microsoft Entra ID.
Скопируйте и сохраните значения полей:
authorization_endpoint,token_endpoint,jwks_uri.
Они понадобятся для настройки интеграции с Microsoft Entra ID в конфигурационных файлах ТестОпс.
3. Получите учетные данные приложения в Microsoft Entra ID
3.1. Получите ID приложения в Microsoft Entra ID
Убедитесь, что на портале Microsoft Azure открыта карточка созданного приложения с разделом Overview.
В секции Essentials напротив поля Application (client) ID нажмите иконку Copy to clipboard, чтобы скопировать ID приложения в буфер обмена.
Сохраните ID в безопасном месте, он понадобится для настройки интеграции c Microsoft Entra ID в конфигурационных файлах ТестОпс.
3.2. Создайте секрет приложения в Microsoft Entra ID
В карточке созданного приложения в сайдбаре слева перейдите в раздел Manage → Certificates & secrets → вкладка Client secrets.
Нажмите New client secret.
Заполните поля:
- Description — введите описание секрета (например, testops-secret);
- Expires — выберите срок действия секрета. После указанного периода интеграция перестанет работать. Чтобы возобновить ее работу, вам нужно будет создать новый секрет.
Нажмите Add.
Напротив значения из столбца Value нажмите иконку Copy to clipboard, чтобы скопировать созданный секрет приложения в буфер обмена.
Сохраните секрет в безопасном месте, он понадобится для настройки интеграции c Microsoft Entra ID в конфигурационных файлах ТестОпс.
4. Измените конфигурационные файлы ТестОпс
Измените конфигурационные файлы ТестОпс в зависимости от вашего типа развертывания:
Измените параметры в файле values.yaml:
общие параметры:
auth.primary— введите openid, чтобы установить OpenID в качестве основного метода аутентификации;auth.openid.defaultRole— введите глобальную роль ТестОпс по умолчанию, которая будет назначена новым пользователям из Microsoft Entra ID. Рекомендуется указать ROLE_GUEST — глобальную роль «Гость», чтобы контролировать использование лицензионных мест.Примечание
Если значение параметра
auth.openid.defaultRoleне указано, по умолчанию используется ROLE_GUEST.
подключение к Microsoft Entra ID:
auth.openid.enabled— введите true, чтобы включить OpenID-аутентификацию;auth.openid.clientName— введите название приложения (значение поля Name из шага 1);auth.openid.clientId— введите уникальный идентификатор приложения (значение Application (client) ID из шага 3). Microsoft Entra ID использует этот идентификатор для проверки запросов от ТестОпс;auth.openid.providerName— введите azure. Это значение отображается на кнопке входа в ТестОпс и используется в URI перенаправления;auth.openid.clientSecret— введите секрет приложения, который вы сохранили на шаге 3. Microsoft Entra ID использует этот секрет для аутентификации запросов от ТестОпс;auth.openid.redirectUri— введите https://<домен_инстанса_ТестОпс>/login/oauth2/code/azure. Microsoft Entra ID перенаправляет пользователя на этот адрес после успешной аутентификации;auth.openid.scope— убедитесь, что указан список openid, email, profile. Он определяет, какие данные пользователя ТестОпс запрашивает у Microsoft Entra ID;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.usernameAttribute— убедитесь, что указано значение preferred_username. Этот параметр из токена используется как имя пользователя в ТестОпс.
5. Настройте маппинг ролей между Microsoft Entra ID и ТестОпс
При необходимости вы можете настроить маппинг ролей между Microsoft Entra ID и ТестОпс, который укажет, какие глобальные роли ТестОпс должны получить группы пользователей из Microsoft Entra ID.
Маппинг ролей позволяет контролировать использование мест в основной лицензии ТестОпс, предотвращать несанкционированный доступ к проектам ТестОпс и централизованно управлять правами пользователей из Microsoft Entra ID.
5.1. Создайте группы в Microsoft Entra ID
Перейдите на портал Azure.
В секции Azure services найдите и откройте Microsoft Entra ID.
В сайдбаре слева перейдите в раздел Manage → Groups.
Создайте две группы Microsoft Entra ID для маппинга с глобальными ролями ТестОпс «Администратор» и «Пользователь». Чтобы создать каждую из этих групп:
В верхней части страницы нажмите New group.
Заполните поля:
- Group type — выберите Security;
- Group name — введите название группы (например, to_admins для глобальной роли «Администратор» и to_users для глобальной роли «Пользователь»);
- Group description — введите описание группы;
- Microsoft Entra roles can be assigned to the group — выберите No;
- Membership type — выберите Assigned;
- Members — нажмите No members selected и поставьте галочки напротив пользователей, которые будут добавлены в группу, затем нажмите Select.
Нажмите Create.
Напротив созданных групп скопируйте значения из столбца Object Id.
Сохраните ID групп в безопасном месте, они понадобятся для настройки маппинга ролей в конфигурационных файлах ТестОпс.
5.2. Добавьте группы в приложение Microsoft Entra ID
- Перейдите на портал Azure.
- В секции Azure services найдите и откройте Enterprise applications.
- Найдите и откройте карточку приложения, которое вы создали на шаге 1.
- В сайдбаре слева перейдите в раздел Manage → Users and groups.
- В верхней части страницы нажмите Add user/group.
- В секции Users and groups нажмите None Selected.
- Поставьте галочки напротив групп, которые вы создали на шаге 5.1, и нажмите Select.
- Нажмите Assign.
5.3. Добавьте информацию о группах в токен из Microsoft Entra ID
- Перейдите на портал Azure.
- В секции Azure services найдите и откройте Microsoft Entra ID.
- В сайдбаре слева перейдите в раздел Manage → App registrations → вкладка All applications.
- Найдите и откройте карточку приложения, которое вы создали на шаге 1.
- В сайдбаре слева перейдите в раздел Manage → Token configuration.
- В верхней части страницы нажмите Add groups claim.
- В секции Select group types to include in Access, ID, and SAML tokens поставьте галочку напротив Groups assigned to the application, чтобы в токен включались только группы, добавленные в приложение на шаге 5.2.
- В секции Customize token properties by type убедитесь, что для ID, Access и SAML выбрано значение Group ID.
- Нажмите Add.
5.4. Настройте маппинг ролей в конфигурационных файлах ТестОпс
Измените параметры маппинга ролей в конфигурационных файлах ТестОпс в зависимости от вашего типа развертывания:
Измените параметры в файле values.yaml:
auth.openid.syncRoles— введите true, чтобы включить маппинг ролей между Microsoft Entra ID и ТестОпс;auth.openid.groupRoleAttribute— введите groups (название утверждения групп в токене);auth.openid.roleUserGroups— введите ID группы Microsoft Entra ID из шага 5.1, участники которой получат глобальную роль «Пользователь» в ТестОпс;auth.openid.roleAdminGroups— введите ID группы Microsoft Entra ID из шага 5.1, участники которой получат глобальную роль «Администратор» в ТестОпс.
Важно
Синхронизация ролей будет работать правильно только в случае, если параметр auth.openid.defaultRole из шага 4 имеет значение ROLE_GUEST.
Примеры настроенных конфигурационных файлов ТестОпс для OpenID с Microsoft Entra ID
yaml
auth:
primary: openid
defaultRole: ROLE_GUEST
openid:
enabled: true
clientName: testops
clientId: 12345678-1234-1234-1234-123456789012
clientSecret: Swi6lI8IpwSilx0WkmOx
providerName: azure
redirectUri: https://testops.example.com/login/oauth2/code/azure
scope: openid, email, profile
authorizationGrantType: authorization_code
authorizationUri: https://login.microsoftonline.com/123456-a123-4567-b848-12345678/oauth2/v2.0/authorize
jwksSetUri: https://login.microsoftonline.com/123456-a123-4567-b848-12345678/discovery/v2.0/keys
tokenUri: https://login.microsoftonline.com/123456-a123-4567-b848-12345678/oauth2/v2.0/token
usernameAttribute: preferred_username
defaultRole: ROLE_GUEST
syncRoles: true
groupRoleAttribute: groups
roleUserGroups: to_users
roleAdminGroups: to_adminsИспользование OpenID вместе с локальной аутентификацией ТестОпс
Если OpenID указан как основной способ аутентификации в ТестОпс, при необходимости вы также можете использовать локальную аутентификацию:
- Страница https://<домен_инстанса_ТестОпс>/login использует метод аутентификации, указанный в конфигурационных файлах ТестОпс в параметре
primaryилиALLURE_LOGIN_PRIMARY. Для данной инструкции это OpenID. - Страница https://<домен_инстанса_ТестОпс>/login/system использует локальную аутентификацию ТестОпс.
Чтобы войти в ТестОпс, например, с глобальной ролью «Администратор», перейдите на https://<домен_инстанса_ТестОпс>/login/system и используйте учетные данные локального пользователя.

