Partage via


Configurer une application logique pour une utilisation avec des workflows de cycle de vie

Avant de pouvoir utiliser une application logique Azure existante avec la fonctionnalité d’extension de tâche personnalisée des workflows de cycle de vie, elle doit d’abord être compatible. Ce guide de référence fournit une liste d’étapes à suivre pour rendre l’application logique Azure compatible. Si vous avez besoin d’instructions pour créer une application logique compatible par le portail Workflows de cycle de vie, consultez Déclencher une application logique en fonction des extensions personnalisées de tâches.

Déterminer le type de sécurité du jeton de votre extension de tâche personnalisée

Avant de configurer votre extension personnalisée Azure Logic App à utiliser avec des workflows de cycle de vie, vous devez d’abord déterminer le type de sécurité de jeton dont elle dispose. Les deux types de sécurité de jeton peuvent être :

  • Normal
  • Preuve de possession (POP)

Pour déterminer le type de jeton de sécurité de votre extension personnalisée de tâches, vous devez consulter la page Extensions personnalisées :

Capture d’écran d’une extension de tâche personnalisée et du type de jeton.

Notes

Les nouvelles extensions de tâche personnalisées n’auront que le type de sécurité de jeton de Preuve de possession (POP). Seules les extensions de tâche créées avant l’inclusion du type de sécurité du jeton de Preuve de possession auront un type Normal.

Configurer des applications logiques existantes à l’usage de workflows de cycle de vie

L’exécution d’une application logique Azure avec l’extension de tâche personnalisée nécessite les étapes suivantes :

  • Configurer le déclencheur d’application logique
  • Configurer l’action de rappel (applicable uniquement au scénario de rappel).
  • Activer l’identité managée affectée par le système (toujours obligatoire pour les extensions de type de jeton de sécurité Normal. Il s’agit également de la valeur par défaut pour des scénarios de rappel avec des extensions de tâche personnalisées. Pour plus d’informations sur ce scénario et sur d’autres scénarios de déploiement d’extensions de tâches personnalisées, consultez Scénarios de déploiement d’extension de tâche personnalisée).
  • Configurer des stratégies AuthZ

Pour les configurer, procédez comme suit :

  1. Ouvrez l’application logique Azure que vous souhaitez utiliser avec le workflow de cycle de vie. Logic Apps peut vous accueillir avec un écran d’introduction, que vous pouvez fermer avec le signe X situé dans le coin supérieur droit.

  2. Sur la gauche de l’écran, sélectionnez Affichage du code de l’application logique.

  3. Dans l’éditeur, collez le code suivant :

    {
      "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. Sélectionnez Enregistrer.

  5. Basculez vers le concepteur d’application logique et inspectez le déclencheur configuré et l’action de rappel. Pour créer votre logique métier personnalisée, ajoutez d’autres actions entre le déclencheur et l’action de rappel. Si vous n’êtes intéressé que par le scénario fire-and-forget, vous pouvez supprimer l’action de rappel.

  6. Sur la gauche de l’écran, sélectionnez Identité.

  7. Sous l’onglet attribué au système, activez le statut pour l’enregistrer avec Microsoft Entra ID.

  8. Cliquez sur Enregistrer.

Configurer une stratégie d’autorisation pour une extension de tâche personnalisée avec le type de jeton de sécurité POP

Si le type de jeton de sécurité est Preuve de possession (POP) pour votre extension de tâche personnalisée, vous devez définir la stratégie d’autorisation en procédant comme suit :

  1. Accédez à l’application logique que vous avez créée, puis sélectionnez Autorisation.

  2. Créez une stratégie d’autorisation basée sur le tableau suivant :

    Nom de la stratégie : POP-Policy

    Type de stratégie : AADPOP

    Revendication Valeur
    Émetteur 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/(nom LogicApp)
  3. Enregistrez la stratégie d’autorisation.

Attention

Veuillez prêter attention aux détails, car des différences mineures peuvent entraîner des problèmes plus tard.

  • Pour Issuer, vérifiez que vous avez inclus la barre oblique après votre ID de locataire/
  • Pour appid, vérifiez que la revendication personnalisée est appid en minuscules. La valeur appid représente les workflows de cycle de vie et elle est toujours la même.

Configurer une stratégie d’autorisation pour une extension de tâche personnalisée avec le type de jeton de sécurité normal

Si le type de jeton de sécurité est Normal pour votre extension de tâche personnalisée, vous devez définir la stratégie d’autorisation en procédant comme suit :

  1. Pour la stratégie d’autorisation Logic Apps, nous avons besoin de l’ID d’application des identités managées. Comme le Centre d’administration Microsoft Entra affiche seulement l’ID d’objet, nous devons rechercher l’ID d’application. Vous pouvez rechercher l'identité managée par ID d'objet sous Applications d'entreprise dans le centre administrateur Microsoft Entra pour trouver l'ID d'application requis.

  2. Revenez à l’application logique que vous avez créée, puis sélectionnez Autorisation.

  3. Créez deux stratégies d’autorisation sur la base de ces tableaux :

    Nom de la stratégie : AzureADLifecycleWorkflowsAuthPolicy

    Type de stratégie : AAD

    Revendication Valeur
    Émetteur https://sts.windows.net/(Tenant ID)/
    Public visé ID d’application de votre identité managée Logic Apps
    appid 00001111-aaaa-2222-bbbb-3333cccc4444

    Nom de la stratégie : AzureADLifecycleWorkflowsAuthPolicyV2App

    Type de stratégie : AAD

    Revendication Valeur
    Émetteur https://login.microsoftonline.com/(Tenant ID)/v2.0
    Public visé ID d’application de votre identité managée Logic Apps
    azp ce79fdc4-cd1d-4ea5-8139-e74d7dbe0bb7
  4. Enregistrez la stratégie d’autorisation.

Attention

Veuillez prêter attention aux détails, car des différences mineures peuvent entraîner des problèmes plus tard.

  • Pour Issuer, vérifiez que vous avez inclus la barre oblique après votre ID de locataire.
  • Pour l’audience, vérifiez que vous utilisez l’ID d’application et non l’ID d’objet de votre identité managée.
  • Pour appid, vérifiez que la revendication personnalisée est appid en minuscules. La valeur appid représente les workflows de cycle de vie et elle est toujours la même.

Utilisation de l’application logique avec des workflows de cycle de vie

Maintenant que votre application logique est configurée pour un usage avec des workflows de cycle de vie, vous pouvez créer une extension de tâche personnalisée via une interface utilisateur ou une API, et l’utiliser dans un workflow de cycle de vie.

Étapes suivantes