Delen via


Authenticatiehandleiding voor Power Apps Test Engine (preview)

Notitie

Preview-functies zijn niet bedoeld voor productiegebruik en bieden mogelijk beperkte functionaliteit. Deze functies zijn beschikbaar voorafgaand aan een officiële release, zodat klanten vroeg toegang kunnen krijgen en feedback kunnen geven.

Deze handleiding bevat stapsgewijze instructies voor het instellen van authenticatie in Test Engine. Zie Authenticatie in Test Engine voor een snel overzicht van de authenticatieopties.

Aan de slag met authenticatie

Test Engine ondersteunt twee authenticatiemethoden voor webgebaseerde tests voor canvas- en modelgestuurde applicaties:

  • StorageState - Standaard, eenvoudige configuratie voor individuele ontwikkeling (voor webgebaseerde canvas- en modelgestuurde app-tests)
  • Dataverse - Teamgebaseerde aanpak voor het delen van testgebruikers en CI/CD (voor webgebaseerde canvas- en modelgestuurde app-tests)

Authenticatie wordt anders afgehandeld voor PowerFx-provider- en directe Dataverse tests. Met deze tests worden toegangstokens rechtstreeks vanuit uw aangemelde Azure CLI-sessie verkregen met behulp van opdrachten om toegangstokens voor resources op te halen. az Zorg ervoor dat u bent ingelogd met az login --allow-no-subscriptions voordat u dit soort tests uitvoert.

Snelle installatie: StorageState-authenticatie

StorageState-verificatie is de eenvoudigste manier om te beginnen. Er wordt gebruikgemaakt van de Windows Data Protection API om authenticatietokens veilig op uw lokale computer op te slaan.

Stap 1: Voer uw test uit met standaardauthenticatie

Voer de volgende PowerShell-opdracht uit en vervang de parameters die beginnen met your.

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

Notitie

De parameter pac test run--user-auth wordt in dit voorbeeld niet gebruikt, omdat de standaardprovider StorageState is. Als u dat wenst, kunt u dit toevoegen.

Stap 2: Voltooi de interactieve aanmelding

Voer de inloggegevens van uw testgebruikersaccount in

  1. Er wordt automatisch een browservenster geopend
  2. Log in met uw testgebruikersaccount
  3. Indien gevraagd, MFA goedkeuren en toestemming vragen
  4. Selecteer 'Ingelogd blijven' wanneer u hierom wordt gevraagd

Uw authenticatie is nu opgeslagen.

  • Test Engine slaat uw authenticatie veilig op
  • Toekomstige testruns gebruiken de opgeslagen status zonder dat aanmelding vereist is
  • Tokens worden automatisch vernieuwd wanneer dat nodig is

Teamopstelling: Dataverse authenticatie

Dataverse Authenticatie is perfect voor teams en CI/CD-pipelines. Geverifieerde gebruikersstatussen worden veilig opgeslagen in Dataverse, gecodeerd met X.509-certificaten.

Stap 1: Download en importeer de Test Engine-oplossing

  1. Download de Power Platform oplossing van https://aka.ms/TestEngineAuth.
  2. Aanmelden bij Power Apps.
  3. Selecteer uw doelomgeving.
  4. Ga naar Oplossingen en selecteer Oplossing importeren.
  5. Volg de wizard om de Test Engine-oplossing te uploaden en te installeren.

Stap 2: Maak een certificaat voor encryptie

Voor een zelfondertekend certificaat (alleen ontwikkeling) voert u het volgende PowerShell-script uit:

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

Gebruik voor productie een certificaat van uw bedrijfscertificeringsinstantie.

Stap 3: Stel uw testgebruiker in

Volg de volgende stappen om uw testgebruiker in te stellen:

  1. Open uw terminal en meld u af bij alle bestaande sessies:

    # Clear Power Platform CLI credentials
    pac auth clear
    
    # Clear Azure CLI credentials
    az logout
    
  2. Aanmelden met Azure CLI (vereist voor Dataverse authenticatie):

    az login --allow-no-subscriptions
    
  3. Stel uw certificaatnaam in als een PowerShell-omgevingsvariabele met de naam DataProtectionCertificateName:

    $env:DataProtectionCertificateName = "CN=testengine"
    
  4. Voer uw test uit met authenticatie: Dataverse

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

    Notitie

    In tegenstelling tot StorageState moet u in dit geval de parameter --user-auth gebruiken met de waarde Dataverse.

  5. Meld u interactief aan wanneer u daarom wordt gevraagd.

Service-principals instellen (voor CI/CD)

Voor geautomatiseerd testen in CI/CD-pipelines kunt u service-principals gebruiken in plaats van interactieve gebruikersaccounts.

Stap 1: Maak een applicatieregistratie aan in Microsoft Entra ID

