次の方法で共有


Microsoft Graph ライフサイクル ワークフロー API を使用して、従業員がジョブを変更するときにムーバー タスクを自動化する

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

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

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

  • 新しい部署に移動する従業員にチェックするライフサイクル ワークフローを構成します。
  • メールで移動したユーザーをマネージャーに通知するタスクを構成します。
  • ワークフローとその関連するタスクの状態を監視します。

前提条件

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

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

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

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

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

    User プロパティ 説明 オンに設定する
    mail 従業員が部署に移動されたことをマネージャーに通知します。 マネージャーと従業員の両方に、電子メールを受信するためのアクティブなメールボックスが必要です。 従業員、マネージャー
    manager この属性は、ワークフロー タスクによって使用されます。 従業員

ムーバー ワークフローを作成する

要求

次の要求は、次の設定でムーバー ワークフローを作成します。

  • スケジュールに従って実行されますが、オンデマンドで実行することもできます。
  • ワークフローは、従業員が 営業 部門に追加されたときに実行されます。
  • このワークフローで実行される組み込みタスクは 1 つだけです。従業員の上司に移動を通知するメールを送信します。 このタスクは、 taskDefinitionIdaab41899-9972-422a-9d97-f626014578b7 によってライフサイクル ワークフローで識別されます。
POST https://graph.microsoft.com/v1.0/identityGovernance/lifecycleWorkflows/workflows
Content-type: application/json

{
    "category": "mover",
    "description": "Configure mover tasks for a user moved to the Sales department.",
    "displayName": "Added to Sales department workflow",
    "isEnabled": true,
    "isSchedulingEnabled": true,
    "executionConditions": {
        "@odata.type": "#microsoft.graph.identityGovernance.triggerAndScopeBasedConditions",
        "scope": {
            "@odata.type": "#microsoft.graph.identityGovernance.ruleBasedSubjectSet",
            "rule": "(department eq 'Sales')"
        },
        "trigger": {
            "@odata.type": "#microsoft.graph.identityGovernance.attributeChangeTrigger",
            "triggerAttributes": [
                {
                    "name": "department"
                }
            ]
        }
    },
    "tasks": [
        {
            "continueOnError": false,
            "description": "Send email to moving employee's manager",
            "displayName": "Notify manager of move",
            "isEnabled": true,
            "taskDefinitionId": "aab41899-9972-422a-9d97-f626014578b7",
            "arguments": []
        }
    ]
}

応答

次の例は応答を示しています。

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

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#identityGovernance/lifecycleWorkflows/workflows/$entity",
    "category": "mover",
    "description": "Configure mover tasks for a user moved to the Sales department.",
    "displayName": "Added to Sales department workflow",
    "isEnabled": true,
    "isSchedulingEnabled": true,
    "lastModifiedDateTime": "2024-03-28T12:46:10.0505943Z",
    "createdDateTime": "2024-03-28T12:46:10.0505809Z",
    "deletedDateTime": null,
    "id": "2bb05c85-556a-429a-8c16-16f6be5ef880",
    "nextScheduleRunDateTime": "2024-03-28T13:37:08Z",
    "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.attributeChangeTrigger",
            "triggerAttributes": [
                {
                    "name": "department"
                }
            ]
        }
    }
}

ワークフローのスコープを確認する

ワークフローが作成されたら、ワークフロー ID を書き留め、ワークフローをテストするユーザーを 営業 部門に追加します。 15 分から 30 分後に、ワークフローの実行スコープを確認することで、ユーザーがワークフローを実行するためにキューに入っているかどうかを判断できます。 ユーザーがキューに入れてワークフローを実行するかどうかを判断するには、次の要求を使用します。

POST https://graph.microsoft.com/v1.0/identityGovernance/lifecycleWorkflows/workflows/2bb05c85-556a-429a-8c16-16f6be5ef880/executionScope

応答

次の例は応答を示しています。

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

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Collection(microsoft.graph.identityGovernance.userProcessingResult)",
    "@microsoft.graph.tips": "Use $select to choose only the properties your app needs, as this can lead to performance improvements. For example: GET identityGovernance/lifecycleWorkflows/workflows('<guid>')/executionScope?$select=completedDateTime,failedTasksCount",
    "value": [
        {
            "id": "2bb05c85-556a-429a-8c16-16f6be5ef880_1_2bb05c85-556a-429a-8c16-16f6be5ef880_638472334281668424_6324d383-5034-49dc-a62d-30d61e01b613",
            "completedDateTime": null,
            "failedTasksCount": 0,
            "processingStatus": "queued",
            "scheduledDateTime": "2024-03-28T14:37:08.1668424Z",
            "startedDateTime": null,
            "totalTasksCount": 1,
            "totalUnprocessedTasksCount": 1,
            "workflowExecutionType": "scheduled",
            "workflowVersion": 1,
            "subject": {
                "id": "6324d383-5034-49dc-a62d-30d61e01b613"
            }
        }
    ]
}

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

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

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

オプション 1: ユーザー レベルでワークフローのタスクを監視する

要求

次の例は要求を示しています。

GET https://graph.microsoft.com/v1.0/identityGovernance/lifecycleWorkflows/workflows/2bb05c85-556a-429a-8c16-16f6be5ef880/userProcessingResults

応答

次の例は応答を示しています。

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

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#identityGovernance/lifecycleWorkflows/workflows('2bb05c85-556a-429a-8c16-16f6be5ef880')/userProcessingResults",
    "@microsoft.graph.tips": "Use $select to choose only the properties your app needs, as this can lead to performance improvements. For example: GET identityGovernance/lifecycleWorkflows/workflows('<guid>')/userProcessingResults?$select=completedDateTime,failedTasksCount",
    "value": [
        {
            "id": "2bb05c85-556a-429a-8c16-16f6be5ef880_1_2bb05c85-556a-429a-8c16-16f6be5ef880_638470955486351520_6324d383-5034-49dc-a62d-30d61e01b613",
            "completedDateTime": "2024-03-27T00:19:22.5753749Z",
            "failedTasksCount": 1,
            "processingStatus": "completedWithErrors",
            "scheduledDateTime": "2024-03-27T00:19:08.635152Z",
            "startedDateTime": "2024-03-27T00:19:17.1696067Z",
            "totalTasksCount": 1,
            "totalUnprocessedTasksCount": 0,
            "workflowExecutionType": "onDemand",
            "workflowVersion": 1,
            "subject": {
                "id": "6324d383-5034-49dc-a62d-30d61e01b613"
            }
        }
    ]
}

オプション 2: 指定した期間内に、ワークフローのユーザー レベルの結果の集計概要を取得する

要求

次の例は要求を示しています。

GET https://graph.microsoft.com/v1.0/identityGovernance/lifecycleWorkflows/workflows/2bb05c85-556a-429a-8c16-16f6be5ef880/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": 2,
    "failedUsers": 2,
    "successfulUsers": 10,
    "totalTasks": 12,
    "totalUsers": 12
}