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

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

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

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

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

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

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

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

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

  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. Выберите тест из списка и выберите команду "Изменить ", чтобы изменить конфигурацию нагрузочного теста.

    Снимок экрана: изменение нагрузочного теста в портал Azure.

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

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

    Снимок экрана: добавление секретов в нагрузочный тест в портал Azure.

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

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

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

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

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

    Снимок экрана, на котором показано, как добавить определяемую пользователем переменную, использующую функцию GetSecret в JMeter.

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

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

    Снимок экрана: добавление заголовка авторизации в запрос в JMeter.

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

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

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

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

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

  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. Выберите тест из списка, а затем нажмите кнопку "Изменить", чтобы изменить конфигурацию нагрузочного теста.

    Снимок экрана: изменение нагрузочного теста в портал Azure.

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

    Поле Значение
    Имя Имя сертификата.
    Value Соответствует идентификатору секрета Azure Key Vault сертификата.
  5. Нажмите кнопку "Применить", чтобы сохранить изменения конфигурации нагрузочного теста.

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