Freigeben über


Authentifizierungsanleitung für Power Apps Test Engine (Vorschauversion)

Anmerkung

Funktionen in der Vorschauversion sind nicht für den Produktionseinsatz gedacht und können eine eingeschränkte Funktionalität aufweisen. Diese Funktionen stehen vor dem offiziellen Release zur Verfügung, damit Kunden früher Zugriff darauf erhalten und Feedback geben können.

Diese Anleitung enthält schrittweise Anweisungen zum Einrichten der Authentifizierung in Test Engine. Eine kurze Übersicht über Authentifizierungsoptionen finden Sie unter Authentifizierung in Test Engine.

Erste Schritte mit der Authentifizierung

Test Engine unterstützt zwei Authentifizierungsmethoden für webbasierte Tests für Canvas und modellgesteuerte Anwendungen:

  • StorageState: standardmäßige, einfache Einrichtung für individuelle Entwicklung (für webbasierte Canvas- und modellgesteuerte App-Tests)
  • Dataverse: teambasierter Ansatz für die gemeinsame Nutzung durch Testbenutzer und CI/CD (für webbasierte Canvas- und modellgesteuerte App-Tests)

Die Authentifizierung wird für PowerFx-Anbieter und direkte Dataverse-Tests unterschiedlich gehandhabt. Diese Tests erhalten Zugriffstoken mithilfe von az-Befehlen direkt aus Ihrer angemeldeten Azure CLI-Sitzung heraus, um Zugriffstoken für Ressourcen abzurufen. Stellen Sie sicher, dass Sie über az login --allow-no-subscriptions angemeldet sind, bevor Sie diese Art von Tests ausführen.

Schnelleinrichtung: StorageState-Authentifizierung

Die StorageState-Authentifizierung ist der einfachste Weg, um loszulegen. Es verwendet die Windows-Datenschutz-API, um Authentifizierungstoken sicher auf Ihrem lokalen Computer zu speichern.

Schritt 1: Ausführen des Tests mit Standardauthentifizierung

Führen Sie den folgenden PowerShell-Befehl aus und ersetzen Sie die Parameter, die mit your beginnen.

pac test run `
   --provider canvas `
   --test-plan-file your-test-plan.yaml `
   --tenant your-tenant-id `
   --environment-id your-environment-id

Anmerkung

Der Parameter pac test run--user-auth wird in diesem Beispiel nicht verwendet, da der Standardanbieter StorageState ist. Sie können es einschließen, wenn Sie möchten.

Schritt 2: Abschließen der interaktiven Anmeldung

Geben Sie die Anmeldeinformationen für das Testbenutzerkonto ein

  1. Ein Browserfenster wird automatisch geöffnet.
  2. Melden Sie sich mit Ihrem Testbenutzerkonto an.
  3. Wenn Sie dazu aufgefordert werden, genehmigen Sie die MFA- und Zustimmungsaufforderungen
  4. Wenn Sie dazu aufgefordert werden, wählen Sie „Angemeldet bleiben“ aus.

Ihre Authentifizierung ist nun gespeichert.

  • Test Engine speichert Ihre Authentifizierung sicher
  • Zukünftige Testläufe verwenden den gespeicherten Zustand, ohne dass eine Anmeldung erforderlich ist
  • Token werden bei Bedarf automatisch aktualisiert

Teameinrichtung: Dataverse-Authentifizierung

Die Dataverse-Authentifizierung eignet sich perfekt für Teams und CI/CD-Pipelines. Authentifizierte Benutzerstatus werden in Dataverse sicher gespeichert und mit X.509-Zertifikaten verschlüsselt.

Schritt 1: Test Engine-Lösung herunterladen und importieren

  1. Laden Sie die Power Platform-Lösung unter https://aka.ms/TestEngineAuth herunter.
  2. Melden Sie sich bei Power Apps an.
  3. Wählen Sie Ihre Zielumgebung aus.
  4. Gehen Sie zu Lösungen und wählen Sie Lösung importieren aus.
  5. Folgen Sie dem Assistenten, um die Test Engine-Lösung hochzuladen und zu installieren.

Schritt 2: Erstellen eines Zertifikats für die Verschlüsselung

Führen Sie für ein selbstsigniertes Zertifikat (nur für Entwicklung) das folgende PowerShell Skript aus:

