Autentiseringsguide för Power Apps testmotor (förhandsversion)

Obs

Förhandsversionsfunktioner ska inte användas i produktion och funktionerna kan vara begränsade. funktionerna är tillgängliga före den officiella publiceringen så att kunderna kan få tillgång tidigare och ge oss feedback.

Den här guiden innehåller steg-för-steg-instruktioner för att ställa in autentisering i Test Engine. En snabb översikt över autentiseringsalternativ finns i Autentisering i testmotorn.

Komma igång med autentisering

Testmotorn har stöd för två autentiseringsmetoder för webbaserade tester för arbetsyteprogram och modellbaserade program:

  • StorageState – Standard, enkel konfiguration för individuell utveckling (för webbaserad arbetsyta och modellbaserade apptester)
  • Dataverse - Teambaserad metod för att dela testanvändare och CI/CD (för webbaserad arbetsyta och modellbaserade apptester)

Autentisering hanteras på olika sätt för PowerFx-providern och direkta Dataverse tester. De här testerna hämtar åtkomsttoken direkt från din inloggade Azure CLI-session med hjälp av az kommandon för att hämta resursåtkomsttoken. Se till att du är inloggad az login --allow-no-subscriptions innan du kör dessa typer av tester.

Snabbinställning: StorageState-autentisering

StorageState-autentisering är det enklaste sättet att komma igång. Den använder Windows Data Protection-API:et för att lagra autentiseringstoken på ett säkert sätt på den lokala datorn.

Steg 1: Kör testet med standardautentisering

Kör följande PowerShell-kommando och ersätt parametrarna från och med your.

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

Obs

Parametern pac testkörning--user-auth används inte i det här exemplet eftersom standardprovidern är det StorageState. Du kan inkludera det om du vill.

Steg 2: Slutför den interaktiva inloggningen

Ange autentiseringsuppgifterna för ditt testanvändarkonto

  1. Ett webbläsarfönster öppnas automatiskt
  2. Logga in med ditt testanvändarkonto
  3. Godkänn MFA och medgivande om du uppmanas till det
  4. Välj "Fortsätt vara inloggad" när du uppmanas att göra det

Din autentisering är nu sparad.

  • Testmotorn lagrar din autentisering på ett säkert sätt
  • Framtida testkörningar använder det sparade tillståndet utan att kräva inloggning
  • Token uppdateras automatiskt när det behövs

teamkonfiguration: Dataverse autentisering

Dataverse autentisering är perfekt för team och CI/CD-pipelines. Den lagrar autentiserade användartillstånd på Dataverse ett säkert sätt, krypterade med X.509-certifikat.

Steg 1: Ladda ned och importera testmotorlösningen

  1. Power Platform Ladda ner lösningen från https://aka.ms/TestEngineAuth.
  2. Logga in på Power Apps.
  3. Välj din målmiljö.
  4. Gå till Lösningar och välj Importera lösning.
  5. Följ guiden för att ladda upp och installera testmotorlösningen.

Steg 2: Skapa ett certifikat för kryptering

För ett självsignerat certifikat (endast utveckling) kör du följande PowerShell-skript:

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

För produktion använder du ett certifikat från företagets certifikatutfärdare.

Steg 3: Konfigurera testanvändaren

Utför följande steg för att konfigurera testanvändaren:

  1. Öppna terminalen och logga ut från alla befintliga sessioner:

    # Clear Power Platform CLI credentials
    pac auth clear
    
    # Clear Azure CLI credentials
    az logout
    
  2. Logga in med Azure CLI (krävs för Dataverse autentisering):

    az login --allow-no-subscriptions
    
  3. Ange certifikatnamnet som en PowerShell-miljövariabel med DataProtectionCertificateName namnet:

    $env:DataProtectionCertificateName = "CN=testengine"
    
  4. Kör testet med Dataverse autentisering:

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

    Obs

    Till skillnad från StorageState måste du i det här fallet använda --user-auth parametern med värdet . Dataverse

  5. Slutför den interaktiva inloggningen när du uppmanas att göra det.

Konfigurera tjänstens huvudnamn (för CI/CD)

För automatiserad testning i CI/CD-pipelines kan du använda tjänstens huvudnamn i stället för interaktiva användarkonton.

Steg 1: Skapa en programregistrering i Microsoft Entra ID

