Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Neste artigo, você aprenderá a usar o Teste de Carga do Azure com os pontos de extremidade do aplicativo 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:
- Autenticar com um segredo compartilhado ou credenciais de usuário
- Autenticar com os certificados do cliente
- Autenticar com uma identidade gerenciada
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 do Teste de Carga do Azure. Para criar um recurso de teste de carga, veja 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.
O fluxo para autenticação com um segredo compartilhado ou as credenciais do usuário é:
- Armazene com segurança o segredo ou as credenciais, por exemplo, no Azure Key Vault ou no repositório de segredos de CI/CD.
- Referencie o segredo na configuração do teste de carga.
- Para testes baseados em JMeter, recupere o valor do segredo com a função
GetSecret
. Para testes baseados em Locust, recupere o segredo com a funçãogetenv
. Transmita o valor do segredo para a solicitação do aplicativo.
Armazene 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 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:
Adicione as informações secretas no Azure Key Vault. Siga as etapas em Parametrizar testes de carga com segredos para armazenar um segredo e autorizar seu recurso de teste de carga a ler seu valor.
Adicione as informações secretas como um segredo no CI/CD (segredos do GitHub Actions ou variáveis secretas do Azure Pipelines).
Referenciar o segredo na configuração de teste de carga
Antes de recuperar o valor do segredo no script de teste do JMeter, você precisa referenciar o segredo na configuração do teste de carga.
No portal do Azure, você pode referenciar os segredos armazenados no Azure Key Vault. Para adicionar e configurar um segredo de teste de carga no portal do Azure:
Navegue até o recurso de teste de carga no portal do Azure e selecione Testes para exibir a lista de testes de carga.
Selecione seu teste na lista e selecione Editar para editar a configuração do teste de carga.
Na guia Parâmetros, insira os detalhes do segredo.
Campo Valor Nome Nome do segredo. Você fornece esse nome à função GetSecret
para recuperar o valor secreto no script de teste.Valor Corresponde ao identificador secreto do Azure Key Vault. Selecione Aplicar para salvar as alterações de configuração do teste de carga.
Recuperar e usar o valor do segredo no script JMeter
Agora você pode recuperar o valor do segredo no script JMeter usando a função personalizada GetSecret
e passá-lo para a solicitação do aplicativo. Por exemplo, use um cabeçalho HTTP Authorization
para passar um token OAuth para uma solicitação.
Crie uma variável definida pelo usuário que recupere o valor do segredo com a função personalizada
GetSecret
:A função
GetSecret
abstrai a recuperação do valor do Azure Key Vault ou do armazenamento de segredos de CI/CD.Atualize o componente do amostrador JMeter para transmitir o segredo na solicitação.
Por exemplo, para fornecer um token de acesso OAuth2, você configura o cabeçalho HTTP
Authorization
adicionando umHTTP Header Manager
:
Recuperar e usar o valor do segredo no script do Locust
Agora você pode recuperar o valor secreto no script Locust e passá-lo para a requisição do aplicativo. Por exemplo, use um cabeçalho HTTP Authorization
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.
- Inicialize uma variável com o valor secreto usando o nome secreto especificado na configuração de teste de carga.
my_secret = os.getenv("appToken")
- Faça referência à variável no script de teste para usar o valor secreto armazenado no Azure KeyVault.
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ê 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 com um ponto de extremidade de aplicativo em seu teste de carga.
O fluxo para autenticação com os certificados do cliente é:
- Armazene com segurança o certificado do cliente no Azure Key Vault.
- Referenciar o certificado na configuração de teste de carga.
- Para testes baseados em JMeter, o Teste de Carga do Azure passa o certificado de forma transparente para todos os aplicativos. Para testes baseados no Locust, você pode recuperar o certificado no script de teste e transmiti-lo para as solicitações.
Armazenar o certificado do cliente no Azure Key Vault
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 de teste de carga ou certificados no Azure Key Vault, seu recurso de teste de carga usa uma identidade gerenciada para acessar o cofre de chaves. Depois de configurar a identidade de gerenciamento, você precisará conceder à identidade gerenciada permissões de recurso de teste de carga para ler esses valores do cofre de chaves.
Para conceder permissões de recurso do Teste de Carga do Azure para ler segredos ou certificados do cofre de chaves do Azure:
No portal do Azure, acesse 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 Azure Key Vault para criar um.
No menu à esquerda, selecione Políticas de Acesso e selecione Criar.
Na guia Permissões, em Permissões secretas, selecione Obter, e selecione Próximo.
Observação
O Teste de Carga do Azure recupera certificados como um segredo para garantir que a chave privada do certificado esteja disponível.
Na guia Principal, pesquise e selecione a identidade gerenciada no recurso de teste de carga e selecione Próximo.
Se você estiver usando uma identidade gerenciada atribuída pelo sistema, o nome da identidade gerenciada corresponderá ao do recurso de teste de carga do Azure.
Selecione Avançar novamente.
Quando o teste é executado, a identidade gerenciada associada ao recurso de teste de carga já pode ler os segredos ou certificados do teste de carga do cofre de chaves.
Referenciar o certificado na configuração de teste de carga
Para passar o certificado do cliente para as solicitações de aplicativo, você precisa referenciar o certificado na configuração de teste de carga.
Para adicionar um certificado de cliente ao seu teste de carga no portal do Azure:
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.
No painel esquerdo, selecione Testes para exibir a lista de testes de carga.
Selecione seu teste na lista e selecione Editar para editar a configuração do teste de carga.
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. 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 Azure Key Vault e o injeta automaticamente em cada solicitação da Web do JMeter.
Para testes baseados em Locust, você pode recuperar o certificado e usá-lo no script de testes. O certificado definido na configuração de teste de carga está disponível em ALT_CERTIFICATES_DIR
.
cert_dir = os.getenv("ALT_CERTIFICATES_DIR")
cert_file = open(os.path.join(cert_dir), "cert_name_in_keyvault.pfx")
Autenticar com uma identidade gerenciada
Nesse cenário, o endpoint do aplicativo requer que você use uma identidade gerenciada para autenticar. Você pode usar identidades gerenciadas atribuídas pelo sistema e atribuídas pelo usuário.
O fluxo para autenticação usando uma identidade gerenciada é:
- Atribua a identidade gerenciada identificada pelo ponto de extremidade de destino ao recurso do Teste de Carga do Azure.
- Selecione a identidade gerenciada na configuração de teste de carga.
Você precisa configurar o 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 através de uma chamada REST HTTP para o endpoint do Serviço de Metadados de Instância do Azure (IMDS) e, em seguida, passar o token para uma solicitação usando o cabeçalho HTTP Authorization
.
Atribuir a identidade gerenciada
Atribua a identidade gerenciada que tem o acesso necessário ao ponto de extremidade de destino ao recurso do 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 pelo sistema, primeiro atribua uma identidade gerenciada atribuída pelo sistema ao recurso de Teste de Carga do Azure. Assim que estiver habilitado, forneça as permissões RBAC necessárias para essa identidade no endpoint de destino.
Para usar uma identidade gerenciada atribuída pelo usuário, primeiro atribua a identidade atribuída pelo usuário ao recurso de Teste de Carga do Azure. Se essa identidade não tiver as permissões RBAC necessárias no ponto de extremidade 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 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:
Navegue até o recurso de teste de carga no portal do Azure e selecione Testes para exibir a lista de testes de carga.
Selecione seu teste na lista e selecione Editar para editar a configuração do teste de carga.
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.
Se você selecionou ‘Identidade atribuída pelo usuário’, escolha as identidades necessárias na lista suspensa Identidade atribuída pelo usuário.
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 está habilitada quando você usa identidades gerenciadas para autenticação.
Conteúdo relacionado
Saiba mais sobre como parametrizar um teste de carga.
Saiba mais sobre como usar vários certificados em um teste de carga.