Udostępnij za pośrednictwem


Przewodnik dotyczący uwierzytelniania dla silnika testowego Power Apps (wersja zapoznawcza)

Notatka

Funkcje w wersji zapoznawczej nie są przeznaczone do użytku w środowiskach produkcyjnych i mogą mieć ograniczoną funkcjonalność. Te funkcje są udostępniane przed oficjalnym wydaniem, dzięki czemu klienci mogą szybciej uzyskać do nich dostęp i przekazać opinie na ich temat.

Ten przewodnik zawiera instrukcje krok po kroku dotyczące konfigurowania uwierzytelniania w module Test Engine. Aby zapoznać się z krótkim omówieniem opcji uwierzytelniania, zobacz Uwierzytelnianie w module Test Engine.

Wprowadzenie do uwierzytelniania

Test Engine obsługuje dwie metody uwierzytelniania dla testów internetowych dla aplikacji kanwy i opartych na modelu:

  • StorageState — domyślna, łatwa konfiguracja do indywidualnego programowania (dla kanwy internetowej i testów aplikacji opartych na modelu)
  • Dataverse - Zespołowe podejście do udostępniania użytkowników testowych i CI/CD (dla internetowych testów kanwy i aplikacji opartych na modelu)

Uwierzytelnianie jest inaczej obsługiwane dla dostawcy PowerFx oraz testów bezpośrednich w Dataverse. Te testy uzyskują tokeny dostępu bezpośrednio z Twojej zalogowanej sesji Azure CLI, używając komend az do uzyskiwania tokenów dostępu do zasobów. Upewnij się, że jesteś zalogowany przy użyciu az login --allow-no-subscriptions przed uruchomieniem tego typu testów.

Szybka konfiguracja: uwierzytelnianie StorageState

Uwierzytelnianie StorageState to najprostszy sposób rozpoczęcia pracy. Używa interfejsu API ochrony danych systemu Windows do bezpiecznego przechowywania tokenów uwierzytelniania na komputerze lokalnym.

Krok 1: Uruchom test z domyślnym uwierzytelnianiem

Uruchom następujące polecenie programu PowerShell, zastępując parametry rozpoczynające się od your.

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

Notatka

Parametr pac test run--user-auth nie jest używany w tym przykładzie, ponieważ domyślnym dostawcą jest StorageState. Możesz go dołączyć, jeśli chcesz.

Krok 2: Dokończ logowanie interakcyjne

Wprowadź dane uwierzytelniające testowego konta użytkownika

  1. Okno przeglądarki otworzy się automatycznie
  2. Zaloguj się na swoje testowe konto użytkownika
  3. Jeśli zostanie wyświetlony monit, zatwierdź monity o uwierzytelnianie wieloskładnikowe i zgodę
  4. Wybierz "Pozostań zalogowany" po wyświetleniu monitu

Twoje uwierzytelnianie zostało zapisane.

  • Test Engine bezpiecznie przechowuje Twoje uwierzytelnienie
  • Przyszłe przebiegi testów używają zapisanego stanu bez konieczności logowania
  • Tokeny są odświeżane automatycznie w razie potrzeby

Ustawienia zespołu: Uwierzytelnianie Dataverse

Dataverse uwierzytelnianie jest idealne dla zespołów i potoków ciągłej integracji/ciągłego wdrażania. Bezpiecznie przechowuje uwierzytelnione stany Dataverse użytkowników, zaszyfrowane certyfikatami X.509.

Krok 1: Pobierz i zaimportuj rozwiązanie Test Engine

  1. Power Platform Pobierz rozwiązanie ze strony https://aka.ms/TestEngineAuth.
  2. Zaloguj się do usługi Power Apps.
  3. Wybierz środowisko docelowe.
  4. Przejdź do pozycji Rozwiązania i wybierz pozycję Importuj rozwiązanie.
  5. Postępuj zgodnie z instrukcjami kreatora, aby przesłać i zainstalować rozwiązanie Test Engine.