Utför följande steg för att skapa en programregistrering i Microsoft Entra ID.

  1. Logga in på Microsoft Entra administrationscentret
  2. Gå till Appregistreringar för program>
  3. Välj Ny registrering
  4. Ange ett namn (till exempel "Test Engine Automation")
  5. Behåll standardalternativen och välj Registrera
  6. När du har skapat noterar du program-ID:t (klient) och katalog-ID:t (klientorganisationen)

Steg 2: Konfigurera API-behörigheter för Dataverse

Utför följande steg för att konfigurera API-behörigheter för Dataverse.

  1. I programregistreringen går du till API-behörigheter
  2. Välj Lägg till behörighet
  3. Välja API:er som min organisation använder
  4. Sök efter och välj Dataverse
  5. Välj Delegerade behörigheter
  6. Kontrollera user_impersonation
  7. Välj Lägg till behörigheter
  8. Välj Bevilja administratörsmedgivande

Steg 3: Skapa en klienthemlighet

Utför följande steg för att skapa en klienthemlighet.

  1. Gå till Certifikat och hemligheter
  2. Välj Ny klienthemlighet
  3. Lägga till en beskrivning och välja ett förfallodatum
  4. Kopiera det hemliga värdet omedelbart (du kan inte se det igen)

Steg 4: Lägg till programanvändaren i Dataverse

Utför följande steg för att lägga till programanvändaren i Dataverse.

  1. Power Platform Öppna administrationscentret
  2. Välj din miljö
  3. Gå till Inställningar>Användare + behörigheter>Programanvändare
  4. Välj + Ny appanvändare
  5. Sök efter och välj ditt program
  6. Tilldela lämpliga affärsenhets- och säkerhetsroller (inkludera rollen "Testmotoranvändare")
  7. Spara ändringarna

Steg 5: Konfigurera din CI/CD-pipeline

Lägg till dessa variabler i din pipeline:

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)

Lagra Azure DevOps dessa på ett säkert sätt i variabelgrupper med lämpliga behörigheter.

PowerFx och direkt Dataverse testautentisering

För PowerFx-providertester och direkttester Dataverse fungerar autentisering annorlunda än för webbaserade tester.

Så här fungerar PowerFx/Dataverse autentisering

  1. Testmotorn använder Azure CLI för att hämta en resursspecifik åtkomsttoken
  2. Token används för att autentisera direkt med Dataverse API:er
  3. Ingen webbläsare eller webbaserad autentisering är inblandad

Konfigurera PowerFx/Dataverse autentisering

  1. Se till att Azure CLI är installerat och uppdaterat:

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

    # The --allow-no-subscriptions flag is important as you may not have Azure subscriptions
    az login --allow-no-subscriptions
    
  3. Kör testet med PowerFx-providern:

    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"
    

Felsöka autentisering

Det här avsnittet innehåller information om hur du felsöker autentisering med testmotorn.

Vanliga problem med StorageState

  • Problem: Autentiseringsprompten visas vid varje körning.

    • Lösning: Kontrollera om du valde Förbli inloggad under inloggningen.
  • Problem: Cannot access secure storage fel.

    • Lösning: Se till att du har rätt åtkomst till din användarprofilmapp.

Vanliga problem med Dataverse autentisering

  • Problem: Certificate not found fel.

    • Lösning: Kontrollera att certifikatnamnet matchar exakt det som finns i certifikatarkivet.
  • Problem: Unable to connect to Dataverse fel.

    • Lösning: Kontrollera att Azure CLI är inloggat med az login --allow-no-subscriptions.
  • Problem: fel med tjänstens Access denied huvudnamn.

    • Lösning: Kontrollera att appen har rätt behörigheter i Dataverse och lämpliga säkerhetsroller.

Vanliga problem med PowerFx/Dataverse autentisering

  • Problem: Unable to obtain access token fel

    • Lösning: Kontrollera att du är inloggad med Azure CLI med hjälp av az account get-access-token
  • Problem: Access denied till Dataverse

    • Lösning: Se till att den inloggade användaren har rätt behörigheter i Dataverse miljön
  • Problem: Förfallodatum för token under långa testkörningar

    • Lösning: Använd ett huvudnamn för tjänsten med längre förfallotid för token eller hantera omautentisering i teststeg

Säkerhetsarkitektur för autentisering
Testa arbetsyteprogram
Testa modellbaserade program
Testa Dataverse tillägg