Veröffentlichen Power Apps Code-Apps mit einem Dienstprinzipal

Verwenden Sie einen Microsoft Entra Dienstprinzipal, um die Power Apps CLI zu authentifizieren, ohne einen Browser zu öffnen oder ein zwischengespeichertes Benutzerkonto zu verwenden. Diese Authentifizierungsmethode ist nützlich für die kontinuierliche Integration und kontinuierliche Übermittlung (CI/CD)-Pipelines und andere automatisierte Prozesse, die Aktualisierungen in einer vorhandenen Code-App veröffentlichen.

Zum Veröffentlichen eines Updates benötigt der Dienstprinzipal Zugriff auf die Power Platform-Zielumgebung und den Bearbeitungszugriff auf die Code-App. Berechtigungen auf Umgebungsebene erteilen keine Berechtigung zum Aktualisieren einer vorhandenen App. Die App-Freigabe und die Dienstprinzipalauthentifizierung sind separate Features, die Freigabe der App ist jedoch eine Voraussetzung für die Veröffentlichung von Updates als Dienstprinzipal.

Important

Ein App-Hersteller muss die App mit dem Dienstprinzipal teilen, bevor der Dienstprinzipal das erste Update veröffentlicht. Die Freigabe ist eine einmalige Voraussetzung, nicht Teil des wiederkehrenden Veröffentlichungsprozesses. Ein Dienstprinzipal kann sich nicht selbst Zugriff gewähren.

Voraussetzungen

  • Eine Power Apps Code-App, die Sie bereits veröffentlicht haben

  • Ein App-Maker-Konto, das über die Berechtigung zum Freigeben der App verfügt

  • Ein Microsoft Entra Dienstprinzipal, der Zugriff auf die Ziel-Power Platform-Umgebung hat

  • Diese Dienstprinzipalwerte:

    • Anwendungs-ID (Client-ID)
    • Geheimer Clientschlüssel
    • Verzeichnis-ID (Mandant)
    • Unternehmensanwendungsobjekt-ID

Grundlegendes zu den Dienstprinzipalbezeichnern

Microsoft Entra ID stellt mehrere Bezeichner für eine App-Registrierung und ihren Dienstprinzipal bereit. Verwenden Sie den richtigen Bezeichner für jeden Vorgang.

Kennung Wo finde ich sie? Wie diese verwendet wird
Anwendungs-ID (Client-ID) App-Registrierungen Legen Sie die Umgebungsvariable SP_CLIENT_ID fest.
Verzeichnis-ID (Mandant) App-Registrierungen Legen Sie die Umgebungsvariable SP_TENANT_ID fest.
Unternehmensanwendungsobjekt-ID Unternehmensanwendungen Weitergeben an pa app share --principal.

Voraussetzung: Freigeben der App mit dem Dienstprinzipal

Wenn die App bereits Bearbeitungszugriff für den Dienstprinzipal hat, überspringen Sie diesen Abschnitt. Führen Sie andernfalls einmal vom Computer des App-Herstellers diese Schritte aus. Schließen Sie den Freigabebefehl nicht in die CI/CD-Pipeline ein.

Important

Verwenden Sie die in App-Registrierungen im Microsoft Entra Admin Center angezeigte Objekt-ID nicht, in der Sie die Anwendungs-ID (Client-ID), die Verzeichnis-ID (Mandant) und den geheimen Clientschlüssel finden. Verwenden Sie stattdessen die in Enterprise-Anwendungen angezeigte Objekt-ID.

Wenn Sie die Anwendungs-ID (Client-ID) kennen, rufen Sie alternativ die Objekt-ID der Enterprise-Anwendung mithilfe des Befehls Azure CLI az ad sp showab:

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

Melden Sie sich als App-Maker an, und geben Sie die Code-App frei.

Aktivieren Sie die Dienstprinzipalauthentifizierung beim Freigeben der App nicht.

Melden Sie sich mit dem pa auth login Befehl interaktiv mit dem App Maker-Konto an:

pa auth login --account <maker-email>

Vergewissern Sie sich, dass das App Maker-Konto mit dem pa auth status Befehl aktiv ist:

pa auth status

Gewähren Sie im App-Ordner den Dienstprinzipalbearbeitungszugriff mithilfe des pa app share Befehls:

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

Die edit Zugriffsebene gewährt dem Dienstprinzipal die Berechtigung, die App mithilfe des pa app push Befehls zu aktualisieren.

Um die Berechtigung zum Wiedergeben der App zu erteilen, ohne sie zu aktualisieren, verwenden Sie --access play:

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

Veröffentlichen von Updates als Dienstprinzipal

Nachdem die App den Bearbeitungszugriff für den Dienstprinzipal hat, verwenden Sie den Dienstprinzipal, um Updates aus einer CI/CD-Pipeline oder einem lokalen Computer zu veröffentlichen. Wiederholen Sie dieses Verfahren für jede Aktualisierung. Sie müssen die App nicht erneut freigeben, es sei denn, der Zugriff des Dienstprinzipals wird entfernt.

Konfigurieren der Dienstprinzipalauthentifizierung

Legen Sie die Variablen der Dienstprinzipalauthentifizierungsumgebung in der CI/CD-Auftrags- oder Terminalsitzung fest, die Sie zum Veröffentlichen des Updates verwenden. Diese Variablen führen dazu, dass die CLI als Dienstprinzipal authentifiziert wird, anstatt ein zwischengespeichertes interaktives Konto zu verwenden.

$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>"

Nachdem Sie die Variablen festgelegt haben, führen Sie den Build- und Veröffentlichungsbefehl aus dieser Terminalsitzung oder dem CI/CD-Auftrag aus.

Erstellen und Veröffentlichen des Updates

Erstellen Sie die App mithilfe des für Ihr Projekt konfigurierten Befehls. Beispiel:

npm run build

Veröffentlichen der kompilierten App im nichtinteraktiven Modus mithilfe des pa app push Befehls

pa app push --non-interactive

Die CLI verwendet die Dienstprinzipalanmeldeinformationen aus den Umgebungsvariablen und öffnet keinen Browser oder verwendet ein zwischengespeichertes interaktives Konto.

Nach Abschluss des Befehls gibt ein Exitcode 0 an, dass das Update veröffentlicht wurde. Ein Nichtzero-Beendigungscode gibt an, dass der Befehl fehlgeschlagen ist.