Automatiser les tâches d’intégration des employés avant leur premier jour de travail à l’aide des API de workflows de cycle de vie

Ce tutoriel fournit des instructions pas à pas pour automatiser les tâches préalables avec les API de workflows de cycle de vie.

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 rechercher de nouveaux employés dans un service spécifique, deux jours avant la date de leur embauche.
  • Configurez une tâche pour générer une passe d’accès temporaire (TAP) pour le nouvel employé et l’envoyer au responsable du nouvel employé.
  • Surveillez l’état du flux de travail et ses tâches associées.

Configuration requise

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

  • Cette fonctionnalité nécessite des licences microsoft Entra ID Governance. Pour trouver la licence adaptée à vos besoins, consultez Principes de base des licences de gouvernance des ID Microsoft Entra.

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

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

  • Créez deux comptes d’utilisateur à utiliser dans ce tutoriel : un pour le nouvel employé et un 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 Permet d’informer le responsable de la passe d’accès temporaire (TAP) du nouvel employé. Le responsable et l’employé doivent avoir des boîtes aux lettres actives pour recevoir des e-mails. Employé, Responsable
    manager Attribut utilisé par le workflow de cycle de vie. Employé
    employeeHireDate Utilisé pour déclencher le flux de travail. Définissez sur la date du jour. Employé
    Service Utilisé pour fournir l’étendue du flux de travail. Défini sur Sales. Employé, Responsable
  • Activez la stratégie de passe d’accès temporaire (TAP) dans votre locataire et le nouvel utilisateur activé pour utiliser la méthode d’authentification.

Créer un flux de travail « joiner »

Demande

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

  • Il peut être exécuté à la demande, mais pas selon la planification.
  • Le flux de travail s’exécute deux jours avant la date d’embauche de l’employé et s’il se trouve dans le service « Ventes ».
  • Une seule tâche intégrée s’exécute dans ce workflow : générer le TAP et l’envoyer au responsable du nouvel employé. Cette tâche est identifiée dans les workflows de cycle de vie par taskDefinitionId1b555e50-7f65-41d5-b514-5894a026d10d.
POST https://graph.microsoft.com/v1.0/identityGovernance/lifecycleWorkflows/workflows
Content-type: application/json

{
   "displayName":"Onboard pre-hire employee", 
   "description":"Configure pre-hire tasks for onboarding employees before their first day", 
   "isEnabled":true, 
   "isSchedulingEnabled": false,
   "executionConditions": {
       "@odata.type": "microsoft.graph.identityGovernance.triggerAndScopeBasedConditions",
        "scope": {
            "@odata.type": "microsoft.graph.identityGovernance.ruleBasedSubjectSet",
            "rule": "(department eq 'Sales')"
        },
        "trigger": {
            "@odata.type": "microsoft.graph.identityGovernance.timeBasedAttributeTrigger",
            "timeBasedAttribute": "employeeHireDate",
            "offsetInDays": -2
        }
    }, 
   "tasks":[ 
      {
         "isEnabled":true, 
         "category": "Joiner",
         "taskDefinitionId":"1b555e50-7f65-41d5-b514-5894a026d10d", 
         "displayName":"Generate TAP And Send Email", 
         "description":"Generate Temporary Access Pass and send via email to user's manager", 
         "arguments":[ 
            { 
                "name": "tapLifetimeMinutes", 
                "value": "480" 
            }, 
            { 
                "name": "tapIsUsableOnce", 
                "value": "true" 
            }
          ]
       }  
    ]     
} 

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": "joiner",
    "description": "Configure pre-hire tasks for onboarding employees before their first day",
    "displayName": "Onboard pre-hire employee",
    "lastModifiedDateTime": "2024-03-04T07:45:14.3410141Z",
    "createdDateTime": "2024-03-04T07:45:14.3410017Z",
    "deletedDateTime": null,
    "id": "ea71190c-075a-4ae7-9bca-34abf3b7b056",
    "isEnabled": true,
    "isSchedulingEnabled": false,
    "nextScheduleRunDateTime": null,
    "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.timeBasedAttributeTrigger",
            "timeBasedAttribute": "employeeHireDate",
            "offsetInDays": -2
        }
    }
}

Exécuter le flux de travail

Étant donné que l’exécution du workflow n’est pas planifiée, elle doit être exécutée manuellement. Dans la requête suivante, l’utilisateur qui est la cible du workflow est identifié par l’ID 8930f0c7-cdd7-4885-9260-3b4a8111de5c. La requête retourne une 204 No Content réponse.

POST https://graph.microsoft.com/v1.0/identityGovernance/lifecycleWorkflows/workflows/ea71190c-075a-4ae7-9bca-34abf3b7b056/activate

