Защищенные конечные точки нагрузочного теста с помощью Нагрузочного тестирования Azure

Из этой статьи вы узнаете, как использовать нагрузочное тестирование Azure с конечными точками приложений, для которых требуется проверка подлинности. В зависимости от реализации приложения можно использовать маркер доступа, учетные данные пользователя или сертификаты клиента для проверки подлинности запросов.

Нагрузочное тестирование Azure поддерживает следующие параметры для конечных точек, прошедших проверку подлинности:

Необходимые компоненты

Проверка подлинности с помощью общего секрета или учетных данных

В этом сценарии конечная точка приложения требует использования общего секрета, например маркера доступа, ключа API или учетных данных пользователя для проверки подлинности.

На следующей схеме показано, как использовать общие секреты или учетные данные для проверки подлинности с помощью конечной точки приложения в нагрузочном тесте.

Diagram that shows how to use shared-secret authentication with Azure Load Testing.

Поток проверки подлинности с использованием общего секрета или учетных данных пользователя:

  1. Безопасно храните секрет или учетные данные, например в Azure Key Vault или хранилище секретов CI/CD.
  2. Ссылка на секрет в конфигурации нагрузочного теста.
  3. В скрипте JMeter извлеките значение секрета с GetSecret функцией и передайте значение секрета в запрос приложения.

Безопасное хранение секрета

Чтобы избежать хранения и раскрытия сведений о безопасности в скрипте JMeter, можно безопасно хранить секреты в Azure Key Vault или в хранилище секретов CI/CD.

Сведения о безопасности можно добавить в хранилище секретов двумя способами:

Ссылка на секрет в конфигурации нагрузочного теста

Прежде чем получить значение секрета в скрипте тестирования JMeter, необходимо ссылаться на секрет в конфигурации нагрузочного теста.

В портал Azure можно ссылаться на секреты, хранящиеся в Azure Key Vault. Чтобы добавить и настроить секрет нагрузочного теста в портал Azure, выполните следующие действия.

  1. Перейдите к ресурсу нагрузочного тестирования в портал Azure, а затем выберите "Тесты", чтобы просмотреть список нагрузочных тестов.

  2. Выберите тест из списка и выберите команду "Изменить ", чтобы изменить конфигурацию нагрузочного теста.

    Screenshot that shows how to edit a load test in the Azure portal.

  3. На вкладке "Параметры" введите сведения о секрете.

    Поле Стоимость
    Имя Имя секрета. Это имя GetSecret предоставляется функции для получения значения секрета в скрипте JMeter.
    значение Соответствует идентификатору секрета Azure Key Vault.

    Screenshot that shows how to add secrets to a load test in the Azure portal.

  4. Нажмите кнопку "Применить", чтобы сохранить изменения конфигурации нагрузочного теста.

Получение и использование значения секрета в скрипте JMeter

Теперь можно получить значение секрета в скрипте JMeter с помощью GetSecret пользовательской функции и передать его в запрос приложения. Например, используйте Authorization заголовок HTTP для передачи маркера OAuth в запрос.

  1. Создайте определяемую пользователем переменную, которая получает значение секрета с помощью пользовательской GetSecret функции:

    Функция GetSecret абстрагирует получение значения из Azure Key Vault или хранилища секретов CI/CD.

    Screenshot that shows how to add a user-defined variable that uses the GetSecret function in JMeter.

  2. Обновите компонент примера JMeter, чтобы передать секрет в запросе.

    Например, чтобы предоставить маркер доступа OAuth2, необходимо настроить Authorization заголовок HTTP, добавив следующую команду HTTP Header Manager:

    Screenshot that shows how to add an authorization header to a request in JMeter.

Проверка подлинности с помощью сертификатов клиента

В этом сценарии конечная точка приложения требует, чтобы для проверки подлинности использовался сертификат клиента. Нагрузочное тестирование Azure поддерживает тип сертификатов открытого ключа (PKCS12) уровня "Стандартный" (PKCS12). В нагрузочном тесте можно использовать только один сертификат клиента.

