Partager via


Guide d’authentification pour Power Apps Test Engine (version préliminaire)

Nonte

Les fonctionnalités en version préliminaire ne sont pas destinées à une utilisation en production et peuvent être restreintes. Ces fonctionnalités sont disponibles avant une version officielle afin que les clients puissent obtenir un accès anticipé et fournir des commentaires.

Ce guide fournit des instructions étape par étape pour configurer l’authentification dans Test Engine. Pour une présentation rapide des options d’authentification, consultez Authentification dans Test Engine.

Bien démarrer avec l’authentification

Test Engine prend en charge deux méthodes d’authentification pour les tests Web pour les applications pilotées par canevas et pilotées par modèle :

  • StorageState : par défaut, configuration facile pour le développement individuel (pour les tests Web des applications canevas et pilotées par modèle)
  • Dataverse : approche basée sur l’équipe pour le partage des utilisateurs de test et du CI/CD (pour les tests Web des applications canevas et pilotées par modèle)

L’authentification est gérée différemment pour les tests du fournisseur PowerFx et les tests directs Dataverse. Ces tests obtiennent des jetons d’accès directement à partir de votre session Azure CLI connectée à l’aide de commandes az pour obtenir des jetons d’accès aux ressources. Assurez-vous d’être connecté avec az login --allow-no-subscriptions avant d’exécuter ces types de tests.

Configuration rapide : authentification StorageState

L’authentification StorageState est le moyen le plus simple de commencer. Il utilise l’API de protection des données Windows pour stocker en toute sécurité les jetons d’authentification sur votre ordinateur local.

Étape 1 : Exécuter votre test avec l’authentification par défaut

Exécutez la commande PowerShell suivante en remplaçant les paramètres commençant par your.

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

Nonte

Le paramètre pac test run--user-auth n’est pas utilisé dans cet exemple, car le fournisseur par défaut est StorageState. Vous pouvez l’inclure si vous le souhaitez.

Étape 2 : Terminez la connexion interactive

Entrez vos informations d’identification de compte d’utilisateur de test

  1. Une fenêtre de navigateur s’ouvre automatiquement
  2. Connectez-vous avec votre compte d’utilisateur de test
  3. Si vous y êtes invité, approuvez l’authentification multifacteur et les invites de consentement
  4. Sélectionnez « Rester connecté » si vous y êtes invité

Votre authentification est maintenant enregistrée.

  • Test Engine stocke votre authentification de façon sécurisée
  • Les futures exécutions de test utiliseront l’état enregistré sans nécessiter de connexion
  • Les jetons s’actualisent automatiquement en cas de besoin

Paramétrage d’équipe : authentification Dataverse

L’authentification Dataverse est parfaite pour les équipes et les pipelines CI/CD. Elle stocke en toute sécurité les états des utilisateurs authentifiés dans Dataverse, chiffrés avec des certificats X.509.

Étape 1 : Télécharger et importer la solution Test Engine

  1. Télécharger la solution Power Platform à partir de https://aka.ms/TestEngineAuth.
  2. Connectez-vous à Power Apps.
  3. Sélectionnez votre environnement cible.
  4. Accédez Solutions, puis sélectionnez Importer la solution.
  5. Suivez les instructions de l’Assistant pour télécharger et installer la solution Test Engine.

Étape 2 : Créer un certificat pour le chiffrement

Pour un certificat auto-signé (développement uniquement), exécutez le script PowerShell suivant :

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

Pour la production, utilisez un certificat de l’autorité de certification de votre entreprise.

Étape 3 : Configurez votre utilisateur de test

Pour configurer votre utilisateur de test, procédez comme suit :

  1. Ouvrez votre terminal et déconnectez-vous de toutes les sessions existantes :

    # Clear Power Platform CLI credentials
    pac auth clear
    
    # Clear Azure CLI credentials
    az logout
    
  2. Connectez-vous avec Azure CLI (requis pour l’authentification Dataverse) :

    az login --allow-no-subscriptions
    
  3. Définissez le nom de votre certificat en tant que Variable d’environnement PowerShell nommée DataProtectionCertificateName :

    $env:DataProtectionCertificateName = "CN=testengine"
    
  4. Exécutez votre test avec authentification 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
    

    Nonte

    Contrairement à StorageState, dans ce cas, vous devez utiliser le paramètre --user-auth avec une valeur de Dataverse.

  5. Terminez la connexion interactive lorsque vous y êtes invité.

Configuration des principaux du service (pour CI/CD)

Pour les tests automatisés dans les pipelines CI/CD, vous pouvez utiliser des principaux de service au lieu de comptes d’utilisateurs interactifs.

Étape 1 : Créer une inscription d’application dans Microsoft Entra ID

