Automatiser les tâches du déménageur lorsque les employés changent de travail à l’aide des API de flux de travail de cycle de vie Microsoft Graph

Ce tutoriel fournit des instructions pas à pas pour automatiser les tâches du déménageur d’employés à l’aide des API de flux de vie dans Microsoft Graph.

Capture d’écran du scénario workflows de cycle de vie.

Dans ce tutoriel, vous apprenez à effectuer les opérations suivantes :

  • Configurez un workflow de cycle de vie pour case activée pour les employés qui passent à un nouveau service.
  • Configurez une tâche pour informer le responsable des utilisateurs déplacés par e-mail.
  • Surveillez les status du flux de travail et les tâches associées.

Configuration requise

Pour suivre ce didacticiel, vous avez besoin des ressources et privilèges suivants :

  • Cette fonctionnalité nécessite Gouvernance Microsoft Entra ID licences. Pour trouver la licence adaptée à vos besoins, consultez Gouvernance Microsoft Entra ID principes fondamentaux des licences.

  • Connectez-vous à un client API tel que Graph Explorer d’appeler Microsoft Graph avec un compte qui a au moins le rôle d’administrateur de cycle de vie Microsoft Entra.

  • Accordez-vous l’autorisation déléguée Microsoft Graph LifecycleWorkflows.ReadWrite.All .

  • Créez deux comptes d’utilisateur à utiliser dans ce tutoriel : l’un pour l’employé et l’autre pour son responsable, et les paramètres suivants sont configurés le cas échéant.

    Propriété de l’utilisateur Description Définir sur
    mail Avertit le responsable que l’employé a été déplacé vers le service. Le responsable et l’employé doivent avoir des boîtes aux lettres actives pour recevoir des e-mails. Employé, Responsable
    manager Cet attribut est utilisé par la tâche de flux de travail. Employé

Créer un workflow mover

Demande

La requête suivante crée un workflow de mover avec les paramètres suivants :

  • Il s’exécute selon la planification, mais peut également être exécuté à la demande.
  • Le flux de travail s’exécute lorsqu’un employé est ajouté au service Ventes .
  • Une seule tâche intégrée s’exécute dans ce workflow : envoyer un e-mail au responsable de l’employé pour l’informer du déplacement. Cette tâche est identifiée dans les workflows de cycle de vie par taskDefinitionIdaab41899-9972-422a-9d97-f626014578b7.
POST https://graph.microsoft.com/v1.0/identityGovernance/lifecycleWorkflows/workflows
Content-type: application/json

{
    "category": "mover",
    "description": "Configure mover tasks for a user moved to the Sales department.",
    "displayName": "Added to Sales department workflow",
    "isEnabled": true,
    "isSchedulingEnabled": true,
    "executionConditions": {
        "@odata.type": "#microsoft.graph.identityGovernance.triggerAndScopeBasedConditions",
        "scope": {
            "@odata.type": "#microsoft.graph.identityGovernance.ruleBasedSubjectSet",
            "rule": "(department eq 'Sales')"
        },
        "trigger": {
            "@odata.type": "#microsoft.graph.identityGovernance.attributeChangeTrigger",
            "triggerAttributes": [
                {
                    "name": "department"
                }
            ]
        }
    },
    "tasks": [
        {
            "continueOnError": false,
            "description": "Send email to moving employee's manager",
            "displayName": "Notify manager of move",
            "isEnabled": true,
            "taskDefinitionId": "aab41899-9972-422a-9d97-f626014578b7",
            "arguments": []
        }
    ]
}

Réponse

L’exemple suivant illustre la réponse.

HTTP/1.1 201 Created
Content-Type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#identityGovernance/lifecycleWorkflows/workflows/$entity",
    "category": "mover",
    "description": "Configure mover tasks for a user moved to the Sales department.",
    "displayName": "Added to Sales department workflow",
    "isEnabled": true,
    "isSchedulingEnabled": true,
    "lastModifiedDateTime": "2024-03-28T12:46:10.0505943Z",
    "createdDateTime": "2024-03-28T12:46:10.0505809Z",
    "deletedDateTime": null,
    "id": "2bb05c85-556a-429a-8c16-16f6be5ef880",
    "nextScheduleRunDateTime": "2024-03-28T13:37:08Z",
    "version": 1,
    "executionConditions": {
        "@odata.type": "#microsoft.graph.identityGovernance.triggerAndScopeBasedConditions",
        "scope": {
            "@odata.type": "#microsoft.graph.identityGovernance.ruleBasedSubjectSet",
            "rule": "(department eq 'Sales')"
        },
        "trigger": {
            "@odata.type": "#microsoft.graph.identityGovernance.attributeChangeTrigger",
            "triggerAttributes": [
                {
                    "name": "department"
                }
            ]
        }
    }
}

Vérifier l’étendue du flux de travail

