Freigeben über


Konfigurieren einer Logik-App für die Verwendung mit Lebenszyklus-Workflows

Bevor Sie eine vorhandene Azure-Logik-App mit dem Feature für benutzerdefinierte Aufgabenerweiterungen von Lebenszyklus-Workflows verwenden können, muss sie zuerst kompatibel gemacht werden. Dieses Referenzhandbuch enthält eine Liste der Schritte, die ausgeführt werden müssen, um die Kompatibilität der Azure-Logik-App herzustellen. Eine Anleitung zum Erstellen einer neuen kompatiblen Logik-App über das Portal für Lebenszyklus-Workflows finden Sie unter Auslösen von Logik-Apps basierend auf benutzerdefinierten Aufgabenerweiterungen.

Bestimmen des Tokensicherheitstyps Ihrer benutzerdefinierten Aufgabenerweiterung

Bevor Sie Ihre benutzerdefinierte Azure Logic Apps-Erweiterung für die Verwendung mit Lebenszyklus-Workflows konfigurieren, müssen Sie zunächst den Tokensicherheitstyp ermitteln. Es gibt zwei beiden Tokensicherheitstypen:

  • Normal
  • Eigentumsnachweis (POP, Proof of Possession)

Den Sicherheitstokentyp Ihrer benutzerdefinierten Aufgabenerweiterung finden Sie auf der Seite Benutzerdefinierte Erweiterungen:

Screenshot: Benutzerdefinierte Aufgabenerweiterung und Tokentyp

Hinweis

Neue benutzerdefinierte Aufgabenerweiterungen haben nur den Tokensicherheitstyp „Eigentumsnachweis“. Nur Aufgabenerweiterungen, die vor der Aufnahme des Tokensicherheitstyps „Eigentumsnachweis“ erstellt wurden, sind vom Typ „Normal“.

Konfigurieren vorhandener Logik-Apps für die Verwendung mit Lebenszyklus-Workflows

Führen Sie die folgenden Schritte aus, um eine Azure-Logik-App für die Ausführung mit der benutzerdefinierten Aufgabenerweiterung kompatibel zu machen.

  • Konfigurieren des Logik-App-Triggers
  • Konfigurieren der Rückrufaktion (gilt nur für das Rückrufszenario)
  • Aktivieren der systemseitig zugewiesenen verwalteten Identität (Für Erweiterungen des Sicherheitstokentyps „Normal“ immer erforderlich. Dies ist auch die Standardeinstellung für Rückrufszenarien mit benutzerdefinierten Aufgabenerweiterungen. Weitere Informationen dazu sowie zu anderen Bereitstellungsszenarien für benutzerdefinierte Aufgabenerweiterungen finden Sie unter Bereitstellungsszenarien für benutzerdefinierte Vorgangserweiterungen.)
  • Konfigurieren von AuthZ-Richtlinien

