Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Ce guide vous guide tout au long de la configuration de l’authentification pour le développement local et les pipelines CI/CD.
S’authentifier pour le développement local (mot de passe)
L’authentification par mot de passe est le moyen le plus rapide de commencer sur un ordinateur local.
Définissez les variables suivantes dans votre
.envfichier :MS_AUTH_EMAIL=testuser@contoso.com MS_AUTH_CREDENTIAL_TYPE=password MS_USER_PASSWORD=<password>Exécutez le script d’authentification. Une fenêtre de navigateur s’ouvre :
npm run auth:headfulProcédez au flux de connexion. Le processus enregistre automatiquement l’état de stockage.
Si vous testez des applications basées sur des modèles, authentifiez-vous auprès du domaine CRM :
npm run auth:mda:headful
S’authentifier avec un certificat (fichier local)
L’authentification par certificat est plus sécurisée que les mots de passe et fonctionne bien pour le développement local et CI/CD.
Obtenez un fichier de certificat
.pfxpour votre utilisateur de test auprès de votre administrateur Microsoft Entra ID.Placez le fichier de certificat dans le
cert/répertoire à la racine du référentiel.Définissez les variables suivantes dans votre
.envfichier :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>Exécutez les scripts d’authentification :
npm run auth:headful # https://make.powerapps.com npm run auth:mda:headful # Model-driven app (if needed)
S’authentifier avec Azure Key Vault
Utilisez Azure Key Vault pour gérer les certificats de manière centralisée dans des environnements partagés ou de production.
Chargez le certificat dans un Azure Key Vault.
Accordez au principal de service de pipeline le rôle Utilisateur de certificat Key Vault sur le coffre.
Définissez les variables suivantes dans vos
.envou les secrets du pipeline :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>
Configurer l’authentification CI/CD
Dans CI/CD, l’authentification s’exécute dans globalSetup avant le lancement de la suite de tests. Le script acquiert un nouvel état de stockage de manière automatisée en utilisant le fournisseur d'identifiants configuré.
exemple de GitHub Actions
Cette étape de flux de travail s’authentifie auprès des domaines Power Apps et Dynamics 365 à l’aide d’un certificat stocké dans Azure Key Vault, puis exécute la suite de tests 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
exemple de Azure Pipelines
Cette tâche de pipeline s’authentifie à la fois sur les domaines Power Apps et Dynamics 365 à l’aide d’un certificat de Azure Key Vault, puis exécute la suite de tests 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
Vérifier l’authentification
Après l’authentification, vérifiez que les fichiers d’état de stockage existent :
ls packages/e2e-tests/.playwright-ms-auth/
# state-testuser@contoso.com.json
# state-mda-testuser@contoso.com.json
Vérifiez la validité du jeton :
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()}`);
}
Résoudre les échecs d’authentification
Le tableau suivant répertorie les problèmes d’authentification courants et explique comment les résoudre.
| Symptôme | Cause probable | Résolution |
|---|---|---|
Authentication tokens have expired |
Le fichier d’état de stockage a expiré | Réexécuter npm run auth:headful |
Storage state file does not exist |
Auth n’a jamais été exécutée | Exécutez npm run auth:headful |
Certificate file not found |
Chemin incorrect dans MS_AUTH_LOCAL_FILE_PATH |
Vérifiez que le chemin d’accès est relatif à packages/e2e-tests/ |
ERR_ABORTED pendant l’authentification de l’application pilotée par modèle |
Power Apps état expiré | Exécuter npm run auth:headful avant npm run auth:mda:headful |
| Le navigateur se ferme de façon inattendue | Processus de navigateur précédent en cours d’exécution | Patientez quelques secondes et réessayez |
Étapes suivantes
- Intégration CI/CD Configuration complète du pipeline pour GitHub Actions et Azure Pipelines
- Tester des applications de canevas
- Tester des applications basées sur des modèles