Share via


Automatisieren von Offboardingaufgaben für Mitarbeiter nach dem letzten Arbeitstag mithilfe von Lebenszyklus-Workflows-APIs

Dieses Tutorial enthält schrittweise Anleitungen zum Konfigurieren von Offboardingaufgaben für Mitarbeiter nach dem letzten Arbeitstag mithilfe von Lebenszyklus-Workflows-APIs. In diesem Szenario ist die Kündigung des Mitarbeiters geplant, möglicherweise mit einer Kündigungsfrist. Informationen zu einem ungeplanten Beendigungsszenario in Echtzeit finden Sie unter Ausführen von Offboardingaufgaben für Mitarbeiter am letzten Arbeitstag mithilfe von Lebenszyklus-Workflows-APIs .

In diesem Tutorial wird Folgendes vermittelt:

  • Konfigurieren Sie einen Lebenszyklusworkflow, um Tage nach dem letzten Arbeitstag nach Mitarbeitern in einer bestimmten Abteilung zu suchen.
  • Konfigurieren Sie eine Aufgabe, um die folgenden Aufgaben nacheinander auszuführen:
    • Entfernen aller Lizenzen für Benutzer
    • Entfernen eines Benutzers aus allen Teams
    • Benutzerkonto löschen
  • Ü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 ein Testbenutzerkonto, das Sie verwenden, um einen Mitarbeiter darzustellen, der Ihre organization verlässt. Dieses Testbenutzerkonto wird gelöscht, wenn der Workflow ausgeführt wird. Weisen Sie dem Testbenutzerkonto Lizenzen und Teams-Mitgliedschaften zu.

Erstellen eines Abgängerworkflows

Anforderung

Die folgende Anforderung erstellt einen Offboardingworkflow mit den folgenden Einstellungen:

  • Es kann bei Bedarf ausgeführt werden, aber nicht nach Zeitplan. In diesem Schritt können wir den Workflow mithilfe des Kontos des Testbenutzers überprüfen. Der Workflow wird so aktualisiert, dass er später in diesem Tutorial planmäßig ausgeführt wird.
  • Der Workflow wird sieben Tage nach dem EmployeeLeaveDateTime des Mitarbeiters ausgeführt, und wenn er sich in der Abteilung "Marketing" befindet.
  • Drei Workflowtasks können nacheinander ausgeführt werden: Der Benutzer wird alle Lizenzen nicht zugewiesen, dann aus allen Teams entfernt, und dann wird sein Benutzerkonto gelöscht.
POST https://graph.microsoft.com/v1.0/identityGovernance/LifecycleWorkflows/workflows
Content-type: application/json

{
    "category": "leaver",
    "displayName": "Post-Offboarding of an employee",
    "description": "Configure offboarding tasks for employees after their last day of work",
    "isEnabled": true,
    "isSchedulingEnabled": false,
    "executionConditions": {
        "@odata.type": "#microsoft.graph.identityGovernance.triggerAndScopeBasedConditions",
        "scope": {
            "@odata.type": "#microsoft.graph.identityGovernance.ruleBasedSubjectSet",
            "rule": "department eq 'Marketing'"
        },
        "trigger": {
            "@odata.type": "#microsoft.graph.identityGovernance.timeBasedAttributeTrigger",
            "timeBasedAttribute": "employeeLeaveDateTime",
            "offsetInDays": 7
        }
    },
    "tasks": [
        {
            "category": "leaver",
            "continueOnError": false,
            "description": "Remove all licenses assigned to the user",
            "displayName": "Remove all licenses for user",
            "executionSequence": 1,
            "isEnabled": true,
            "taskDefinitionId": "8fa97d28-3e52-4985-b3a9-a1126f9b8b4e",
            "arguments": []
        },
        {
            "category": "leaver",
            "continueOnError": false,
            "description": "Remove user from all Teams memberships",
            "displayName": "Remove user from all Teams",
            "executionSequence": 2,
            "isEnabled": true,
            "taskDefinitionId": "81f7b200-2816-4b3b-8c5d-dc556f07b024",
            "arguments": []
        },
        {
            "category": "leaver",
            "continueOnError": false,
            "description": "Delete user account in Azure AD",
            "displayName": "Delete User Account",
            "executionSequence": 3,
            "isEnabled": true,
            "taskDefinitionId": "8d18588d-9ad3-4c0f-99d0-ec215f0e3dff",
            "arguments": []
        }
    ]
}

