Freigeben über


Durchführen von Auslastungstests für geschützte Endpunkte mit Azure Load Testing

In diesem Artikel erfahren Sie, wie Sie Azure Load Testing mit Anwendungsendpunkten verwenden, die eine Authentifizierung erfordern. Je nach Anwendungsimplementierung können Sie ein Zugriffstoken, Benutzeranmeldeinformationen oder Clientzertifikate für die Authentifizierung von Anforderungen verwenden.

Azure Load Testing unterstützt folgende Optionen für authentifizierte Endpunkte:

Voraussetzungen

Authentifizieren mit einem gemeinsamen Geheimnis oder Anmeldeinformationen

In diesem Szenario erfordert der Anwendungsendpunkt, dass Sie ein gemeinsames Geheimnis, z. B. ein Zugriffstoken, einen API-Schlüssel oder Benutzeranmeldeinformationen, zur Authentifizierung verwenden.

Das folgende Diagramm zeigt, wie Sie gemeinsame Geheimnisse oder Anmeldeinformationen verwenden, um sich bei einem Anwendungsendpunkt in Ihrem Auslastungstest zu authentifizieren.

Diagramm, das zeigt, wie die Authentifizierung mit einem gemeinsamen Geheimnis mit Azure Load Testing verwendet wird.

Die Authentifizierung mit einem gemeinsamen Geheimnis oder mit freigegebenen Benutzeranmeldeinformationen läuft wie folgt ab:

  1. Speichern Sie das Geheimnis oder die Anmeldeinformationen an einem sicheren Ort (etwa in Azure Key Vault oder im CI/CD-Geheimnisspeicher).
  2. Verweisen Sie in der Auslastungstestkonfiguration auf das Geheimnis.
  3. Rufen Sie im JMeter-Skript mithilfe der Funktion GetSecret den Geheimniswert ab, und übergeben Sie ihn an die Anwendungsanforderung.

Sicheres Speichern des Geheimnisses

Um die Speicherung und Offenlegung von Sicherheitsinformationen im JMeter-Skript zu vermeiden, können Sie Geheimnisse in Azure Key Vault oder im CI/CD-Geheimnisspeicher sicher speichern.

Die Sicherheitsinformationen können einem Geheimnisspeicher auf zwei Arten hinzugefügt werden:

Verweisen auf das Geheimnis in der Konfiguration des Auslastungstests

Um den Geheimniswert im JMeter-Testskript abrufen zu können, müssen Sie zunächst in der Konfiguration des Auslastungstests auf das Geheimnis verweisen.

Im Azure-Portal können Sie auf Geheimnisse verweisen, die in Azure Key Vault gespeichert sind. So können Sie ein Auslastungstestgeheimnis im Azure-Portal hinzufügen und konfigurieren

  1. Navigieren Sie im Azure-Portal zu Ihrer Auslastungstestressource, und wählen Sie dann Tests aus, um die Liste der Auslastungstests anzuzeigen.

  2. Wählen Sie in der Liste Ihren Test und anschließend die Option Bearbeiten aus, um die Konfiguration des Auslastungstests zu bearbeiten.

    Screenshot: Bearbeiten eines Auslastungstests im Azure-Portal.

  3. Geben Sie auf der Registerkarte Parameter die Details des Geheimnisses ein.

    Feld Wert
    Name Name des Geheimnisses. Dieser Namen wird für die Funktion GetSecret bereitgestellt, um den Geheimniswert im JMeter-Skript abzurufen.
    Wert Entspricht dem Geheimnisbezeichner von Azure Key Vault.

    Screenshot: Hinzufügen von Geheimnissen zu einem Auslastungstest im Azure-Portal.

  4. Wählen Sie Übernehmen aus, um die Änderungen an der Konfiguration des Auslastungstests zu speichern.

Abrufen und Verwenden des Geheimniswerts im JMeter-Skript

Nun können Sie mithilfe der benutzerdefinierten Funktion GetSecret den Geheimniswert im JMeter-Skript abrufen und ihn an die Anwendungsanforderung übergeben. Verwenden Sie beispielsweise einen HTTP-Header vom Typ Authorization, um ein OAuth-Token an eine Anforderung zu übergeben.

  1. Erstellen Sie eine benutzerdefinierte Variable, die den Geheimniswert mit der benutzerdefinierten GetSecret-Funktion abruft:

    Die Funktion GetSecret abstrahiert das Abrufen des Werts aus Azure Key Vault oder aus dem CI/CD-Geheimspeicher.

    Screenshot: Hinzufügen einer benutzerdefinierten Variablen, die die GetSecret-Funktion in JMeter verwendet.

  2. Aktualisieren Sie die JMeter-Samplerkomponente, um das Geheimnis in der Anforderung zu übergeben.

    Wenn Sie also beispielsweise ein OAuth2-Zugriffstoken bereitstellen möchten, konfigurieren Sie den Authorization-HTTP-Header, indem Sie einen HTTP-Header-Manager (HTTP Header Manager) hinzufügen:

    Screenshot: Hinzufügen eines Autorisierungsheaders zu einer Anforderung in JMeter.

Authentifizierung mit Clientzertifikaten

