Test de charge des points de terminaison sécurisés avec azure Load Testing

Dans cet article, vous allez apprendre à utiliser Azure Load Testing avec des points de terminaison d’application qui nécessitent une authentification. Selon l’implémentation de votre application, vous pouvez utiliser un jeton d’accès, des informations d’identification utilisateur ou des certificats clients pour authentifier les demandes.

Azure Load Testing prend en charge les options suivantes pour les points de terminaison authentifiés :

Prérequis

  • Compte Azure avec un abonnement actif. Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.
  • Une ressource de test de charge Azure. Pour créer une ressource de test de charge, consultez Créer et exécuter un test de charge.

S’authentifier avec un secret partagé ou des informations d’identification

Dans ce scénario, le point de terminaison d’application nécessite que vous utilisiez un secret partagé, tel qu’un jeton d’accès, une clé API ou des informations d’identification utilisateur pour vous authentifier.

Le diagramme suivant montre comment utiliser des secrets partagés ou des informations d’identification pour s’authentifier auprès d’un point de terminaison d’application dans votre test de charge.

Diagram that shows how to use shared-secret authentication with Azure Load Testing.

Le flux d’authentification avec un secret partagé ou des informations d’identification utilisateur est :

  1. Stockez en toute sécurité le secret ou les informations d’identification, par exemple dans Azure Key Vault ou dans le magasin de secrets CI/CD.
  2. Référencez le secret dans la configuration du test de charge.
  3. Dans le script JMeter, récupérez la valeur secrète avec la GetSecret fonction et transmettez la valeur secrète à la demande d’application.

Stocker en toute sécurité le secret

Pour éviter de stocker et de divulguer des informations de sécurité dans le script JMeter, vous pouvez stocker en toute sécurité les secrets dans Azure Key Vault ou dans le magasin de secrets CI/CD.

Vous pouvez ajouter les informations de sécurité dans un magasin de secrets de deux façons :

Référencer le secret dans la configuration du test de charge

Avant de pouvoir récupérer la valeur secrète dans le script de test JMeter, vous devez référencer le secret dans la configuration du test de charge.

Dans le Portail Azure, vous pouvez référencer des secrets stockés dans Azure Key Vault. Pour ajouter et configurer un secret de test de charge dans le Portail Azure :

  1. Accédez à votre ressource de test de charge dans le Portail Azure, puis sélectionnez Tests pour afficher la liste des tests de charge.

  2. Sélectionnez votre test dans la liste, puis sélectionnez Modifier pour modifier la configuration du test de charge.

    Screenshot that shows how to edit a load test in the Azure portal.

  3. Sous l’onglet Paramètres, entrez les détails du secret.

    Champ active
    Nom Nom du secret. Vous fournissez ce nom à la GetSecret fonction pour récupérer la valeur secrète dans le script JMeter.
    Valeur Correspond à l’identificateur secret Azure Key Vault.

    Screenshot that shows how to add secrets to a load test in the Azure portal.

  4. Sélectionnez Appliquer, pour enregistrer les modifications de configuration du test de charge.

Récupérer et utiliser la valeur secrète dans le script JMeter

Vous pouvez maintenant récupérer la valeur secrète dans le script JMeter à l’aide de la GetSecret fonction personnalisée et la transmettre à la demande d’application. Par exemple, utilisez un Authorization en-tête HTTP pour transmettre un jeton OAuth à une requête.

  1. Vous commencez par créer une variable définie par l’utilisateur qui récupère la valeur du secret avec la fonction personnalisée GetSecret :

    La GetSecret fonction extrait la valeur d’Azure Key Vault ou du magasin de secrets CI/CD.

    Screenshot that shows how to add a user-defined variable that uses the GetSecret function in JMeter.

  2. Mettez à jour le composant échantillonneur JMeter pour transmettre le secret dans la requête.

    Par exemple, pour fournir un jeton d’accès OAuth2, vous configurez l’en-tête Authorization HTTP en ajoutant un HTTP Header Manager:

    Screenshot that shows how to add an authorization header to a request in JMeter.

S’authentifier avec des certificats client

