Автоматизация задач адаптации сотрудников до их первого дня работы с помощью API рабочих процессов жизненного цикла

В этом руководстве содержатся пошаговые инструкции по автоматизации задач перед наймом с помощью API-интерфейсов рабочих процессов жизненного цикла.

Снимок экрана: сценарий рабочих процессов жизненного цикла.

В этом руководстве рассказывается, как:

  • Настройте рабочий процесс жизненного цикла, чтобы проверить наличие новых сотрудников в определенном отделе за два дня до даты их найма.
  • Настройте задачу, чтобы создать временный пропуск доступа (TAP) для нового сотрудника и отправить его руководителю нового сотрудника.
  • Отслеживайте состояние рабочего процесса и связанных с ним задач.

Предварительные условия

Для работы с этим руководством вам потребуются следующие ресурсы и привилегии:

  • Для этой функции требуются лицензии Microsoft Entra ID Governance. Чтобы найти подходящую лицензию для ваших требований, см . статью Основы лицензирования Microsoft Entra ID Governance.

  • Войдите в клиент API, например Graph Explorer , чтобы вызвать Microsoft Graph с учетной записью, которая имеет по крайней мере роль администратора жизненного цикла Microsoft Entra.

  • Предоставьте себе делегированное разрешение LifecycleWorkflows.ReadWrite.All Microsoft Graph.

  • Создайте две учетные записи пользователей, которые будут использоваться в этом руководстве: одну для нового сотрудника, а другую — для их руководителя. В соответствии со следующими параметрами настроены соответствующие параметры.

    Свойство User Описание Подстрекать
    mail; Используется для уведомления руководителя о временном пропуске доступа нового сотрудника (TAP). И руководитель, и сотрудник должны иметь активные почтовые ящики для получения сообщений электронной почты. Сотрудник, менеджер
    manager Этот атрибут, используемый рабочим процессом жизненного цикла. Сотрудник
    employeeHireDate Используется для активации рабочего процесса. Задайте текущую дату. Сотрудник
    department Используется для предоставления области для рабочего процесса. Установите значение Sales. Сотрудник, менеджер
  • Включите политику временного доступа (TAP) в клиенте и новый пользователь, включив его для использования метода проверки подлинности.

Создание рабочего процесса "joiner"

Запрос

Следующий запрос создает предварительный рабочий процесс со следующими параметрами:

  • Его можно запустить по запросу, но не по расписанию.
  • Рабочий процесс выполняется за два дня до даты найма сотрудника и, если он находится в отделе продаж.
  • В этом рабочем процессе выполняется только одна встроенная задача: создать TAP и отправить его руководителю нового сотрудника. Эта задача определяется в рабочих процессах жизненного цикла с помощью 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" 
            }
          ]
       }  
    ]     
} 

Отклик

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
        }
    }
}

Запуск рабочего процесса

Так как рабочий процесс не запланирован для выполнения, его необходимо запустить вручную. В следующем запросе пользователь, который является целевым объектом рабочего процесса, определяется по идентификатору 8930f0c7-cdd7-4885-9260-3b4a8111de5c. Запрос возвращает 204 No Content ответ.

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

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

Проверка состояния задач и рабочего процесса

В любое время можно отслеживать состояние рабочих процессов и связанных с ними задач на трех уровнях.

  • Мониторинг задач на уровне пользователя.
  • Отслеживайте агрегированную сводку результатов на уровне пользователя для рабочего процесса в течение указанного периода.
  • Получите подробный журнал всех задач, которые были выполнены для конкретного пользователя в рабочем процессе.

Вариант 1. Мониторинг задач рабочего процесса на уровне пользователя

Запрос

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

Отклик

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"
            }
        }
    ]
}

Вариант 2. Получение сводной сводки результатов на уровне пользователя для рабочего процесса в течение указанного периода

Запрос

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)

Отклик

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
}

Вариант 3. Получение подробного журнала всех задач, выполненных для конкретного пользователя в рабочем процессе

Запрос

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

Отклик

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"
                    }
                ]
            }
        }
    ]
}

[Необязательно] Планирование автоматического запуска рабочего процесса

После запуска рабочего процесса по запросу и проверки того, что все работает нормально, может потребоваться включить рабочий процесс, чтобы он мог выполняться автоматически по расписанию, определенному клиентом. Выполните следующий запрос.

Запрос возвращает 204 No Content ответ. Когда рабочий процесс запланирован, подсистема рабочих процессов жизненного цикла каждые три часа проверяет объекты пользователей, которые соответствуют соответствующему условию выполнения, и выполняет настроенные задачи для этих пользователей. Это повторение можно настроить от одного часа до 24 часов.

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

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