Información general sobre la autenticación

Las aplicaciones de Power Platform abarcan dos dominios distintos, cada uno de los cuales requiere una sesión autenticada independiente:

Dominio URL Se usa para
Power Apps make.powerapps.com Aplicaciones de lienzo, aplicaciones de UX generación y cualquier prueba que navegue por Power Apps
Dynamics 365/CRM <org>.crm.dynamics.com Aplicaciones y Dynamics 365 controladas por modelos

El marco controla ambos dominios mediante la adquisición de un estado de almacenamiento del explorador una vez y su reutilización en todas las ejecuciones de prueba. Este enfoque evita iniciar sesión en cada prueba, lo que reduce significativamente la duración del conjunto de pruebas.

Funcionamiento del estado de almacenamiento en Playwright

La característica de storageState Playwright captura todas las cookies y el almacenamiento local (incluidos los tokens MSAL) de una sesión de explorador autenticada y los guarda en un archivo JSON. Cuando se inician las pruebas, el contexto del navegador se inicializa con este estado guardado, evitando el flujo de inicio de sesión interactivo.

El marco almacena dos archivos de estado:

Archivo Dominio Usado por
state-<email>.json Power Apps Pruebas de aplicaciones de Canvas, pruebas de experiencia de usuario generativa
state-mda-<email>.json Dynamics 365 Pruebas de aplicaciones controladas por modelos

Ubicación de almacenamiento predeterminada: packages/e2e-tests/.playwright-ms-auth/

Proveedores de autenticación

El marco admite tres proveedores de credenciales:

Autenticación de contraseña

Use la autenticación de contraseña para el desarrollo local cuando la infraestructura de certificados no esté disponible.

MS_AUTH_CREDENTIAL_TYPE=password
MS_USER_PASSWORD=<password>

Importante

Nunca confirme contraseñas en el control de código fuente. Use variables de entorno o un administrador de secretos.

Autenticación de certificado

Use la autenticación de certificados para canalizaciones de CI/CD y entornos compartidos. Este método evita almacenar contraseñas y admite escenarios multifactor.

MS_AUTH_CREDENTIAL_TYPE=certificate
MS_AUTH_CREDENTIAL_PROVIDER=local-file
MS_AUTH_LOCAL_FILE_PATH=../../cert/<cert-file>.pfx
MS_AUTH_CERTIFICATE_PASSWORD=<optional-pfx-password>

Azure Key Vault

Use Azure Key Vault para canalizaciones de producción en las que se administran certificados de forma centralizada.

MS_AUTH_CREDENTIAL_TYPE=certificate
MS_AUTH_CREDENTIAL_PROVIDER=azure-keyvault
AZURE_KEYVAULT_URL=https://<vault>.vault.azure.net/
AZURE_CERTIFICATE_NAME=<certificate-name>

Validación y expiración de tokens para el estado de autenticación

Antes de cada ejecución de prueba, el marco valida el archivo de estado de almacenamiento:

  • Power Apps state: Valida la expiración del token de acceso de MSAL desde localStorage
  • MDA state: Valida las cookies de sesión de Dynamics 365 desde el dominio CRM

Si un archivo de estado ha expirado, el marco lo quita y le pide que vuelva a autenticarse. En CI/CD, la autenticación se realiza en globalSetup para adquirir un estado nuevo antes de cada ejecución del pipeline.

Varios usuarios de prueba

Para ejecutar pruebas con diferentes cuentas de usuario (por ejemplo, probar el acceso basado en roles), cree archivos de estado de almacenamiento independientes estableciendo MS_AUTH_EMAIL y ejecutando los scripts de autenticación para cada usuario:

MS_AUTH_EMAIL=user1@contoso.com npm run auth:headful
MS_AUTH_EMAIL=user2@contoso.com npm run auth:headful

A continuación, haga referencia al archivo de estado específico de la prueba:

test.use({
  storageState: getStorageStatePath('user1@contoso.com'),
});

Consideraciones de seguridad

  • Los archivos de estado de almacenamiento contienen tokens de sesión. Agregue .playwright-ms-auth/ a .gitignore.
  • Rotar las credenciales de usuario de prueba y volver a autenticarse con regularidad.
  • Use cuentas de prueba dedicadas con permisos mínimos necesarios.
  • Para CI/CD de producción, use la autenticación de certificado con certificados almacenados en Azure Key Vault.

Pasos siguientes

Consulte también