Dans ce scénario, le point de terminaison d’application nécessite que vous utilisiez un certificat client pour vous authentifier. Le Test de charge Azure prend en charge le type de certificats de certificat à clé publique Standard #12 (PKCS12). Vous ne pouvez utiliser qu’un seul certificat client dans un test de charge.

Le diagramme suivant montre comment utiliser un certificat client pour s’authentifier auprès d’un point de terminaison d’application dans votre test de charge.

Diagram that shows how to use client-certificate authentication with Azure Load Testing.

Le flux d’authentification avec des certificats clients est le suivant :

  1. Stockez en toute sécurité le certificat client dans Azure Key Vault.
  2. Référencez le certificat dans la configuration du test de charge.
  3. Azure Load Testing transmet de manière transparente le certificat à toutes les demandes d’application dans JMeter.

Stocker le certificat client dans Azure Key Vault

Pour éviter de stocker et de divulguer, le certificat client en même temps que le script JMeter, vous stockez le certificat dans Azure Key Vault.

Suivez les étapes décrites dans Importer un certificat pour stocker votre certificat dans Azure Key Vault.

Important

Le Test de charge Azure prend uniquement en charge les certificats PKCS12. Chargez le certificat client au format de fichier PFX.

Accorder l’accès à votre coffre de clés Azure

Lorsque vous stockez des secrets de test de charge ou des certificats dans Azure Key Vault, votre ressource de test de charge utilise une identité managée pour accéder au coffre de clés. Après avoir configuré l’identité de gestion, vous devez accorder l’identité managée de vos autorisations de ressource de test de charge pour lire ces valeurs à partir du coffre de clés.

Pour accorder à votre ressource de test de charge Azure des autorisations pour lire des secrets ou des certificats à partir de votre coffre de clés Azure :

  1. Dans le portail Azure, accédez à votre ressource Azure Key Vault.

    Si vous n’avez pas encore de coffre de clés, suivez les instructions du démarrage rapide Azure Key Vault pour en créer un.

  2. Dans le volet gauche, sélectionnez Stratégies d’accès, puis sélectionnez + Créer.

  3. Sous l’onglet Autorisations, sous Autorisations secrètes, sélectionnez Obtenir, puis Sélectionnez Suivant.

    Remarque

    Azure Load Testing récupère les certificats en tant que secret pour s’assurer que la clé privée du certificat est disponible.

  4. Sous l’onglet Principal , recherchez et sélectionnez l’identité managée pour la ressource de test de charge, puis sélectionnez Suivant.

    Si vous utilisez une identité managée affectée par le système, le nom de l’identité managée correspond à celui de votre ressource de test de charge Azure.

  5. Cliquez à nouveau sur Suivant.

    Lorsque votre test s’exécute, l’identité managée associée à votre ressource de test de charge peut désormais lire les secrets ou certificats de votre test de charge à partir de votre coffre de clés.

Référencer le certificat dans la configuration du test de charge

Pour passer le certificat client aux demandes d’application, vous devez référencer le certificat dans la configuration du test de charge.

Pour ajouter un certificat client à votre test de charge dans le portail Azure :

  1. Accédez à votre ressource de test de charge dans le portail Azure. Si vous n’avez pas encore de test de charge, créez un test de charge à l’aide d’un script JMeter.

  2. Dans le volet gauche, sélectionnez Tests pour afficher la liste des tests de charge.

  3. Sélectionnez votre test dans la liste, puis sélectionnez Modifier pour modifier la configuration du test de charge.

    Screenshot that shows how to edit a load test in the Azure portal.

  4. Sous l’onglet Paramètres, entrez les détails du certificat.

    Champ active
    Nom Nom du certificat.
    Valeur Correspond à l’identificateur secret Azure Key Vault du certificat.

    Screenshot that shows how to add a certificate to a load test in the Azure portal.

  5. Sélectionnez Appliquer, pour enregistrer les modifications de configuration du test de charge.

Lorsque vous exécutez votre test de charge, Azure Load Testing récupère le certificat client à partir d’Azure Key Vault et l’injecte automatiquement dans chaque requête web JMeter.