Testujte zatížením zabezpečené koncové body pomocí Azure Load Testing.

V tomto článku se dozvíte, jak používat Azure Load Testing s koncovými body aplikace, které vyžadují ověřování. V závislosti na implementaci aplikace můžete pro ověřování požadavků použít přístupový token, přihlašovací údaje uživatele, spravovanou identitu nebo klientské certifikáty.

Azure Load Testing podporuje následující možnosti pro ověřené koncové body:

Požadavky

Ověřování pomocí sdíleného tajného klíče nebo přihlašovacích údajů

V tomto scénáři koncový bod aplikace vyžaduje, abyste k ověření použili sdílený tajný klíč, jako je přístupový token, klíč rozhraní API nebo přihlašovací údaje uživatele.

Následující diagram ukazuje, jak použít sdílené tajné kódy nebo přihlašovací údaje k ověření pomocí koncového bodu aplikace v zátěžovém testu.

Diagram znázorňující použití ověřování pomocí sdíleného tajného kódu s využitím zátěžového testování Azure

Tok pro ověřování pomocí sdíleného tajného kódu nebo přihlašovacích údajů uživatele je:

  1. Bezpečně uložte tajný klíč nebo přihlašovací údaje, například ve službě Azure Key Vault nebo v úložišti tajných kódů CI/CD.
  2. Odkazujte na tajný údaj v konfiguraci zátěžového testu.
  3. V případě testů založených na JMeteru načtěte tajnou GetSecret hodnotu pomocí funkce. U testů založených na Locustu získejte tajemství pomocí funkce getenv. Předejte do požadavku aplikace hodnotu tajného kódu.

Bezpečné uložení tajného kódu

Abyste se vyhnuli ukládání a zveřejnění informací o zabezpečení v testovacím skriptu, můžete bezpečně ukládat tajné kódy ve službě Azure Key Vault nebo v úložišti tajných kódů CI/CD.

Informace o zabezpečení můžete do úložiště tajných kódů přidat dvěma způsoby:

Odkaz na tajný prvek v konfiguraci zátěžového testu

Než budete moct načíst hodnotu tajného kódu v testovacím skriptu JMeter, musíte na tajný kód odkazovat v konfiguraci zátěžového testu.

Na webu Azure Portal můžete odkazovat na tajné kódy uložené ve službě Azure Key Vault. Přidání a konfigurace tajného kódu zátěžového testu na webu Azure Portal:

  1. Na webu Azure Portal přejděte k vašemu prostředku zátěžového testování a výběrem možnosti Testy zobrazte seznam zátěžových testů.

  2. V seznamu vyberte svůj test a pak vyberte Upravit a upravte konfiguraci zátěžového testu.

    Snímek obrazovky, který ukazuje, jak upravit zátěžový test na webu Azure Portal

  3. Na kartě Parametry zadejte podrobnosti tajného klíče.

    Obor Hodnota
    název Název tajného klíče. Tento název zadáte do funkce GetSecret, aby načetla tajnou hodnotu ve skriptu testu.
    Hodnota Odpovídá identifikátoru tajného klíče služby Azure Key Vault.

    Snímek obrazovky, který ukazuje, jak přidat tajné kódy do zátěžového testu na webu Azure Portal

  4. Výběrem možnosti Použít uložte změny konfigurace zátěžového testu.

Načtení a použití hodnoty tajného kódu ve skriptu JMeter

Teď můžete načíst tajnou hodnotu ve skriptu JMeter pomocí GetSecret vlastní funkce a předat ji v požadavku aplikace. Například k předání tokenu OAuth do požadavku použijte hlavičku Authorization HTTP.

  1. Vytvořte uživatelem definovanou proměnnou, která načte hodnotu tajné hodnoty pomocí vlastní funkce GetSecret.

    Funkce GetSecret abstrahuje načtení hodnoty z Azure Key Vault nebo z úložiště tajných klíčů CI/CD.

    Snímek obrazovky, který ukazuje, jak přidat uživatelem definovanou proměnnou, která používá funkci GetSecret v JMeter

  2. Aktualizujte komponentu sampleru JMeter tak, aby předala tajný kód v požadavku.

    Pokud například chcete poskytnout přístupový token OAuth2, nakonfigurujete hlavičku Authorization HTTP přidáním HTTP Header Managerpříkazu :

    Snímek obrazovky, který ukazuje, jak přidat autorizační hlavičku do požadavku v JMeteru

