Share via


Pipelines als Dienstprinzipal oder Pipeline-Besitzender bereitstellen

Delegierte Bereitstellungen können als Dienstprinzipal oder Pipeline-Phasenbesitzender ausgeführt werden. Wenn diese Option aktiviert ist, wird die Pipeline-Phase als Stellvertretung (Dienstprinzipal oder Pipeline-Phasenbesitzender) und nicht als anfordernder Erstellender bereitgestellt.

Mit Dienstprinzipal bereitstellen

Anforderungen

  • Ein Microsoft Entra-Benutzerkonto. Wenn Sie noch kein Konto haben, können Sie Kostenlos ein Konto erstellen.
  • Eine der folgenden Microsoft Entra Rollen: Global Administrator, Cloud-Anwendungs-Administrator oder Anwendungs-Administrator.
  • Sie müssen Besitzer der Unternehmensanwendung (Dienstprinzipal) in Microsoft Entra ID sein.

Führen Sie für eine delegierte Bereitstellung mit einem Dienstprinzipal die folgenden Schritte aus.

  1. Erstellen Sie eine Unternehmensanwendung (Dienstprinzipal) in Microsoft Entra ID.

    Wichtig

    Jeder, der Dienstprinzipalkonfigurationen in Pipelines aktiviert oder ändert, muss Eigentümer der Unternehmensanwendung (Dienstprinzipal) in Microsoft Entra ID sein.

  2. Fügen Sie die Unternehmensanwendung als Server-zu-Server-Benutzenden (S2S) in Ihrer Pipeline-Hostumgebung und jeder Zielumgebung hinzu, in der sie bereitgestellt wird.

  3. Weisen Sie die Sicherheitsrolle „Bereitstellungsadministrierender“ dem S2S-Benutzenden innerhalb des Pipeline-Hosts und die Sicherheitsrolle „Systemadministrierender“ innerhalb der Zielumgebungen zu. Sicherheitsrollen mit niedrigeren Berechtigungen können keine Plug-Ins und andere Codekomponenten bereitstellen.

  4. Wählen Sie (aktivieren Sie) Ist eine delegierte Bereitstellung in einer Pipeline-Phase und dann Dienstprinzipal aus, und geben Sie die Client-ID ein. Wählen Sie Speichern.

  5. Erstellen Sie einen Cloud-Flow innerhalb der Pipeline-Host-Umgebung Alternative Systeme können mithilfe der Microsoft Dataverse-APIs von Pipelines integriert werden.

  6. Wählen Sie den Auslöser OnApprovalStarted aus.

  7. Fügen Sie Schritte für Ihre gewünschte benutzerdefinierte Logik hinzu.

  8. Fügen Sie einen Genehmigungsschritt ein. Verwenden Sie dynamische Inhalte, um Bereitstellungsanfrageinformationen an die Genehmigenden zu senden.

  9. Fügen Sie eine Bedingung ein.

  10. Stellen Sie eine Dataverse-Verbindung für den Dienstprinzipal her. Sie benötigen eine Client-ID und ein Geheimnis.

  11. Fügen Sie in Dataverse Eine ungebundene Aktion ausführen mit den hier gezeigten Einstellungen hinzu.
    Aktionsname: UpdateApprovalStatus ApprovalComments: Dynamischen Inhalt einfügen. Kommentare sind für Anfordernde der Bereitstellung sichtbar. ApprovalStatus: 20 = genehmigt, 30 = abgelehnt ApprovalProperties: Dynamischen Inhalt einfügen. Administratorinformationen, auf die über den Pipeline-Host zugegriffen werden kann.

    Wichtig

    Bei der Aktion „UpdateApprovalStatus“ muss die Verbindung des Dienstprinzipals verwendet werden.

    Mit Dienstprinzipal verbinden

    Tipp

    Um das Debugging-Erlebnis zu verbessern, wählen Sie „ApprovalProperties“ aus und fügen Sie „Workflow()“ aus dem dynamischen Inhaltsmenü ein. Dadurch wird die Flow-Ausführung mit der Pipeline-Stufenausführung (Ausführungsverlauf) verknüpft.

  12. Speichern Sie die Pipeline, und testen Sie sie dann.

