Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Из этой статьи вы узнаете, как использовать нагрузочное тестирование Azure с конечными точками приложений, для которых требуется проверка подлинности. В зависимости от реализации приложения можно использовать маркер доступа, учетные данные пользователя, управляемое удостоверение или сертификаты клиента для проверки подлинности запросов.
Нагрузочное тестирование Azure поддерживает следующие параметры для конечных точек, прошедших проверку подлинности:
- Проверка подлинности с помощью общего секрета или учетных данных пользователя
- Проверка подлинности с помощью сертификатов клиента
- Аутентификация с помощью управляемой идентичности
Предпосылки
- Учетная запись Azure с активной подпиской. Если у вас нет подписки на Azure, создайте бесплатную учетную запись перед началом.
- Ресурс нагрузочного тестирования Azure. Сведения о создании ресурса нагрузочного тестирования см. в статье "Создание и запуск нагрузочного теста".
Проверка подлинности с помощью общего секрета или учетных данных
В этом сценарии конечная точка приложения требует использования общего секрета, например маркера доступа, ключа API или учетных данных пользователя для проверки подлинности.
На следующей схеме показано, как использовать общие секреты или учетные данные для проверки подлинности с помощью конечной точки приложения в нагрузочном тесте.
Поток проверки подлинности с использованием общего секрета или учетных данных пользователя:
- Безопасно храните секрет или учетные данные, например в Azure Key Vault или хранилище секретов CI/CD.
- Укажите секрет в конфигурации нагрузочного теста.
- Для тестов на основе JMeter извлеките секретное значение с помощью функции
GetSecret. Для тестирования с помощью Locust извлекайте секрет с помощью функцииgetenv. Передайте секретное значение в запрос приложения.
Безопасное хранение секрета
Чтобы избежать хранения и раскрытия сведений о безопасности в скрипте тестирования, можно безопасно хранить секреты в Azure Key Vault или в хранилище секретов CI/CD.
Сведения о безопасности можно добавить в хранилище секретов двумя способами:
Добавьте секретную информацию в Azure Key Vault. Выполните действия, описанные в разделе Параметризация нагрузочных тестов с секретами , чтобы сохранить секрет и авторизовать ресурс нагрузочного тестирования для чтения его значения.
Добавьте секретную информацию как секрет в CI/CD (секреты GitHub Actions или секретные переменные Azure Pipelines).
Ссылка на секрет в конфигурации нагрузочного теста
Прежде чем получить секретное значение в скрипте тестирования JMeter, вы должны указать на секретное значение в конфигурации нагрузочного теста.
В портале Azure можно ссылаться на секреты, хранящиеся в Azure Key Vault. Чтобы добавить и настроить секрет нагрузочного теста в портал Azure, выполните следующие действия.
Перейдите к ресурсу нагрузочного тестирования в портал Azure, а затем выберите "Тесты", чтобы просмотреть список нагрузочных тестов.
Выберите тест из списка и выберите команду "Изменить ", чтобы изменить конфигурацию нагрузочного теста.
На вкладке "Параметры" введите сведения о секрете.
Поле Ценность Имя Имя секрета. Это имя используется в функции GetSecretдля извлечения секретного значения в тестовом скрипте.Ценность Соответствует идентификатору секрета Azure Key Vault. Нажмите кнопку "Применить", чтобы сохранить изменения конфигурации нагрузочного теста.
Получение и использование значения секрета в скрипте JMeter
Теперь можно с помощью GetSecret пользовательской функции извлечь секретное значение в скрипте JMeter и передать его в запрос приложения. Например, используйте Authorization заголовок HTTP для передачи токена OAuth в запрос.
Создайте определяемую пользователем переменную, которая получает значение секрета с помощью пользовательской
GetSecretфункции:Функция
GetSecretабстрагирует получение значения из Azure Key Vault или хранилища секретов CI/CD.Обновите компонент семплера JMeter, чтобы передать секрет в запросе.
Например, чтобы предоставить маркер доступа OAuth2, настройте
Authorizationзаголовок HTTP, добавивHTTP Header Manager.
Получение и использование секретного значения в скрипте Locust
Теперь вы можете извлечь секретное значение в скрипте Locust и передать его в запрос приложения. Например, используйте Authorization заголовок HTTP для передачи токена OAuth в запрос.
Секреты, настроенные в конфигурации нагрузочного теста, доступны как переменные среды.
- Инициализировать переменную значением секрета, используя секрет Имя, указанное в конфигурации нагрузочного теста.
my_secret = os.getenv("appToken")
- Ссылайтесь на переменную в тестовом скрипте, чтобы использовать значение секрета, хранящееся в Azure KeyVault.
Проверка подлинности с помощью сертификатов клиента
В этом сценарии конечная точка приложения требует, чтобы для проверки подлинности использовался сертификат клиента. Нагрузочное тестирование Azure поддерживает тип сертификатов открытого ключа (PKCS12) уровня "Стандартный" (PKCS12). Вы также можете использовать несколько сертификатов клиента в нагрузочном тесте.
На следующей схеме показано, как использовать сертификат клиента для проверки подлинности с конечной точкой приложения в нагрузочном тесте.
Процесс авторизации с использованием клиентских сертификатов:
- Безопасно храните сертификат клиента в Azure Key Vault.
- Укажите сертификат в конфигурации нагрузочного теста.
- Для тестов на основе JMeter служба "Нагрузочное тестирование Azure" прозрачно передает сертификат всем приложениям. Для тестов, основанных на Locust, вы можете получить сертификат в вашем тестовом скрипте и передать его в `requests`.
Хранение сертификата клиента в Azure Key Vault
Чтобы избежать хранения и раскрытия сертификата клиента вместе со скриптом JMeter, вы храните сертификат в Azure Key Vault.
Выполните действия, описанные в разделе "Импорт сертификата" для хранения сертификата в Azure Key Vault.
Это важно
Нагрузочное тестирование Azure поддерживает только сертификаты PKCS12. Отправьте сертификат клиента в формате PFX-файла.
Предоставление доступа к хранилищу ключей Azure
При хранении секретов или сертификатов нагрузочного теста в Azure Key Vault ресурс нагрузочного тестирования использует управляемое удостоверение для доступа к хранилищу ключей. После настройки удостоверения управления необходимо предоставить управляемое удостоверение ресурса нагрузочного тестирования для чтения этих значений из хранилища ключей.
Чтобы предоставить ресурсу нагрузочного тестирования Azure разрешения на чтение секретов или сертификатов из Azure Key Vault:
На портале Azure перейдите к ресурсу Azure Key Vault.
Если у вас нет хранилища ключей, следуйте инструкциям в кратком руководстве по созданию хранилища ключей Azure.
На левой панели выберите "Политики доступа" и нажмите кнопку "Создать".
На вкладке "Разрешения" в разделе "Разрешения секрета" выберите "Получить" и нажмите кнопку "Далее".
Замечание
Нагрузочное тестирование Azure извлекает сертификаты в качестве секрета , чтобы обеспечить доступность закрытого ключа сертификата.
На вкладке "Основные" найдите и выберите управляемое удостоверение для ресурса нагрузочного тестирования, а затем нажмите кнопку "Далее".
Если вы используете управляемое удостоверение, назначаемое системой, имя управляемого удостоверения совпадает с именем ресурса нагрузочного тестирования Azure.
Снова выберите Далее.
При выполнении теста управляемое удостоверение, связанное с ресурсом нагрузочного тестирования, теперь может считывать секреты или сертификаты для нагрузочного теста из хранилища ключей.
Ссылка на сертификат в конфигурации нагрузочного теста
Чтобы передать сертификат клиента в запросы приложения, необходимо указать сертификат в конфигурации нагрузочного теста.
Чтобы добавить сертификат клиента в нагрузочный тест в портал Azure, выполните следующие действия.
Перейдите к вашему ресурсу нагрузочного тестирования в портале Azure. Если у вас еще нет нагрузочного теста, создайте новый нагрузочный тест с помощью скрипта JMeter.
На левой панели выберите "Тесты ", чтобы просмотреть список нагрузочных тестов.
Выберите тест из списка, а затем нажмите кнопку "Изменить", чтобы изменить конфигурацию нагрузочного теста.
На вкладке "Параметры" введите сведения о сертификате.
Поле Ценность Имя Имя сертификата. Ценность Соответствует идентификатору секрета Azure Key Vault сертификата. Нажмите кнопку "Применить", чтобы сохранить изменения конфигурации нагрузочного теста.
При запуске нагрузочного теста Azure Load Testing извлекает сертификат клиента из Azure Key Vault и автоматически внедряет его в каждый веб-запрос JMeter.
Для тестов на основе Локуста можно получить сертификат и использовать его в скрипте тестов. Сертификат, настроенный в конфигурации нагрузочного теста, доступен в ALT_CERTIFICATES_DIR.
cert_dir = os.getenv("ALT_CERTIFICATES_DIR")
cert_file = open(os.path.join(cert_dir), "cert_name_in_keyvault.pfx")
Произведите аутентификацию с использованием управляемого удостоверения
В этом сценарии конечная точка приложения требует использования управляемого удостоверения для проверки подлинности. Вы можете использовать как управляемые удостоверения, назначаемые системой, так и назначаемые пользователем.
Процесс аутентификации с помощью управляемого удостоверения:
- Назначьте управляемое удостоверение, которое целевая конечная точка использует для идентификации, ресурсу Azure Load Testing.
- Выберите управляемую учетную запись в конфигурации нагрузочного теста.
Необходимо настроить скрипт нагрузочных тестов, чтобы получить маркер доступа с помощью управляемого удостоверения и использовать маркер для проверки подлинности запросов к целевой конечной точке. Например, вы можете получить токен через HTTP-вызов REST к конечной точке Службы метаданных экземпляров Azure (IMDS), а затем передать токен в запрос с помощью заголовка HTTP Authorization.
Назначьте управляемое удостоверение
Назначьте управляемое удостоверение вашему ресурсу Azure Load Testing, которое имеет необходимый доступ к целевой конечной точке. При выполнении теста Нагрузочное тестирование Azure назначает это удостоверение экземплярам движка. Это гарантирует успешное выполнение запросов на получение токенов доступа с помощью управляемого удостоверения.
Вы можете использовать управляемое удостоверение, назначаемое системой, или управляемое удостоверение, назначаемое пользователем,
Чтобы использовать системно назначаемое управляемое удостоверение, сначала назначьте его ресурсу Azure Load Testing. После включения укажите необходимые разрешения RBAC для этого удостоверения в целевой конечной точке.
Чтобы использовать назначаемую пользователем управляемую идентичность, сначала назначьте эту идентичность ресурсу Azure Load Testing. Если у этой учетной записи нет необходимых разрешений RBAC на целевую конечную точку, предоставьте необходимые разрешения. Если ваш тестовый скрипт использует несколько удостоверений, назначенных пользователем, присвойте эти удостоверения своему ресурсу и убедитесь, что они обладают необходимыми разрешениями RBAC.
Выберите управляемое удостоверение в конфигурации нагрузочного теста
Выберите необходимое управляемое удостоверение при создании или изменении теста в Azure Load Testing.
Чтобы выбрать и настроить управляемое удостоверение для проверки подлинности на портале Azure, выполните следующие действия.
Перейдите к ресурсу нагрузочного тестирования в портал Azure, а затем выберите "Тесты", чтобы просмотреть список нагрузочных тестов.
Выберите тест из списка и выберите команду "Изменить ", чтобы изменить конфигурацию нагрузочного теста.
На вкладке "План тестирования " настройте управляемое удостоверение для сценариев проверки подлинности. Выберите "Системное удостоверение" или "Пользовательское удостоверение" по мере необходимости.
Если выбрано "Удостоверение, назначаемое пользователем", выберите необходимые удостоверения из раскрывающегося списка Удостоверение, назначаемое пользователем.
Нажмите кнопку "Применить", чтобы сохранить изменения конфигурации нагрузочного теста.
Это важно
Распределение нагрузки между регионами не включено при использовании управляемых удостоверений для проверки подлинности.
Связанный контент
Дополнительные сведения о параметризации нагрузочного теста.
Дополнительные сведения об использовании нескольких сертификатов в нагрузочном тесте.