Procédez de la manière suivante pour créer une inscription d’application dans Microsoft Entra ID.

  1. Se connecter au Centre d’administration Microsoft Entra
  2. Accéder à Applications>Inscriptions d’applications
  3. Sélectionnez Nouvelle inscription
  4. Entrez un nom (par exemple, « Automatisation du moteur de test »)
  5. Gardez les options par défaut et sélectionnez Inscrire
  6. Après la création, notez l’ID d’application (client) et l’ID du répertoire (locataire)

Étape 2 : Configurer les autorisations API pour Dataverse

Procédez de la manière suivante pour configurer les autorisations API pour Dataverse.

  1. Dans votre inscription d’application, accédez à Autorisations d’API
  2. Sélectionnez Ajouter une autorisation
  3. Choisissez API utilisées par mon organisation
  4. Recherchez et sélectionnez Dataverse
  5. Cliquez sur Autorisations déléguées
  6. Cochez user_impersonation
  7. Cliquez sur Ajouter des autorisations
  8. Sélectionnez Accorder un consentement administrateur

Étape 3 : Créer une clé secrète client

Procédez comme suit pour créer une clé secrète client.

  1. Accédez à Certificats et secrets
  2. Sélectionnez Nouvelle clé secrète client
  3. Ajoutez une description et choisissez une date d’expiration
  4. Copiez la Valeur du secret immédiatement (vous ne pouvez plus la revoir)

Étape 4 : Ajouter l’utilisateur de l’application à Dataverse

Procédez de la manière suivante pour ajouter l’utilisateur de l’application à Dataverse.

  1. Ouvrez le centre d’administration Power Platform
  2. Sélectionner votre environnement
  3. Accédez à Paramètres>Utilisateurs + autorisations>Utilisateurs de l’application
  4. Sélectionnez + Nouvel utilisateur de l’application
  5. Recherchez et sélectionnez votre application
  6. Attribuez les rôles de division et de sécurité appropriés (y compris le rôle « Utilisateur de Test Engine »).
  7. Enregistrer les modifications

Étape 5 : Configurez votre pipeline CI/CD

Ajoutez ces variables à votre 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)

Pour Azure DevOps, stockez-les en toute sécurité dans des groupes de variables avec les autorisations appropriées.

Authentification de test PowerFx et directe Dataverse

Pour les tests du fournisseur PowerFx et les tests directs Dataverse, l’authentification fonctionne différemment de celle des tests Web.

Fonctionnement de l’authentification PowerFx/Dataverse

  1. Test Engine utilise la CLI Azure pour obtenir un jeton d’accès spécifique à la ressource
  2. Le jeton est utilisé pour s’authentifier directement auprès des API Dataverse
  3. Il n’y a pas d’authentification par navigateur ou par le Web

Configuration de l’authentification PowerFx/Dataverse

  1. Assurez-vous que la CLI Azure est installée et à jour :

    winget install -e --id Microsoft.AzureCLI
    # Or update it if already installed
    az upgrade
    
  2. Connectez-vous avec Azure CLI :

    # The --allow-no-subscriptions flag is important as you may not have Azure subscriptions
    az login --allow-no-subscriptions
    
  3. Exécutez votre test avec le fournisseur 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"
    

Résolution des problèmes d’authentification

Cette section contient des informations sur le dépannage de l’authentification avec Test Engine.

Problèmes courants avec StorageState

  • Problème : l’invite d’authentification s’affiche à chaque exécution.

    • Solution : vérifiez si vous avez sélectionné Rester connecté lors de la connexion.
  • Problème : erreur Cannot access secure storage.

    • Solution : assurez-vous d’avoir un accès approprié à votre dossier de profil utilisateur.

Problèmes courants d’authentification Dataverse

  • Problème : erreur Certificate not found.

    • Solution : vérifiez que le nom du certificat correspond exactement à ce qui se trouve dans votre magasin de certificats.
  • Problème : erreur Unable to connect to Dataverse.

    • Solution : vérifiez qu’Azure CLI est connecté avec az login --allow-no-subscriptions.
  • Problème : erreur Access denied avec le principal de service.

    • Solution : vérifiez que l’application dispose des autorisations appropriées dans Dataverse et des rôles de sécurité appropriés.

Problèmes courants d’authentification PowerFx/Dataverse

  • Problème : erreur Unable to obtain access token

    • Solution : vérifiez que vous êtes connecté avec Azure CLI à l’aide de az account get-access-token
  • Problème : Access denied à Dataverse

    • Solution : assurez-vous que votre utilisateur connecté dispose des autorisations appropriées dans l’environnement Dataverse
  • Problème : expiration du jeton pendant les longues exécutions de test

    • Solution : utilisez un principal de service avec une expiration de jeton plus longue ou gérez la réauthentification dans les étapes de test

Architecture de sécurité de l’authentification
Tester des applications canevas
Tester des applications pilotées par modèle
Tester des extensions Dataverse