Hier sehen Sie einen Screenshot eines kanonischen Genehmigungs-Flows.

Kanonischer Genehmigungs-Flow

Wichtig

  • Anfordernde Erstellende haben möglicherweise keinen Zugriff auf bereitgestellte Ressourcen in Zielumgebungen. Ressourcen können nach der Bereitstellung gemeinsam genutzt werden. Um die Freigabe zu automatisieren, können Sie das folgende Beispiel oder die ALM Accelerator-Erweiterung als Referenzimplementierung verwenden.
  • Um Verbindungsreferenzen bereitzustellen und auf die Umgebung zuzugreifen, ist mindestens die Sicherheitsrolle „Basisbenutzender“ erforderlich.
  • Wenn Sie beim Testen Ihre eigene Sicherheitsrolle entfernen, muss sie später von einem anderen Administrator wiederhergestellt werden. Power Platform-Administratoren können ihre eigene Sicherheitsrolle innerhalb der klassischen Benutzeroberfläche wiederherstellen.

Als Pipeline-Phasenbesitzender bereitstellen

Reguläre Benutzende, einschließlich derer, die als Dienstkonten verwendet werden, können auch als Delegierte fungieren. Die Konfiguration ist im Vergleich zu Dienstprinzipalen einfacher, Lösungen mit Verbindungsreferenzen für oAuth-Verbindungen können jedoch nicht bereitgestellt werden.

Führen Sie die folgenden Schritte aus, um die Bereitstellung als Pipeline-Phasenbesitzender durchzuführen.

  1. Weisen Sie die Sicherheitsrolle „Bereitstellungspipelinedministrierender“ dem Pipeline-Phasenbesitzenden innerhalb des Pipeline-Hosts und die Sicherheitsrolle „Systemadministrierender“ innerhalb der Zielumgebungen zu.

    Sicherheitsrollen mit niedrigeren Berechtigungen können keine Plug-Ins und andere Codekomponenten bereitstellen.

  2. Als Pipeline-Phasenbesitzender anmelden. Nur der Besitzer kann diese Einstellungen aktivieren oder ändern. Teambesitz ist nicht erlaubt.

  3. Wählen Sie Ist eine delegierte Bereitstellung in einer Pipeline-Phase und dann Phasenbesitzender aus.

    • Die Identität des Pipeline-Phasenbesitzenden wird für alle Bereitstellungen in dieser Phase verwendet.
    • Ebenso muss diese Identität zum Genehmigen von Bereitstellungen verwendet werden.
  4. Erstellen Sie einen Cloud-Flow in einer Lösung innerhalb der Pipeline-Host-Umgebung

    1. Wählen Sie den Auslöser OnApprovalStarted aus.
    2. Fügen Sie nach Bedarf Aktionen ein. Beispielsweise eine Genehmigung.
    3. Fügen Sie in Dataverse Eine ungebundene Aktion ausführen hinzu.
      Aktionsname: UpdateApprovalStatus (20 = abgeschlossen, 30 = abgelehnt)

Beispiele für delegierte Bereitstellung

Wichtig

Die in diesen Beispielen bereitgestellte Funktionalität wird jetzt nativ im Produkt unterstützt, ist in Ihrer Region jedoch möglicherweise noch nicht verfügbar.

Dieser Download enthält Beispiel-Cloud-Flows für das Verwalten von Genehmigungen und Teilen von bereitgestellten Canvas-Apps und Flows in der Zielumgebung. Beispiellösung herunterladen

Laden Sie die verwaltete Lösung herunter und importieren Sie sie in die Hostumgebung Ihrer Pipelines. Die Lösung kann dann an die Bedürfnisse Ihres Unternehmens angepasst werden.

Häufig gestellte Fragen

Ich erhalte eine Fehlermeldung Die Bereitstellungsphase ist kein Besitzender des Dienstprinzipals (<AppId>). Nur Besitzende des Dienstprinzipals dürfen ihn für delegierte Bereitstellungen verwenden.

