Udostępnij za pośrednictwem


Konfigurowanie aplikacji Logic App do zastosowania w przepływie pracy cyklu życia

Aby można było używać istniejącej aplikacji logiki platformy Azure z funkcją rozszerzeń niestandardowych zadań w przepływach pracy cyklu życia, należy najpierw zapewnić, że jest kompatybilna. Ten przewodnik referencyjny zawiera listę kroków, które należy wykonać, aby aplikacja logiki platformy Azure jest zgodna. Aby uzyskać przewodnik dotyczący tworzenia nowej zgodnej Logic App przy użyciu portalu Lifecycle Workflows, zobacz Wyzwalanie usługi Logic Apps na podstawie niestandardowych rozszerzeń zadań.

Ustal typ zabezpieczeń tokenu dla tworzonego przez ciebie rozszerzenia zadania

Przed skonfigurowaniem niestandardowego rozszerzenia Azure Logic App do użycia z przepływami pracy Lifecycle Workflows, należy najpierw ustalić, jakiego typu zabezpieczenia tokenu posiada. Dwa typy zabezpieczeń tokenu mogą być następujące:

  • Normalna
  • Dowód posiadania (POP)

Aby określić typ tokenu zabezpieczającego niestandardowego rozszerzenia zadania, sprawdź stronę Niestandardowe rozszerzenia :

Zrzut ekranu przedstawiający niestandardowe rozszerzenie zadania i typ tokenu.

Uwaga

Nowe niestandardowe rozszerzenia zadań będą miały tylko typ zabezpieczeń tokenu Proof of Possession(POP). Tylko rozszerzenia zadań utworzone przed wprowadzeniem typu zabezpieczenia z tokenem dowodu posiadania będą miały typ normalny.

Konfigurowanie istniejącej usługi Logic Apps na potrzeby korzystania z aplikacji LCW