Führen Sie zum Konfigurieren die folgenden Schritte aus:

  1. Öffnen Sie die Azure-Logik-App, die Sie mit Lebenszyklus-Workflows verwenden möchten. In Logic Apps wird möglicherweise ein Einführungsbildschirm angezeigt, den Sie über das X in der oberen rechten Ecke schließen können.

  2. Wählen Sie auf der linken Seite des Bildschirms die Option Logik-App-Codeansicht aus.

  3. Fügen Sie folgenden Code in den Editor ein:

    {
      "definition": {
        "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
        "actions": {
          "HTTP": {
            "inputs": {
              "authentication": {
                "audience": "https://graph.microsoft.com",
                "type": "ManagedServiceIdentity"
              },
              "body": {
                "data": {
                  "operationStatus": "Completed"
                },
                "source": "sample",
                "type": "lifecycleEvent"
              },
              "method": "POST",
              "uri": "https://graph.microsoft.com/beta@{triggerBody()?['data']?['callbackUriPath']}"
            },
            "runAfter": {},
            "type": "Http"
          }
        },
        "contentVersion": "1.0.0.0",
        "outputs": {},
        "parameters": {},
        "triggers": {
          "manual": {
            "inputs": {
              "schema": {
                "properties": {
                  "data": {
                    "properties": {
                      "callbackUriPath": {
                        "description": "CallbackUriPath used for Resume Action",
                        "title": "Data.CallbackUriPath",
                        "type": "string"
                      },
                      "subject": {
                        "properties": {
                          "displayName": {
                            "description": "DisplayName of the Subject",
                            "title": "Subject.DisplayName",
                            "type": "string"
                          },
                          "email": {
                            "description": "Email of the Subject",
                            "title": "Subject.Email",
                            "type": "string"
                          },
                          "id": {
                            "description": "Id of the Subject",
                            "title": "Subject.Id",
                            "type": "string"
                          },
                          "manager": {
                            "properties": {
                              "displayName": {
                                "description": "DisplayName parameter for Manager",
                                "title": "Manager.DisplayName",
                                "type": "string"
                              },
                              "email": {
                                "description": "Mail parameter for Manager",
                                "title": "Manager.Mail",
                                "type": "string"
                              },
                              "id": {
                                "description": "Id parameter for Manager",
                                "title": "Manager.Id",
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "userPrincipalName": {
                            "description": "UserPrincipalName of the Subject",
                            "title": "Subject.UserPrincipalName",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "task": {
                        "properties": {
                          "displayName": {
                            "description": "DisplayName for Task Object",
                            "title": "Task.DisplayName",
                            "type": "string"
                          },
                          "id": {
                            "description": "Id for Task Object",
                            "title": "Task.Id",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "taskProcessingResult": {
                        "properties": {
                          "createdDateTime": {
                            "description": "CreatedDateTime for TaskProcessingResult Object",
                            "title": "TaskProcessingResult.CreatedDateTime",
                            "type": "string"
                          },
                          "id": {
                            "description": "Id for TaskProcessingResult Object",
                            "title": "TaskProcessingResult.Id",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "workflow": {
                        "properties": {
                          "displayName": {
                            "description": "DisplayName for Workflow Object",
                            "title": "Workflow.DisplayName",
                            "type": "string"
                          },
                          "id": {
                            "description": "Id for Workflow Object",
                            "title": "Workflow.Id",
                            "type": "string"
                          },
                          "workflowVersion": {
                            "description": "WorkflowVersion for Workflow Object",
                            "title": "Workflow.WorkflowVersion",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "source": {
                    "description": "Context in which an event happened",
                    "title": "Request.Source",
                    "type": "string"
                  },
                  "type": {
                    "description": "Value describing the type of event related to the originating occurrence.",
                    "title": "Request.Type",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "kind": "Http",
            "type": "Request"
          }
        }
      },
      "parameters": {}
    }
    
  4. Wählen Sie „Speichern“ aus.

  5. Wechseln Sie zum Logik-App-Designer, und überprüfen Sie die konfigurierte Trigger- und Rückrufaktion. Fügen Sie zum Erstellen Ihrer benutzerdefinierten Geschäftslogik weitere Aktionen zwischen der Trigger- und Rückrufaktion hinzu. Wenn Sie nur am Szenario „Fire-and-Forget“ (Auslösen und Vergessen) interessiert sind, können Sie die Rückrufaktion entfernen.

  6. Wählen Sie auf der linken Seite des Bildschirms die Option Identität aus.

  7. Aktivieren Sie auf der Registerkarte „Systemseitig zugewiesen“ den Status für die Registrierung bei Microsoft Entra ID.

  8. Wählen Sie Speichern aus.

Konfigurieren der Autorisierungsrichtlinie für benutzerdefinierte Aufgabenerweiterungen mit dem Sicherheitstokentyp „POP“

Wenn der Sicherheitstokentyp Eigentumsnachweis (Proof of Possession, POP) für Ihre benutzerdefinierte Aufgabenerweiterung lautet, legen Sie die Autorisierungsrichtlinie wie folgt fest:

  1. Gehen Sie zu der von Ihnen erstellten Logik-App, und wählen Sie Autorisierung aus.

  2. Erstellen Sie eine Autorisierungsrichtlinie basierend auf der folgenden Tabelle:

    Richtlinienname: POP-Policy

    Richtlinientyp: AADPOP

    Anspruch Wert
    Issuer (Aussteller) https://sts.windows.net/(Tenant-ID)/
    appid 00001111-aaaa-2222-bbbb-3333cccc4444
    m POST
    u management.azure.com
    p /subscriptions/(Abonnement-ID)/resourceGroups/(Ressourcengruppenname)/providers/Microsoft.Logic/workflows/(Logik-App-Name)
  3. Speichern Sie die Autorisierungsrichtlinie.

Achtung

Achten Sie auf Details, da geringfügige Unterschiede später zu Problemen führen können.

  • Stellen Sie für Issuer sicher, dass Sie den Schrägstrich nach Ihrer Mandanten-ID eingeschlossen haben
  • Stellen Sie für appid sicher, dass der benutzerdefinierte Anspruch appid lautet (alles in Kleinbuchstaben). Der appid-Wert stellt Lebenszyklus-Workflows dar und ist immer der gleiche.

Konfigurieren der Autorisierungsrichtlinie für benutzerdefinierte Aufgabenerweiterungen mit dem Sicherheitstokentyp „Normal“

Wenn der Sicherheitstokentyp Normal für Ihre benutzerdefinierte Aufgabenerweiterung lautet, legen Sie die Autorisierungsrichtlinie wie folgt fest:

  1. Für die Logic Apps-Autorisierungsrichtlinie benötigen wir die Anwendungs-ID der verwalteten Identitäten. Da im Microsoft Entra Admin Center nur die Objekt-ID angezeigt wird, müssen Sie die Anwendungs-ID nachschlagen. Sie können im Microsoft Entra Admin Center unter Unternehmensanwendungen anhand der Objekt-ID nach der verwalteten Identität suchen, um die erforderliche Anwendungs-ID zu ermitteln.

  2. Gehen Sie zurück zu der von Ihnen erstellten Logik-App, und wählen Sie Autorisierung aus.

  3. Erstellen Sie auf der Grundlage der nachstehenden Tabellen zwei Autorisierungsrichtlinien:

    Richtlinienname: AzureADLifecycleWorkflowsAuthPolicy

    Richtlinientyp: AAD

    Anspruch Wert
    Issuer (Aussteller) https://sts.windows.net/(Tenant-ID)/
    Zielgruppe Anwendungs-ID der verwalteten Identität Ihrer Logik-App
    appid 00001111-aaaa-2222-bbbb-3333cccc4444

    Richtlinienname: AzureADLifecycleWorkflowsAuthPolicyV2App

    Richtlinientyp: AAD

    Anspruch Wert
    Issuer (Aussteller) https://login.microsoftonline.com/(Tenant-ID)/v2.0
    Zielgruppe Anwendungs-ID der verwalteten Identität Ihrer Logik-App
    azp ce79fdc4-cd1d-4ea5-8139-e74d7dbe0bb7
  4. Speichern Sie die Autorisierungsrichtlinie.

Achtung

Achten Sie auf Details, da geringfügige Unterschiede später zu Problemen führen können.

  • Stellen Sie für Issuer sicher, dass Sie den Schrägstrich nach Ihrer Mandanten-ID einschließen.
  • Stellen Sie für die Zielgruppe sicher, dass Sie die Anwendungs-ID und nicht die Objekt-ID Ihrer verwalteten Identität verwenden.
  • Stellen Sie für appid sicher, dass der benutzerdefinierte Anspruch appid lautet (alles in Kleinbuchstaben). Der appid-Wert stellt Lebenszyklus-Workflows dar und ist immer der gleiche.

Verwenden der Logik-App mit Lebenszyklus-Workflows

Nachdem Sie Ihre Logik-App für die Verwendung mit Lebenszyklus-Workflows konfiguriert haben, können Sie eine benutzerdefinierte Aufgabenerweiterung über die Benutzeroberfläche oder API erstellen und in einem Lebenszyklus-Workflow verwenden.

Nächste Schritte