Získat a použít tajnou hodnotu ve skriptu Locust

Nyní můžete načíst tajnou hodnotu ve skriptu Locust a předat ji do požadavku aplikace. Například k předání tokenu OAuth do požadavku použijte hlavičku Authorization HTTP.

Tajné kódy nakonfigurované v konfiguraci zátěžového testu jsou přístupné jako proměnné prostředí.

  1. Inicializujte proměnnou s tajnou hodnotou pomocí tajného názvu zadaného v konfiguraci zátěžového testu.
my_secret = os.getenv("appToken")
  1. Odkazujte na proměnnou ve vašem testovacím skriptu, abyste použili tajnou hodnotu uloženou v Azure KeyVault.

Ověřování pomocí klientských certifikátů

V tomto scénáři koncový bod aplikace vyžaduje, abyste k ověření použili klientský certifikát. Zátěžové testování Azure podporuje typ certifikátů PKCS12 (Public Key Certificate Standard). V zátěžovém testu můžete také použít více klientských certifikátů .

Následující diagram ukazuje, jak použít klientský certifikát k ověření pomocí koncového bodu aplikace v zátěžovém testu.

Diagram znázorňující použití ověřování pomocí klientského certifikátu s využitím zátěžového testování Azure

Tok ověřování pomocí klientských certifikátů je následující:

  1. Bezpečně uložte klientský certifikát ve službě Azure Key Vault.
  2. Odkazujte na certifikát v konfiguraci zátěžového testu.
  3. U testů založených na JMeteru azure Load Testing transparentně předává certifikát do všech aplikací. V případě testů založených na Locustu můžete certifikát načíst ve svém testovacím skriptu a předat ho žádostem.

Uložení klientského certifikátu ve službě Azure Key Vault

Aby se zabránilo ukládání a zveřejnění klientského certifikátu společně se skriptem JMeter, uložíte certifikát ve službě Azure Key Vault.

Postupujte podle kroků v části Import certifikátu a uložte certifikát ve službě Azure Key Vault.

Důležité

Azure Load Testing podporuje pouze certifikáty PKCS12. Nahrajte klientský certifikát ve formátu souboru PFX.

Udělení přístupu k trezoru klíčů Azure

Při ukládání tajných kódů nebo certifikátů zátěžového testu ve službě Azure Key Vault používá váš prostředek zátěžového testování spravovanou identitu pro přístup k trezoru klíčů. Po konfiguraci spravované identity je nutné udělit této identitě vašeho prostředku zátěžového testování oprávnění k tomu, aby mohla číst tyto hodnoty z klíčového trezoru.

Udělit oprávnění vašim zátěžovým zdrojům Azure ke čtení tajemství nebo certifikátů ze služby Azure Key Vault:

  1. Na webu Azure portal přejděte k prostředku Azure Key Vault.

    Pokud trezor klíčů nemáte, vytvořte ho podle pokynů v rychlém startu pro Azure Key Vault.

  2. V levém podokně vyberte Zásady přístupu a pak vyberte + Vytvořit.

  3. Na kartě Oprávnění v části Tajná oprávnění vyberte Získat a potom vyberte Další.

    Poznámka:

    Azure Load Testing načte certifikáty jako secret , aby byl k dispozici privátní klíč certifikátu.

  4. Na kartě Hlavní vyhledejte a vyberte spravovanou identitu zátěžového testovacího prostředku a pak vyberte Další.

    Pokud používáte spravovanou identitu přiřazenou systémem, název spravované identity odpovídá názvu spravované identity prostředku zátěžového testování Azure.

  5. Znovu vyberte Další .

    Když se test spustí, spravovaná identita přidružená k vašemu prostředku zátěžového testování teď může číst tajné kódy nebo certifikáty pro zátěžový test z vašeho trezoru klíčů.

Odkazování na certifikát v konfiguraci zátěžového testu

Pokud chcete klientský certifikát předat žádostem o aplikaci, musíte na certifikát odkazovat v konfiguraci zátěžového testu.