Aby uczynić aplikację Logic w Azure kompatybilną do działania z rozszerzeniem Custom Task Extension, należy podjąć następujące kroki:

  • Skonfiguruj wyzwalacz aplikacji logiki
  • Skonfiguruj akcję wywołania zwrotnego (dotyczy tylko scenariusza wywołania zwrotnego).
  • Włącz tożsamość zarządzaną przypisaną przez system (zawsze wymagana dla rozszerzeń normalnego typu tokenu zabezpieczającego. Jest to również ustawienie domyślne dla scenariuszy wywołania zwrotnego z niestandardowymi rozszerzeniami zadań. Aby uzyskać więcej informacji na temat tego i innych niestandardowych scenariuszy wdrażania rozszerzeń zadań, zobacz: Niestandardowe scenariusze wdrażania rozszerzeń zadań.
  • Konfigurowanie zasad AuthZ

Aby skonfigurować te elementy, wykonaj następujące kroki:

  1. Otwórz aplikację logiki platformy Azure, której chcesz użyć z przepływem pracy cyklu życia. Usługa Logic Apps może powitać Cię przy użyciu ekranu wprowadzającego, który można zamknąć z ikoną X w prawym górnym rogu.

  2. Po lewej stronie ekranu wybierz Widok kodu Logic App.

  3. W edytorze wklej następujący kod:

    {
      "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. Wybierz pozycję Zapisz.

  5. Przejdź do projektanta aplikacji logiki i sprawdź skonfigurowany wyzwalacz oraz akcję wywołania zwrotnego. Aby utworzyć niestandardową logikę biznesową, dodaj dodatkowe działania między wyzwalaczem a wywołaniem zwrotnym. Jeśli interesuje Cię tylko scenariusz typu "odpal i zapomnij", możesz usunąć akcję wywołania zwrotnego.

  6. Po lewej stronie ekranu wybierz pozycję Tożsamość.

  7. Na karcie przypisanej przez system włącz stan, aby zarejestrować go za pomocą identyfikatora Entra firmy Microsoft.

  8. Wybierz pozycję Zapisz.

Konfigurowanie zasad autoryzacji dla niestandardowego rozszerzenia zadania z typem tokenu zabezpieczającego POP

Jeśli typ tokenu zabezpieczającego to Dowód posiadania (POP) dla niestandardowego rozszerzenia zadania, należy ustawić zasady autoryzacji, wykonując następujące kroki:

  1. Przejdź do utworzonej aplikacji logiki i wybierz pozycję Autoryzacja.

  2. Utwórz zasady autoryzacji na podstawie poniższej tabeli:

    Nazwa zasad: POP-Policy

    Typ zasad: AADPOP

    Oświadczenie Wartość
    Wystawca https://sts.windows.net/(Tenant IDENTYFIKATOR)/
    appid 00001111-aaaa-2222-bbbb-3333cccc44444
    m POST
    u management.azure.com
    p /subscriptions/(subscriptionId)/resourceGroups/(resourceGroupName)/providers/Microsoft.Logic/workflows/(Nazwa aplikacji logiki)
  3. Zapisz zasady autoryzacji.

Uwaga

Zwróć uwagę na szczegóły, ponieważ drobne różnice mogą prowadzić do problemów później.

  • W przypadku Issuerelementu upewnij się, że po identyfikatorze dzierżawy został uwzględniony ukośnik
  • W przypadku appid upewnij się, że oświadczenie niestandardowe jest we wszystkich małych literach appid. Wartość appid reprezentuje przepływy cyklu życia i jest zawsze taka sama.

Skonfiguruj politykę autoryzacji dla niestandardowego rozszerzenia zadania ze standardowym typem tokenu zabezpieczającego

Jeśli typ tokenu zabezpieczającego jest normalny dla niestandardowego rozszerzenia zadania, należy ustawić zasady autoryzacji, wykonując następujące kroki:

  1. W przypadku zasad autoryzacji usługi Logic Apps potrzebujemy identyfikatora aplikacji tożsamości zarządzanych. Ponieważ centrum administracyjne firmy Microsoft Entra pokazuje tylko identyfikator obiektu, musimy wyszukać identyfikator aplikacji. Aby znaleźć wymagany identyfikator aplikacji, możesz wyszukać tożsamość zarządzaną według identyfikatora obiektu w obszarze Aplikacje dla przedsiębiorstw w centrum administracyjnym firmy Microsoft Entra.

  2. Wróć do utworzonej aplikacji logiki i wybierz pozycję Autoryzacja.

  3. Utwórz dwie zasady autoryzacji na podstawie następujących tabel:

    Nazwa zasad: AzureADLifecycleWorkflowsAuthPolicy

    Typ zasad: AAD

    Oświadczenie Wartość
    Wystawca https://sts.windows.net/(Tenant IDENTYFIKATOR)/
    Publiczność Identyfikator aplikacji tożsamości zarządzanej dla usługi Logic Apps
    appid 00001111-aaaa-2222-bbbb-3333cccc44444

    Nazwa zasad: AzureADLifecycleWorkflowsAuthPolicyV2App

    Typ zasad: AAD

    Oświadczenie Wartość
    Wystawca https://login.microsoftonline.com/(Tenant ID)/v2.0
    Publiczność Identyfikator aplikacji zarządzanej tożsamości w usłudze Logic Apps
    azp ce79fdc4-cd1d-4ea5-8139-e74d7dbe0bb7
  4. Zapisz zasady autoryzacji.

Uwaga

Zwróć uwagę na szczegóły, ponieważ drobne różnice mogą prowadzić do problemów później.

  • W przypadku Issuer upewnij się, że po identyfikatorze dzierżawy został uwzględniony ukośnik.
  • W przypadku odbiorców upewnij się, że używasz identyfikatora aplikacji, a nie identyfikatora obiektu tożsamości zarządzanej.
  • W przypadku appid upewnij się, że oświadczenie niestandardowe jest w całości pisane małymi literami appid. Wartość appid reprezentuje przepływy pracy cyklu życia i jest zawsze taka sama.

Korzystanie z aplikacji Logic z przepływami pracy cyklu życia

Teraz, gdy aplikacja Logic została skonfigurowana do użycia z przepływami cyklu życia, możesz utworzyć niestandardowe rozszerzenie zadania za pomocą UI lub interfejsu API i używać go w przepływie cyklu życia.

Następne kroki