Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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, hanterad identitet 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
- Autentisera med en hanterad identitet
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Om du inte har en Azure-prenumeration, skapa ett gratis 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.
- För JMeter-baserade tester hämtar du det hemliga värdet med
GetSecretfunktionen. För Locust-baserade tester hämtar du hemligheten medgetenvfunktionen. Skicka det hemliga värdet till applikationsförfrågan.
Lagra hemligheten på ett säkert sätt
För att undvika att lagra och avslöja säkerhetsinformation i testskriptet 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-portalen kan du referera till hemligheter som lagras i Azure Key Vault. Så här lägger du till och konfigurerar en belastningstesthemlighet i Azure-portalen:
Gå till din belastningstestningsresurs i Azure-portalen 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 GetSecretfunktionen för att hämta det hemliga värdet i testskriptet.Value Överensstämmer med Azure Key Vault hemliga identifikatorn. 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
GetSecretanpassade funktionen:Funktionen
GetSecretförenklar hämtning av värdet från antingen Azure Key Vault eller CI/CD-sekretesslagringen.Uppdatera JMeter-exempelkomponenten för att skicka hemligheten i begäran.
Om du till exempel vill ange en OAuth2-åtkomsttoken konfigurerar
Authorizationdu HTTP-huvudet genom att lägga till enHTTP Header Manager:
Hämta och använd det hemliga värdet i Locust-skriptet
Nu kan du hämta det hemliga värdet i Locust-skriptet 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.
Hemligheterna som konfigurerats i konfigurationen av belastningstestet är tillgängliga som miljövariabler.
- Initiera en variabel med det hemliga värdet med hjälp av det hemliga namn som anges i konfigurationen för belastningstestet.
my_secret = os.getenv("appToken")
- Referera till variabeln i testskriptet för att använda det hemliga värdet som lagras i Azure KeyVault.
Autentisera med klientcertifikat
I det här scenariot kräver programslutpunkten att du använder ett klientcertifikat för att autentisera. Azure Load Testing stöder certifikat av typen Public Key Certificate Standard #12 (PKCS12). Du kan också använda flera 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.
- För JMeter-baserade tester skickar Azure Load Testing transparent certifikatet till alla program. För Locust-baserade tester kan du hämta certifikatet i testskriptet och skicka det till begäranden.
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 Azure Key Vault:
I Azure-portalen 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.
Anmärkning
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-portalen:
Gå till din belastningstestningsresurs i Azure-portalen. 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. Value 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.
För Locust-baserade tester kan du hämta certifikatet och använda det i testskriptet. Certifikatet som konfigurerats i konfigurationen av belastningstestet är tillgängligt i ALT_CERTIFICATES_DIR.
cert_dir = os.getenv("ALT_CERTIFICATES_DIR")
cert_file = open(os.path.join(cert_dir), "cert_name_in_keyvault.pfx")
Autentisera med en hanterad identitet
I det här scenariot kräver programslutpunkten att du använder en hanterad identitet för att autentisera. Du kan använda både systemtilldelade och användartilldelade hanterade identiteter.
Flödet för autentisering med hjälp av en hanterad identitet är:
- Tilldela den hanterade identitet som målslutpunkten identifierar till Azure Load Testing-resursen.
- Välj den hanterade identiteten i konfigurationen för belastningstestet.
Du måste konfigurera skriptet för belastningstester för att hämta åtkomsttoken med hanterad identitet och använda token för att autentisera begäranden till målslutpunkten. Du kan till exempel hämta en token via ett HTTP REST-anrop till SLUTpunkten för Azure Instance Metadata Service (IMDS) och sedan skicka token till en begäran med http-huvudet Authorization .
Tilldela den hanterade identiteten
Tilldela den hanterade identitet som har nödvändig åtkomst till målslutpunkten till din Azure Load Testing-resurs. När du kör testet tilldelar Azure Load Testing den här identiteten till motorinstanserna. Detta säkerställer att dina begäranden om att hämta åtkomsttoken med hjälp av den hanterade identiteten lyckas.
Du kan använda antingen en systemtilldelad hanterad identitet eller en användartilldelad hanterad identitet.
Om du vill använda en systemtilldelad hanterad identitet tilldelar du först en systemtilldelad hanterad identitet till din Azure Load Testing-resurs. När den är aktiverad anger du nödvändiga RBAC-behörigheter för den här identiteten på målslutpunkten.
Om du vill använda en användartilldelad hanterad identitet tilldelar du först den användartilldelade identiteten till din Azure Load Testing-resurs. Om den här identiteten inte har nödvändiga RBAC-behörigheter på målslutpunkten anger du de behörigheter som krävs. Om testskriptet använder flera användartilldelade flera identiteter tilldelar du flera identiteter till resursen och ser till att de har nödvändiga RBAC-behörigheter.
Välj den hanterade identiteten i konfigurationen för belastningstest
Välj den hanterade identitet som krävs när du skapar eller redigerar ett test i Azure Load Testing.
Så här väljer du och konfigurerar en hanterad identitet för autentisering i Azure-portalen:
Gå till din belastningstestningsresurs i Azure-portalen 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 Testplan konfigurerar du den hanterade identiteten för autentiseringsscenarier. Välj "Systemtilldelad identitet" eller "Användartilldelad identitet" efter behov.
Om du har valt "Användartilldelad identitet" väljer du de identiteter som krävs i listrutan Användartilldelad identitet .
Välj Använd för att spara konfigurationsändringarna för belastningstestet.
Viktigt!
Belastningsfördelningen mellan regioner är inte aktiverad när du använder hanterade identiteter för autentisering.
Relaterat innehåll
Läs mer om hur du parameteriserar ett belastningstest.
Läs mer om hur du använder flera certifikat i ett belastningstest.