{
    "subjects": [
        {
            "id": "8930f0c7-cdd7-4885-9260-3b4a8111de5c"
        }
    ]
}

Vérifier l’état des tâches et des flux de travail

À tout moment, vous pouvez surveiller l’état 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

GET https://graph.microsoft.com/v1.0/identityGovernance/lifecycleWorkflows/workflows/ea71190c-075a-4ae7-9bca-34abf3b7b056/userProcessingResults

Réponse

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

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#identityGovernance/lifecycleWorkflows/workflows('ea71190c-075a-4ae7-9bca-34abf3b7b056')/userProcessingResults",
    "value": [
        {
            "id": "5772d894-3bcf-4d1c-9cfc-8c182331215b",
            "completedDateTime": "2024-03-04T08:07:23.2591226Z",
            "failedTasksCount": 0,
            "processingStatus": "completed",
            "scheduledDateTime": "2024-03-04T08:07:03.8706523Z",
            "startedDateTime": "2024-03-04T08:07:09.4670969Z",
            "totalTasksCount": 1,
            "totalUnprocessedTasksCount": 0,
            "workflowExecutionType": "onDemand",
            "workflowVersion": 1,
            "subject": {
                "id": "8930f0c7-cdd7-4885-9260-3b4a8111de5c"
            }
        }
    ]
}

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

GET https://graph.microsoft.com/v1.0/identityGovernance/lifecycleWorkflows/workflows/ea71190c-075a-4ae7-9bca-34abf3b7b056/userProcessingResults/summary(startDateTime=2024-03-01T00:00:00Z,endDateTime=2024-03-30T00:00:00Z)

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": 0,
    "failedUsers": 0,
    "successfulUsers": 1,
    "totalTasks": 1,
    "totalUsers": 1
}

Option 3 : Récupérer le journal détaillé de toutes les tâches exécutées pour un utilisateur spécifique dans le workflow

Demande

GET https://graph.microsoft.com/v1.0/identityGovernance/lifecycleWorkflows/workflows/ea71190c-075a-4ae7-9bca-34abf3b7b056/userProcessingResults/5772d894-3bcf-4d1c-9cfc-8c182331215b/taskProcessingResults

Réponse

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

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#identityGovernance/lifecycleWorkflows/workflows('ea71190c-075a-4ae7-9bca-34abf3b7b056')/userProcessingResults('5772d894-3bcf-4d1c-9cfc-8c182331215b')/taskProcessingResults",
    "value": [
        {
            "completedDateTime": "2024-03-04T08:07:15.9906441Z",
            "createdDateTime": "2024-03-04T08:07:09.8072395Z",
            "id": "227c85e4-7b84-461f-8df5-c347c2435eb2",
            "processingStatus": "completed",
            "startedDateTime": "2024-03-04T08:07:11.1595421Z",
            "failureReason": null,
            "subject": {
                "id": "8930f0c7-cdd7-4885-9260-3b4a8111de5c"
            },
            "task": {
                "category": "joiner",
                "continueOnError": false,
                "description": "Generate Temporary Access Pass and send via email to user's manager",
                "displayName": "Generate TAP And Send Email",
                "executionSequence": 1,
                "id": "8b9b47c0-957b-4a52-8f2d-816e59c40fd2",
                "isEnabled": true,
                "taskDefinitionId": "1b555e50-7f65-41d5-b514-5894a026d10d",
                "arguments": [
                    {
                        "name": "tapLifetimeMinutes",
                        "value": "480"
                    },
                    {
                        "name": "tapIsUsableOnce",
                        "value": "true"
                    }
                ]
            }
        }
    ]
}

[Facultatif] Planifier l’exécution automatique du workflow

Après avoir exécuté votre workflow à la demande et vérifié que tout fonctionne correctement, vous pouvez activer le flux de travail afin qu’il puisse s’exécuter automatiquement selon une planification définie par le locataire. Exécutez la requête suivante.

La requête retourne une 204 No Content réponse. Lorsqu’un flux de travail est planifié, le moteur workflows de cycle de vie vérifie toutes les trois heures les objets utilisateur qui correspondent à la condition d’exécution associée et exécute les tâches configurées pour ces utilisateurs. Vous pouvez personnaliser cette périodicité d’une heure à 24 heures.

PATCH https://graph.microsoft.com/v1.0/identityGovernance/lifecycleWorkflows/workflows/ea71190c-075a-4ae7-9bca-34abf3b7b056
Content-type: application/json

{
    "isEnabled": true,
    "isSchedulingEnabled": true
}