Krok 2: Utwórz certyfikat do szyfrowania

W przypadku certyfikatu z podpisem własnym (tylko programowanie) uruchom następujący skrypt programu PowerShell:

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

W środowisku produkcyjnym użyj certyfikatu z urzędu certyfikacji przedsiębiorstwa.

Krok 3: Skonfiguruj użytkownika testowego

Wykonaj następujące kroki, aby skonfigurować użytkownika testowego:

  1. Otwórz terminal i wyloguj się ze wszystkich istniejących sesji:

    # Clear Power Platform CLI credentials
    pac auth clear
    
    # Clear Azure CLI credentials
    az logout
    
  2. Zaloguj się przy użyciu interfejsu wiersza polecenia Azure (wymagane do uwierzytelnienia Dataverse):

    az login --allow-no-subscriptions
    
  3. Ustaw nazwę certyfikatu jako zmienną środowiskową programu PowerShell o nazwie : DataProtectionCertificateName

    $env:DataProtectionCertificateName = "CN=testengine"
    
  4. Uruchom test, korzystając z uwierzytelniania 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
    

    Notatka

    W przeciwieństwie do StorageState, w tym przypadku należy użyć parametru --user-auth o wartości Dataverse.

  5. Po wyświetleniu monitu ukończ logowanie interakcyjne.

Konfigurowanie jednostek usługi (na potrzeby ciągłej integracji/ciągłego wdrażania)

W przypadku zautomatyzowanego testowania w potokach ciągłej integracji/ciągłego wdrażania można używać kont usługowych zamiast interaktywnych kont użytkowników.

Krok 1: Utwórz rejestrację aplikacji w systemie Microsoft Entra ID

Wykonaj następujące kroki, aby utworzyć rejestrację aplikacji w identyfikatorze Microsoft Entra .

  1. Zaloguj się do centrum administracyjnego Microsoft Entra
  2. Przejdź do pozycji Rejestracje aplikacji>
  3. Wybierz pozycję Nowa rejestracja
  4. Wprowadź nazwę (na przykład "Automatyzacja silnika testowego")
  5. Zachowaj opcje domyślne i wybierz pozycję Zarejestruj
  6. Po utworzeniu zanotuj identyfikator aplikacji (klienta) i identyfikator katalogu (najemcy)

Krok 2: Skonfiguruj uprawnienia API dla Dataverse

Wykonaj następujące kroki, aby skonfigurować uprawnienia interfejsu API Dataverse.

  1. Podczas rejestracji aplikacji przejdź do pozycji Uprawnienia interfejsu API
  2. Wybierz Dodaj uprawnienie
  3. Wybieranie interfejsów API używanych przez moją organizację
  4. Wyszukaj i wybierz Dataverse
  5. Wybierz pozycję Uprawnienia delegowane
  6. Sprawdź uwierzytelnianie użytkownika
  7. Wybierz pozycję Dodaj uprawnienia
  8. Wybierz pozycję Udziel zgody administratora

Krok 3: Utwórz klucz tajny klienta

Wykonaj następujące kroki, aby utworzyć klucz tajny klienta.

  1. Przejdź do sekcji Certyfikaty i wpisy tajne
  2. Wybierz pozycję Nowy klucz tajny klienta
  3. Dodaj opis i wybierz datę wygaśnięcia
  4. Natychmiast skopiuj wartość wpisu tajnego (nie możesz jej ponownie zobaczyć)

Krok 4: Dodaj użytkownika aplikacji do Dataverse

Wykonaj następujące kroki, aby dodać użytkownika aplikacji do Dataverse.

  1. Otwieranie centrum administracyjnego Power Platform
  2. Wybieranie środowiska
  3. Przejdź do Ustawień>Użytkownicy + uprawnienia>Użytkownicy aplikacji
  4. Wybierz + Nowy użytkownik aplikacji
  5. Wyszukaj i wybierz swoją aplikację
  6. Przypisywanie odpowiednich ról jednostki biznesowej i zabezpieczeń (w tym roli "Użytkownik silnika testowego")
  7. Zapisz zmiany