Stellen Sie sicher, dass Sie der Besitzende der Unternehmensanwendung (Dienstprinzipal) in Microsoft Entra ID (früher Azure AD) sind. Möglicherweise sind Sie nur der Besitzende der App-Registrierung und nicht der Unternehmensanwendung.

Unternehmensanwendungen

Warum kann ich bei delegierten Bereitstellungen, die auf dem Phasenbesitzenden basieren, keinen anderen Benutzenden als bereitstellende Person zuweisen?

Aus Sicherheitsgründen müssen Sie sich als der Benutzende anmelden, der als Besitzende der Pipelinephase festgelegt wird. Dadurch wird verhindert, dass ein nicht zustimmender Benutzender als bereitstellende Person hinzugefügt wird.

Warum stecken meine delegierten Bereitstellungen im Status „Ausstehend“ fest?

Alle delegierten Bereitstellungen stehen bis zur Genehmigung aus. Stellen Sie sicher, dass Ihr Administrierender einen Power Automate-Genehmigungs-Flow oder eine andere Automatisierung konfiguriert hat, dass dieser ordnungsgemäß funktioniert und dass die Bereitstellung genehmigt wurde.

Wem gehören bereitgestellte Lösungsobjekte?

Die bereitgestellte Identität. Bei delegierten Bereitstellungen ist der Besitzende der delegierte Dienstprinzipal oder Pipelinephasen-Besitzende.

Wie können Erstellende auf bereitgestellte Objekte in Zielumgebungen zugreifen?

Wichtig

Derzeit wird eine native Funktionalität zum Teilen während der Bereitstellung verfügbar, mit der Hersteler im Rahmen der Bereitstellungsanforderung Zugriff auf bereitgestellte Ressourcen anfordern können.

Anfordernde Erstellende haben möglicherweise keinen Zugriff auf bereitgestellte Ressourcen in Zielumgebungen. Administrierende müssen Sicherheitsrollen zuweisen und bereitgestellte Apps, Flows usw. im Power Platform Admin Center freigeben. Alternativ können Administriernede Automatisierungen erstellen, um den Zugriff zu verwalten.

Kann ich benutzerdefinierte Genehmigungsschritte hinzufügen?

Ja Beispielsweise können Power Automate-Genehmigungen an die Anforderungen Ihrer Organisation angepasst werden. Möglicherweise integrieren Sie auch andere Genehmigungssysteme.

Ich erhalte eine Fehlermeldung Delegierte Bereitstellungen des Typs „Dienstprinzipal“ können nur vom Dienstprinzipal, der in der Bereitstellungsphase konfiguriert wurde, genehmigt oder abgelehnt werden.

Stellen Sie sicher, dass die benutzerdefinierte Dataverse-Aktion UpdateApprovalStatus vom Dienstprinzipal aufgerufen wird. Wenn Sie Power Automate-Genehmigungen verwenden, stellen Sie sicher, dass diese Aktion so konfiguriert ist, dass sie die Verbindung des Delegatdienstprinzipals verwendet.

Ich erhalte eine Fehlermeldung Delegierte Bereitstellungen des Typs „Besitzer“ können nur vom Besitzenden der Bereitstellungsphase genehmigt oder abgelehnt werden.

Stellen Sie sicher, dass die benutzerdefinierte Dataverse-Aktion UpdateApprovalStatus vom Pipelinephasen-Besitzenden aufgerufen wird. Wenn Sie Power Automate-Genehmigungen verwenden, stellen Sie sicher, dass diese Aktion so konfiguriert ist, dass sie die Verbindung des Pipelinephasen-Delegatbesitzenden verwendet.

Ich erhalte eine Fehlermeldung in meinem Genehmigungs-Flow Das Genehmigungsstatusattribut für den Phasenausführungsaufzeichnung konnte nicht gefunden werden.

Dies geschieht, wenn der Genehmigungsstatus noch nicht den Status „Ausstehend“ aufweist. Stellen Sie sicher, dass es sich um eine delegierte Bereitstellung handelt und Sie den Auslöser OnApprovalStarted in Ihrem Genehmigungs-Flow verwenden.

Kann ich unterschiedliche Dienstprinzipale für unterschiedliche Pipelines und Phasen verwenden?

Ja