Freigeben über


Authentifizierungsübersicht

Power Platform-Apps umfassen zwei unterschiedliche Domänen, die jeweils eine separate authentifizierte Sitzung erfordern:

Domäne URL Verwendung
Power Apps make.powerapps.com Canvas-Apps, Gen-UX-Apps und alle Tests, die durch Power Apps navigieren
Dynamics 365/CRM <org>.crm.dynamics.com Modellgesteuerte Apps und Dynamics 365

Das Framework behandelt beide Domänen, indem ein Browserspeicherstatus einmal erworben und für alle Testläufe wiederverwendet wird. Bei diesem Ansatz wird die Anmeldung bei jedem Test vermieden, wodurch die Dauer der Testsuite erheblich reduziert wird.

Funktionsweise des Speicherzustands in Playwright

Das Feature von storageState Playwright erfasst alle Cookies und lokalen Speicher (einschließlich MSAL-Token) aus einer authentifizierten Browsersitzung und speichert sie in einer JSON-Datei. Beim Starten von Tests wird der Browserkontext mit diesem gespeicherten Zustand initialisiert, wobei der interaktive Anmeldefluss umgangen wird.

Das Framework speichert zwei Statusdateien:

Datei Domäne Verwendet von
state-<email>.json Power Apps Canvas-App-Tests, Gen-UX-Tests
state-mda-<email>.json Dynamics 365 Modellgesteuerte App-Tests

Standardspeicherort: packages/e2e-tests/.playwright-ms-auth/

Authentifizierungsanbieter

Das Framework unterstützt drei Anbieter von Anmeldeinformationen:

Kennwortauthentifizierung

Verwenden Sie die Kennwortauthentifizierung für die lokale Entwicklung, wenn die Zertifikatinfrastruktur nicht verfügbar ist.

MS_AUTH_CREDENTIAL_TYPE=password
MS_USER_PASSWORD=<password>

Von Bedeutung

Übernehmen Sie niemals Kennwörter für die Quellcodeverwaltung. Verwenden Sie Umgebungsvariablen oder einen geheimen Manager.

Zertifikatauthentifizierung

Verwenden Sie die Zertifikatauthentifizierung für CI/CD-Pipelines und freigegebene Umgebungen. Diese Methode vermeidet das Speichern von Kennwörtern und unterstützt mehrstufige Szenarien.

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

Verwenden Sie Azure Key Vault für Produktionspipelinen, in denen Sie Zertifikate zentral verwalten.

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

Tokenüberprüfung und Ablaufprüfung für den Authentifizierungszustand

Vor jeder Testausführung überprüft das Framework die Speicherstatusdatei:

  • Power Apps state: Überprüft den Ablauf des MSAL-Zugriffstokens von localStorage
  • MDA state: Überprüft Dynamics 365 Sitzungscookies aus der CRM-Domäne.

Wenn eine Statusdatei abgelaufen ist, entfernt das Framework sie und fordert Sie auf, sich erneut zu authentifizieren. In CI/CD wird die Authentifizierung ausgeführt globalSetup , um den aktuellen Zustand vor jeder Pipelineausführung zu erhalten.

Mehrere Testbenutzer

Wenn Sie Tests mit verschiedenen Benutzerkonten ausführen möchten (z. B. rollenbasierten Zugriff testen), erstellen Sie separate Speicherstatusdateien, indem Sie die Authentifizierungsskripts für jeden Benutzer festlegen MS_AUTH_EMAIL und ausführen:

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

Verweisen Sie dann in Ihrem Test auf die spezifische Statusdatei:

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

Sicherheitsaspekte

  • Speicherstatusdateien enthalten Sitzungstoken. Fügen Sie .playwright-ms-auth/ zu Ihrem .gitignore hinzu.
  • Wechseln Sie die Testbenutzeranmeldeinformationen und authentifizieren Sie sich regelmäßig neu.
  • Verwenden Sie dedizierte Testkonten mit mindestens erforderlichen Berechtigungen.
  • Verwenden Sie für Produktion-CI/CD die Zertifikatauthentifizierung mit Zertifikaten, die in Azure Key Vault gespeichert sind.

Nächste Schritte

Siehe auch