Руководство по проверке подлинности для движка тестирования Power Apps (устаревший)

Замечание

Модуль тестирования устарел и будет удален в будущем выпуске. Используйте примеры Power Platform Playwright для возможностей автоматизации тестирования в службах Power Platform и Dynamics 365.

В этом руководстве приведены пошаговые инструкции по настройке аутентификации в 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

Замечание

Параметр pac test run--user-auth в этом примере не используется, поскольку поставщиком по умолчанию является StorageState. Вы можете включить его, если хотите.

Шаг 2. Выполнение интерактивного входа

Введите данные вашей учетной записи тестового пользователя

  1. Автоматически откроется окно браузера
  2. Выполните вход с использованием учетной записи тестового пользователя
  3. При необходимости подтвердите запрос на MFA и согласие
  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 со значением Dataverse.

  5. При появлении соответствующего запроса выполните интерактивный вход в систему.

Настройка субъектов-служб (для CI/CD)

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

Шаг 1. Создание регистрации приложения в Microsoft Entra ID

Выполните следующие действия, чтобы создать регистрацию приложения в Microsoft Entra ID.

  1. Войдите в Центр администрирования Microsoft Entra
  2. Перейдите к Applications>Регистрация приложений
  3. Выберите Новую регистрацию
  4. Введите имя (например, "Автоматизация Test Engine")
  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. Назначьте соответствующее подразделение и роли безопасности (включая роль "Пользователь Test Engine")
  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 безопасно храните их в Variable Groups с соответствующими разрешениями.

Аутентификация для тестов PowerFx и прямых тестов Dataverse

Для тестов поставщика PowerFx и прямых тестов Dataverse аутентификация работает иначе, чем для веб-тестов.

Как работает аутентификация PowerFx/Dataverse

  1. Модуль тестирования использует Azure CLI для получения маркера доступа для конкретного ресурса
  2. Этот маркер используется для аутентификации непосредственно в API Dataverse
  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.

Распространенные проблемы со StorageState

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

    • Решение: проверьте, установили ли вы флажок Оставаться в системе при входе в систему.
  • Проблема: ошибка Cannot access secure storage.

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

Распространенные проблемы с аутентификацией Dataverse

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

    • Решение: убедитесь, что имя сертификата точно соответствует имени в вашем хранилище сертификатов.
  • Проблема: ошибка Unable to connect to Dataverse.

    • Solution. Убедитесь, что Azure CLI входит в систему с помощью az login --allow-no-subscriptions.
  • Проблема: ошибка Access denied с субъектом-службой.

    • Решение: убедитесь, что приложение имеет необходимые разрешения в Dataverse и соответствующие роли безопасности.

Распространенные проблемы с аутентификацией PowerFx/Dataverse

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

    • Solution: Убедитесь, что вы вошли в систему, используя Azure CLI az account get-access-token
  • Задача: отказано в доступе к Dataverse (Access denied)

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

    • Решение: используйте субъект-службу с более длительным сроком действия маркера или выполняйте повторную аутентификацию на этапах тестирования

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