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

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

Этот сценарий предварительного найма создаст временный пароль для нового сотрудника и отправит его по электронной почте новому руководителю пользователя.

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

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

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

  • Клиент, который вы хотите использовать для предварительной версии функции рабочих процессов жизненного цикла с включенной лицензией Azure AD Premium P2.

  • Войдите в клиент API, например Graph Обозреватель, Postman, или создайте собственное клиентское приложение для вызова Microsoft Graph. Чтобы вызвать API Microsoft Graph в этом руководстве, необходимо использовать учетную запись с ролью администратора жизненного цикла или глобального администратора Azure AD.

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

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

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

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

Запрос

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

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

Отклик

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

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

Запрос

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

Отклик

HTTP/1.1 204 No Content

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

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

Запрос

Следующий запрос получает сводку задач, выполняемых на уровне пользователя.

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

Отклик

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

Запрос

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

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)

Отклик

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
}

Запрос

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

GET https://graph.microsoft.com/beta/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/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"
                    }
                ]
            }
        }
    ]
}

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

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

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

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

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

Отклик

HTTP/1.1 204 No Content

См. также