Voer de volgende stappen uit om een applicatieregistratie in Microsoft Entra ID te maken.

  1. Meld u aan bij het Microsoft Entra beheercentrum
  2. Navigeer naar Toepassingen>App-registraties
  3. Selecteer Nieuwe registratie
  4. Voer een naam in (bijvoorbeeld 'Test Engine Automation')
  5. Behoud de standaardopties en selecteer Registreren
  6. Noteer na het aanmaken de Application (client) ID en Directory (tenant) ID

Stap 2: API-machtigingen configureren voor Dataverse

Voer de volgende stappen uit om API-machtigingen te configureren voor Dataverse.

  1. Ga in uw applicatieregistratie naar API-machtigingen
  2. Selecteer Een machtiging toevoegen
  3. Kies de API's die mijn organisatie gebruikt
  4. Zoeken en selecteren Dataverse
  5. Gedelegeerde machtigingen selecteren
  6. Controleer user_impersonation
  7. Selecteer Machtigingen toevoegen
  8. Selecteer Toestemming van beheerder verlenen

Stap 3: Maak een clientgeheim

Voer de volgende stappen uit om een clientgeheim te maken.

  1. Ga naar Certificaten en geheimen
  2. Selecteer Nieuw clientgeheim
  3. Voeg een beschrijving toe en kies een vervaldatum
  4. Kopieer de geheime waarde onmiddellijk (je kunt deze niet meer zien)

Stap 4: Voeg de applicatiegebruiker toe aan Dataverse

Voer de volgende stappen uit om de applicatiegebruiker toe te voegen aan Dataverse.

  1. Open het Power Platform Beheercentrum
  2. Uw omgeving selecteren
  3. Ga naar instellingen>gebruikers + machtigingen>Applicatiegebruikers
  4. Selecteer + Nieuwe app-gebruiker
  5. Zoek en selecteer uw applicatie
  6. Wijs de juiste rollen toe aan de bedrijfseenheid en de beveiliging (inclusief de rol 'Test Engine User')
  7. De wijzigingen opslaan

Stap 5: Configureer uw CI/CD-pijplijn

Voeg deze variabelen toe aan uw pijplijn:

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)

Sla deze voor Azure DevOps veilig op in variabelegroepen met de juiste machtigingen.

PowerFx en directe Dataverse testauthenticatie

Voor PowerFx-providertests en directe tests werkt authenticatie anders dan voor webgebaseerde tests. Dataverse

Hoe PowerFx/Dataverse authenticatie werkt

  1. Test Engine gebruikt Azure CLI om een resourcespecifiek toegangstoken te verkrijgen
  2. Het token wordt gebruikt om rechtstreeks te authenticeren met API's Dataverse
  3. Er is geen browser- of webgebaseerde authenticatie nodig

PowerFx/Dataverse authenticatie instellen

  1. Zorg ervoor dat Azure CLI is geïnstalleerd en up-to-date is:

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

    # The --allow-no-subscriptions flag is important as you may not have Azure subscriptions
    az login --allow-no-subscriptions
    
  3. Voer uw test uit met de PowerFx-provider:

    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"
    

Problemen met authenticatie oplossen

In dit gedeelte vindt u informatie over het oplossen van problemen met authenticatie met Test Engine.

Veelvoorkomende problemen met StorageState

  • Probleem: Bij elke uitvoering verschijnt de prompt voor authenticatie.

    • Oplossing: Controleer of u Ingelogd blijven hebt geselecteerd tijdens het inloggen.
  • Probleem: Cannot access secure storage fout.

    • Oplossing: Zorg ervoor dat u de juiste toegang hebt tot uw gebruikersprofielmap.

Veelvoorkomende problemen met authenticatie Dataverse

  • Probleem: Certificate not found fout.

    • Oplossing: Controleer of de certificaatnaam exact overeenkomt met wat er in uw certificaatarchief staat.
  • Probleem: Unable to connect to Dataverse fout.

    • Oplossing: Controleer of Azure CLI is aangemeld met az login --allow-no-subscriptions.
  • Probleem: Access denied fout met serviceprincipal.

    • Oplossing: Controleer of de app de juiste machtigingen heeft in Dataverse en de juiste beveiligingsrollen.

Veelvoorkomende problemen met PowerFx/Dataverse authenticatie

  • Probleem: Unable to obtain access token fout

    • Oplossing: Controleer of u bent aangemeld bij Azure CLI met behulp van az account get-access-token
  • Probleem: Access denied om Dataverse

    • Oplossing: Zorg ervoor dat uw aangemelde gebruiker de juiste machtigingen heeft in de Dataverse omgeving
  • Probleem: Tokenverval tijdens lange testruns

    • Oplossing: Gebruik een service-principal met een langere tokenvervaldatum of verwerk herauthenticatie in teststappen

Authenticatiebeveiligingsarchitectuur
Test canvas-toepassingen
Test modelgestuurde applicaties
Testextensies Dataverse