Sdílet prostřednictvím


Nakonfigurujte Logic App pro použití v pracovním postupu životního cyklu

Než budete moct použít stávající aplikaci logiky Azure s funkcí rozšíření vlastních úloh pracovních postupů životního cyklu, nejprve je potřeba zajistit, aby byla kompatibilní. Tato referenční příručka obsahuje seznam kroků, které je potřeba provést, aby byla aplikace logiky Azure kompatibilní. Průvodce vytvořením nové kompatibilní Logic App pomocí portálu Lifecycle Workflows najdete v tématu Spouštění Logic Apps na základě vlastních rozšíření úkolů.

Určení typu zabezpečení tokenu vlastního rozšíření úloh

Před konfigurací vlastního rozšíření Aplikace logiky Azure pro použití s pracovními postupy životního cyklu musíte nejprve zjistit, jaký typ zabezpečení tokenu má. Dva typy zabezpečení tokenů můžou být následující:

  • Normální
  • Doklad o vlastnictví (POP)

Pokud chcete určit typ tokenu zabezpečení vašeho vlastního rozšíření úloh, zkontrolujte stránku Vlastní rozšíření :

Snímek obrazovky s vlastním rozšířením úkolu a typem tokenu

Poznámka:

Nová rozšíření úloh na míru budou mít pouze typ zabezpečení tokenu POP (Proof of Possession (POP)). Rozšíření úkolů vytvořená před začleněním typu zabezpečení tokenu důkazu o vlastnictví budou mít typ Normální.

Konfigurace existujících aplikací logiky pro použití LCW

Aby byla aplikace Azure Logic kompatibilní pro spuštění s rozšířením Vlastní úloha, je potřeba provést následující kroky:

  • Konfigurujte spouštěč logické aplikace
  • Nakonfigurujte akci zpětného volání (platí pouze pro scénář zpětného volání.)
  • Povolte spravovanou identitu přiřazenou systémem (vždy se vyžaduje pro rozšíření normálního typu tokenu zabezpečení. Toto je také výchozí nastavení pro scénáře zpětného volání s vlastními rozšířeními úloh. Další informace o tomto a dalších scénářích nasazení rozšíření vlastních úloh najdete v tématech: Vlastní scénáře nasazení rozšíření úloh.)
  • Konfigurace zásad autorizace

Pro nastavení postupujte následujícím způsobem:

  1. Otevřete aplikaci logiky Azure, kterou chcete použít s pracovním postupem životního cyklu. Logic Apps vás může přivítat úvodní obrazovkou, kterou můžete zavřít pomocí symbolu X v pravém horním rohu.

  2. Na levé straně obrazovky vyberte Zobrazení kódu Logic App.

  3. V editoru vložte následující kód:

    {
      "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. Zvolte Uložit.

  5. Přepněte do návrháře Logic App a zkontrolujte nakonfigurovanou akci spouštěče a zpětného volání. Pokud chcete vytvořit vlastní obchodní logiku, přidejte mezi trigger a akci zpětného volání další akce. Pokud vás zajímá jenom scénář aktivace a zapomenutí, můžete akci zpětného volání odebrat.

  6. Na levé straně obrazovky vyberte Identita.

  7. Na kartě přiřazené systémem aktivujte stav, aby se zaregistrovalo v Microsoft Entra ID.

  8. Zvolte Uložit.

Konfigurace zásad autorizace pro vlastní rozšíření úloh s typem tokenu zabezpečení POP

Pokud je typ tokenu zabezpečení důkazem o vlastnictví (POP) pro vaše vlastní rozšíření úloh, nastavili byste zásady autorizace pomocí následujících kroků:

  1. Přejděte do aplikace logiky, kterou jste vytvořili, a vyberte Autorizaci.

  2. Vytvořte zásadu autorizace na základě následující tabulky:

    Název zásady: AzureADLifecycleWorkflowsAuthPOPAuthPolicy

    Typ zásady: AADPOP

    Nárok Hodnota
    Emitent https://sts.windows.net/(Tenant ID)/
    ID aplikace 00001111-AAAA-2222-BBBB-3333CCCC4444
    m PŘÍSPĚVEK
    u management.azure.com
    p /subscriptions/(subscriptionId)/resourceGroups/(resourceGroupName)/providers/Microsoft.Logic/workflows/(název LogicApp)
  3. Uložte zásadu autorizace.

Upozornění

Věnujte pozornost podrobnostem, protože menší rozdíly můžou vést k problémům později.

  • Ujistěte se, že jste za IssuerTenant ID zahrnuli lomítko.
  • Ujistěte seappid, že vlastní nárok je appid malými písmeny. Hodnota appid představuje pracovní postupy životního cyklu a je vždy stejná.

Konfigurace zásad autorizace pro vlastní rozšíření úloh s normálním typem tokenu zabezpečení

Pokud je typ tokenu zabezpečení pro vaše vlastní rozšíření úloh normální , nastavili byste zásady autorizace pomocí následujících kroků:

  1. Pro zásady autorizace Logic Apps potřebujeme ID spravovaných identit aplikace. Vzhledem k tomu, že Centrum pro správu Microsoft Entra zobrazuje pouze ID objektu, musíme vyhledat ID aplikace. Spravovanou identitu můžete vyhledat podle ID objektu v části Podnikové aplikace v Centru pro správu Microsoft Entra a najít požadované ID aplikace.

  2. Vraťte se k aplikaci logiky, kterou jste vytvořili, a vyberte Autorizaci.

  3. Vytvořte dvě zásady autorizace založené na těchto tabulkách:

    Název zásady: AzureADLifecycleWorkflowsAuthPolicy

    Typ zásady: AAD

    Nárok Hodnota
    Emitent https://sts.windows.net/(Tenant ID)/
    Cílová skupina ID spravované identity aplikace Logic Apps
    ID aplikace 00001111-AAAA-2222-BBBB-3333CCCC4444

    Název zásady: AzureADLifecycleWorkflowsAuthPolicyV2App

    Typ zásady: AAD

    Nárok Hodnota
    Emitent https://login.microsoftonline.com/(Tenant ID)/v2.0
    Cílová skupina ID spravované identity aplikace Logic Apps
    azp ce79fdc4-cd1d-4ea5-8139-e74d7dbe0bb7
  4. Uložte zásadu autorizace.

Upozornění

Věnujte pozornost podrobnostem, protože menší rozdíly můžou vést k problémům později.

  • Ujistěte se, že za Issuer zahrnete lomítko po ID tenanta.
  • V případě cílové skupiny se ujistěte, že používáte ID aplikace, a ne ID objektu vaší spravované identity.
  • Ujistěte seappid, že vlastní nárok je appid malými písmeny. Hodnota appid představuje pracovní postupy životního cyklu a je vždy stejná.

Použití aplikace logiky s pracovními postupy životního cyklu

Teď, když je vaše aplikace logiky nakonfigurovaná pro použití s pracovními postupy životního cyklu, můžete vytvořit vlastní rozšíření úloh prostřednictvím uživatelského rozhraní nebo rozhraní API a použít ho v pracovním postupu životního cyklu.

Další kroky