Publier des applications de code Power Apps avec un principal de service

Utilisez un principal de service Microsoft Entra pour authentifier l’interface CLI Power Apps sans ouvrir un navigateur ou utiliser un compte d’utilisateur mis en cache. Cette méthode d’authentification est utile pour les pipelines d’intégration continue et de livraison continue (CI/CD) et d’autres processus automatisés qui publient des mises à jour dans une application de code existante.

Pour publier une mise à jour, le principal de service doit accéder à l’environnement Power Platform cible et modifier l’accès à l’application de code. Les autorisations au niveau de l’environnement seules n’accordent pas l’autorisation de mettre à jour une application existante. Le partage d’applications et l’authentification du principal de service sont des fonctionnalités distinctes, mais le partage de l’application est un prérequis pour la publication de mises à jour en tant que principal de service.

Important

Un créateur d’applications doit partager l’application avec le principal de service avant que le principal de service publie sa première mise à jour. Le partage est un prérequis unique, qui ne fait pas partie du processus de publication périodique. Un principal de service ne peut pas lui accorder l’accès.

Prerequisites

  • Application de code Power Apps que vous avez déjà publiée

  • Un compte de créateur d’applications disposant de l’autorisation de partager l’application

  • Un principal de service Microsoft Entra qui a accès à l’environnement Power Platform cible

  • Ces valeurs de principal de service :

    • ID de l’application (client)
    • Secret de client
    • ID de l’annuaire (locataire)
    • ID d’objet Application d’entreprise

Comprendre les identificateurs de principal de service

Microsoft Entra ID fournit plusieurs identificateurs pour une inscription d’application et son principal de service. Utilisez l’identificateur correct pour chaque opération.

Identificateur Comment y accéder Comment il est utilisé
ID de l’application (client) Inscriptions d’applications Définissez la variable d’environnement SP_CLIENT_ID.
ID de l’annuaire (locataire) Inscriptions d’applications Définissez la variable d’environnement SP_TENANT_ID.
ID d’objet Application d’entreprise Applications d’entreprise Passez à pa app share --principal.

Prérequis : Partager l’application avec le principal de service

Si l’application a déjà accès aux modifications pour le principal de service, ignorez cette section. Sinon, effectuez ces étapes une fois à partir de l’ordinateur du créateur d’applications. N’incluez pas la commande de partage dans le pipeline CI/CD.

Important

N'utilisez pas l'ID d'objet indiqué dans inscriptions d'applications dans le centre d’administration Microsoft Entra, où vous trouvez l'ID d'application (client), l'ID d'annuaire (locataire) et la clé secrète client. Utilisez plutôt l’ID d’objet affiché dans les applications d’entreprise .

Sinon, si vous connaissez l’ID d’application (client), récupérez l’ID d’objet Application d’entreprise à l’aide de la commande Azure CLI az ad sp show:

az ad sp show --id <application-client-id> --query id --output tsv

Connectez-vous en tant que créateur d’applications et partagez l’application de code

N’activez pas l’authentification du principal de service lors du partage de l’application.

Connectez-vous de manière interactive avec le compte de créateur d’applications à l’aide de la pa auth login commande :

pa auth login --account <maker-email>

Vérifiez que le compte de créateur d’applications est actif à l’aide de la pa auth status commande :

pa auth status

Dans le dossier de l’application, accordez au principal de service l’accès modifier à l’aide de la pa app share commande :

pa app share --principal <enterprise-application-object-id> --access edit

Le edit niveau d’accès accorde l’autorisation du principal de service pour mettre à jour l’application à l’aide de la pa app push commande.

Pour accorder l’autorisation de lire l’application sans la mettre à jour, utilisez --access play:

pa app share --principal <enterprise-application-object-id> --access play

Publier des mises à jour en tant que principal de service

Une fois que l’application a modifié l’accès au principal de service, utilisez le principal de service pour publier des mises à jour à partir d’un pipeline CI/CD ou d’un ordinateur local. Répétez cette procédure pour chaque mise à jour. Vous n’avez pas besoin de partager à nouveau l’application, sauf si l’accès du principal de service est supprimé.

Configurer l’authentification du principal de service

Définissez les variables d’environnement d’authentification du principal de service dans la session ci/CD ou terminal que vous utilisez pour publier la mise à jour. Ces variables entraînent l’authentification cli en tant que principal de service au lieu d’utiliser un compte interactif mis en cache.

$env:PA_CLI_USE_SP_AUTH = "true"
$env:SP_CLIENT_ID = "<application-client-id>"
$env:SP_CLIENT_SECRET = "<client-secret>"
$env:SP_TENANT_ID = "<tenant-id>"

Après avoir défini les variables, exécutez les commandes de génération et de publication à partir de cette session de terminal ou du travail CI/CD.

Générer et publier la mise à jour

Générez l’application à l’aide de la commande configurée pour votre projet. Par exemple:

npm run build

Publier l’application compilée en mode noninteractive à l’aide de la pa app push commande

pa app push --non-interactive

L’interface CLI utilise les informations d’identification du principal de service à partir des variables d’environnement et n’ouvre pas de navigateur ni n’utilise un compte interactif mis en cache.

Une fois la commande terminée, un code de sortie indique 0 que la mise à jour a été publiée. Un code de sortie différent de zéro indique que la commande a échoué.