Antwort

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

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#identityGovernance/lifecycleWorkflows/workflows/$entity",
    "category": "leaver",
    "description": "Configure offboarding tasks for employees after their last day of work",
    "displayName": "Post-Offboarding of an employee",
    "lastModifiedDateTime": "2024-03-03T18:29:10.8412536Z",
    "createdDateTime": "2024-03-03T18:29:10.8412352Z",
    "deletedDateTime": null,
    "id": "15239232-66ed-445b-8292-2f5bbb2eb833",
    "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 'Marketing'"
        },
        "trigger": {
            "@odata.type": "#microsoft.graph.identityGovernance.timeBasedAttributeTrigger",
            "timeBasedAttribute": "employeeLeaveDateTime",
            "offsetInDays": 7
        }
    }
}

Ausführen des Workflows

Da die Ausführung des Workflows nicht geplant ist, muss er bei Bedarf manuell ausgeführt werden. In der folgenden Anforderung wird der Benutzer, der das Ziel des Workflows ist, durch die ID df744d9e-2148-4922-88a8-633896c1e929identifiziert.

Wenn Sie einen Workflow bei Bedarf ausführen, werden die Aufgaben unabhängig davon ausgeführt, ob der Benutzerzustand mit dem Bereich übereinstimmt und die Ausführungsbedingungen auslösen. Selbst wenn sich der Benutzer nicht in der Abteilung "Marketing" befindet oder sein employeeLeaveDateTime auf nullfestgelegt ist, führt dieser Befehl weiterhin die Aufgaben aus, die im Workflow für den Benutzer definiert sind.

Die Anforderung gibt einen 204 No Content Antwortcode zurück.

POST https://graph.microsoft.com/v1.0/identityGovernance/LifecycleWorkflows/workflows/15239232-66ed-445b-8292-2f5bbb2eb833/activate

{
    "subjects": [
        {
            "id": "df744d9e-2148-4922-88a8-633896c1e929"
        }
    ]
}

Überprüfen von Aufgaben und Workflow-status

Sie können jederzeit die status der Workflows und 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

GET https://graph.microsoft.com/v1.0/identityGovernance/LifecycleWorkflows/workflows/15239232-66ed-445b-8292-2f5bbb2eb833/userProcessingResults

Antwort

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

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#identityGovernance/lifecycleWorkflows/workflows('15239232-66ed-445b-8292-2f5bbb2eb833')/userProcessingResults",
    "value": [
        {
            "id": "40efc576-840f-47d0-ab95-5abca800f8a2",
            "completedDateTime": "2024-03-03T18:31:00.3581066Z",
            "failedTasksCount": 0,
            "processingStatus": "completed",
            "scheduledDateTime": "2024-03-03T18:30:43.154495Z",
            "startedDateTime": "2024-03-03T18:30:46.9357178Z",
            "totalTasksCount": 3,
            "totalUnprocessedTasksCount": 0,
            "workflowExecutionType": "onDemand",
            "workflowVersion": 1,
            "subject": {
                "id": "df744d9e-2148-4922-88a8-633896c1e929"
            }
        }
    ]
}

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

Anforderung

GET https://graph.microsoft.com/v1.0/identityGovernance/LifecycleWorkflows/workflows/15239232-66ed-445b-8292-2f5bbb2eb833/userProcessingResults/summary(startDateTime=2024-03-01T00:00:00Z,endDateTime=2024-03-30T00:00:00Z)

Antwort

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": 3,
    "totalUsers": 1
}

Option 3: Abrufen des detaillierten Protokolls aller Aufgaben, die für einen bestimmten Benutzer im Workflow ausgeführt wurden

Anforderung

GET https://graph.microsoft.com/v1.0/identityGovernance/LifecycleWorkflows/workflows/15239232-66ed-445b-8292-2f5bbb2eb833/userProcessingResults/40efc576-840f-47d0-ab95-5abca800f8a2/taskProcessingResults

