Automatisieren von Mover-Aufgaben bei Auftragswechseln durch Mitarbeiter mithilfe der Microsoft Graph-Lebenszyklusworkflow-APIs

Dieses Tutorial enthält eine schritt-für-Schritt-Anleitung zum Automatisieren von Employee Mover-Aufgaben mithilfe von Lebenszyklus-Workflows-APIs in Microsoft Graph.

Screenshot des Szenarios für Lebenszyklusworkflows.

In diesem Tutorial wird Folgendes vermittelt:

  • Konfigurieren Sie einen Lebenszyklusworkflow, um zu überprüfen, ob Mitarbeiter in eine neue Abteilung wechseln.
  • Konfigurieren Sie eine Aufgabe, um den Manager über die verschobenen Benutzer per E-Mail zu benachrichtigen.
  • Überwachen Sie die status des Workflows und der zugehörigen Aufgaben.

Voraussetzungen

Für dieses Tutorial benötigen Sie die folgenden Ressourcen und Berechtigungen:

  • Dieses Feature erfordert Microsoft Entra ID Governance Lizenzen. Um die richtige Lizenz für Ihre Anforderungen zu finden, lesen Sie Microsoft Entra ID Governance Lizenzierungsgrundlagen.

  • Melden Sie sich bei einem API-Client wie Graph Explorer an, um Microsoft Graph mit einem Konto aufzurufen, das mindestens über die Rolle lebenszyklusadministrator Microsoft Entra verfügt.

  • Erteilen Sie sich die delegierte Microsoft Graph-Berechtigung LifecycleWorkflows.ReadWrite.All .

  • Erstellen Sie zwei Benutzerkonten, die in diesem Tutorial verwendet werden sollen: eines für den Mitarbeiter und ein weiteres für den Vorgesetzten, und lassen Sie die folgenden Einstellungen entsprechend konfigurieren.

    User-Eigenschaft Beschreibung Vorantreiben
    mail Benachrichtigt den Vorgesetzten, dass der Mitarbeiter in die Abteilung verschoben wurde. Sowohl der Vorgesetzte als auch der Mitarbeiter sollten über aktive Postfächer verfügen, um E-Mails zu empfangen. Mitarbeiter, Manager
    manager Dieses Attribut wird von der Workflowaufgabe verwendet. Mitarbeiter

Erstellen eines Mover-Workflows

Anforderung

Die folgende Anforderung erstellt einen Mover-Workflow mit den folgenden Einstellungen:

  • Sie wird nach Zeitplan ausgeführt, kann aber auch bei Bedarf ausgeführt werden.
  • Der Workflow wird ausgeführt, wenn der Vertriebsabteilung ein Mitarbeiter hinzugefügt wird.
  • In diesem Workflow wird nur eine integrierte Aufgabe ausgeführt: Um eine E-Mail an den Vorgesetzten des Mitarbeiters zu senden, um sie über die Verschiebung zu informieren. Diese Aufgabe wird in Lebenszyklusworkflows durch die taskDefinitionIdaab41899-9972-422a-9d97-f626014578b7 identifiziert.
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": []
        }
    ]
}

Antwort

Das folgende Beispiel zeigt die Antwort.

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

Überprüfen des Workflowumfangs

Nachdem der Workflow erstellt wurde, notieren Sie sich Ihre Workflow-ID, und fügen Sie dann den Benutzer, auf dem Sie den Workflow testen möchten, der Vertriebsabteilung hinzu. Nach 15 bis 30 Minuten können Sie ermitteln, ob der Benutzer in die Warteschlange gestellt wird, um den Workflow für den Workflow ausführen zu lassen, indem Sie den Ausführungsbereich Ihres Workflows überprüfen. Verwenden Sie die folgende Anforderung, um zu bestimmen, ob ein Benutzer in die Warteschlange gestellt wird, damit der Workflow für den Benutzer ausgeführt wird.

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

Antwort

Das folgende Beispiel zeigt die Antwort.

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

Überprüfen von Aufgaben und Workflow-status

Sie können jederzeit die status der Workflows und der zugehörigen Aufgaben auf drei Ebenen überwachen.

  • Überwachen sie Aufgaben auf Benutzerebene.
  • Überwachen Sie die aggregierte allgemeine Zusammenfassung der Ergebnisse auf Benutzerebene für einen Workflow innerhalb eines angegebenen Zeitraums.
  • Rufen Sie das detaillierte Protokoll aller Aufgaben ab, die für einen bestimmten Benutzer im Workflow ausgeführt wurden.

Option 1: Überwachen von Aufgaben für einen Workflow auf Benutzerebene

Anforderung

Das folgende Beispiel zeigt eine Anfrage.

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

Antwort

Das folgende Beispiel zeigt die Antwort.

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

Option 2: Abrufen der aggregierten allgemeinen Zusammenfassung der Ergebnisse auf Benutzerebene für einen Workflow innerhalb eines angegebenen Zeitraums

Anforderung

Das folgende Beispiel zeigt eine Anfrage.

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)

Antwort

Das folgende Beispiel zeigt die Antwort.

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
}