На следующей схеме показано, как использовать сертификат клиента для проверки подлинности с конечной точкой приложения в нагрузочном тесте.

Diagram that shows how to use client-certificate authentication with Azure Load Testing.

Поток проверки подлинности с помощью сертификатов клиента:

  1. Безопасно храните сертификат клиента в Azure Key Vault.
  2. Ссылка на сертификат в конфигурации нагрузочного теста.
  3. Нагрузочное тестирование Azure прозрачно передает сертификат всем запросам приложений в JMeter.

Хранение сертификата клиента в Azure Key Vault

Чтобы избежать хранения и раскрытия сертификата клиента вместе со скриптом JMeter, вы храните сертификат в Azure Key Vault.

Выполните действия, описанные в разделе "Импорт сертификата" для хранения сертификата в Azure Key Vault.

Важно!

Нагрузочное тестирование Azure поддерживает только сертификаты PKCS12. Отправьте сертификат клиента в формате PFX-файла.

Предоставление доступа к хранилищу ключей Azure

При хранении секретов или сертификатов нагрузочного теста в Azure Key Vault ресурс нагрузочного тестирования использует управляемое удостоверение для доступа к хранилищу ключей. После настройки удостоверения управления необходимо предоставить управляемое удостоверение ресурса нагрузочного тестирования для чтения этих значений из хранилища ключей.

Чтобы предоставить ресурсу нагрузочного тестирования Azure разрешения на чтение секретов или сертификатов из хранилища ключей Azure:

  1. В портал Azure перейдите к ресурсу хранилища ключей Azure.

    Если у вас нет хранилища ключей, следуйте инструкциям в кратком руководстве по созданию хранилища ключей Azure.

  2. На левой панели выберите "Политики доступа" и нажмите кнопку "Создать".

  3. На вкладке "Разрешения" в разделе "Разрешения секрета" выберите "Получить" и нажмите кнопку "Далее".

    Примечание.

    Нагрузочное тестирование Azure извлекает сертификаты в качестве секрета , чтобы обеспечить доступность закрытого ключа сертификата.

  4. На вкладке "Субъект" найдите и выберите управляемое удостоверение для ресурса нагрузочного тестирования, а затем нажмите кнопку "Далее".

    Если вы используете управляемое удостоверение, назначаемое системой, имя управляемого удостоверения совпадает с именем ресурса нагрузочного тестирования Azure.

  5. Снова выберите Далее.

    При выполнении теста управляемое удостоверение, связанное с ресурсом нагрузочного тестирования, теперь может считывать секреты или сертификаты для нагрузочного теста из хранилища ключей.

Ссылка на сертификат в конфигурации нагрузочного теста

Чтобы передать сертификат клиента в запросы приложения, необходимо ссылаться на сертификат в конфигурации нагрузочного теста.

Чтобы добавить сертификат клиента в нагрузочный тест в портал Azure, выполните следующие действия.

  1. Перейдите к ресурсу нагрузочного тестирования в портал Azure. Если у вас еще нет нагрузочного теста, создайте новый нагрузочный тест с помощью скрипта JMeter.

  2. На левой панели выберите "Тесты ", чтобы просмотреть список нагрузочных тестов.

  3. Выберите тест из списка, а затем нажмите кнопку "Изменить", чтобы изменить конфигурацию нагрузочного теста.

    Screenshot that shows how to edit a load test in the Azure portal.

  4. На вкладке "Параметры" введите сведения о сертификате.

    Поле Стоимость
    Имя Имя сертификата.
    значение Соответствует идентификатору секрета Azure Key Vault сертификата.

    Screenshot that shows how to add a certificate to a load test in the Azure portal.

  5. Нажмите кнопку "Применить", чтобы сохранить изменения конфигурации нагрузочного теста.

При запуске нагрузочного теста Azure Load Testing извлекает сертификат клиента из Azure Key Vault и автоматически внедряет его в каждый веб-запрос JMeter.