ライフサイクル ワークフロー API を使用して、従業員の作業初日の前に従業員のオンボード タスクを自動化する

このチュートリアルでは、ライフサイクル ワークフロー API を使用して事前処理タスクを自動化するための詳細なガイダンスを提供します。

ライフサイクル ワークフロー シナリオのスクリーンショット。

このチュートリアルでは、以下を実行する方法について説明します。

  • 特定の部署の新入社員を雇用日の 2 日前に確認するようにライフサイクル ワークフローを構成します。
  • 新しい従業員の一時的なアクセス パス (TAP) を生成し、それを新しい従業員のマネージャーに送信するようにタスクを構成します。
  • ワークフローとその関連するタスクの状態を監視します。

前提条件

このチュートリアルを完了するには、次のリソースと特権が必要です。

  • この機能には、Microsoft Entra ID ガバナンス ライセンスが必要です。 要件に適したライセンスについては、「 Microsoft Entra ID ガバナンス ライセンスの基礎」を参照してください。

  • Graph Explorer などの API クライアントにサインインして、少なくともライフサイクル管理者 Microsoft Entra ロールを持つアカウントで Microsoft Graph を呼び出します。

  • LifecycleWorkflows.ReadWrite.All Microsoft Graph 委任アクセス許可を自分に付与します。

  • このチュートリアルで使用する 2 つのユーザー アカウントを作成します。1 つは新入社員用、もう 1 つはマネージャー用で、次の設定を該当するように構成します。

    User プロパティ 説明 オンに設定する
    mail 新しい従業員の一時的なアクセス パス (TAP) をマネージャーに通知するために使用されます。 マネージャーと従業員の両方に、電子メールを受信するためのアクティブなメールボックスが必要です。 従業員、マネージャー
    manager ライフサイクル ワークフローで使用されるこの属性。 従業員
    employeeHireDate ワークフローをトリガーするために使用されます。 今日の日付に設定します。 従業員
    department ワークフローのスコープを提供するために使用されます。 Sales に設定します。 従業員、マネージャー
  • テナントで 一時アクセス パス (TAP) ポリシー を有効にし、新しいユーザーが認証方法を使用できるように有効にします。

"joiner" ワークフローを作成する

要求

次の要求では、次の設定を使用して、前もってワークフローが作成されます。

  • オンデマンドで実行できますが、スケジュールに従って実行することはできません。
  • ワークフローは、従業員の雇用日の 2 日前に実行され、"営業" 部門に属している場合は実行されます。
  • このワークフローで実行される組み込みタスクは 1 つだけです。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
        }
    }
}

ワークフローを実行する

ワークフローは実行するようにスケジュールされていないため、手動で実行する必要があります。 次の要求では、ワークフローのターゲットであるユーザーが ID 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"
        }
    ]
}

タスクとワークフローの状態を確認する

ワークフローの状態と関連するタスクは、いつでも 3 つのレベルで監視できます。

  • ユーザー レベルでタスクを監視します。
  • 指定した期間内に、ワークフローのユーザー レベルの結果の集計概要を監視します。
  • ワークフロー内の特定のユーザーに対して実行されたすべてのタスクの詳細ログを取得します。

オプション 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 応答を返します。 ワークフローがスケジュールされると、ライフサイクル ワークフロー エンジンは、関連付けられた実行条件に一致するユーザー オブジェクトを 3 時間ごとにチェックし、それらのユーザーに対して構成されたタスクを実行します。 この繰り返しは、1 時間から 24 時間の間でカスタマイズできます。

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

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