$Params = @{
  DnsName = @("testengine", "testengine")
  CertStoreLocation = "Cert:\CurrentUser\My"
  NotAfter = (Get-Date).AddMonths(6)
  KeyAlgorithm = "RSA"
  KeyLength = 2048
}
New-SelfSignedCertificate @Params

Verwenden Sie für die Produktion ein Zertifikat der Zertifizierungsstelle Ihres Unternehmens.

Schritt 3: Einrichten des Testbenutzers

Führen Sie die folgenden Schritte aus, um Ihren Testbenutzer einzurichten:

  1. Öffnen Sie Ihr Terminal und melden Sie sich von allen bestehenden Sitzungen ab:

    # Clear Power Platform CLI credentials
    pac auth clear
    
    # Clear Azure CLI credentials
    az logout
    
  2. Melden Sie sich mit Azure CLI an (erforderlich für die Dataverse-Authentifizierung):

    az login --allow-no-subscriptions
    
  3. Legen Sie den Namen Ihres Zertifikats als eine PowerShell-Umgebungsvariable mit dem Namen DataProtectionCertificateName fest:

    $env:DataProtectionCertificateName = "CN=testengine"
    
  4. Führen Sie den Test mit der Dataverse-Authentifizierung aus:

    pac test run `
       --provider canvas `
       --user-auth Dataverse `
       --auth Certstore `
       --test-plan-file testplan.yaml `
       --tenant your-tenant-id `
       --environment-id your-environment-id
    

    Anmerkung

    Im Gegensatz zu StorageState müssen Sie in diesem Fall den Parameter --user-auth mit einem Wert von Dataverse verwenden.

  5. Schließen Sie die interaktive Anmeldung ab, wenn Sie dazu aufgefordert werden.

Einrichten von Dienstprinzipalen (für CI/CD)

Für automatisierte Tests in CI/CD-Pipelines können Sie Dienstprinzipale anstelle von interaktiven Benutzerkonten verwenden.

Schritt 1: Erstellen Sie eine Anwendungsregistrierung in Microsoft Entra ID.

Führen Sie die folgenden Schritte aus, um in Microsoft Entra ID eine Anwendungsregistrierung zu erstellen.

  1. Melden Sie sich beim Microsoft Entra Admin Center an
  2. Navigieren Sie zu Anwendungen>App-Registrierungen.
  3. Wählen Sie Neue Registrierung aus.
  4. Geben Sie einen Namen ein (z. B. „Test Engine Automation„)
  5. Behalten Sie die Standardoptionen bei und wählen Sie Registrieren aus.
  6. Notieren Sie sich nach der Erstellung die Anwendungs(client)-ID und die Verzeichnis-ID (Mandant).

Schritt 2: Konfigurieren Sie API-Berechtigungen für Dataverse.

Führen Sie die folgenden Schritte aus, um API-Berechtigungen für Dataverse zu konfigurieren.

  1. Gehen Sie in Ihrer Anwendungsregistrierung zu API-Berechtigungen.
  2. Wählen Sie Eine Berechtigung hinzufügen
  3. Wählen Sie APIs, die meine Organisation verwendet aus.
  4. Suchen Sie nach Dataverse und wählen Sie die Option aus.
  5. Wählen Sie Delegierte Berechtigungen aus.
  6. Überprüfen Sie user_impersonation.
  7. Wählen Sie Berechtigungen hinzufügen aus.
  8. Wählen Sie Administratorzustimmung erteilen aus.

Schritt 3: Erstellen Sie einen geheimen Clientschlüssel.

Führen Sie die folgenden Schritte aus, um einen geheimen Clientschlüssel zu erstellen.

  1. Gehen Sie zu Zertifikate & Geheimnisse.
  2. Wählen Sie Neuer geheimer Clientschlüssel aus.
  3. Fügen Sie eine Beschreibung hinzu und wählen Sie ein Ablaufdatum aus.
  4. Kopieren Sie umgehend den Wert des geheimen Schlüssels (er wird nicht erneut angezeigt).

Schritt 4: Fügen Sie den Anwendungsbenutzer zu Dataverse hinzu.

Führen Sie die folgende Schritte aus, um den Anwendungsbenutzer zu Dataverse hinzuzufügen.

  1. Öffnen Sie das Power Platform Admin Center.
  2. Wählen Sie Ihre Umgebung
  3. Gehen Sie zu Einstellungen>Benutzer und Berechtigungen>Anwendungsbenutzer.
  4. Wählen Sie + Neuer App-Benutzer aus.
  5. Suchen Sie nach Ihrer Anwendung und wählen Sie sie aus.
  6. Weisen Sie geeignete Unternehmenseinheits- und Sicherheitsrollen zu (einschließlich der Rolle „Test Engine User„)
  7. Speichern Sie die Änderungen

