Comparteix via


Guia d'autenticació per a Power Apps Test Engine (versió preliminar)

Nota

Les característiques de visualització prèvia no estan dissenyades per a un entorn de producció i poden tenir una funcionalitat restringida. Aquestes característiques estan disponibles abans d’un llançament oficial de producte per tal que els clients el puguin utilitzar abans i enviar-nos els seus comentaris.

Aquesta guia proporciona instruccions pas a pas per configurar l'autenticació al Test Engine. Per obtenir una visió general ràpida de les opcions d'autenticació, vegeu Autenticació al motor de proves.

Introducció a l'autenticació

El motor de proves admet dos mètodes d'autenticació per a proves basades en web per a aplicacions basades en llenç i basades en models:

  • StorageState : configuració fàcil per defecte per al desenvolupament individual (per a proves de llenç basades en web i aplicacions basades en models)
  • Dataverse - Enfocament basat en equips per compartir usuaris de prova i CI/CD (per a proves de llenç basades en web i aplicacions basades en models)

L'autenticació es gestiona de manera diferent per al proveïdor de PowerFx i les proves directes Dataverse . Aquestes proves obtenen testimonis d'accés directament de la sessió az de la CLI de l'Azure que ha iniciat la sessió mitjançant ordres per obtenir testimonis d'accés al recurs. Assegureu-vos que heu iniciat la sessió abans az login --allow-no-subscriptions d'executar aquest tipus de proves.

Configuració ràpida: autenticació StorageState

L'autenticació StorageState és la manera més senzilla de començar. Utilitza l'API de protecció de dades de Windows per emmagatzemar de manera segura els testimonis d'autenticació a la màquina local.

Pas 1: executeu la prova amb l'autenticació predeterminada

Executeu la següent ordre del PowerShell substituint els paràmetres que comencen per your.

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

Nota

El paràmetre d'execució--user-auth de la prova pac no s'utilitza en aquest exemple perquè el proveïdor predeterminat sí que ho és StorageState. Pots incloure'l si ho desitges.

Pas 2: completa l'inici de sessió interactiu

Introduïu les credencials del compte d'usuari de prova

  1. S'obre automàticament una finestra del navegador
  2. Inicia sessió amb el teu compte d'usuari de prova
  3. Si se us demana, aproveu l'MFA i les sol·licituds de consentiment
  4. Seleccioneu "Mantenir la sessió sessida" quan se us demani

La vostra autenticació ja està desada.

  • Test Engine emmagatzema de manera segura la vostra autenticació
  • Les futures execucions de proves utilitzen l'estat desat sense necessitat d'iniciar la sessió
  • Els tokens s'actualitzen automàticament quan és necessari

Configuració de l'equip: Dataverse autenticació

Dataverse L'autenticació és perfecta per a equips i pipelines de CI/CD. Emmagatzema de manera segura els estats Dataverse d'usuari autenticats, xifrats amb certificats X.509.

Pas 1: Baixeu i importeu la solució Test Engine

  1. Baixeu la Power Platform solució des de https://aka.ms/TestEngineAuth.
  2. Inicieu la sessió a Power Apps.
  3. Seleccioneu l'entorn de destinació.
  4. Aneu a Solucions i seleccioneu Importa la solució.
  5. Seguiu l'auxiliar per carregar i instal·lar la solució del motor de prova.

Pas 2: Crear un certificat per a l'encriptació

Per a un certificat autosignat (només desenvolupament), executeu aquest script del PowerShell següent:

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

Per a la producció, utilitzeu un certificat de l'autoritat de certificació de l'empresa.

Pas 3: configureu l'usuari de prova

Seguiu els passos següents per configurar l'usuari de prova:

  1. Obre el terminal i tanca la sessió de les sessions existents:

    # Clear Power Platform CLI credentials
    pac auth clear
    
    # Clear Azure CLI credentials
    az logout
    
  2. Inicieu sessió amb la CLI de l'Azure (necessària per a l'autenticació Dataverse ):

    az login --allow-no-subscriptions
    
  3. Definiu el nom del certificat com a variable d'entorn del PowerShell anomenada DataProtectionCertificateName:

    $env:DataProtectionCertificateName = "CN=testengine"
    
  4. Executeu la prova amb Dataverse autenticació:

    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 diferència de StorageState, en aquest cas heu d'utilitzar el --user-auth paràmetre amb un valor de Dataverse.

  5. Completeu l'inici de sessió interactiu quan se us demani.

Configuració de les entitats de servei (per a CI/CD)

Per a les proves automatitzades en pipelines de CI/CD, podeu utilitzar entitats de servei en lloc de comptes d'usuari interactius.

Pas 1: Crear un registre d'aplicació a Microsoft Entra ID