Přidání klientského certifikátu do zátěžového testu na webu Azure Portal:

  1. Na webu Azure Portal přejděte k vašemu prostředku zátěžového testování. Pokud ještě nemáte zátěžový test, vytvořte nový zátěžový test pomocí skriptu JMeter.

  2. V levém podokně vyberte Testy a zobrazte seznam zátěžových testů.

  3. V seznamu vyberte svůj test a pak vyberte Upravit a upravte konfiguraci zátěžového testu.

    Snímek obrazovky, který ukazuje, jak upravit zátěžový test na webu Azure Portal

  4. Na kartě Parametry zadejte podrobnosti o certifikátu.

    Obor Hodnota
    název Název certifikátu.
    Hodnota Odpovídá identifikátoru tajemství Azure Key Vault certifikátu.
  5. Výběrem možnosti Použít uložte změny konfigurace zátěžového testu.

Když spustíte zátěžový test, Azure Load Testing načte klientský certifikát ze služby Azure Key Vault a automaticky ho vloží do každého webového požadavku JMeter.

Pro testy založené na Locust můžete certifikát načíst a použít ho ve skriptu testů. Certifikát nakonfigurovaný v konfiguraci zátěžového testu je k dispozici v nástroji ALT_CERTIFICATES_DIR.

cert_dir = os.getenv("ALT_CERTIFICATES_DIR")

key_path = "client.key.pem"
crt_path = "client.crt.pem"


@events.test_start.add_listener
def on_test_start(environment, **kwargs):
    pfx_path = open(os.path.join(cert_dir, "cert_name_in_keyvault.pfx"))

    # Generate the private key
    subprocess.check_output(
        f'openssl pkcs12 -in "{pfx_path}" -out "{key_path}" -nocerts -nodes -passin pass:',
        shell=True,
        stderr=subprocess.STDOUT,
    )

    # Generate the public certificate
    subprocess.check_output(
        f'openssl pkcs12 -in "{pfx_path}" -out "{crt_path}" -clcerts -nokeys -passin pass:',
        shell=True,
        stderr=subprocess.STDOUT,
    )

Ověřování pomocí spravované identity

V tomto scénáři koncový bod aplikace vyžaduje, abyste k ověření použili spravovanou identitu. Můžete použít spravované identity přiřazené systémem i spravované identity přiřazené uživatelem.

Tok pro ověřování pomocí spravované identity je následující:

  1. Přiřaďte spravovanou identitu, kterou cílový koncový bod identifikuje, k prostředku Azure Load Testing.
  2. Vyberte spravovanou identitu v konfiguraci zátěžového testu.

Musíte nastavit skript zátěžových testů pro načtení přístupového tokenu pomocí spravované identity a použití tokenu k ověření požadavků na cílový koncový bod. Token můžete získat například prostřednictvím volání HTTP REST do koncového bodu služby Azure Instance Metadata Service (IMDS) a pak token předat do požadavku pomocí hlavičky Authorization HTTP.

Přiřaďte spravovanou identitu

Přiřaďte spravovanou identitu, která má požadovaný přístup k cílovému koncovému bodu, k prostředku Azure Load Testing. Když test spustíte, Azure Load Testing tuto identitu přiřadí instancím modulu. Tím se zajistí, že vaše požadavky na načtení přístupových tokenů pomocí spravované identity budou úspěšné.

Můžete použít spravovanou identitu přiřazenou systémem nebo spravovanou identitu přiřazenou uživatelem.

Výběr spravované identity v konfiguraci zátěžového testu

Při vytváření nebo úpravě testu ve službě Azure Load Testing vyberte požadovanou spravovanou identitu.

Výběr a konfigurace spravované identity pro ověřování na webu Azure Portal:

  1. Na webu Azure Portal přejděte k vašemu prostředku zátěžového testování a výběrem možnosti Testy zobrazte seznam zátěžových testů.

  2. V seznamu vyberte svůj test a pak vyberte Upravit a upravte konfiguraci zátěžového testu.

    Snímek obrazovky, který ukazuje, jak upravit zátěžový test na webu Azure Portal

  3. Na kartě Testovací plán nakonfigurujte Spravovanou identitu pro scénáře ověřování. Podle potřeby vyberte Identitu přiřazenou systémem nebo Identitu přiřazenou uživatelem.

    Snímek obrazovky znázorňující výběr spravované identity pro ověřování v zátěžovém testu na webu Azure Portal

  4. Pokud jste vybrali identitu přiřazenou uživatelem, vyberte požadované identity z rozevíracího seznamu Identita přiřazená uživatelem .

  5. Výběrem možnosti Použít uložte změny konfigurace zátěžového testu.

Důležité

Distribuce zatížení napříč oblastmi není povolená, pokud pro ověřování používáte spravované identity.