Maintenant que le flux de travail est créé, notez votre ID de workflow, puis ajoutez l’utilisateur sur lequel vous souhaitez tester le flux de travail au service Ventes . Après 15 à 30 minutes, vous pouvez déterminer si l’utilisateur est mis en file d’attente pour que le flux de travail s’exécute pour lui en vérifiant l’étendue d’exécution de votre flux de travail. Pour déterminer si un utilisateur est mis en file d’attente pour que le flux de travail s’exécute pour lui, utilisez la requête suivante.

POST https://graph.microsoft.com/v1.0/identityGovernance/lifecycleWorkflows/workflows/2bb05c85-556a-429a-8c16-16f6be5ef880/executionScope

Réponse

L’exemple suivant illustre la réponse.

HTTP/1.1 200 OK
Content-Type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Collection(microsoft.graph.identityGovernance.userProcessingResult)",
    "@microsoft.graph.tips": "Use $select to choose only the properties your app needs, as this can lead to performance improvements. For example: GET identityGovernance/lifecycleWorkflows/workflows('<guid>')/executionScope?$select=completedDateTime,failedTasksCount",
    "value": [
        {
            "id": "2bb05c85-556a-429a-8c16-16f6be5ef880_1_2bb05c85-556a-429a-8c16-16f6be5ef880_638472334281668424_6324d383-5034-49dc-a62d-30d61e01b613",
            "completedDateTime": null,
            "failedTasksCount": 0,
            "processingStatus": "queued",
            "scheduledDateTime": "2024-03-28T14:37:08.1668424Z",
            "startedDateTime": null,
            "totalTasksCount": 1,
            "totalUnprocessedTasksCount": 1,
            "workflowExecutionType": "scheduled",
            "workflowVersion": 1,
            "subject": {
                "id": "6324d383-5034-49dc-a62d-30d61e01b613"
            }
        }
    ]
}

Vérifier les tâches et les status de flux de travail

À tout moment, vous pouvez surveiller la status des flux de travail et les tâches associées à trois niveaux.

  • Surveillez les tâches au niveau de l’utilisateur.
  • Surveillez le résumé général agrégé des résultats au niveau de l’utilisateur pour un flux de travail, dans une période spécifiée.
  • Récupérez le journal détaillé de toutes les tâches exécutées pour un utilisateur spécifique dans le workflow.

Option 1 : Surveiller les tâches d’un flux de travail au niveau de l’utilisateur

Demande

L’exemple suivant illustre une demande.

GET https://graph.microsoft.com/v1.0/identityGovernance/lifecycleWorkflows/workflows/2bb05c85-556a-429a-8c16-16f6be5ef880/userProcessingResults

Réponse

L’exemple suivant illustre la réponse.

HTTP/1.1 200 OK
Content-Type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#identityGovernance/lifecycleWorkflows/workflows('2bb05c85-556a-429a-8c16-16f6be5ef880')/userProcessingResults",
    "@microsoft.graph.tips": "Use $select to choose only the properties your app needs, as this can lead to performance improvements. For example: GET identityGovernance/lifecycleWorkflows/workflows('<guid>')/userProcessingResults?$select=completedDateTime,failedTasksCount",
    "value": [
        {
            "id": "2bb05c85-556a-429a-8c16-16f6be5ef880_1_2bb05c85-556a-429a-8c16-16f6be5ef880_638470955486351520_6324d383-5034-49dc-a62d-30d61e01b613",
            "completedDateTime": "2024-03-27T00:19:22.5753749Z",
            "failedTasksCount": 1,
            "processingStatus": "completedWithErrors",
            "scheduledDateTime": "2024-03-27T00:19:08.635152Z",
            "startedDateTime": "2024-03-27T00:19:17.1696067Z",
            "totalTasksCount": 1,
            "totalUnprocessedTasksCount": 0,
            "workflowExecutionType": "onDemand",
            "workflowVersion": 1,
            "subject": {
                "id": "6324d383-5034-49dc-a62d-30d61e01b613"
            }
        }
    ]
}

Option 2 : Obtenir le résumé général agrégé des résultats au niveau de l’utilisateur pour un flux de travail, dans une période spécifiée

Demande

L’exemple suivant illustre une demande.

GET https://graph.microsoft.com/v1.0/identityGovernance/lifecycleWorkflows/workflows/2bb05c85-556a-429a-8c16-16f6be5ef880/userProcessingResults/summary(startDateTime=2024-03-01T00:00:00Z,endDateTime=2024-03-30T00:00:00Z)

Réponse

L’exemple suivant illustre la réponse.

HTTP/1.1 200 OK
Content-Type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#microsoft.graph.identityGovernance.userSummary",
    "failedTasks": 2,
    "failedUsers": 2,
    "successfulUsers": 10,
    "totalTasks": 12,
    "totalUsers": 12
}