Automatización de las tareas de incorporación de empleados antes de su primer día de trabajo mediante las API de flujos de trabajo de ciclo de vida

En este tutorial se proporcionan instrucciones paso a paso para automatizar las tareas de contratación previa con flujos de trabajo de ciclo de vida mediante Microsoft Graph.

Este escenario de contratación previa generará una contraseña temporal para el nuevo empleado y la enviará por correo electrónico al nuevo administrador del usuario.

Captura de pantalla del escenario Flujos de trabajo de ciclo de vida.

Requisitos previos

Para completar este tutorial, necesita los siguientes recursos y privilegios:

  • Inquilino que desea usar para obtener una vista previa de la característica Flujos de trabajo de ciclo de vida con una licencia de Azure AD Premium P2 habilitada.

  • Inicie sesión en un cliente de API como Graph Explorer, Postman o cree su propia aplicación cliente para llamar a Microsoft Graph. Para llamar a las API de Microsoft Graph en este tutorial, debe usar una cuenta con el rol Administrador del ciclo de vida o Administrador global de Azure AD.

  • Concédete el siguiente permiso delegado LifecycleWorkflows.ReadWrite.All .

  • Debe tener dos cuentas de usuario para usar en este tutorial, una para la nueva contratación y otra para su administrador.

    User (propiedad) Descripción Establecer en
    mail Se usa para notificar al administrador el pase de acceso temporal (TAP) del nuevo empleado. Tanto el administrador como el empleado deben tener buzones activos para recibir correos electrónicos. Empleado, Administrador
    manager Este atributo que usa el flujo de trabajo del ciclo de vida. Empleado
    employeeHireDate Se usa para desencadenar el flujo de trabajo. Establézcalo en la fecha de hoy. Empleado
    department Se usa para proporcionar el ámbito del flujo de trabajo. Establecer aSales. Empleado, Administrador
  • Debe habilitar la directiva pase de acceso temporal (TAP) en el inquilino y el nuevo usuario habilitado para usar el método de autenticación. Para obtener más información, vea temporaryAccessPassAuthenticationMethodConfiguration resource type( Tipo de recurso temporaryAccessPassAuthenticationMethodConfiguration).

Creación de un flujo de trabajo de "joiner"

Solicitud

La siguiente solicitud crea un flujo de trabajo de contratación previa con la siguiente configuración:

  • Se puede ejecutar a petición, pero no según lo programado.
  • El flujo de trabajo se ejecuta dos días antes del employeeHireDate del empleado y si se encuentra en el departamento "Ventas".
  • Solo se ejecuta una tarea en este flujo de trabajo: para generar el TAP y enviarlo al administrador de la nueva contratación.
POST https://graph.microsoft.com/beta/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" 
            }
          ]
       }  
    ]     
} 

Respuesta

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

{
    "@odata.context": "https://graph.microsoft.com/beta/$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": "2022-10-04T07:45:14.3410141Z",
    "createdDateTime": "2022-10-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
        }
    }
}

Ejecución del flujo de trabajo

Solicitud

Dado que el flujo de trabajo no se ha programado para ejecutarse, debe ejecutarse manualmente. En la solicitud siguiente, el usuario para el que se ejecutará el flujo de trabajo se identifica mediante el identificador 8930f0c7-cdd7-4885-9260-3b4a8111de5c.

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

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

Respuesta

HTTP/1.1 204 No Content

Comprobación de las tareas y el estado del flujo de trabajo

En cualquier momento, puede supervisar el estado de los flujos de trabajo y las tareas en tres niveles.

Solicitud

La siguiente solicitud recupera el resumen de las tareas que se ejecutan en el nivel de usuario.

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

Respuesta

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

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

Solicitud

Puede solicitar el resumen agregado de alto nivel de los resultados de nivel de usuario para un flujo de trabajo, dentro de un período especificado.

GET https://graph.microsoft.com/beta/identityGovernance/LifecycleWorkflows/workflows/ea71190c-075a-4ae7-9bca-34abf3b7b056/userProcessingResults/summary(startDateTime=2022-10-01T00:00:00Z,endDateTime=2022-10-30T00:00:00Z)

Respuesta

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

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

Solicitud

También puede recuperar el registro detallado de todas las tareas que se ejecutaron para un usuario específico en el flujo de trabajo.

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

Respuesta

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

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#identityGovernance/lifecycleWorkflows/workflows('ea71190c-075a-4ae7-9bca-34abf3b7b056')/userProcessingResults('5772d894-3bcf-4d1c-9cfc-8c182331215b')/taskProcessingResults",
    "value": [
        {
            "completedDateTime": "2022-10-04T08:07:15.9906441Z",
            "createdDateTime": "2022-10-04T08:07:09.8072395Z",
            "id": "227c85e4-7b84-461f-8df5-c347c2435eb2",
            "processingStatus": "completed",
            "startedDateTime": "2022-10-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"
                    }
                ]
            }
        }
    ]
}

[Opcional] Programar el flujo de trabajo para que se ejecute automáticamente

Después de ejecutar el flujo de trabajo a petición y comprobar que todo funciona bien, es posible que desee habilitar el flujo de trabajo para que se pueda ejecutar automáticamente según una programación definida por el inquilino. Para habilitar la programación de flujo de trabajo, puede ejecutar la siguiente solicitud.

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

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

Cuando se programa un flujo de trabajo, los flujos de trabajo de ciclo de vida comprobarán cada tres horas los usuarios en la condición de ejecución asociada y ejecutarán las tareas configuradas para esos usuarios. Puede personalizar esta periodicidad entre una hora y 24 horas.

Respuesta

HTTP/1.1 204 No Content

Consulte también