Partilhar via


Teste de carga em pontos de extremidade protegidos com o Azure Load Testing

Neste artigo, aprenderás a usar o Teste de Carga do Azure com pontos de extremidade de aplicação que exigem autenticação. Dependendo da implementação do aplicativo, você pode usar um token de acesso, credenciais de usuário, identidade gerenciada 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 não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
  • Um recurso de teste de desempenho do Azure. Para criar um recurso de teste de carga, consulte Criar e executar um teste de carga.

Autenticar com um segredo ou credenciais compartilhadas

Nesse cenário, o ponto de extremidade do aplicativo requer 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 compartilhados ou credenciais para autenticar com um ponto de extremidade do aplicativo em seu teste de carga.

Diagrama que mostra como usar a autenticação de segredo compartilhado com o Teste de Carga do Azure.

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 armazenamento de segredos de CI/CD.
  2. Faça referência ao segredo na configuração do teste de carga.
  3. Para testes baseados em JMeter, recupere o valor secreto com a GetSecret função. Para testes baseados em Locust, recupere o segredo com a função getenv. Passe o valor secreto para a solicitação do aplicativo.

Guarde o segredo com segurança

Para evitar armazenar e divulgar informações de segurança no script de teste, você pode armazenar segredos com segurança no Cofre de Chaves do Azure ou no armazenamento de segredos de CI/CD.

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

Referenciar o segredo na configuração do teste de carga

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

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

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

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

    Captura de tela que mostra como editar um teste de carga no portal do Azure.

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

    Campo Valor
    Nome Nome do segredo. Você fornece esse nome para a GetSecret função para recuperar o valor secreto no script de teste.
    Value Corresponde ao Identificador de Segredo do Azure Key Vault.

    Captura de ecrã que mostra como adicionar segredos a um teste de carga no portal do Azure.

  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 GetSecret função personalizada e passá-lo para a solicitação do aplicativo. Por exemplo, use um Authorization cabeçalho HTTP para passar um token OAuth para uma solicitação.

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

    A função GetSecret abstrai o processo de recuperar o valor do Cofre de Chaves do Azure ou da loja de segredos de CI/CD.

    Captura de tela que mostra como adicionar uma variável definida pelo usuário que usa a função GetSecret no JMeter.

  2. Atualize o componente amostrador JMeter para passar 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:

    Captura de tela que mostra como adicionar um cabeçalho de autorização a uma solicitação no JMeter.

Recuperar e usar o valor secreto no script Locust

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

Os segredos configurados na configuração de teste de carga são acessíveis como variáveis de ambiente.

  1. Inicialize uma variável com o valor secreto usando o nome secreto especificado na configuração do teste de carga.
my_secret = os.getenv("appToken")
  1. Faça referência à variável em seu script de teste para usar o valor secreto armazenado no Azure KeyVault.

Autenticar com certificados de cliente

Nesse cenário, o ponto de extremidade da aplicação exige que utilize um certificado de cliente para autenticação. O Teste de Carga do Azure dá suporte ao tipo de certificados PKCS12 (Padrão de Certificado de Chave Pública) #12. Você também pode usar vários certificados de cliente em um teste de carga.

O diagrama a seguir mostra como usar um certificado de cliente para autenticar-se em um ponto de extremidade da aplicação no teste de carga.

Diagrama que mostra como usar a autenticação de certificado de cliente com o Teste de Carga do Azure.

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

  1. Armazene com segurança o certificado do cliente no Cofre da Chave do Azure.
  2. Consulte o certificado na configuração de teste de carga.
  3. Para testes baseados em JMeter, o Teste de Carga do Azure passa o certificado de forma transparente para todos os aplicativos. Para testes baseados em gafanhotos, você pode recuperar o certificado em seu script de teste e passá-lo para as solicitações.

Armazenar o certificado do cliente no Azure Key Vault

Para evitar armazenar e distribuir o certificado do cliente junto com o script JMeter, armazene o certificado no Cofre da Chave do Azure.

Siga as etapas em Importar um certificado para armazenar seu certificado no Cofre da Chave do Azure.

Importante

