Compartir a través de


Configuración de una aplicación lógica para el uso del flujo de trabajo de ciclo de vida

Para poder usar una aplicación lógica de Azure existente con la característica de extensiones de tareas personalizadas de los flujos de trabajo de ciclo de vida, primero es necesario hacer que sea compatible. Esta guía de referencia proporciona una lista de pasos que se deben seguir para que Azure Logic App sea compatible. Para obtener una guía sobre cómo crear una nueva Logic App compatible a través del portal de flujos de trabajo del ciclo de vida, consulte Desencadenar Logic Apps basadas en extensiones de tareas personalizadas.

Determinación del tipo de seguridad de tokens de la extensión de tarea personalizada

Antes de configurar la extensión personalizada de Azure Logic App para su uso con flujos de trabajo de ciclo de vida, primero debe averiguar qué tipo de seguridad de tokens tiene. Los dos tipos de seguridad de tokens pueden ser:

  • Normal
  • Prueba de posesión (PoP)

Para determinar el tipo de token de seguridad de su extensión de tarea personalizada, consulte la página Extensiones personalizadas:

Captura de pantalla de extensión de tarea personalizada y tipo de token.

Nota:

Las nuevas extensiones de tareas personalizadas solo tendrán la Prueba de posesión (PoP) como tipo de seguridad de tokens. Solo las extensiones de tareas creadas antes de incluir la Prueba de posesión (PoP) como tipo de seguridad de tokens serán del tipo normal.

Configuración de aplicaciones lógicas existentes para el uso de LCW

Hacer que una aplicación lógica de Azure sea compatible para ejecutarse con la extensión de tarea personalizada requiere los pasos siguientes:

  • Configurar el desencadenador de aplicación lógica
  • Configurar la acción de devolución de llamada (solo aplicable al escenario de devolución de llamada).
  • Habilitar la identidad administrada asignada por el sistema (siempre necesaria para las extensiones de tipo de token de seguridad normal). Este es también el valor predeterminado para los escenarios de devolución de llamada con extensiones de tareas personalizadas. Para obtener más información sobre esto y otros escenarios de implementación de extensiones de tareas personalizadas, consulte: Escenarios de implementación de la extensión de tarea personalizada).
  • Configurar directivas de AuthZ.

Para configurar dichos componentes, siga estos pasos:

  1. Abra la aplicación lógica de Azure que quiere usar con el flujo de trabajo de ciclo de vida. Logic Apps puede mostrarle una pantalla de introducción como saludo, que puede cerrar con la X situada en la esquina superior derecha.

  2. A la izquierda de la pantalla, seleccione Vista de código de la aplicación lógica.

  3. En el editor, pegue el siguiente código:

    {
      "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. Seleccione Guardar.

  5. Cambie al Diseñador de aplicaciones lógicas e inspeccione el desencadenador configurado y la acción de devolución de llamada. Para compilar la lógica de negocios personalizada, agregue otras acciones entre el desencadenador y la acción de devolución de llamada. Si solo le interesa el escenario de desencadenar y olvidar, puede quitar la acción de devolución de llamada.

  6. A la izquierda de la pantalla, seleccione Identidad.

  7. En la pestaña de sistema asignado, habilite el estado para registrarlo con Microsoft Entra ID.

  8. Seleccione Guardar.

Configuración de la directiva de autorización para la extensión de tarea personalizada con el tipo de token de seguridad PoP

Si el tipo de token de seguridad para la extensión de tarea personalizada es Prueba de posesión (PoP), debe establecer la directiva de autorización siguiendo estos pasos:

  1. Vaya a la aplicación lógica que creó y seleccione Autorización.

  2. Cree una directiva de autorización basada en la tabla siguiente:

    Nombre de la directiva: POP-Policy

    Tipo de directiva: AADPOP

    Notificación Value
    Emisor https://sts.windows.net/(Tenant ID)/
    appid 00001111-aaaa-2222-bbbb-3333cccc4444
    m POST
    u management.azure.com
    p /subscriptions/(subscriptionId)/resourceGroups/(nombre del grupo de recursos)/providers/Microsoft.Logic/workflows/(nombre de la aplicación lógica)
  3. Guarde la directiva de autorización.

Precaución

Preste atención a los detalles, ya que se pueden producir problemas más adelante debido a pequeñas diferencias.

  • En el caso de Issuer, asegúrese de haber incluido la barra diagonal después del id. de inquilino.
  • En el caso de appid, asegúrese de que la notificación personalizada sea appid, todo en minúsculas. El valor de appid representa los flujos de trabajo de ciclo de vida y siempre es el mismo.

Configuración de la directiva de autorización para la extensión de tarea personalizada con el tipo de token de seguridad normal

Si el tipo de token de seguridad para la extensión de tarea personalizada es Normal, debe establecer la directiva de autorización siguiendo estos pasos:

  1. En el caso de la directiva de autorización de Logic Apps, necesitaremos el id. de aplicación de las identidades administradas. Dado que el centro de administración de Microsoft Entra solo muestra el Id. de objeto, necesitamos buscar el Id. de aplicación. Puede buscar la identidad administrada por el id. de objeto en Aplicaciones empresariales en el centro administrativo de Microsoft Entra para encontrar el id. de la aplicación requerido.

  2. Vuelva a la aplicación lógica que ha creado y seleccione Autorización.

  3. Cree dos directivas de autorización basadas en las tablas siguientes:

    Nombre de la directiva: AzureADLifecycleWorkflowsAuthPolicy

    Tipo de directiva: AAD

    Notificación Value
    Emisor https://sts.windows.net/(Tenant ID)/
    Público Id. de aplicación de la identidad administrada de Logic Apps.
    appid 00001111-aaaa-2222-bbbb-3333cccc4444

    Nombre de la directiva: AzureADLifecycleWorkflowsAuthPolicyV2App

    Tipo de directiva: AAD

    Notificación Value
    Emisor https://login.microsoftonline.com/(Tenant ID)/v2.0
    Público Id. de aplicación de la identidad administrada de Logic Apps.
    azp ce79fdc4-cd1d-4ea5-8139-e74d7dbe0bb7
  4. Guarde la directiva de autorización.

Precaución

Preste atención a los detalles, ya que se pueden producir problemas más adelante debido a pequeñas diferencias.

  • En el caso de Issuer, asegúrese de haber incluido la barra diagonal después del id. de inquilino.
  • En el caso del público, asegúrese de que usa el id. de aplicación y no el id. de objeto de la identidad administrada.
  • En el caso de appid, asegúrese de que la notificación personalizada sea appid, todo en minúsculas. El valor de appid representa los flujos de trabajo de ciclo de vida y siempre es el mismo.

Uso de la aplicación lógica con flujos de trabajo de ciclo de vida

Ahora que la aplicación lógica está configurada para usarla con flujos de trabajo del ciclo de vida, puede crear una extensión de tarea personalizada a través de la interfaz de usuario o la API y usarla en un flujo de trabajo del ciclo de vida.

Pasos siguientes