Testy obciążeniowe zabezpieczone punkty końcowe za pomocą testowania obciążenia platformy Azure
Z tego artykułu dowiesz się, jak używać testowania obciążenia platformy Azure z punktami końcowymi aplikacji, które wymagają uwierzytelniania. W zależności od implementacji aplikacji można użyć tokenu dostępu, poświadczeń użytkownika lub certyfikatów klienta do uwierzytelniania żądań.
Testowanie obciążenia platformy Azure obsługuje następujące opcje dla uwierzytelnionych punktów końcowych:
- Uwierzytelnianie przy użyciu wspólnego wpisu tajnego lub poświadczeń użytkownika
- Uwierzytelnianie przy użyciu certyfikatów klienta
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
- Zasób testowania obciążenia platformy Azure. Aby utworzyć zasób testowania obciążenia, zobacz Tworzenie i uruchamianie testu obciążeniowego.
Uwierzytelnianie przy użyciu wspólnego wpisu tajnego lub poświadczeń
W tym scenariuszu punkt końcowy aplikacji wymaga użycia wspólnego wpisu tajnego, takiego jak token dostępu, klucz interfejsu API lub poświadczenia użytkownika do uwierzytelniania.
Na poniższym diagramie pokazano, jak używać udostępnionych wpisów tajnych lub poświadczeń do uwierzytelniania za pomocą punktu końcowego aplikacji w teście obciążeniowym.
Przepływ uwierzytelniania za pomocą wspólnego wpisu tajnego lub poświadczeń użytkownika to:
- Bezpiecznie przechowuj wpis tajny lub poświadczenia, na przykład w usłudze Azure Key Vault lub w magazynie wpisów tajnych ciągłej integracji/ciągłego wdrażania.
- Odwołuj się do wpisu tajnego w konfiguracji testu obciążeniowego.
- W skrypie JMeter pobierz wartość wpisu tajnego z funkcją
GetSecret
i przekaż wartość wpisu tajnego do żądania aplikacji.
Bezpieczne przechowywanie wpisu tajnego
Aby uniknąć przechowywania i ujawniania informacji zabezpieczających w skrypcie JMeter, możesz bezpiecznie przechowywać wpisy tajne w usłudze Azure Key Vault lub w magazynie wpisów tajnych ciągłej integracji/ciągłego wdrażania.
Informacje o zabezpieczeniach można dodać w magazynie wpisów tajnych na jeden z dwóch sposobów:
Dodaj informacje o wpisie tajnym w usłudze Azure Key Vault. Wykonaj kroki opisane w temacie Parametryzowanie testów obciążeniowych przy użyciu wpisów tajnych , aby przechowywać wpis tajny i autoryzować zasób testowania obciążenia w celu odczytania jego wartości.
Dodaj informacje tajne jako wpis tajny w ciągłej integracji/ciągłego wdrażania (wpisy tajne funkcji GitHub Actions lub zmienne wpisów tajnych usługi Azure Pipelines).
Odwołanie do wpisu tajnego w konfiguracji testu obciążeniowego
Aby można było pobrać wartość wpisu tajnego w skrypie testowym JMeter, należy odwołać się do wpisu tajnego w konfiguracji testu obciążeniowego.
W witrynie Azure Portal można odwoływać się do wpisów tajnych przechowywanych w usłudze Azure Key Vault. Aby dodać i skonfigurować wpis tajny testu obciążeniowego w witrynie Azure Portal:
Przejdź do zasobu testowania obciążenia w witrynie Azure Portal, a następnie wybierz pozycję Testy , aby wyświetlić listę testów obciążeniowych.
Wybierz test z listy, a następnie wybierz pozycję Edytuj , aby edytować konfigurację testu obciążeniowego.
Na karcie Parametry wprowadź szczegóły wpisu tajnego.
Pole Wartość Nazwa/nazwisko Nazwa wpisu tajnego. Ta nazwa GetSecret
jest udostępniana funkcji w celu pobrania wartości wpisu tajnego w skrypie JMeter.Wartość Pasuje do identyfikatora wpisu tajnego usługi Azure Key Vault. Wybierz pozycję Zastosuj, aby zapisać zmiany konfiguracji testu obciążeniowego.
Pobieranie i używanie wartości wpisu tajnego w skrypie JMeter
Teraz możesz pobrać wartość wpisu tajnego w skrypie JMeter przy użyciu funkcji niestandardowej GetSecret
i przekazać ją do żądania aplikacji. Na przykład użyj nagłówka Authorization
HTTP, aby przekazać token OAuth do żądania.
Utwórz zmienną zdefiniowaną przez użytkownika, która pobiera wartość wpisu tajnego z funkcją niestandardową
GetSecret
:Funkcja
GetSecret
pobiera wartość z usługi Azure Key Vault lub magazynu wpisów tajnych ciągłej integracji/ciągłego wdrażania.Zaktualizuj składnik próbkatora JMeter, aby przekazać wpis tajny w żądaniu.
Aby na przykład podać token dostępu OAuth2, należy skonfigurować
Authorization
nagłówek HTTP, dodając elementHTTP Header Manager
:
Uwierzytelnianie przy użyciu certyfikatów klienta
W tym scenariuszu punkt końcowy aplikacji wymaga uwierzytelnienia przy użyciu certyfikatu klienta. Testowanie obciążenia platformy Azure obsługuje certyfikaty typu Standard certyfikatu klucza publicznego #12 (PKCS12). W teście obciążeniowym można użyć tylko jednego certyfikatu klienta.
Na poniższym diagramie pokazano, jak używać certyfikatu klienta do uwierzytelniania za pomocą punktu końcowego aplikacji w teście obciążeniowym.
Przepływ uwierzytelniania za pomocą certyfikatów klienta to:
- Bezpiecznie przechowuj certyfikat klienta w usłudze Azure Key Vault.
- Odwołuj się do certyfikatu w konfiguracji testu obciążeniowego.
- Testowanie obciążenia platformy Azure w sposób niewidoczny przekazuje certyfikat do wszystkich żądań aplikacji w narzędziu JMeter.
Przechowywanie certyfikatu klienta w usłudze Azure Key Vault
Aby uniknąć przechowywania i ujawniania certyfikatu klienta wraz ze skryptem JMeter, należy przechowywać certyfikat w usłudze Azure Key Vault.
Wykonaj kroki opisane w temacie Importowanie certyfikatu do przechowywania certyfikatu w usłudze Azure Key Vault.
Ważne
Testowanie obciążenia platformy Azure obsługuje tylko certyfikaty PKCS12. Przekaż certyfikat klienta w formacie pliku PFX.
Udzielanie dostępu do magazynu kluczy platformy Azure
Podczas przechowywania wpisów tajnych testów obciążeniowych lub certyfikatów w usłudze Azure Key Vault zasób testowania obciążenia używa tożsamości zarządzanej do uzyskiwania dostępu do magazynu kluczy. Po skonfigurowaniu tożsamości zarządzania należy udzielić tożsamości zarządzanej uprawnień zasobu do testowania obciążenia, aby odczytać te wartości z magazynu kluczy.
Aby przyznać zasobom testowania obciążenia platformy Azure uprawnienia do odczytywania wpisów tajnych lub certyfikatów z magazynu kluczy platformy Azure:
W witrynie Azure Portal przejdź do zasobu usługi Azure Key Vault.
Jeśli nie masz magazynu kluczy, postępuj zgodnie z instrukcjami w przewodniku Szybki start usługi Azure Key Vault, aby go utworzyć.
W okienku po lewej stronie wybierz pozycję Zasady dostępu, a następnie wybierz pozycję + Utwórz.
Na karcie Uprawnienia w obszarze Uprawnienia w obszarze Uprawnienia tajne wybierz pozycję Pobierz, a następnie wybierz pozycję Dalej.
Uwaga
Testowanie obciążenia platformy Azure pobiera certyfikaty jako klucz tajny , aby upewnić się, że klucz prywatny certyfikatu jest dostępny.
Na karcie Podmiot zabezpieczeń wyszukaj i wybierz tożsamość zarządzaną dla zasobu testowania obciążenia, a następnie wybierz pozycję Dalej.
Jeśli używasz tożsamości zarządzanej przypisanej przez system, nazwa tożsamości zarządzanej jest zgodna z nazwą zasobu testowania obciążenia platformy Azure.
Ponownie wybierz przycisk Dalej .
Po uruchomieniu testu tożsamość zarządzana skojarzona z zasobem testowania obciążenia może teraz odczytywać wpisy tajne lub certyfikaty dla testu obciążeniowego z magazynu kluczy.
Odwołanie do certyfikatu w konfiguracji testu obciążeniowego
Aby przekazać certyfikat klienta do żądań aplikacji, należy odwołać się do certyfikatu w konfiguracji testu obciążeniowego.
Aby dodać certyfikat klienta do testu obciążeniowego w witrynie Azure Portal:
Przejdź do zasobu testowania obciążenia w witrynie Azure Portal. Jeśli nie masz jeszcze testu obciążeniowego, utwórz nowy test obciążeniowy przy użyciu skryptu JMeter.
W okienku po lewej stronie wybierz pozycję Testy , aby wyświetlić listę testów obciążeniowych.
Wybierz test z listy, a następnie wybierz pozycję Edytuj, aby edytować konfigurację testu obciążeniowego.
Na karcie Parametry wprowadź szczegóły certyfikatu.
Pole Wartość Nazwa/nazwisko Nazwa certyfikatu. Wartość Pasuje do identyfikatora wpisu tajnego usługi Azure Key Vault certyfikatu. Wybierz pozycję Zastosuj, aby zapisać zmiany konfiguracji testu obciążeniowego.
Po uruchomieniu testu obciążeniowego usługa Azure Load Testing pobiera certyfikat klienta z usługi Azure Key Vault i automatycznie wprowadza go do każdego żądania internetowego JMeter.
Powiązana zawartość
- Dowiedz się więcej o tym, jak sparametryzować test obciążeniowy.