Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Leitfaden führt Sie durch die Konfiguration der Authentifizierung für lokale Entwicklungs- und CI/CD-Pipelines.
Authentifizieren für lokale Entwicklung (Kennwort)
Die Kennwortauthentifizierung ist die schnellste Methode, um auf einem lokalen Computer zu beginnen.
Legen Sie die folgenden Variablen in Ihrer
.envDatei fest:MS_AUTH_EMAIL=testuser@contoso.com MS_AUTH_CREDENTIAL_TYPE=password MS_USER_PASSWORD=<password>Führen Sie das Authentifizierungsskript aus. Ein Browserfenster wird geöffnet:
npm run auth:headfulSchließen Sie den Anmeldeablauf ab. Der Prozess speichert den Speicherstatus automatisch.
Wenn Sie modellgesteuerte Apps testen, authentifizieren Sie sich bei der CRM-Domäne:
npm run auth:mda:headful
Authentifizieren mit einem Zertifikat (local-file)
Die Zertifikatauthentifizierung ist sicherer als Kennwörter und eignet sich gut für lokale Entwicklung und CI/CD.
Rufen Sie eine
.pfxZertifikatdatei für den Testbenutzer von Ihrem Microsoft Entra ID Administrator ab.Platzieren Sie die Zertifikatsdatei im
cert/-Verzeichnis im Repository-Stammverzeichnis.Legen Sie die folgenden Variablen in Ihrer
.envDatei fest: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>Führen Sie die Authentifizierungsskripts aus:
npm run auth:headful # https://make.powerapps.com npm run auth:mda:headful # Model-driven app (if needed)
Authentifizieren mit Azure Key Vault
Verwenden Sie Azure Key Vault, um Zertifikate zentral in freigegebenen oder Produktionsumgebungen zu verwalten.
Laden Sie das Zertifikat in eine Azure Key Vault hoch.
Gewähren Sie dem Dienstprinzipal der Pipeline die Rolle Key Vault Certificate User im Vault.
Legen Sie die folgenden Variablen in Ihren
.env- oder Pipeline-Geheimnissen fest: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>
Konfigurieren der CI/CD-Authentifizierung
In CI/CD wird die Authentifizierung in globalSetup ausgeführt, bevor die Testsuite startet. Das Skript erwirbt den aktuellen Speicherstatus kopflos unter Verwendung des konfigurierten Anmeldeinformationsanbieters.
beispiel für GitHub Actions
Dieser Workflowschritt authentifiziert sich sowohl für die Power Apps- als auch für Dynamics 365 Domänen mit einem zertifikat, das in Azure Key Vault gespeichert ist, und führt dann die Playwright-Testsuite aus.
- 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
Beispiel für Azure Pipelines
Diese Pipelineaufgabe authentifiziert sich sowohl für die Power Apps- als auch für Dynamics 365 Domänen, die ein Zertifikat von Azure Key Vault verwenden, und führt dann die Playwright-Testsuite aus.
- 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
Überprüfen der Authentifizierung
Überprüfen Sie nach der Authentifizierung, ob die Speicherstatusdateien vorhanden sind:
ls packages/e2e-tests/.playwright-ms-auth/
# state-testuser@contoso.com.json
# state-mda-testuser@contoso.com.json
Gültigkeit des Tokens überprüfen:
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()}`);
}
Fehleranalyse bei Authentifizierungsproblemen
In der folgenden Tabelle sind allgemeine Authentifizierungsprobleme und deren Behebung aufgeführt.
| Symptom | Wahrscheinliche Ursache | Resolution |
|---|---|---|
Authentication tokens have expired |
Speicherstatusdatei abgelaufen | Erneute Ausführung npm run auth:headful |
Storage state file does not exist |
Auth wurde nie ausgeführt | Führen Sie npm run auth:headful aus. |
Certificate file not found |
Falscher Pfad in MS_AUTH_LOCAL_FILE_PATH |
Überprüfen Sie, ob der Pfad relativ zu packages/e2e-tests/ ist. |
ERR_ABORTED während der modellgesteuerten App-Authentifizierung |
Power Apps Status abgelaufen | Ausführen npm run auth:headful vor npm run auth:mda:headful |
| Der Browser wird unerwartet geschlossen. | Vorheriger Browserprozess wird noch ausgeführt | Warten Sie einige Sekunden, und wiederholen Sie den Vorgang. |
Nächste Schritte
- CI/CD-Integration Vollständige Pipelinekonfiguration für GitHub Actions und Azure Pipelines
- Testen von Canvas-Apps
- Testen modellgesteuerter Apps