Поделиться через


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

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

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

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

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

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

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

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

  • Войдите в клиент API, например Graph Обозреватель, чтобы вызвать 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
}