Защищенные конечные точки нагрузочного теста с помощью Нагрузочного тестирования Azure
Из этой статьи вы узнаете, как использовать нагрузочное тестирование Azure с конечными точками приложений, для которых требуется проверка подлинности. В зависимости от реализации приложения можно использовать маркер доступа, учетные данные пользователя или сертификаты клиента для проверки подлинности запросов.
Нагрузочное тестирование Azure поддерживает следующие параметры для конечных точек, прошедших проверку подлинности:
- Проверка подлинности с помощью общего секрета или учетных данных пользователя
- Проверка подлинности с помощью сертификатов клиента
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
- Ресурс нагрузочного тестирования Azure. Сведения о создании ресурса нагрузочного тестирования см. в статье "Создание и запуск нагрузочного теста".
Проверка подлинности с помощью общего секрета или учетных данных
В этом сценарии конечная точка приложения требует использования общего секрета, например маркера доступа, ключа API или учетных данных пользователя для проверки подлинности.
На следующей схеме показано, как использовать общие секреты или учетные данные для проверки подлинности с помощью конечной точки приложения в нагрузочном тесте.
Поток проверки подлинности с использованием общего секрета или учетных данных пользователя:
- Безопасно храните секрет или учетные данные, например в Azure Key Vault или хранилище секретов CI/CD.
- Ссылка на секрет в конфигурации нагрузочного теста.
- В скрипте JMeter извлеките значение секрета с
GetSecret
функцией и передайте значение секрета в запрос приложения.
Безопасное хранение секрета
Чтобы избежать хранения и раскрытия сведений о безопасности в скрипте JMeter, можно безопасно хранить секреты в Azure Key Vault или в хранилище секретов CI/CD.
Сведения о безопасности можно добавить в хранилище секретов двумя способами:
Добавьте секретную информацию в Azure Key Vault. Выполните действия, описанные в разделе Параметризация нагрузочных тестов с секретами , чтобы сохранить секрет и авторизовать ресурс нагрузочного тестирования для чтения его значения.
Добавьте секретную информацию в виде секрета в CI/CD (секреты GitHub Actions или переменные секрета Azure Pipelines).
Ссылка на секрет в конфигурации нагрузочного теста
Прежде чем получить значение секрета в скрипте тестирования JMeter, необходимо ссылаться на секрет в конфигурации нагрузочного теста.
В портал Azure можно ссылаться на секреты, хранящиеся в Azure Key Vault. Чтобы добавить и настроить секрет нагрузочного теста в портал Azure, выполните следующие действия.
Перейдите к ресурсу нагрузочного тестирования в портал Azure, а затем выберите "Тесты", чтобы просмотреть список нагрузочных тестов.
Выберите тест из списка и выберите команду "Изменить ", чтобы изменить конфигурацию нагрузочного теста.
На вкладке "Параметры" введите сведения о секрете.
Поле Значение Имя Имя секрета. Это имя GetSecret
предоставляется функции для получения значения секрета в скрипте JMeter.Value Соответствует идентификатору секрета Azure Key Vault. Нажмите кнопку "Применить", чтобы сохранить изменения конфигурации нагрузочного теста.
Получение и использование значения секрета в скрипте JMeter
Теперь можно получить значение секрета в скрипте JMeter с помощью GetSecret
пользовательской функции и передать его в запрос приложения. Например, используйте Authorization
заголовок HTTP для передачи маркера OAuth в запрос.
Создайте определяемую пользователем переменную, которая получает значение секрета с помощью пользовательской
GetSecret
функции:Функция
GetSecret
абстрагирует получение значения из Azure Key Vault или хранилища секретов CI/CD.Обновите компонент примера JMeter, чтобы передать секрет в запросе.
Например, чтобы предоставить маркер доступа OAuth2, необходимо настроить
Authorization
заголовок HTTP, добавив следующую командуHTTP Header Manager
:
Проверка подлинности с помощью сертификатов клиента
В этом сценарии конечная точка приложения требует, чтобы для проверки подлинности использовался сертификат клиента. Нагрузочное тестирование Azure поддерживает тип сертификатов открытого ключа (PKCS12) уровня "Стандартный" (PKCS12). В нагрузочном тесте можно использовать только один сертификат клиента.
На следующей схеме показано, как использовать сертификат клиента для проверки подлинности с конечной точкой приложения в нагрузочном тесте.
Поток проверки подлинности с помощью сертификатов клиента:
- Безопасно храните сертификат клиента в Azure Key Vault.
- Ссылка на сертификат в конфигурации нагрузочного теста.
- Нагрузочное тестирование Azure прозрачно передает сертификат всем запросам приложений в JMeter.
Хранение сертификата клиента в Azure Key Vault
Чтобы избежать хранения и раскрытия сертификата клиента вместе со скриптом JMeter, вы храните сертификат в Azure Key Vault.
Выполните действия, описанные в разделе "Импорт сертификата" для хранения сертификата в Azure Key Vault.
Внимание
Нагрузочное тестирование Azure поддерживает только сертификаты PKCS12. Отправьте сертификат клиента в формате PFX-файла.
Предоставление доступа к хранилищу ключей Azure
При хранении секретов или сертификатов нагрузочного теста в Azure Key Vault ресурс нагрузочного тестирования использует управляемое удостоверение для доступа к хранилищу ключей. После настройки удостоверения управления необходимо предоставить управляемое удостоверение ресурса нагрузочного тестирования для чтения этих значений из хранилища ключей.
Чтобы предоставить ресурсу нагрузочного тестирования Azure разрешения на чтение секретов или сертификатов из хранилища ключей Azure:
В портал Azure перейдите к ресурсу хранилища ключей Azure.
Если у вас нет хранилища ключей, следуйте инструкциям в кратком руководстве по созданию хранилища ключей Azure.
На левой панели выберите "Политики доступа" и нажмите кнопку "Создать".
На вкладке "Разрешения" в разделе "Разрешения секрета" выберите "Получить" и нажмите кнопку "Далее".
Примечание.
Нагрузочное тестирование Azure извлекает сертификаты в качестве секрета , чтобы обеспечить доступность закрытого ключа сертификата.
На вкладке "Субъект" найдите и выберите управляемое удостоверение для ресурса нагрузочного тестирования, а затем нажмите кнопку "Далее".
Если вы используете управляемое удостоверение, назначаемое системой, имя управляемого удостоверения совпадает с именем ресурса нагрузочного тестирования Azure.
Снова выберите Далее.
При выполнении теста управляемое удостоверение, связанное с ресурсом нагрузочного тестирования, теперь может считывать секреты или сертификаты для нагрузочного теста из хранилища ключей.
Ссылка на сертификат в конфигурации нагрузочного теста
Чтобы передать сертификат клиента в запросы приложения, необходимо ссылаться на сертификат в конфигурации нагрузочного теста.
Чтобы добавить сертификат клиента в нагрузочный тест в портал Azure, выполните следующие действия.
Перейдите к ресурсу нагрузочного тестирования в портал Azure. Если у вас еще нет нагрузочного теста, создайте новый нагрузочный тест с помощью скрипта JMeter.
На левой панели выберите "Тесты ", чтобы просмотреть список нагрузочных тестов.
Выберите тест из списка, а затем нажмите кнопку "Изменить", чтобы изменить конфигурацию нагрузочного теста.
На вкладке "Параметры" введите сведения о сертификате.
Поле Значение Имя Имя сертификата. Value Соответствует идентификатору секрета Azure Key Vault сертификата. Нажмите кнопку "Применить", чтобы сохранить изменения конфигурации нагрузочного теста.
При запуске нагрузочного теста Azure Load Testing извлекает сертификат клиента из Azure Key Vault и автоматически внедряет его в каждый веб-запрос JMeter.
Связанный контент
- Дополнительные сведения о параметризации нагрузочного теста.