O Teste de Carga do Azure suporta apenas 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 gerida, precisa conceder à identidade gerida do seu recurso de teste de carga permissões para ler esses valores do cofre de chaves.

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

  1. No portal do Azure, vá para o recurso do Azure Key Vault.

    Se você não tiver um cofre de chaves, siga as instruções no início rápido do Cofre de Chaves do Azure para criar um.

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

  3. No separador Permissões, em Permissões secretas, selecione Obter e, em seguida, selecione Seguinte.

    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 ao 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 do teste de carga no 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, em seguida, selecione Editar, para editar a configuração do teste de carga.

    Captura de tela que mostra como editar um teste de carga no portal do Azure.

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

    Campo Valor
    Nome Nome do certificado.
    Value Corresponde ao identificador do Azure Key Vault Secret do certificado.
  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 JMeter.

Para testes baseados em gafanhotos, você pode recuperar o certificado e usá-lo em seu script de testes. O certificado configurado na configuração de teste de carga está disponível no ALT_CERTIFICATES_DIR.

cert_dir = os.getenv("ALT_CERTIFICATES_DIR")
cert_file = open(os.path.join(cert_dir), "cert_name_in_keyvault.pfx")

Faça a autenticação com uma identidade gerida

Nesse cenário, o ponto de extremidade do aplicativo requer que você use uma identidade gerenciada para autenticar. Você pode usar identidades gerenciadas atribuídas pelo sistema e pelo usuário.

O fluxo para autenticação usando uma identidade gerenciada é:

  1. Atribua ao recurso de Teste de Carga do Azure a identidade gerida que o ponto de extremidade de destino identifica.
  2. Selecione a identidade gerenciada na configuração de teste de carga.

Você precisa configurar seu script de testes de carga para buscar o token de acesso usando a identidade gerenciada e usar o token para autenticar as solicitações no ponto de extremidade de destino. Por exemplo, você pode obter um token por meio de uma chamada HTTP REST para o ponto de extremidade IMDS (Serviço de Metadados de Instância) do Azure e, em seguida, passar o token para uma solicitação usando o Authorization cabeçalho HTTP.

Atribuir a identidade gerenciada

Atribua a identidade gerenciada que tem o acesso necessário ao ponto de extremidade de destino ao seu recurso de Teste de Carga do Azure. Quando você executa o teste, o Teste de Carga do Azure atribui essa identidade às instâncias do mecanismo. Isso garante que suas solicitações para buscar tokens de acesso usando a identidade gerenciada sejam bem-sucedidas.

Você pode usar uma identidade gerenciada atribuída pelo sistema ou uma identidade gerenciada atribuída pelo usuário,

  • Para usar uma identidade gerenciada atribuída ao sistema, primeiro atribua uma identidade gerenciada atribuída ao sistema ao seu recurso de Teste de Carga do Azure. Depois de ativado, forneça as permissões RBAC necessárias para essa identidade no endpoint alvo.

  • Para usar uma identidade gerenciada atribuída pelo usuário, primeiro atribua a identidade atribuída pelo usuário ao seu recurso de Teste de Carga do Azure. Caso esta identidade não possua as permissões RBAC necessárias no endpoint de destino, forneça as permissões necessárias. Se o script de teste usar várias identidades atribuídas pelo usuário, atribua as várias identidades ao seu recurso e verifique se elas têm as permissões RBAC necessárias.

Selecione a identidade gerenciada na configuração de teste de carga

Selecione a identidade gerenciada necessária ao criar ou editar um teste no Teste de Carga do Azure.

Para selecionar e configurar uma identidade gerenciada para autenticação no portal do Azure:

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

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

    Captura de tela que mostra como editar um teste de carga no portal do Azure.

  3. Na guia Plano de teste , configure a Identidade gerenciada para cenários de autenticação. Selecione 'Identidade atribuída pelo sistema' ou 'Identidade atribuída pelo usuário' conforme necessário.

    Captura de tela que mostra como selecionar identidade gerenciada para autenticação em um teste de carga no portal do Azure.

  4. Se tiver selecionado 'Identidade atribuída pelo utilizador', escolha as identidades necessárias na lista suspensa Identidade atribuída pelo utilizador.

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

Importante

A distribuição de carga entre regiões não é habilitada quando você usa identidades gerenciadas para autenticação.