Condividi tramite


Guida all'autenticazione per Power Apps Test Engine (anteprima)

Nota

Le funzionalità di anteprima non sono destinate ad essere utilizzate per la produzione e sono soggette a restrizioni. Vengono rese disponibili prima di una versione ufficiale in modo che i clienti possano accedervi con anticipo e fornire i loro commenti.

Questa guida fornisce istruzioni dettagliate per impostare l'autenticazione in Test Engine. Per una rapida panoramica delle opzioni di autenticazione, vedere Autenticazione nel motore di test.

Introduzione all'autenticazione

Test Engine supporta due metodi di autenticazione per i test basati sul Web per applicazioni canvas e basate su modelli:

  • StorageState - Configurazione predefinita e semplice per lo sviluppo individuale (per test di app basate su modelli e canvas basati sul Web)
  • Dataverse - Approccio basato sul team per la condivisione di utenti di test e CI/CD (per test di app basati su modelli e canvas basati sul Web)

L'autenticazione viene gestita in modo diverso per i test del provider PowerFx e per quelli diretti. Dataverse Questi test ottengono i token di accesso direttamente dalla sessione di Azure CLI a cui hai effettuato l'accesso utilizzando i comandi per ottenere i token di accesso alle risorse. az Assicurati di aver effettuato l'accesso con az login --allow-no-subscriptions prima di eseguire questo tipo di test.

Configurazione rapida: autenticazione StorageState

L'autenticazione StorageState è il modo più semplice per iniziare. Utilizza l'API di protezione dei dati di Windows per archiviare in modo sicuro i token di autenticazione sul computer locale.

Passaggio 1: esegui il test con l'autenticazione predefinita

Eseguire il seguente comando PowerShell sostituendo i parametri che iniziano con your.

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

Nota

Il parametro pac test run--user-auth non viene utilizzato in questo esempio perché il provider predefinito è StorageState. Se lo desideri, puoi includerlo.

Passaggio 2: Completa l'accesso interattivo

Inserisci le credenziali del tuo account utente di prova

  1. Si apre automaticamente una finestra del browser
  2. Accedi con il tuo account utente di prova
  3. Se richiesto, approvare MFA e richieste di consenso
  4. Seleziona "Resta connesso" quando richiesto

L'autenticazione è stata salvata.

  • Il motore di test memorizza in modo sicuro la tua autenticazione
  • I test futuri utilizzano lo stato salvato senza richiedere l'accesso
  • I token si aggiornano automaticamente quando necessario

Configurazione del team: Dataverse autenticazione

Dataverse L'autenticazione è perfetta per team e pipeline CI/CD. Memorizza in modo sicuro gli stati degli utenti autenticati in Dataverse, crittografati con certificati X.509.

Passaggio 1: scaricare e importare la soluzione Test Engine

  1. Scarica la Power Platform soluzione da https://aka.ms/TestEngineAuth.
  2. Accedere a Power Apps.
  3. Seleziona l'ambiente di destinazione.
  4. Vai a Soluzioni e seleziona Importa soluzione.
  5. Seguire la procedura guidata per caricare e installare la soluzione Test Engine.

Passaggio 2: creare un certificato per la crittografia

Per un certificato autofirmato (solo per sviluppo), eseguire il seguente script di PowerShell:

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

Per la produzione, utilizzare un certificato rilasciato dall'autorità di certificazione aziendale.

Passaggio 3: configura l'utente di prova