In diesem Szenario erfordert der Anwendungsendpunkt, dass Sie ein Clientzertifikat zur Authentifizierung verwenden. Azure Load Testing unterstützt den Zertifikattyp Public Key Certificate Standard #12 (PKCS12). Sie können in einem Auslastungstest nur ein Clientzertifikat verwenden.

Das folgende Diagramm zeigt, wie Sie ein Clientzertifikat verwenden, um sich bei einem Anwendungsendpunkt in Ihrem Auslastungstest zu authentifizieren.

Diagramm, das zeigt, wie die Authentifizierung mit einem Clientzertifikat mit Azure Load Testing verwendet wird.

Die Authentifizierung mit Clientzertifikaten läuft wie folgt ab:

  1. Speichern Sie das Zertifikat sicher in Azure Key Vault.
  2. Verweisen Sie in der Auslastungstestkonfiguration auf das Zertifikat.
  3. Azure Load Testing übergibt das Zertifikat transparent an alle Anwendungsanforderungen in JMeter.

Speichern des Clientzertifikats in Azure Key Vault

Um zu vermeiden, dass das Clientzertifikat zusammen mit dem JMeter-Skript gespeichert und offengelegt werden kann, speichern Sie das Zertifikat in Azure Key Vault.

Führen Sie die Schritte unter Importieren eines Zertifikats aus, um Ihr Zertifikat in Azure Key Vault zu speichern.

Wichtig

Azure Load Testing unterstützt nur PKCS12-Zertifikate. Laden Sie das Clientzertifikat im PFX-Dateiformat hoch.

Gewähren des Zugriffs auf Ihren Azure-Schlüsseltresor

Wenn Sie Auslastungstestgeheimnisse oder Zertifikate in Azure Key Vault speichern, verwendet Ihre Auslastungstestressource eine verwaltete Identität für den Zugriff auf die Instanz. Nachdem Sie die verwaltete Identität konfiguriert haben, müssen Sie der verwalteten Identität Ihrer Auslastungstestressource Berechtigungen erteilen, diese Werte aus der Key Vault-Instanz zu lesen.

So erteilen Sie Ihrer Azure Load Testing-Ressource Berechtigungen zum Lesen von Geheimnissen oder Zertifikaten aus Azure Key Vault:

  1. Wechseln Sie im Azure-Portal zu Ihrer Azure Key Vault-Ressource.

    Wenn Sie nicht über einen Schlüsseltresor verfügen, befolgen Sie die Anweisungen unter Azure Key Vault: Schnellstart, um einen zu erstellen.

  2. Wählen Sie im linken Bereich Zugriffsrichtlinien aus, und wählen Sie dann + Erstellen aus.

  3. Wählen Sie auf der Registerkarte Berechtigungen unter Geheimnisberechtigungen die Option Abrufen aus, und wählen Sie dann Weiter aus.

    Hinweis

    Azure Load Testing ruft Zertifikate als Geheimnis ab, um sicherzustellen, dass der private Schlüssel für das Zertifikat verfügbar ist.

  4. Suchen Sie auf der Registerkarte Prinzipal nach der verwalteten Identität für die Auslastungstestressource, wählen Sie sie aus, und wählen Sie dann Weiter aus.

    Wenn Sie eine systemseitig zugewiesene verwaltete Identität verwenden, entspricht der Name dem Ihrer Azure Load Testing-Ressource.

  5. Wählen Sie erneut Weiter aus.

    Wenn Ihr Test ausgeführt wird, kann die verwaltete Identität, die Ihrer Auslastungstestressource zugeordnet ist, die Geheimnisse oder Zertifikate für den Auslastungstest aus der Key Vault-Instanz lesen.

Verweisen auf das Zertifikat in der Auslastungstestkonfiguration

Um das Clientzertifikat an Anwendungsanforderungen zu übergeben, müssen Sie in der Konfiguration des Auslastungstests auf das Zertifikat verweisen.

So fügen Sie ein Clientzertifikat zu Ihrem Auslastungstest im Azure-Portal hinzu:

  1. Navigieren Sie im Azure-Portal zu Ihrer Azure Load Testing-Ressource. Wenn noch kein Auslastungstest verfügbar ist, erstellen Sie einen neuen Auslastungstest mit einem JMeter-Skript.

  2. Wählen Sie im linken Bereich Tests aus, um die Liste der Auslastungstests anzuzeigen.

  3. Wählen Sie ihren Test aus der Liste und dann Bearbeiten aus, um die Konfiguration des Auslastungstests zu bearbeiten.

    Screenshot: Bearbeiten eines Auslastungstests im Azure-Portal.

  4. Geben Sie auf der Registerkarte Parameter die Details des Zertifikats ein.

    Feld Wert
    Name Name des Zertifikats.
    Wert Entspricht dem Azure Key Vault-Geheimnisbezeichner des Zertifikats.
  5. Wählen Sie Übernehmen aus, um die Änderungen an der Konfiguration des Auslastungstests zu speichern.

Wenn Sie Ihren Auslastungstest ausführen, ruft Azure Load Testing das Clientzertifikat aus Azure Key Vault ab und fügt es automatisch in jede JMeter-Webanforderung ein.