Поділитися через


Посібник із автентифікації для Power Apps Test Engine (попередній перегляд)

Нотатка

Підготовчі функції призначені для невиробничого використання і можуть бути обмежені. Ці функції доступні до офіційного випуску, щоб клієнти могли ознайомитися з ними заздалегідь і залишити відгуки.

Цей посібник містить покрокові інструкції з налаштування автентифікації в Test Engine. Щоб отримати швидкий огляд параметрів автентифікації, перегляньте статтю Автентифікація в Test Engine.

Початок роботи з автентифікацією

Test Engine підтримує два методи автентифікації для веб-тестів для додатків на полотні та на основі моделі:

  • StorageState - Стандартне, просте налаштування для індивідуальної розробки (для веб-орієнтованого полотна та тестування додатків на основі моделі)
  • Dataverse - Командний підхід для спільного використання тестових користувачів та CI/CD (для веб-орієнтованих тестів на полотні та на основі моделі)

Аутентифікація обробляється по-різному для провайдера PowerFx і прямих Dataverse тестів. Ці тести отримують маркери доступу безпосередньо з вашого входу в сеанс Azure CLI за допомогою az команд для отримання токенів доступу до ресурсів. Переконайтеся, що ви ввійшли az login --allow-no-subscriptions в систему, перш ніж виконувати ці типи тестів.

Швидке налаштування: автентифікація StorageState

Автентифікація StorageState – це найпростіший спосіб розпочати роботу. Він використовує API захисту даних Windows для безпечного зберігання маркерів автентифікації на вашому локальному комп’ютері.

Крок 1: Запустіть тест з автентифікацією за замовчуванням

Виконайте наступну команду PowerShell, замінивши параметри, що починаються з your.

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

Нотатка

Параметр запуску--user-auth тесту pac не використовується в цьому прикладі, оскільки провайдером за замовчуванням є StorageState. За бажанням ви можете включити його.

Крок 2: Завершіть інтерактивний вхід

Введіть облікові дані тестового облікового запису користувача

  1. Вікно браузера відкривається автоматично
  2. Увійдіть за допомогою свого тестового облікового запису користувача
  3. Якщо з’явиться відповідний запит, підтвердьте багатофакторну автентифікацію та запити на отримання згоди
  4. Виберіть «Залишатися в системі», коли з’явиться запит

Тепер вашу автентифікацію збережено.

  • Test Engine надійно зберігає вашу автентифікацію
  • Під час майбутніх тестових запусків використовується збережений стан без необхідності входу в систему
  • Токени оновлюються автоматично, коли це потрібно

Налаштування команди: Dataverse аутентифікація

Dataverse Аутентифікація ідеально підходить для команд і пайплайнів CI/CD. Він надійно зберігає автентифіковані Dataverse стани користувача, зашифровані за допомогою сертифікатів X.509.

Крок 1: Завантажте та імпортуйте рішення Test Engine

  1. Завантажте Power Platform рішення з https://aka.ms/TestEngineAuth.
  2. Увійти до Power Apps.
  3. Виберіть цільове середовище.
  4. Перейдіть до розділу Рішення та виберіть Імпортувати рішення.
  5. Дотримуйтесь інструкцій майстра, щоб завантажити та встановити рішення Test Engine.

Крок 2: Створіть сертифікат для шифрування

Для самопідписаного сертифіката (лише для розробки) запустіть цей сценарій PowerShell такого рівня:

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

Для виробництва використовуйте сертифікат від центру сертифікації вашого підприємства.

Крок 3: Налаштуйте тестового користувача

Виконайте наведені нижче дії, щоб налаштувати тестового користувача.

  1. Відкрийте термінал і вийдіть з усіх наявних сеансів.

    # Clear Power Platform CLI credentials
    pac auth clear
    
    # Clear Azure CLI credentials
    az logout
    
  2. увійдіть за допомогою Azure CLI (потрібно для Dataverse автентифікації):

    az login --allow-no-subscriptions
    
  3. Встановіть ім’я сертифіката як змінну середовища PowerShell з DataProtectionCertificateName іменем:

    $env:DataProtectionCertificateName = "CN=testengine"
    
  4. Запустіть тест з 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
    

    Нотатка

    На відміну від StorageState, в цьому випадку необхідно використовувати --user-auth параметр зі значенням of Dataverse.

  5. Завершіть інтерактивний вхід, коли з’явиться відповідний запит.

Налаштування принципалів служб (для CI/CD)

Для автоматизованого тестування в пайплайнах CI/CD ви можете використовувати службові принципи замість інтерактивних облікових записів користувачів.

Крок 1: Створення заявки на реєстрацію в Microsoft Entra ID

