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 :
- S’authentifier avec un secret partagé ou des informations d’identification utilisateur
- S’authentifier avec des certificats clients
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 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
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 :
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 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 :
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 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. 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.
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.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 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.
- 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 :
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 gauche, sélectionnez Stratégies d’accès, puis sélectionnez + Créer.
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.
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.
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 :
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 active 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, Azure Load Testing 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.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour