Läsa in testskyddade slutpunkter med Azure Load Testing
I den här artikeln får du lära dig hur du använder Azure Load Testing med programslutpunkter som kräver autentisering. Beroende på programimplementeringen kan du använda en åtkomsttoken, användarautentiseringsuppgifter eller klientcertifikat för att autentisera begäranden.
Azure Load Testing stöder följande alternativ för autentiserade slutpunkter:
- Autentisera med en delad hemlighet eller användarautentiseringsuppgifter
- Autentisera med klientcertifikat
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.
- En Azure-belastningstestningsresurs. Information om hur du skapar en belastningstestresurs finns i Skapa och köra ett belastningstest.
Autentisera med en delad hemlighet eller autentiseringsuppgifter
I det här scenariot kräver programslutpunkten att du använder en delad hemlighet, till exempel en åtkomsttoken, en API-nyckel eller användarautentiseringsuppgifter för att autentisera.
Följande diagram visar hur du använder delade hemligheter eller autentiseringsuppgifter för att autentisera med en programslutpunkt i belastningstestet.
Flödet för autentisering med en delad hemlighet eller användarautentiseringsuppgifter är:
- Lagra hemligheten eller autentiseringsuppgifterna på ett säkert sätt, till exempel i Azure Key Vault eller CI/CD-hemlighetsarkivet.
- Referera till hemligheten i konfigurationen av belastningstestet.
- I JMeter-skriptet hämtar du det hemliga värdet med
GetSecret
funktionen och skickar det hemliga värdet till programbegäran.
Lagra hemligheten på ett säkert sätt
För att undvika att lagra och avslöja säkerhetsinformation i JMeter-skriptet kan du lagra hemligheter på ett säkert sätt i Azure Key Vault eller i CI/CD-hemlighetsarkivet.
Du kan lägga till säkerhetsinformationen i ett hemlighetsarkiv på något av två sätt:
Lägg till hemlig information i Azure Key Vault. Följ stegen i Parameterisera belastningstester med hemligheter för att lagra en hemlighet och ge din belastningstestningsresurs behörighet att läsa dess värde.
Lägg till hemlig information som en hemlighet i CI/CD (GitHub Actions-hemligheter eller Azure Pipelines-hemliga variabler).
Referera till hemligheten i konfigurationen av belastningstestet
Innan du kan hämta det hemliga värdet i JMeter-testskriptet måste du referera till hemligheten i konfigurationen för belastningstest.
I Azure Portal kan du referera till hemligheter som lagras i Azure Key Vault. Så här lägger du till och konfigurerar en belastningstesthemlighet i Azure Portal:
Gå till din belastningstestningsresurs i Azure Portal och välj sedan Tester för att visa listan över belastningstester.
Välj ditt test i listan och välj sedan Redigera för att redigera konfigurationen för belastningstestet.
På fliken Parametrar anger du informationen om hemligheten.
Fält Värde Namn Namnet på hemligheten. Du anger det här namnet för GetSecret
funktionen för att hämta det hemliga värdet i JMeter-skriptet.Värde Matchar Azure Key Vault Secret-identifieraren. Välj Använd för att spara konfigurationsändringarna för belastningstestet.
Hämta och använd det hemliga värdet i JMeter-skriptet
Nu kan du hämta det hemliga värdet i JMeter-skriptet med hjälp av den GetSecret
anpassade funktionen och skicka det till programbegäran. Använd till exempel ett Authorization
HTTP-huvud för att skicka en OAuth-token till en begäran.
Skapa en användardefinierad variabel som hämtar det hemliga värdet med den
GetSecret
anpassade funktionen:Funktionen
GetSecret
abstraherar hämtning av värdet från antingen Azure Key Vault eller CI/CD-hemlighetsarkivet.Uppdatera JMeter-exempelkomponenten för att skicka hemligheten i begäran.
Om du till exempel vill ange en OAuth2-åtkomsttoken konfigurerar
Authorization
du HTTP-huvudet genom att lägga till enHTTP Header Manager
:
Autentisera med klientcertifikat
I det här scenariot kräver programslutpunkten att du använder ett klientcertifikat för att autentisera. Azure Load Testing har stöd för PKCS12-typen (Public Key Certificate Standard 12). Du kan bara använda ett klientcertifikat i ett belastningstest.
Följande diagram visar hur du använder ett klientcertifikat för att autentisera med en programslutpunkt i belastningstestet.
Flödet för autentisering med klientcertifikat är:
- Lagra klientcertifikatet på ett säkert sätt i Azure Key Vault.
- Referera till certifikatet i konfigurationen av belastningstestet.
- Azure Load Testing skickar transparent certifikatet till alla programbegäranden i JMeter.
Lagra klientcertifikatet i Azure Key Vault
För att undvika att lagra och avslöja klientcertifikatet tillsammans med JMeter-skriptet lagrar du certifikatet i Azure Key Vault.
Följ stegen i Importera ett certifikat för att lagra certifikatet i Azure Key Vault.
Viktigt!
Azure Load Testing stöder endast PKCS12-certifikat. Ladda upp klientcertifikatet i PFX-filformat.
Bevilja åtkomst till ditt Azure-nyckelvalv
När du lagrar belastningstesthemligheter eller certifikat i Azure Key Vault använder din belastningstestresurs en hanterad identitet för åtkomst till nyckelvalvet. När du har konfigurerat hanteringsidentiteten måste du ge den hanterade identiteten för resursen för belastningstestning behörighet att läsa dessa värden från nyckelvalvet.
Så här beviljar du resursbehörigheter för Azure-belastningstestning för att läsa hemligheter eller certifikat från ditt Azure-nyckelvalv:
I Azure Portal går du till din Azure Key Vault-resurs.
Om du inte har något nyckelvalv följer du anvisningarna i Azure Key Vault-snabbstarten för att skapa ett.
I den vänstra rutan väljer du Åtkomstprinciper och sedan + Skapa.
På fliken Behörigheter går du till Hemliga behörigheter, väljer Hämta och sedan Nästa.
Kommentar
Azure Load Testing hämtar certifikat som en hemlighet för att säkerställa att den privata nyckeln för certifikatet är tillgänglig.
På fliken Huvudnamn söker du efter och väljer den hanterade identiteten för belastningstestningsresursen och väljer sedan Nästa.
Om du använder en systemtilldelad hanterad identitet matchar det hanterade identitetsnamnet namnet på din Azure-belastningstestresurs.
Välj Nästa igen.
När testet körs kan den hanterade identitet som är associerad med din belastningstestningsresurs nu läsa hemligheterna eller certifikaten för belastningstestet från nyckelvalvet.
Referera till certifikatet i konfigurationen av belastningstestet
Om du vill skicka klientcertifikatet till programbegäranden måste du referera till certifikatet i konfigurationen för belastningstestet.
Så här lägger du till ett klientcertifikat i belastningstestet i Azure Portal:
Gå till din belastningstestningsresurs i Azure Portal. Om du inte har något belastningstest än skapar du ett nytt belastningstest med hjälp av ett JMeter-skript.
I den vänstra rutan väljer du Tester för att visa listan över belastningstester.
Välj ditt test i listan och välj sedan Redigera för att redigera konfigurationen för belastningstestet.
På fliken Parametrar anger du information om certifikatet.
Fält Värde Namn Namnet på certifikatet. Värde Matchar Azure Key Vault Secret-identifieraren för certifikatet. Välj Använd för att spara konfigurationsändringarna för belastningstestet.
När du kör belastningstestet hämtar Azure Load Testing klientcertifikatet från Azure Key Vault och matar automatiskt in det i varje JMeter-webbbegäran.
Relaterat innehåll
- Läs mer om hur du parameteriserar ett belastningstest.