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.
Esta guía le acompaña en la configuración de la autenticación para desarrollo local y canalizaciones de CI/CD.
Autenticación para el desarrollo local (contraseña)
La autenticación de contraseñas es la manera más rápida de empezar a trabajar en un equipo local.
Establezca las siguientes variables en el
.envarchivo:MS_AUTH_EMAIL=testuser@contoso.com MS_AUTH_CREDENTIAL_TYPE=password MS_USER_PASSWORD=<password>Ejecute el script de autenticación. Se abre una ventana del explorador:
npm run auth:headfulComplete el flujo de login. El proceso guarda automáticamente el estado de almacenamiento.
Si está probando aplicaciones controladas por modelos, autentíquese en el dominio crm:
npm run auth:mda:headful
Autenticación con un certificado (archivo local)
La autenticación de certificados es más segura que las contraseñas y funciona bien tanto para el desarrollo local como para CI/CD.
Obtenga un archivo de certificado de
.pfxdel administrador de Microsoft Entra ID para su usuario de prueba.Coloque el archivo de certificado en el
cert/directorio en la raíz del repositorio.Establezca las siguientes variables en el
.envarchivo:MS_AUTH_EMAIL=testuser@contoso.com 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-password>Ejecute los scripts de autenticación:
npm run auth:headful # https://make.powerapps.com npm run auth:mda:headful # Model-driven app (if needed)
Autenticación con Azure Key Vault
Use Azure Key Vault para administrar certificados de forma centralizada en entornos compartidos o de producción.
Cargue el certificado en un Azure Key Vault.
Conceda al principal de servicio de la canalización el rol Usuario de certificados del Key Vault en el almacén de claves.
Establezca las siguientes variables en sus secretos de
.envo canalización:MS_AUTH_EMAIL=testuser@contoso.com MS_AUTH_CREDENTIAL_TYPE=certificate MS_AUTH_CREDENTIAL_PROVIDER=azure-keyvault AZURE_KEYVAULT_URL=https://<vault-name>.vault.azure.net/ AZURE_CERTIFICATE_NAME=<certificate-name> AZURE_TENANT_ID=<tenant-id>
Configuración de la autenticación de CI/CD
En CI/CD, la autenticación se ejecuta antes globalSetup de que se inicie el conjunto de pruebas. El script adquiere el estado de almacenamiento nuevo de forma sin problemas mediante el proveedor de credenciales configurado.
ejemplo de Acciones de GitHub
Este paso de flujo de trabajo se autentica en los dominios de Power Apps y Dynamics 365 mediante un certificado almacenado en Azure Key Vault y, a continuación, ejecuta la suite de pruebas de Playwright.
- name: Authenticate to Power Platform
env:
MS_AUTH_EMAIL: ${{ secrets.MS_AUTH_EMAIL }}
MS_AUTH_CREDENTIAL_TYPE: certificate
MS_AUTH_CREDENTIAL_PROVIDER: azure-keyvault
AZURE_KEYVAULT_URL: ${{ secrets.AZURE_KEYVAULT_URL }}
AZURE_CERTIFICATE_NAME: ${{ secrets.AZURE_CERTIFICATE_NAME }}
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
MODEL_DRIVEN_APP_URL: ${{ secrets.MODEL_DRIVEN_APP_URL }}
run: |
cd packages/e2e-tests
npm run auth
npm run auth:mda
- name: Run tests
run: |
cd packages/e2e-tests
npx playwright test
ejemplo de Azure Pipelines
Esta tarea de canalización se autentica en los dominios de Power Apps y Dynamics 365, mediante un certificado de Azure Key Vault y, a continuación, ejecuta el conjunto de pruebas Playwright.
- task: Bash@3
displayName: Authenticate to Power Platform
env:
MS_AUTH_EMAIL: $(MS_AUTH_EMAIL)
MS_AUTH_CREDENTIAL_TYPE: certificate
MS_AUTH_CREDENTIAL_PROVIDER: azure-keyvault
AZURE_KEYVAULT_URL: $(AZURE_KEYVAULT_URL)
AZURE_CERTIFICATE_NAME: $(AZURE_CERTIFICATE_NAME)
AZURE_TENANT_ID: $(AZURE_TENANT_ID)
MODEL_DRIVEN_APP_URL: $(MODEL_DRIVEN_APP_URL)
script: |
cd packages/e2e-tests
npm run auth
npm run auth:mda
- task: Bash@3
displayName: Run Playwright tests
script: |
cd packages/e2e-tests
npx playwright test
Comprobación de la autenticación
Después de la autenticación, compruebe que existen los archivos de estado de almacenamiento:
ls packages/e2e-tests/.playwright-ms-auth/
# state-testuser@contoso.com.json
# state-mda-testuser@contoso.com.json
Comprobar la validez del token:
import { ConfigHelper } from 'power-platform-playwright-toolkit';
const check = ConfigHelper.checkStorageStateExpiration(
'.playwright-ms-auth/state-testuser@contoso.com.json'
);
if (check.expired) {
console.log('Token expired, please re-authenticate');
} else {
const expiryDate = new Date(check.expiresOn! * 1000);
console.log(`Token valid until: ${expiryDate.toLocaleString()}`);
}
Solución de errores de autenticación
En la tabla siguiente se enumeran los problemas comunes de autenticación y cómo resolverlos.
| Síntoma | Causa probable | Resolution |
|---|---|---|
Authentication tokens have expired |
El archivo de estado de almacenamiento ha expirado | Volver a ejecutar npm run auth:headful |
Storage state file does not exist |
La autenticación nunca se ejecutó | Ejecute npm run auth:headful: |
Certificate file not found |
Ruta de acceso incorrecta en MS_AUTH_LOCAL_FILE_PATH |
Comprueba que la ruta de acceso sea relativa a packages/e2e-tests/ |
ERR_ABORTED durante la autenticación de aplicaciones controladas por modelos |
Power Apps estado expirado | Ejecutar npm run auth:headful antes npm run auth:mda:headful |
| El explorador se cierra inesperadamente | Proceso del navegador anterior todavía en ejecución | Espere unos segundos y vuelva a intentarlo |
Pasos siguientes
- La integración de CI/CD y la configuración completa de canalización para Acciones de GitHub y Azure Pipelines
- Probar aplicaciones de lienzo
- Probar aplicaciones controladas por modelos