Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo, aprenderá a usar Azure Load Testing con puntos de conexión de aplicación que requieren autenticación. En función de la implementación de la aplicación, puede usar un token de acceso, credenciales de usuario, identidad administrada o certificados de cliente para autenticar solicitudes.
Azure Load Testing admite las siguientes opciones para los puntos de conexión autenticados:
- Autenticación con un secreto compartido o credenciales de usuario
- Autenticación con certificados de cliente
- Autenticación con una identidad administrada
Requisitos previos
- Una cuenta de Azure con una suscripción activa. Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
- Un recurso de prueba de carga de Azure. Para crear un recurso de prueba de carga, consulte Creación y ejecución de una prueba de carga.
Autenticación con un secreto compartido o credenciales
En este escenario, el punto de conexión de la aplicación requiere el uso de un secreto compartido, como un token de acceso, una clave de API o credenciales de usuario para la autenticación.
En el diagrama siguiente, se muestra cómo usar secretos compartidos o credenciales para realizar la autenticación con un punto de conexión de la aplicación en la prueba de carga.
El flujo para autenticarse con un secreto compartido o credenciales de usuario es:
- Almacene de forma segura el secreto o las credenciales, por ejemplo, en Azure Key Vault o en el almacén de secretos de CI/CD.
- Haga referencia al secreto en la configuración de la prueba de carga.
- Para las pruebas basadas en JMeter, recupere el valor secreto con la
GetSecret
función . Para las pruebas basadas en Locust, recupere el secreto con la funcióngetenv
. Pase el valor del secreto a la solicitud de aplicación.
Almacenamiento seguro del secreto
Para evitar almacenar y revelar información de seguridad en el script de prueba, puede almacenar de forma segura secretos en Azure Key Vault o en el almacén de secretos de CI/CD.
Puede agregar la información de seguridad en un almacén de secretos de dos maneras:
Agregue la información del secreto en Azure Key Vault. Siga los pasos que aparecen en Parametrización de pruebas de carga con secretos para almacenar un secreto y permitir que el recurso de prueba de carga lea su valor.
Agregue la información del secreto como secreto en CI/CD (secretos de Acciones de GitHub o variables secretas de Azure Pipelines).
Haga referencia al secreto en la configuración de la prueba de carga
Antes de poder recuperar el valor secreto en el script de prueba de JMeter, debe hacer referencia al secreto en la configuración de la prueba de carga.
En Azure Portal, puede hacer referencia a secretos almacenados en Azure Key Vault. Para agregar y configurar un secreto de prueba de carga en Azure Portal:
Vaya al recurso de pruebas de carga en Azure Portal y luego seleccione Pruebas para ver la lista de pruebas de carga.
Seleccione la prueba en a lista y luego seleccione Editar para editar la configuración de prueba de carga.
En la pestaña Parámetros, escriba los detalles del secreto.
Campo Valor Nombre Nombre del secreto. Proporcione este nombre a la función GetSecret
para recuperar el valor secreto en el script de prueba.Valor Coincide con el identificador del secreto de Azure Key Vault. Seleccione Aplicar para guardar los cambios en la configuración de prueba de carga.
Recuperar y usar el valor secreto en el script JMeter
Ahora puede recuperar el valor secreto en el script JMeter mediante la función personalizada GetSecret
y pasarlo a la solicitud de aplicación. Por ejemplo, use un encabezado HTTP de Authorization
para pasar un token de OAuth a una solicitud.
Cree una variable definida por el usuario que recupere el valor del secreto con la función personalizada
GetSecret
:La función
GetSecret
abstrae la recuperación del valor de Azure Key Vault o del almacén de secretos de CI/CD.Actualice el componente de muestra de JMeter para pasar el secreto en la solicitud.
Por ejemplo, para proporcionar un token de acceso de OAuth2, configure el encabezado HTTP de
Authorization
agregando unHTTP Header Manager
:
Recuperar y usar el valor del secreto en el script Locust
Ahora puede recuperar el valor del secreto en el script Locust y pasarlo a la solicitud de aplicación. Por ejemplo, use un encabezado HTTP de Authorization
para pasar un token de OAuth a una solicitud.
Los secretos configurados en la configuración de prueba de carga son accesibles como variables de entorno.
- Inicialice una variable con el valor secreto mediante el nombre secreto especificado en la configuración de prueba de carga.
my_secret = os.getenv("appToken")
- Haga referencia a la variable del script de prueba para usar el valor secreto almacenado en Azure KeyVault.
Autenticación con certificados de cliente
En este escenario, el punto de conexión de la aplicación requiere el uso de un certificado de cliente para la autenticación. Azure Load Testing admite el tipo de certificados Public Key Certificate Standard n.° 12 (PKCS12). También puede usar varios certificados de cliente en una prueba de carga.
En el diagrama siguiente, se muestra cómo usar un certificado de cliente para realizar la autenticación con un punto de conexión de la aplicación en la prueba de carga.
El flujo para autenticarse con certificados de cliente es:
- Almacene de forma segura el certificado de cliente en Azure Key Vault.
- Haga referencia al certificado en la configuración de prueba de carga.
- En el caso de las pruebas basadas en JMeter, Azure Load Testing pasa de forma transparente el certificado a toda la aplicación. En el caso de las pruebas basadas en Locust, puede recuperar el certificado en el script de prueba y pasarlo a las solicitudes.
Almacenamiento del certificado de cliente en Azure Key Vault
Para evitar almacenar y divulgar el certificado de cliente junto con el script de JMeter, almacene el certificado en Azure Key Vault.
Siga los pasos descritos en Importación de un certificado para almacenar el certificado en Azure Key Vault.
Importante
Azure Load Testing solo admite certificados PKCS12. Cargue el certificado de cliente en formato de archivo PFX.
Concesión de acceso al almacén de claves de Azure
Al almacenar secretos o certificados de prueba de carga en Azure Key Vault, el recurso de prueba de carga usa una identidad administrada para acceder al almacén de claves. Después de configurar la identidad de administración, debe conceder a la identidad administrada los permisos de recursos de prueba de carga para leer estos valores desde el almacén de claves.
Para conceder permisos de recursos de prueba de carga de Azure para leer secretos o certificados de Azure Key Vault:
En Azure Portal, vaya al recurso de Azure Key Vault.
Si no tiene un almacén de claves, siga las instrucciones de Inicio rápido de Azure Key Vault para crear uno.
En el panel de la izquierda, seleccione Directivas de acceso y luego + Crear.
En la pestaña Permisos, en Permisos de secretos, seleccione Obtener, y luego Siguiente.
Nota:
Azure Load Testing recupera el certificado como secreto para garantizar que la clave privada del certificado está disponible.
En la pestaña Entidad de seguridad, busque y seleccione la identidad administrada para el recurso de prueba de carga y, a continuación, seleccione Siguiente.
Si usa una identidad administrada asignada por el sistema, el nombre de la identidad administrada coincide con el del recurso de prueba de carga de Azure.
Seleccione Siguiente de nuevo.
Cuando se ejecuta la prueba, la identidad administrada asociada al recurso de prueba de carga ahora puede leer los secretos o certificados de la prueba de carga desde el almacén de claves.
Hacer referencia al certificado en la configuración de prueba de carga
Para pasar el certificado del cliente a las solicitudes de la aplicación, debe hacer referencia al certificado en la configuración de la prueba de carga.
Para agregar un certificado de cliente a la prueba de carga en Azure Portal:
Navegue al recurso de prueba de carga en Azure Portal. Si todavía no tiene una prueba de carga, cree una mediante un script de JMeter.
En el panel izquierdo, seleccione Pruebas para ver la lista de pruebas de carga.
Seleccione la prueba en a lista y, luego, seleccione Editar para editar la configuración de prueba de carga.
En la pestaña Parámetros, escriba los detalles del certificado.
Campo Valor Nombre Nombre del certificado. Valor Coincide con el identificador del secreto de Azure Key Vault del certificado. Seleccione Aplicar para guardar los cambios en la configuración de prueba de carga.
Al ejecutar la prueba de carga, Azure Load Testing recupera el certificado de cliente de Azure Key Vault y lo inserta automáticamente en cada solicitud web de JMeter.
En el caso de las pruebas basadas en Locust, puede recuperar el certificado y usarlo en el script de prueba. El certificado configurado en la configuración de prueba de carga está disponible en ALT_CERTIFICATES_DIR
.
cert_dir = os.getenv("ALT_CERTIFICATES_DIR")
cert_file = open(os.path.join(cert_dir), "cert_name_in_keyvault.pfx")
Autenticación con una identidad administrada
En este escenario, el punto de conexión de la aplicación requiere que use una identidad administrada para autenticarse. Puede usar identidades administradas asignadas por el sistema y asignadas por el usuario.
El flujo para la autenticación mediante una identidad administrada es:
- Asigna la identidad administrada identificada por el punto de conexión de destino al recurso de Azure Load Testing.
- Seleccione la identidad administrada en la configuración de prueba de carga.
Debe configurar el script de pruebas de carga para capturar el token de acceso mediante la identidad administrada y usar el token para autenticar las solicitudes en el punto de conexión de destino. Por ejemplo, puede obtener un token a través de una llamada REST HTTP al punto de conexión de Azure Instance Metadata Service (IMDS) y luego pasar el token a una solicitud mediante el encabezado HTTP Authorization
.
Asignar la identidad administrada
Asigne al recurso de Azure Load Testing la identidad administrada que tiene el acceso necesario al punto de conexión de destino. Al ejecutar la prueba, Azure Load Testing asigna esta identidad a las instancias del motor. Esto garantiza que las solicitudes para capturar tokens de acceso mediante la identidad administrada se realicen correctamente.
Puede usar una identidad administrada asignada por el sistema o una identidad administrada asignada por el usuario,
Para usar una identidad administrada asignada por el sistema, asigne primero una identidad administrada asignada por el sistema al recurso de Azure Load Testing. Una vez habilitado, proporcione los permisos de RBAC necesarios para esta identidad en el punto de conexión de destino.
Para usar una identidad administrada asignada por el usuario, primero asigne la identidad asignada por el usuario al recurso de Azure Load Testing. Si esta identidad no tiene los permisos de RBAC necesarios en el punto de conexión de destino, proporcione los permisos necesarios. Si el script de prueba usa varias identidades asignadas por el usuario, asigne las varias identidades al recurso y asegúrese de que tienen los permisos de RBAC necesarios.
Selección de la identidad administrada en la configuración de prueba de carga
Seleccione la identidad administrada necesaria al crear o editar una prueba en Azure Load Testing.
Para seleccionar y configurar una identidad administrada para la autenticación en Azure Portal:
Vaya al recurso de pruebas de carga en Azure Portal y luego seleccione Pruebas para ver la lista de pruebas de carga.
Seleccione la prueba en a lista y luego seleccione Editar para editar la configuración de prueba de carga.
En la pestaña Plan de prueba , configure la identidad administrada para escenarios de autenticación. Seleccione "Identidad asignada por el sistema" o "Identidad asignada por el usuario" según sea necesario.
Si seleccionó "Identidad asignada por el usuario", seleccione las identidades necesarias en la lista desplegable Identidad asignada por el usuario .
Seleccione Aplicar para guardar los cambios en la configuración de prueba de carga.
Importante
La distribución de carga entre regiones no está habilitada cuando se usan identidades administradas para la autenticación.
Contenido relacionado
Obtenga más información sobre cómo parametrizar una prueba de carga.
Obtenga más información sobre el uso de varios certificados en una prueba de carga.