Pontos de extremidade protegidos de teste de carga com o Teste de Carga do Azure

Neste artigo, você aprenderá a usar o Teste de Carga do Azure com pontos de extremidade de aplicativo que exigem autenticação. Dependendo da implementação do aplicativo, você pode usar um token de acesso, credenciais de usuário ou certificados de cliente para autenticar solicitações.

O Teste de Carga do Azure dá suporte às seguintes opções para pontos de extremidade autenticados:

Pré-requisitos

  • Uma conta do Azure com uma assinatura ativa. Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.
  • Um recurso de teste de carga do Azure. Para criar um recurso de teste de carga, consulte Criar e executar um teste de carga.

Autenticar com um segredo compartilhado ou credenciais

Nesse cenário, o ponto de extremidade do aplicativo exige que você use um segredo compartilhado, como um token de acesso, uma chave de API ou credenciais de usuário para autenticar.

O diagrama a seguir mostra como usar segredos ou credenciais compartilhadas para autenticar com um ponto de extremidade de aplicativo no teste de carga.

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

O fluxo para autenticação com um segredo compartilhado ou credenciais de usuário é:

  1. Armazene com segurança o segredo ou as credenciais, por exemplo, no Cofre de Chaves do Azure ou no repositório de segredos de CI/CD.
  2. Referencie o segredo na configuração do teste de carga.
  3. No script JMeter, recupere o valor secreto com a função e passe o valor secreto para a GetSecret solicitação do aplicativo.

Armazene o segredo com segurança

Para evitar armazenar e divulgar informações de segurança no script JMeter, você pode armazenar segredos com segurança no Azure Key Vault ou no repositório de segredos de CI/CD.

Você pode adicionar as informações de segurança em um repositório de segredos de duas maneiras:

Fazer referência ao segredo na configuração do teste de carga

Antes de recuperar o valor secreto no script de teste do JMeter, você precisa fazer referência ao segredo na configuração do teste de carga.

No portal do Azure, você pode fazer referência a segredos armazenados no Cofre de Chaves do Azure. Para adicionar e configurar um segredo de teste de carga no portal do Azure:

  1. Navegue até o recurso de teste de carga no portal do Azure e selecione Testes para exibir a lista de testes de carga.

  2. Selecione o teste na lista e, em seguida, selecione Editar para editar a configuração do teste de carga.

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

  3. Na guia Parâmetros, insira os detalhes do segredo.

    Campo Valor
    Nome Nome do segredo. Você fornece esse nome à GetSecret função para recuperar o valor secreto no script JMeter.
    Valor Corresponde ao identificador secreto do Azure Key Vault.

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

  4. Selecione Aplicar para salvar as alterações de configuração do teste de carga.

Recuperar e usar o valor secreto no script JMeter

Agora você pode recuperar o valor secreto no script JMeter usando a função personalizada e passá-lo para a GetSecret solicitação do aplicativo. Por exemplo, use um cabeçalho HTTP para passar um Authorization token OAuth para uma solicitação.

  1. Crie uma variável definida pelo usuário que recupere o valor do segredo com a função personalizada GetSecret:

    A GetSecret função abstrai a recuperação do valor do Cofre de Chaves do Azure ou do repositório de segredos de CI/CD.

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

  2. Atualize o componente do amostrador JMeter para transmitir o segredo na solicitação.

    Por exemplo, para fornecer um token de acesso OAuth2, configure o Authorization cabeçalho HTTP adicionando um HTTP Header Manager:

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

Autenticar com o certificado de cliente

Nesse cenário, o ponto de extremidade do aplicativo requer que você use um certificado de cliente para autenticar. O Teste de Carga do Azure dá suporte ao tipo de certificados do Padrão de Certificado de Chave Pública nº 12 (PKCS12). Você pode usar apenas um certificado de cliente em um teste de carga.

O diagrama a seguir mostra como usar um certificado de cliente para autenticar com um ponto de extremidade de aplicativo em seu teste de carga.

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

O fluxo para autenticação com certificados de cliente é:

  1. Armazene com segurança o certificado do cliente no Cofre de Chaves do Azure.
  2. Faça referência ao certificado na configuração do teste de carga.
  3. O Teste de Carga do Azure transmite o certificado de forma transparente para todas as solicitações de aplicativo no JMeter.

Armazenar o certificado do cliente no Cofre de Chaves do Azure

Para evitar armazenar e divulgar o certificado do cliente junto com o script JMeter, armazene o certificado no Azure Key Vault.

Siga as etapas em Importar um certificado para armazenar seu certificado no Azure Key Vault.

Importante

O Teste de Carga do Azure dá suporte apenas a certificados PKCS12. Carregue o certificado do cliente no formato de arquivo PFX.

Conceder acesso ao seu cofre de chaves do Azure

Quando você armazena segredos ou certificados de teste de carga no Cofre de Chaves do Azure, seu recurso de teste de carga usa uma identidade gerenciada para acessar o cofre de chaves. Depois de configurar a identidade de gerenciamento, você precisa conceder à identidade gerenciada de suas permissões de recurso de teste de carga para ler esses valores do cofre de chaves.

Para conceder ao recurso de teste de carga do Azure permissões para ler segredos ou certificados do cofre de chaves do Azure:

  1. No portal do Azure, acesse o recurso do cofre de chaves do Azure.

    Se você não tiver um cofre de chaves, siga as instruções no Início Rápido do Azure Key Vault para criar um.

  2. No painel esquerdo, selecione Políticas de Acesso e, em seguida, selecione + Criar.

  3. Na guia Permissões, em Permissões secretas, selecione Obter e Avançar.

    Observação

    O Teste de Carga do Azure recupera certificados como um segredo para garantir que a chave privada do certificado esteja disponível.

  4. Na guia Principal, procure e selecione a identidade gerenciada para o recurso de teste de carga e selecione Avançar.

    Se você estiver usando uma identidade gerenciada atribuída pelo sistema, o nome da identidade gerenciada corresponderá ao do seu recurso de teste de carga do Azure.

  5. Selecione Avançar novamente.

    Quando o teste é executado, a identidade gerenciada associada ao recurso de teste de carga agora pode ler os segredos ou certificados para o teste de carga do cofre de chaves.

Fazer referência ao certificado na configuração de teste de carga

Para passar o certificado do cliente para solicitações de aplicativo, você precisa fazer referência ao certificado na configuração de teste de carga.

Para adicionar um certificado de cliente ao seu teste de carga no portal do Azure:

  1. Navegue até seu recurso de teste de carga no portal do Azure. Se você ainda não tiver um teste de carga, crie um novo teste de carga usando um script JMeter.

  2. No painel esquerdo, selecione Testes para exibir a lista de testes de carga.

  3. Selecione seu teste na lista e selecione Editar para editar a configuração do teste de carga.

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

  4. Na guia Parâmetros, insira os detalhes do certificado.

    Campo Valor
    Nome Nome do certificado.
    Valor Corresponde ao identificador secreto do Azure Key Vault do certificado.

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

  5. Selecione Aplicar para salvar as alterações de configuração do teste de carga.

Quando você executa o teste de carga, o Teste de Carga do Azure recupera o certificado do cliente do Cofre de Chaves do Azure e o injeta automaticamente em cada solicitação da Web do JMeter.