Schritt 5: Konfigurieren der CI/CD-Pipeline

Fügen Sie diese Variablen zu Ihrer Pipeline hinzu:

AZURE_CLIENT_ID: (your application ID)
AZURE_CLIENT_SECRET: (your client secret)
AZURE_TENANT_ID: (your tenant ID)
DataProtectionCertificateValue: (base64 encoded certificate)
ENVIRONMENT_URL: (your Dataverse environment URL)

Speichern Sie diese für Azure DevOps sicher in Variablengruppen mit entsprechenden Berechtigungen.

PowerFx und direkte Dataverse-Testauthentifizierung

Bei PowerFx-Anbietertests und direkten Dataverse-Tests funktioniert die Authentifizierung anders als bei webbasierten Tests.

Funktionsweise der PowerFx-/Dataverse-Authentifizierung

  1. Test Engine verwendet Azure CLI, um ein ressourcenspezifisches Zugriffstoken zu erhalten
  2. Das Token wird zur direkten Authentifizierung bei Dataverse-APIs verwendet.
  3. Es ist keine Browser- oder webbasierte Authentifizierung erforderlich

PowerFx-/Dataverse-Authentifizierung einrichten

  1. Stellen Sie sicher, dass Azure CLI installiert und auf dem neuesten Stand ist:

    winget install -e --id Microsoft.AzureCLI
    # Or update it if already installed
    az upgrade
    
  2. Mit Azure CLI anmelden:

    # The --allow-no-subscriptions flag is important as you may not have Azure subscriptions
    az login --allow-no-subscriptions
    
  3. Führen Sie den Test mit dem PowerFx-Anbieter aus:

    pac test run `
       --provider powerfx `
       --test-plan-file testplan.yaml `
       --tenant your-tenant-id `
       --environment-id your-environment-id `
       --domain "https://your-environment.crm.dynamics.com"
    

Problembehandlung für die Authentifizierung

Dieser Abschnitt enthält Informationen zur Problembehandlung bei der Authentifizierung mit Test Engine.

Häufige Probleme mit StorageState

  • Problem: Bei jeder Ausführung wird eine Authentifizierungsaufforderung angezeigt.

    • Lösung: Überprüfen Sie, ob Sie bei der Anmeldung die Option Angemeldet bleiben ausgewählt haben.
  • Problem: Cannot access secure storage-Fehler.

    • Lösung: Stellen Sie sicher, dass Sie über den entsprechenden Zugriff auf Ihren Benutzerprofilordner verfügen.

Häufige Probleme bei der Dataverse-Authentifizierung

  • Problem: Certificate not found-Fehler.

    • Lösung: Stellen Sie sicher, dass der Zertifikatname exakt mit dem Namen in Ihrem Zertifikatspeicher übereinstimmt.
  • Problem: Unable to connect to Dataverse-Fehler.

    • Lösung: Überprüfen Sie, ob Azure CLI mit az login --allow-no-subscriptions angemeldet ist.
  • Problem: Access denied-Fehler mit dem Dienstprinzipal.

    • Lösung: Stellen Sie sicher, dass die App über die richtigen Berechtigungen in Dataverse sowie über die entsprechenden Sicherheitsrollen verfügt.

Häufige Probleme bei der PowerFX-/Dataverse-Authentifizierung

  • Problem: Unable to obtain access token-Fehler.

    • Lösung: Vergewissern Sie sich, dass Sie über Azure CLI mit az account get-access-token angemeldet sind.
  • Problem: Access denied für Dataverse.

    • Lösung: Stellen Sie sicher, dass Ihr angemeldeter Benutzer über die entsprechenden Berechtigungen in der Dataverse-Umgebung verfügt.
  • Problem: Das Token ist bei langen Testläufen abgelaufen.

    • Lösung: Verwenden Sie einen Dienstprinzipal mit längerer Tokenlaufzeit oder führen Sie in den Testschritten eine erneute Authentifizierung durch.

Sicherheitsarchitektur für die Authentifizierung
Canvas-Apps testen
Modellgesteuerte Apps testen
Dataverse-Erweiterungen testen