Faites des tests de charge de points de terminaison sécurisés avec le Test de charge Azure

Dans cet article, vous allez apprendre à utiliser le Test de charge Azure 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 requêtes.

Test de charge Azure 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.

Diagramme montrant comment utiliser l’authentification secrète partagée avec le Test de charge Azure.

Le flux d’authentification avec un secret partagé ou des informations d’identification d’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 fonction GetSecret et transmettez la valeur secrète à la demande d’application.

Stocker le secret en toute sécurité

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 du secret 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.

    Capture d’écran montrant comment modifier un test de charge dans le portail Azure.

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

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

    Capture d’écran montrant comment ajouter des secrets à un test de charge dans le portail Azure.

  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 fonction personnalisée GetSecret et la transmettre à la demande d’application. Par exemple, utilisez un en-tête HTTP Authorization 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 fonction GetSecret extrait la valeur d’Azure Key Vault ou du magasin de secrets CI/CD.

    Capture d’écran montrant comment ajouter une variable définie par l’utilisateur qui utilise la fonction GetSecret dans 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 HTTP Authorization en ajoutant un HTTP Header Manager :

    Capture d’écran montrant comment ajouter un en-tête d’autorisation à une requête dans 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.

Diagramme montrant comment utiliser l’authentification du certificat client avec le Test de charge Azure.

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. Test de charge Azure 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 ou des certificats de test de charge dans Azure Key Vault, votre ressource de test de charge utilise une identité managée pour accéder au coffre de clés. Une fois l’identité de gestion configurée, vous devez accorder à l’identité managée de votre ressource de test de charge l’autorisation de lire ces valeurs à partir du coffre de clés.

Pour accorder à votre ressource de Test de charge Azure des autorisations de lecture des secrets ou des certificats à partir de votre Azure Key Vault :

  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 de gauche, sélectionnez Stratégies d’accès, puis + Créer.

  3. Dans l’onglet Autorisations, sous Autorisations du secret, sélectionnez Obtenir, puis sélectionnez Suivant.

    Remarque

    Le Test de charge Azure récupère les certificats en tant que secret pour vous assurer que la clé privée du certificat est disponible.

  4. Sous l’onglet Principal, trouvez et sélectionnez l’identité managée de 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. Sélectionnez Suivant de nouveau.

    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.

    Capture d’écran montrant comment modifier un test de charge dans le portail Azure.

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

    Champ Valeur
    Nom Nom du certificat.
    Valeur Correspond à l’identificateur secret Azure Key Vault du certificat.
  5. Sélectionnez Appliquer, pour enregistrer les modifications de configuration du test de charge.

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