Share via


Een logische app configureren voor het gebruik van de levenscycluswerkstroom

Voordat u een bestaande logische Azure-app kunt gebruiken met de functie voor aangepaste taakextensie van Levenscycluswerkstromen, moet deze eerst compatibel worden gemaakt. Deze referentiehandleiding bevat een lijst met stappen die moeten worden uitgevoerd om de logische Azure-app compatibel te maken. Zie Logic Apps activeren op basis van aangepaste taakextensies voor een handleiding voor het maken van een nieuwe compatibele logische app via de portal voor levenscycluswerkstromen.

Het type tokenbeveiliging van uw aangepaste taakextensie bepalen

Voordat u uw aangepaste Azure Logic App-extensie configureert voor gebruik met levenscycluswerkstromen, moet u eerst achterhalen welk type tokenbeveiliging deze heeft. De twee typen beveiliging van tokens kunnen:

  • Normaal
  • Bewijs van bezit (POP)

Als u het beveiligingstokentype van uw aangepaste taakextensie wilt bepalen, controleert u de pagina Aangepaste extensies :

Schermopname van het aangepaste taakextensie- en tokentype.

Notitie

Nieuwe aangepaste taakextensies hebben alleen het beveiligingstype Proof of Possession(POP) token. Alleen taakextensies die zijn gemaakt voordat het beveiligingstype Proof of Possession-token wordt opgenomen, hebben een type Normaal.

Bestaand Logic Apps configureren voor LCW-gebruik

Voor het maken van een logische Azure-app die compatibel is met uitvoering met de aangepaste taakextensie , moet u de volgende stappen uitvoeren:

  • De trigger van de logische app configureren
  • Configureer de callback-actie (alleen van toepassing op het callback-scenario.)
  • Schakel door het systeem toegewezen beheerde identiteit in (altijd vereist voor extensies van het type normaal beveiligingstoken. Dit is ook de standaardinstelling voor callback-scenario's met aangepaste taakextensies. Zie voor meer informatie hierover en andere implementatiescenario's voor aangepaste taakuitbreidingen: Implementatiescenario's voor aangepaste taakuitbreidingen.)
  • Verificatiebeleid configureren

Voer de volgende stappen uit om deze te configureren:

  1. Open de logische Azure-app die u wilt gebruiken met de levenscycluswerkstroom. Logic Apps kan u begroeten met een introductiescherm, dat u kunt sluiten met de X in de rechterbovenhoek.

  2. Selecteer aan de linkerkant van het scherm de codeweergave van de logische app.

  3. Plak de volgende code in de editor:

    {
      "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. Selecteer Opslaan.

  5. Schakel over naar de ontwerpfunctie voor logische apps en inspecteer de geconfigureerde trigger- en callback-actie. Als u uw aangepaste bedrijfslogica wilt bouwen, voegt u andere acties toe tussen de trigger- en callback-actie. Als u alleen geïnteresseerd bent in het fire-and-forget-scenario, kunt u de callback-actie verwijderen.

  6. Selecteer Identiteit aan de linkerkant van het scherm.

  7. Schakel op het door het systeem toegewezen tabblad de status in om deze te registreren bij Microsoft Entra-id.

  8. Selecteer Opslaan.

Autorisatiebeleid configureren voor aangepaste taakextensie met pop-beveiligingstokentype

Als het type beveiligingstoken Proof of Possession (POP) is voor uw aangepaste taakextensie, stelt u het autorisatiebeleid in door de volgende stappen uit te voeren:

  1. Ga naar de logische app die u hebt gemaakt en selecteer Autorisatie.

  2. Maak een autorisatiebeleid op basis van de volgende tabel:

    Beleidsnaam: POP-Policy

    Beleidstype: AADPOP

    Claim Weergegeven als
    Verlener https://sts.windows.net/(Tenant Id)/
    appid 00001111-aaaa-2222-bbbb-3333cccc44444
    m POSTEN
    u management.azure.com
    nm /subscriptions/(subscriptionId)/resourceGroups/(resourceGroupName)/providers/Microsoft.Logic/workflows/(LogicApp name)
  3. Sla het autorisatiebeleid op.

Let op

Let op de details omdat kleine verschillen later tot problemen kunnen leiden.

  • Zorg Issuerervoor dat u de slash na uw tenant-id hebt opgenomen
  • Zorg appidervoor dat de aangepaste claim appid zich in kleine letters bevindt. De appid waarde vertegenwoordigt levenscycluswerkstromen en is altijd hetzelfde.

Autorisatiebeleid configureren voor aangepaste taakextensie met normaal beveiligingstokentype

Als het type beveiligingstoken normaal is voor uw aangepaste taakextensie, stelt u het autorisatiebeleid in door de volgende stappen uit te voeren:

  1. Voor het autorisatiebeleid van Logic Apps hebben we de toepassings-id van beheerde identiteiten nodig. Omdat in het Microsoft Entra-beheercentrum alleen de object-id wordt weergegeven, moeten we de toepassings-id opzoeken. U kunt zoeken naar de beheerde identiteit op object-id onder Bedrijfstoepassingen in het Microsoft Entra-beheercentrum om de vereiste toepassings-id te vinden.

  2. Ga terug naar de logische app die u hebt gemaakt en selecteer Autorisatie.

  3. Maak twee autorisatiebeleidsregels op basis van deze tabellen:

    Beleidsnaam: AzureADLifecycleWorkflowsAuthPolicy

    Beleidstype: AAD

    Claim Weergegeven als
    Verlener https://sts.windows.net/(Tenant Id)/
    Doelgroep Toepassings-id van uw beheerde identiteit van Logic Apps
    appid 00001111-aaaa-2222-bbbb-3333cccc44444

    Beleidsnaam: AzureADLifecycleWorkflowsAuthPolicyV2App

    Beleidstype: AAD

    Claim Weergegeven als
    Verlener https://login.microsoftonline.com/(Tenant Id)/v2.0
    Doelgroep Toepassings-id van uw beheerde identiteit van Logic Apps
    azp ce79fdc4-cd1d-4ea5-8139-e74d7dbe0bb7
  4. Sla het autorisatiebeleid op.

Let op

Let op de details omdat kleine verschillen later tot problemen kunnen leiden.

  • Zorg Issuerervoor dat u de slash na uw tenant-id opneemt.
  • Zorg ervoor dat u voor doelgroep de toepassings-id gebruikt en niet de object-id van uw beheerde identiteit.
  • Zorg appidervoor dat de aangepaste claim appid zich in kleine letters bevindt. De appid waarde vertegenwoordigt levenscycluswerkstromen en is altijd hetzelfde.

De logische app gebruiken met levenscycluswerkstromen

Nu uw logische app is geconfigureerd voor gebruik met levenscycluswerkstromen, kunt u een aangepaste taakextensie maken via de gebruikersinterface of API en deze gebruiken in een levenscycluswerkstroom.

Volgende stappen