Виконайте наступні кроки, щоб створити заявку на реєстрацію в Microsoft Entra ID.

  1. Увійдіть в Центр Microsoft Entra адміністрування
  2. Перейдіть до розділу Додатки>Реєстрація додатків
  3. Виберіть Нова реєстрація
  4. Введіть назву (наприклад, "Test Engine Automation")
  5. Збережіть параметри за замовчуванням і виберіть Зареєструватися
  6. Після створення зверніть увагу на ідентифікатор програми (клієнта) та ідентифікатор довідника (клієнта)

Крок 2: Налаштуйте дозволи API для Dataverse

Виконайте наведені нижче дії, щоб налаштувати дозволи API для Dataverse.

  1. Під час реєстрації заявки перейдіть до розділу Дозволи API
  2. Виберіть Додати дозвіл
  3. Вибір API, які використовує моя організація
  4. Знайдіть і виберіть Dataverse
  5. Виберіть Делеговані дозволи
  6. Перевірте user_impersonation
  7. Виберіть Додати дозволи
  8. Виберіть Надати згоду адміністратора

Крок 3: Створіть секрет клієнта

Виконайте наступні кроки, щоб створити секрет клієнта.

  1. Перейти до розділу Сертифікати та секрети
  2. Виберіть Новий секрет клієнта
  3. Додайте опис і виберіть термін дії
  4. Негайно скопіюйте секретне значення (ви більше його не зможете побачити)

Крок 4: Додайте користувача програми до Dataverse

Виконайте наступні кроки, щоб додати користувача програми Dataverse.

  1. Відкрийте Центр Power Platform адміністрування
  2. Виберіть середовище
  3. Перейдіть до розділу Налаштування>Користувачі + дозволи>Користувачі програми
  4. Вибрати + Новий користувач програми
  5. Знайдіть та виберіть свій додаток
  6. Призначте відповідні ролі бізнес-одиниці та безпеки (включаючи роль «Користувач тестового двигуна»)
  7. Збережіть зміни

Крок 5: Налаштуйте свій пайплайн CI/CD

Додайте до воронки продажів такі змінні:

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)

Для Azure DevOps цього безпечно зберігайте їх у групах змінних із відповідними дозволами.

PowerFx і пряма Dataverse тестова аутентифікація

Для тестів провайдера PowerFx і прямих Dataverse тестів аутентифікація працює інакше, ніж для веб-тестів.

Як працює PowerFx/Dataverse аутентифікація

  1. Test Engine використовує Azure CLI для отримання ресурсного маркера доступу
  2. Токен використовується для прямої аутентифікації за допомогою Dataverse API
  3. Веб-переглядач або веб-автентифікація не використовуються

Налаштування PowerFx/Dataverse аутентифікації

  1. Переконайтеся, що Azure CLI інстальовано та оновлено:

    winget install -e --id Microsoft.AzureCLI
    # Or update it if already installed
    az upgrade
    
  2. увійдіть за допомогою Azure CLI:

    # The --allow-no-subscriptions flag is important as you may not have Azure subscriptions
    az login --allow-no-subscriptions
    
  3. Проведіть тест у провайдера 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"
    

Вирішення проблем з автентифікацією

Цей розділ містить інформацію про усунення неполадок автентифікації за допомогою Test Engine.

Поширені проблеми зі станом сховища

  • Проблема: запит на автентифікацію з’являється під час кожного запуску.

    • Рішення: Перевірте, чи ви вибрали Залишатися в системі під час входу.
  • Проблема: Cannot access secure storage помилка.

    • Рішення: Переконайтеся, що у вас є відповідний доступ до папки вашого профілю користувача.

Поширені проблеми з Dataverse автентифікацією

  • Проблема: Certificate not found помилка.

    • Рішення: переконайтеся, що ім’я сертифіката точно збігається з тим, що є у вашому сховищі сертифікатів.
  • Проблема: Unable to connect to Dataverse помилка.

    • Рішення: переконайтеся, що Azure CLI увійшов у az login --allow-no-subscriptions систему.
  • Проблема: Access denied помилка з принципом служби.

    • Рішення: переконайтеся, що додаток має правильні дозволи Dataverse та відповідні ролі безпеки.

Поширені проблеми з PowerFx/Dataverse аутентифікацією

  • Проблема: Unable to obtain access token помилка

    • Рішення: переконайтеся, що ви ввійшли в систему за допомогою Azure CLI за допомогою az account get-access-token
  • Проблема: Access denied до Dataverse

    • Рішення: переконайтеся, що ваш користувач, який увійшов у систему, має відповідні дозволи в Dataverse середовищі
  • Проблема: закінчення терміну дії токена під час тривалих тестових запусків

    • Рішення: використовуйте реєстраційний представник служби з довшим терміном дії токена або обробляйте повторну автентифікацію на етапах тестування

Архітектура безпеки аутентифікації
Застосування на тестовому полотні
Тестування додатків на основі моделей
Тестові Dataverse розширення