Antwort

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

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#identityGovernance/lifecycleWorkflows/workflows('15239232-66ed-445b-8292-2f5bbb2eb833')/userProcessingResults('40efc576-840f-47d0-ab95-5abca800f8a2')/taskProcessingResults",
    "value": [
        {
            "completedDateTime": "2024-03-03T18:30:50.483365Z",
            "createdDateTime": "2024-03-03T18:30:47.6125438Z",
            "id": "78650318-7238-4e7e-852f-2c36cbeff340",
            "processingStatus": "completed",
            "startedDateTime": "2024-03-03T18:30:50.0549446Z",
            "failureReason": null,
            "subject": {
                "id": "df744d9e-2148-4922-88a8-633896c1e929"
            },
            "task": {
                "category": "leaver",
                "continueOnError": false,
                "description": "Remove all licenses assigned to the user",
                "displayName": "Remove all licenses for user",
                "executionSequence": 1,
                "id": "f71246b2-269c-4ba6-ab8e-afc1a05114cb",
                "isEnabled": true,
                "taskDefinitionId": "8fa97d28-3e52-4985-b3a9-a1126f9b8b4e",
                "arguments": []
            }
        },
        {
            "completedDateTime": "2024-03-03T18:30:57.6034021Z",
            "createdDateTime": "2024-03-03T18:30:47.8824313Z",
            "id": "3d2e459d-5614-42e4-952b-0e917b5f6646",
            "processingStatus": "completed",
            "startedDateTime": "2024-03-03T18:30:53.6770279Z",
            "failureReason": null,
            "subject": {
                "id": "df744d9e-2148-4922-88a8-633896c1e929"
            },
            "task": {
                "category": "leaver",
                "continueOnError": false,
                "description": "Remove user from all Teams memberships",
                "displayName": "Remove user from all Teams",
                "executionSequence": 2,
                "id": "ed545f03-e8d8-45fb-9cbd-15c937f2a866",
                "isEnabled": true,
                "taskDefinitionId": "81f7b200-2816-4b3b-8c5d-dc556f07b024",
                "arguments": []
            }
        },
        {
            "completedDateTime": "2024-03-03T18:31:00.0894515Z",
            "createdDateTime": "2024-03-03T18:30:48.0004721Z",
            "id": "03359fa6-c63c-4573-92c2-4c9518ca98aa",
            "processingStatus": "completed",
            "startedDateTime": "2024-03-03T18:30:59.6195169Z",
            "failureReason": null,
            "subject": {
                "id": "df744d9e-2148-4922-88a8-633896c1e929"
            },
            "task": {
                "category": "leaver",
                "continueOnError": false,
                "description": "Delete user account in Azure AD",
                "displayName": "Delete User Account",
                "executionSequence": 3,
                "id": "b4cefaa0-6ceb-461d-bbf5-ec69246463fd",
                "isEnabled": true,
                "taskDefinitionId": "8d18588d-9ad3-4c0f-99d0-ec215f0e3dff",
                "arguments": []
            }
        }
    ]
}

[Optional] Planen der automatischen Ausführung des Workflows

Nachdem Sie Ihren Workflow bei Bedarf ausgeführt und überprüft haben, ob alles einwandfrei funktioniert, sollten Sie den Workflow aktivieren, damit er automatisch nach einem vom Mandanten definierten Zeitplan ausgeführt werden kann. Führen Sie die folgende Anforderung aus.

Die Anforderung gibt einen 204 No Content Antwortcode zurück. Wenn ein Workflow geplant ist, überprüft die Lifecycle Workflows-Engine alle drei Stunden, ob Benutzer in der zugehörigen Ausführungsbedingung vorhanden sind, und führt die konfigurierten Aufgaben für diese Benutzer aus. Sie können diese Wiederholung zwischen einer Stunde und 24 Stunden anpassen.

PATCH https://graph.microsoft.com/v1.0/identityGovernance/lifecycleWorkflows/workflows/15239232-66ed-445b-8292-2f5bbb2eb833
Content-type: application/json

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