Completeu els passos següents per crear un registre d'aplicació a Microsoft Entra l'ID.

  1. Inicieu sessió al Centre d'administració Microsoft Entra
  2. Aneu a Aplicacions>Registres d'aplicacions
  3. Seleccioneu Nou registre
  4. Introduïu un nom (per exemple, "Automatització del motor de prova")
  5. Mantingueu les opcions predeterminades i seleccioneu Registre
  6. Després de la creació, anoteu l'identificador de l'aplicació (client) i l'identificador del directori (inquilí)

Pas 2: Configurar els permisos de l'API per a Dataverse

Completeu els passos següents per configurar els permisos de l'API Dataverse.

  1. Al registre de l'aplicació, aneu a Permisos de l'API
  2. Seleccioneu Afegeix un permís
  3. Trieu les API que utilitza la meva organització
  4. Cerqueu i seleccioneu Dataverse
  5. Seleccioneu Permisos delegats
  6. Comproveu user_impersonation
  7. Seleccioneu Afegeix permisos
  8. Seleccioneu Concedeix el consentiment de l'administrador

Pas 3: Crear un secret de client

Completeu els passos següents per crear un secret de client.

  1. Accedeix a Certificats i secrets
  2. Seleccioneu Nou secret de client
  3. Afegeix una descripció i tria una caducitat
  4. Copieu el valor secret immediatament (no el podreu tornar a veure)

Pas 4: afegiu l'usuari de l'aplicació a Dataverse

Completeu els passos següents per afegir l'usuari de Dataverse l'aplicació.

  1. Obre el Centre d'administració Power Platform
  2. Seleccioneu el vostre entorn
  3. Aneu a Configuració>Usuaris + permisos>Usuaris de l'aplicació
  4. Select + Usuari nou de l'aplicació
  5. Cerqueu i seleccioneu la vostra aplicació
  6. Assigneu funcions de seguretat i unitat de negoci adequades (incloeu la funció "Usuari del motor de proves")
  7. Deseu els canvis

Pas 5: Configureu el pipeline de CI/CD

Afegiu aquestes variables al 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 a això Azure DevOps, emmagatzemeu-los de manera segura en grups de variables amb els permisos adequats.

PowerFx i autenticació de prova directa Dataverse

Per a les proves de proveïdors de PowerFx i les proves directes Dataverse , l'autenticació funciona de manera diferent que per a les proves basades en web.

Com funciona PowerFx/Dataverse autenticació

  1. El motor de proves utilitza la CLI de l'Azure per obtenir un testimoni d'accés específic del recurs
  2. El testimoni s'utilitza per autenticar-se directament amb Dataverse les API
  3. No hi ha cap navegador o autenticació basada en web

Configuració del PowerFx/Dataverse autenticació

  1. Assegureu-vos que la CLI de l'Azure estigui instal·lada i actualitzada:

    winget install -e --id Microsoft.AzureCLI
    # Or update it if already installed
    az upgrade
    
  2. Iniciar sessió amb Azure CLI:

    # The --allow-no-subscriptions flag is important as you may not have Azure subscriptions
    az login --allow-no-subscriptions
    
  3. Executeu la prova amb el proveïdor 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"
    

Solució de problemes d'autenticació

Aquesta secció conté informació sobre la resolució de problemes d'autenticació amb el Test Engine.

Problemes habituals amb StorageState

  • Problema: apareix una sol·licitud d'autenticació a cada execució.

    • Solució: comproveu si heu seleccionat Mantingueu-vos connectat durant l'inici de sessió.
  • Problema: Cannot access secure storage error.

    • Solució: Assegureu-vos que teniu l'accés adequat a la carpeta de perfils d'usuari.

Problemes habituals amb Dataverse l'autenticació

  • Problema: Certificate not found error.

    • Solució: verifiqueu que el nom del certificat coincideixi exactament amb el que hi ha al magatzem de certificats.
  • Problema: Unable to connect to Dataverse error.

    • Solució: Comproveu que la CLI de l'Azure estigui connectada az login --allow-no-subscriptions.
  • Problema: Access denied error amb l'entitat de servei.

    • Solució: verifiqueu que l'aplicació tingui els permisos Dataverse correctes i les funcions de seguretat adequades.

Problemes habituals amb PowerFx/Dataverse autenticació

  • Problema: Unable to obtain access token error

    • Solució: verifiqueu que heu iniciat la sessió amb la CLI de l'Azure mitjançant az account get-access-token
  • Problema: Access denied a Dataverse

    • Solució: assegureu-vos que l'usuari que ha iniciat la sessió tingui els permisos adequats a l'entorn Dataverse
  • Problema: caducitat del testimoni durant les proves llargues

    • Solució: utilitzeu una entitat de servei amb una caducitat de testimoni més llarga o gestioneu la reautenticació als passos de prova

Arquitectura de seguretat d'autenticació
Aplicacions de llenç de prova
Aplicacions basades en models de prova
Extensions de prova Dataverse