Sdílet prostřednictvím


Konfigurace aplikace logiky pro použití pracovního 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í aplikace logiky prostřednictvím portálu Pracovních postupů životního cyklu najdete v tématu Trigger Logic Apps na základě vlastních rozšíření úloh.

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á vlastní rozšíření úloh budou mít pouze typ zabezpečení tokenu POP (Proof of Possession(POP). Typ zabezpečení tokenu důkazu o vlastnictví bude mít pouze rozšíření úkolů vytvořená před zahrnutím typu tokenu Osoudnost.

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

Zajištění kompatibility aplikace logiky Azure pro spuštění s rozšířením vlastních úloh vyžaduje následující kroky:

  • Konfigurace triggeru aplikace logiky
  • 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 ověřování

Pokud chcete nakonfigurovat ty, které chcete nakonfigurovat, postupujte takto:

  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 aplikace logiky.

  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 aplikace logiky a zkontrolujte nakonfigurovanou akci triggeru 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. Pod kartou přiřazenou systémem povolte stav, aby se zaregistroval 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: POP-Policy

    Typ zásady: AADPOP

    Deklarace identity Hodnota
    Issuer https://sts.windows.net/(Tenant ID)/
    appid 00001111-aaaa-2222-bbbb-3333cccc4444
    m POST
    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 Issuerse, že jste za ID tenanta zahrnuli lomítko.
  • Ujistěte appidse, že vlastní deklarace identity je appid ve všech malých písmenech. 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 aplikace spravovaných identit. 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

    Deklarace identity Hodnota
    Issuer https://sts.windows.net/(Tenant ID)/
    Cílová skupina ID aplikace spravované identity Logic Apps
    appid 00001111-aaaa-2222-bbbb-3333cccc4444

    Název zásady: AzureADLifecycleWorkflowsAuthPolicyV2App

    Typ zásady: AAD

    Deklarace identity Hodnota
    Issuer https://login.microsoftonline.com/(Tenant ID)/v2.0
    Cílová skupina ID aplikace spravované identity 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 Issuerse, že za ID tenanta zahrnete lomítko.
  • V případě cílové skupiny se ujistěte, že používáte ID aplikace, a ne ID objektu vaší spravované identity.
  • Ujistěte appidse, že vlastní deklarace identity je appid ve všech malých písmenech. 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