Per configurare l'utente di prova, completa i seguenti passaggi:

  1. Apri il terminale e chiudi tutte le sessioni esistenti:

    # Clear Power Platform CLI credentials
    pac auth clear
    
    # Clear Azure CLI credentials
    az logout
    
  2. Accedi con Azure CLI (obbligatorio per l'autenticazione): Dataverse

    az login --allow-no-subscriptions
    
  3. Imposta il nome del certificato come una variabile di ambiente PowerShell denominata DataProtectionCertificateName:

    $env:DataProtectionCertificateName = "CN=testengine"
    
  4. Esegui il test con l'autenticazione: 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
    

    Nota

    A differenza di StorageState, in questo caso è necessario utilizzare il parametro --user-auth con un valore di Dataverse.

  5. Completa l'accesso interattivo quando richiesto.

Impostazione dei principi di servizio (per CI/CD)

Per i test automatizzati nelle pipeline CI/CD, è possibile utilizzare i principi di servizio anziché gli account utente interattivi.

Passaggio 1: creare una registrazione dell'applicazione in Microsoft Entra ID

Completare i seguenti passaggi per creare una registrazione dell'applicazione in Microsoft Entra ID.

  1. Accedi al centro di amministrazione Microsoft Entra
  2. Vai a Applicazioni>Registrazioni app
  3. Seleziona Nuova registrazione
  4. Inserisci un nome (ad esempio "Automazione del motore di test")
  5. Mantieni le opzioni predefinite e seleziona Registra
  6. Dopo la creazione, annotare l' ID dell'applicazione (client) e l' ID della directory (tenant)

Passaggio 2: configurare le autorizzazioni API per Dataverse

Completare i seguenti passaggi per configurare le autorizzazioni API Dataverse.

  1. Nella registrazione dell'applicazione, vai a Autorizzazioni API
  2. Selezionare Aggiungi un'autorizzazione
  3. Scegli le API che utilizza la mia organizzazione
  4. Cerca e seleziona Dataverse
  5. Seleziona Autorizzazioni delegate
  6. Controlla l'impersonificazione dell'utente
  7. Seleziona Aggiungi autorizzazioni
  8. Seleziona Concedi consenso amministratore

Passaggio 3: creare un segreto client

Per creare un client secret, completare i seguenti passaggi.

  1. Vai a Certificati e segreti
  2. Seleziona Nuovo segreto client
  3. Aggiungi una descrizione e scegli una scadenza
  4. Copia immediatamente il valore segreto (non potrai più vederlo)

Passaggio 4: aggiungere l'utente dell'applicazione a Dataverse

Completare i seguenti passaggi per aggiungere l'utente dell'applicazione a Dataverse.

  1. Apri il Centro di amministrazione Power Platform
  2. Seleziona l'ambiente
  3. Vai a Impostazioni>Utenti + autorizzazioni>Utenti applicazione
  4. Seleziona + Nuovo utente app
  5. Cerca e seleziona la tua applicazione
  6. Assegnare ruoli appropriati per unità aziendali e sicurezza (incluso il ruolo di "Utente del motore di test")
  7. Salvare le modifiche

Passaggio 5: configura la pipeline CI/CD

Aggiungi queste variabili alla tua 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)

Per Azure DevOps, archiviarli in modo sicuro in Gruppi di variabili con le autorizzazioni appropriate.

Autenticazione PowerFx e test diretto Dataverse

Per i test del provider PowerFx e i test diretti, l'autenticazione funziona in modo diverso rispetto ai test basati sul Web. Dataverse

Come funziona l'autenticazione PowerFx/Dataverse

  1. Test Engine utilizza Azure CLI per ottenere un token di accesso specifico per la risorsa
  2. Il token viene utilizzato per l'autenticazione diretta con le API Dataverse
  3. Non è coinvolta alcuna autenticazione basata sul browser o sul web

Impostazione dell'autenticazione PowerFx/Dataverse

  1. Assicurarsi che l'interfaccia della riga di comando di Azure sia installata e aggiornata:

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

    # The --allow-no-subscriptions flag is important as you may not have Azure subscriptions
    az login --allow-no-subscriptions
    
  3. Esegui il test con il provider PowerFx:

    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"
    

Risoluzione dei problemi di autenticazione

Questa sezione contiene informazioni sulla risoluzione dei problemi di autenticazione con Test Engine.

Problemi comuni con StorageState

  • Problema: a ogni esecuzione viene visualizzata la richiesta di autenticazione.

    • Soluzione: verifica se hai selezionato Resta connesso durante l'accesso.
  • Problema: Cannot access secure storage errore.

    • Soluzione: assicurati di avere accesso appropriato alla cartella del tuo profilo utente.

Problemi comuni con l'autenticazione Dataverse

  • Problema: Certificate not found errore.

    • Soluzione: verifica che il nome del certificato corrisponda esattamente a quanto presente nell'archivio certificati.
  • Problema: Unable to connect to Dataverse errore.

    • Soluzione: verificare che Azure CLI abbia effettuato l'accesso con az login --allow-no-subscriptions.
  • Problema: Access denied errore con il servizio principale.

    • Soluzione: verificare che l'app disponga delle autorizzazioni corrette e dei ruoli di sicurezza appropriati. Dataverse

Problemi comuni con l'autenticazione PowerFx/Dataverse

  • Problema: Unable to obtain access token errore

    • Soluzione: verifica di aver effettuato l'accesso con Azure CLI utilizzando az account get-access-token
  • Problema: Access denied a Dataverse

    • Soluzione: assicurati che l'utente registrato abbia le autorizzazioni appropriate nell'ambiente Dataverse
  • Problema: Scadenza del token durante le lunghe esecuzioni dei test

    • Soluzione: utilizzare un'entità di servizio con una scadenza del token più lunga o gestire la riautenticazione nei passaggi di test

Architettura di sicurezza dell'autenticazione
Applicazioni di prova su tela
Testare le applicazioni basate su modelli
Estensioni di test Dataverse