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 :
- S’authentifier avec un secret partagé ou des informations d’identification d’utilisateur
- S’authentifier avec des certificats client
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.
Le flux d’authentification avec un secret partagé ou des informations d’identification d’utilisateur est :
- 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.
- Référencez le secret dans la configuration du test de charge.
- 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 :
Ajoutez les informations du secret dans Azure Key Vault. Suivez les étapes décrites dans Paramétriser des tests de charge avec des secrets pour stocker un secret et autoriser votre ressource de test de charge à lire sa valeur.
Ajoutez les informations du secret en tant que secret dans CI/CD (secrets GitHub Actions ou variables secrètes Azure Pipelines).
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 :
Accédez à votre ressource de test de charge dans le portail Azure, puis sélectionnez Tests pour afficher la liste des tests de charge.
Sélectionnez votre test dans la liste, puis sélectionnez Modifier pour modifier la configuration du test de charge.
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. 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.
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.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 unHTTP Header Manager
:
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.
Le flux d’authentification avec des certificats clients est le suivant :
- Stockez en toute sécurité le certificat client dans Azure Key Vault.
- Référencez le certificat dans la configuration du test de charge.
- 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 :
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.
Dans le volet de gauche, sélectionnez Stratégies d’accès, puis + Créer.
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.
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.
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 :
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.
Dans le volet gauche, sélectionnez Tests pour afficher la liste des tests de charge.
Sélectionnez votre test dans la liste, puis sélectionnez Modifier pour modifier la configuration du test de charge.
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. 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.
Contenu connexe
- Découvrez comment paramétriser un test de charge.