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


Руководство по аутентификации для Power Apps 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. Перейдите в раздел Приложения>Регистрация приложений
  3. Выберите Новую регистрацию
  4. Введите имя (например, «Автоматизация тестового движка»)
  5. Оставьте параметры по умолчанию и выберите Зарегистрироваться
  6. После создания запишите идентификатор приложения (клиента) и идентификатор каталога (арендатора)

Шаг 2: Настройте разрешения API для Dataverse

Выполните следующие шаги для настройки разрешений API Dataverse.

  1. В разделе «Регистрация приложения» перейдите в раздел Разрешения API.
  2. Выберите Добавить разрешение
  3. Выберите API, которые использует моя организация
  4. Найдите и выберите Dataverse
  5. Выберите Делегированные разрешения
  6. Проверьте имитацию_пользователя
  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.

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

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

    • Решение: Проверьте, выбрали ли вы Оставаться в системе при входе в систему.
  • Проблема: 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 среде
  • Проблема: Истечение срока действия токена во время длительных тестовых запусков

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

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