Krok 5: Skonfiguruj swój pipeline CI/CD

Dodaj te zmienne do potoku:

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)

W Azure DevOps należy je bezpiecznie przechowywać w Grupach Zmiennych z odpowiednimi uprawnieniami.

PowerFx i bezpośrednie uwierzytelnianie testowe w Dataverse

W przypadku testów dostawcy PowerFx i testów bezpośrednich Dataverse uwierzytelnianie działa inaczej niż w przypadku testów internetowych.

Jak działa PowerFx/Dataverse uwierzytelnianie

  1. Test Engine używa interfejsu wiersza polecenia platformy Azure w celu uzyskania tokenu dostępu specyficznego dla zasobu
  2. Token służy do bezpośredniego uwierzytelniania z interfejsami API Dataverse.
  3. Nie jest wymagane uwierzytelnianie przez przeglądarkę ani przeglądarkę internetową

Konfiguracja uwierzytelniania PowerFx/Dataverse

  1. Upewnij się, że interfejs wiersza polecenia platformy Azure jest zainstalowany i aktualny:

    winget install -e --id Microsoft.AzureCLI
    # Or update it if already installed
    az upgrade
    
  2. Zaloguj się za pomocą interfejsu wiersza polecenia platformy Azure:

    # The --allow-no-subscriptions flag is important as you may not have Azure subscriptions
    az login --allow-no-subscriptions
    
  3. Uruchom test za pomocą dostawcy 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"
    

Rozwiązywanie problemów z uwierzytelnianiem

Ta sekcja zawiera informacje dotyczące rozwiązywania problemów z uwierzytelnianiem w Test Engine.

Typowe problemy z StorageState

  • Problem: Monit o uwierzytelnienie pojawia się przy każdym uruchomieniu.

    • Rozwiązanie: Sprawdź, czy podczas logowania wybrano opcję Nie wylogowuj się.
  • Problem: Cannot access secure storage błąd.

    • Rozwiązanie: Upewnij się, że masz odpowiedni dostęp do folderu profilu użytkownika.

Typowe problemy z uwierzytelnianiem w Dataverse

  • Problem: Certificate not found błąd.

    • Rozwiązanie: Sprawdź, czy nazwa certyfikatu jest dokładnie taka sama, jak nazwa w magazynie certyfikatów.
  • Problem: Unable to connect to Dataverse błąd.

    • Rozwiązanie: Sprawdź, czy jesteś zalogowany do Azure CLI za pomocą az login --allow-no-subscriptions.
  • Problem: Access denied błąd z kontem głównym usługi.

    • Rozwiązanie: Sprawdź, czy aplikacja ma poprawne uprawnienia w Dataverse oraz odpowiednie role zabezpieczeń.

Typowe problemy z PowerFx/Dataverse uwierzytelnianiem

  • Problem: Unable to obtain access token błąd

    • Rozwiązanie: Sprawdź, czy zalogowano się za pomocą Azure CLI przy użyciu polecenia az account get-access-token
  • Problem: Access denied w przypadku Dataverse

    • Rozwiązanie: Upewnij się, że zalogowany użytkownik ma odpowiednie uprawnienia w Dataverse środowisku
  • Problem: Wygaśnięcie tokenu podczas długich przebiegów testów

    • Rozwiązanie: Użyj jednostki usługi z dłuższym czasem wygaśnięcia tokenu lub zarządzaj ponownym uwierzytelnianiem w krokach testu

Architektura zabezpieczeń uwierzytelniania
Testowanie aplikacji Canvas
Testowanie aplikacji opartych na modelu
Rozszerzenia testowe Dataverse