Testare di carico gli endpoint protetti con Test di carico di Azure
Questo articolo illustra come usare Test di carico di Azure con gli endpoint dell'applicazione che richiedono l'autenticazione. A seconda dell'implementazione dell'applicazione, è possibile usare un token di accesso, le credenziali utente o i certificati client per l'autenticazione delle richieste.
Test di carico di Azure supporta le opzioni seguenti per gli endpoint autenticati:
- Eseguire l'autenticazione con un segreto condiviso o credenziali utente
- Eseguire l'autenticazione con i certificati client
Prerequisiti
- Un account Azure con una sottoscrizione attiva. Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
- Risorsa del test di carico di Azure. Per creare una risorsa di test di carico, vedere Creare ed eseguire un test di carico.
Eseguire l'autenticazione con un segreto condiviso o credenziali
In questo scenario, l'endpoint dell'applicazione richiede l'uso di un segreto condiviso, ad esempio un token di accesso, una chiave API o credenziali utente per l'autenticazione.
Il diagramma seguente illustra come usare segreti o credenziali condivisi per l'autenticazione con un endpoint applicazione nel test di carico.
Il flusso per l'autenticazione con un segreto condiviso o credenziali utente è:
- Archiviare in modo sicuro il segreto o le credenziali, ad esempio in Azure Key Vault o nell'archivio segreti CI/CD.
- Fare riferimento al segreto nella configurazione del test di carico.
- Nello script JMeter recuperare il valore del segreto con la
GetSecret
funzione e passare il valore del segreto alla richiesta dell'applicazione.
Archiviare in modo sicuro il segreto
Per evitare l'archiviazione e la divulgazione delle informazioni di sicurezza nello script JMeter, è possibile archiviare in modo sicuro i segreti in Azure Key Vault o nell'archivio segreti CI/CD.
È possibile aggiungere le informazioni di sicurezza in un archivio segreti in uno dei due modi seguenti:
Aggiungere le informazioni sui segreti in Azure Key Vault. Seguire la procedura descritta in Parametrizzare i test di carico con segreti per archiviare un segreto e autorizzare la risorsa di test di carico a leggerne il valore.
Aggiungere le informazioni segrete come segreto in CI/CD (segreti di GitHub Actions o variabili segrete di Azure Pipelines).
Fare riferimento al segreto nella configurazione del test di carico
Prima di poter recuperare il valore del segreto nello script di test di JMeter, è necessario fare riferimento al segreto nella configurazione del test di carico.
Nella portale di Azure è possibile fare riferimento ai segreti archiviati in Azure Key Vault. Per aggiungere e configurare un segreto di test di carico nel portale di Azure:
Passare alla risorsa test di carico nella portale di Azure e quindi selezionare Test per visualizzare l'elenco dei test di carico.
Selezionare il test dall'elenco e quindi selezionare Modifica per modificare la configurazione del test di carico.
Nella scheda Parametri immettere i dettagli del segreto.
Campo Valore Nome Nome del segreto. Specificare questo nome alla GetSecret
funzione per recuperare il valore del segreto nello script JMeter.valore Corrisponde all'identificatore del segreto di Azure Key Vault. Selezionare Applica per salvare le modifiche alla configurazione del test di carico.
Recuperare e usare il valore del segreto nello script JMeter
È ora possibile recuperare il valore del segreto nello script JMeter usando la GetSecret
funzione personalizzata e passarlo alla richiesta dell'applicazione. Ad esempio, usare un'intestazione Authorization
HTTP per passare un token OAuth a una richiesta.
Creare una variabile definita dall'utente che recupera il valore del segreto con la
GetSecret
funzione personalizzata:La
GetSecret
funzione astrae il recupero del valore da Azure Key Vault o dall'archivio segreti CI/CD.Aggiornare il componente sampler JMeter per passare il segreto nella richiesta.
Ad esempio, per fornire un token di accesso OAuth2, configurare l'intestazione
Authorization
HTTP aggiungendo un :HTTP Header Manager
Eseguire l'autenticazione con i certificati client
In questo scenario, l'endpoint dell'applicazione richiede l'uso di un certificato client per l'autenticazione. Test di carico di Azure supporta il tipo di certificati PKCS12 (Public Key Certificate Standard 12). È possibile usare un solo certificato client in un test di carico.
Il diagramma seguente illustra come usare un certificato client per l'autenticazione con un endpoint applicazione nel test di carico.
Il flusso per l'autenticazione con i certificati client è:
- Archiviare in modo sicuro il certificato client in Azure Key Vault.
- Fare riferimento al certificato nella configurazione del test di carico.
- Test di carico di Azure passa in modo trasparente il certificato a tutte le richieste dell'applicazione in JMeter.
Archiviare il certificato client in Azure Key Vault
Per evitare l'archiviazione e la divulgazione, il certificato client insieme allo script JMeter archivia il certificato in Azure Key Vault.
Seguire la procedura descritta in Importare un certificato per archiviare il certificato in Azure Key Vault.
Importante
Test di carico di Azure supporta solo i certificati PKCS12. Caricare il certificato client in formato file PFX.
Concedere l'accesso all'insieme di credenziali delle chiavi di Azure
Quando si archivino segreti o certificati di test di carico in Azure Key Vault, la risorsa di test di carico usa un'identità gestita per l'accesso all'insieme di credenziali delle chiavi. Dopo aver configurato l'identità di gestione, è necessario concedere all'identità gestita delle risorse di test di carico le autorizzazioni per leggere questi valori dall'insieme di credenziali delle chiavi.
Per concedere alle risorse di test di carico di Azure le autorizzazioni per leggere segreti o certificati dall'insieme di credenziali delle chiavi di Azure:
Nella portale di Azure passare alla risorsa dell'insieme di credenziali delle chiavi di Azure.
Se non si ha un insieme di credenziali delle chiavi, seguire le istruzioni riportate in Avvio rapido di Azure Key Vault per crearne uno.
Nel riquadro sinistro selezionare Criteri di accesso e quindi + Crea.
Nella scheda Autorizzazioni, in Autorizzazioni segrete, selezionare Recupera e quindi selezionare Avanti.
Nota
Test di carico di Azure recupera i certificati come segreto per assicurarsi che la chiave privata per il certificato sia disponibile.
Nella scheda Entità cercare e selezionare l'identità gestita per la risorsa di test di carico e quindi selezionare Avanti.
Se si usa un'identità gestita assegnata dal sistema, il nome dell'identità gestita corrisponde a quello della risorsa di test di carico di Azure.
Selezionare di nuovo Avanti.
Quando viene eseguito il test, l'identità gestita associata alla risorsa di test di carico può ora leggere i segreti o i certificati per il test di carico dall'insieme di credenziali delle chiavi.
Fare riferimento al certificato nella configurazione del test di carico
Per passare il certificato client alle richieste dell'applicazione, è necessario fare riferimento al certificato nella configurazione del test di carico.
Per aggiungere un certificato client al test di carico nel portale di Azure:
Passare alla risorsa di test di carico nella portale di Azure. Se non si dispone ancora di un test di carico, creare un nuovo test di carico usando uno script JMeter.
Nel riquadro sinistro selezionare Test per visualizzare l'elenco dei test di carico.
Selezionare il test dall'elenco e quindi selezionare Modifica per modificare la configurazione del test di carico.
Nella scheda Parametri immettere i dettagli del certificato.
Campo Valore Nome Nome del certificato. valore Corrisponde all'identificatore del segreto di Azure Key Vault del certificato. Selezionare Applica per salvare le modifiche alla configurazione del test di carico.
Quando si esegue il test di carico, Test di carico di Azure recupera il certificato client da Azure Key Vault e lo inserisce automaticamente in ogni richiesta Web JMeter.
Contenuto correlato
- Altre informazioni su come parametrizzare un test di carico.