• PeopleConnect
  • RealIdentity
  • RealGroup
  • Blog
  • Über uns
  • Kontakt
  • Deutsch
    • Englisch
my-IAMmy-IAM
my-IAMmy-IAM
  • Demo buchen
  • Deutsch
    • Englisch

Löschung inaktiver Gastaccounts automatisieren

Juli 29, 2024 (Letztes Update) | Entra ID, my-IAM RealIdentity |

 

Die Verwaltung von Gastaccounts in Entra ID ist ein wichtiger Aspekt der Sicherheits- und Compliance-Richtlinien einer Organisation. Inaktive Gastaccounts stellen ein potenzielles Sicherheitsrisiko dar, da sie von unbefugten Benutzern missbraucht werden könnten. Um diese Risiken zu minimieren, ist es wichtig, inaktive Gastaccounts regelmäßig zu überprüfen und gegebenenfalls zu löschen.

Azure Automation Runbooks bieten eine automatisierte Lösung inaktiver Gastaccounts, um diese Aufgabe effizient und zuverlässig zu erledigen. In diesem Leitfaden richten wir ein Azure Automation Runbook ein, welches inaktive Gastaccounts nach 90 Tagen Inaktivität automatisch löscht.

Index

  • Vorteile der automatischen Löschung inaktiver Gastaccounts
  • Azure Automation Runbooks als Lösung
  • Anleitung zur Erstellung eines Azure Automation Runbooks 
    • Erstellen eines Azure Automation Kontos
    • Erstellen eines Runbooks 
    • Berechtigungen zuweisen 
    • Zusätzliche PowerShell Module installieren 
    • Geplante Aufgabe einrichten und testen
  • Fazit
  • my-IAM RealIdentity zur Bereitstellung von Identitäten jeder Art

Vorteile der automatischen Löschung inaktiver Gastaccounts

Erhöhte Sicherheit: Entfernen inaktiver Konten reduziert die Angriffsfläche für potenzielle Sicherheitsbedrohungen.

Verbesserte Verzeichnisverwaltung: Ein aufgeräumtes Verzeichnis erleichtert die Verwaltung und reduziert administrative Aufwände.

Kosteneinsparungen: Vermeidung unnötiger Lizenzkosten und Optimierung der Ressourcennutzung.

Azure Automation Runbooks als Lösung

Azure Automation Runbooks ermöglichen die Automatisierung von Verwaltungsaufgaben in Azure. Sie bieten eine robuste Plattform, um wiederkehrende Aufgaben, wie die Überwachung und Löschung inaktiver Gastaccounts, effizient zu automatisieren. Mit Runbooks können komplexe Workflows erstellt werden, die regelmäßig ausgeführt werden, um sicherzustellen, dass Richtlinien durchgesetzt werden.

Anleitung zur Erstellung eines Azure Automation Runbooks 

Erstellen eines Azure Automation Kontos

1. Am Azure-Portal anmelden unter https://portal.azure.com.

Anmeldung im Entra ID - Azure AD Portal - Löschung inaktiver Gastaccounts

2. Über „Ressource erstellen“ eine neue Ressourcengruppe für die Dienste erstellen.

Ressourcen erstellen im Microsoft Azure - inaktiver Gastaccounts Erstellen Sie eine Gruppe mit inaktiven GuestAccounts

3. Im nächsten Schritt erstellen wir ein Automation Konto, welches unser PowerShell Skript ausführen soll. Dazu gehen wir wieder über „Ressource Erstellen“ und suchen nach „Automation Account“  

Erstellen Sie eine automatisierte Gruppe mit inaktiven GuestAccounts. - Gastaccounts nach 90 Tagen löschen

4. Sicher stellen, dass bei der Erstellung des Automatisierungskontos die Option „Vom System zugewiesene verwaltete Identität“ aktiviert wurde.  Hinweis: Ich empfehle dringend, diese Option anstelle der bald auslaufenden Option „Ausführen als Konto“ zu verwenden. 

EntraIdentity - Automation

Erstellen eines Runbooks 

1. Öffnen wir das eben erstellte Automatisierungskontos, um ein neues Runbook zu erstellen. 

Runbooks erstellen im Entra ID

Runbooks erstellen im Entra ID mit inaktiven Gast-Accounts.

2. Haben wir unser Runbook erstellt, den unten stehenden Code mit dem Skript zur Identifizierung und Löschung inaktiver Gastaccounts einfügen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# Author: Dennis Rupp (dennis.rupp@firstattribute.com)
# Description: Script monitors Azure Active Directory guest users last login and remove them
# when login greather than x days
# Version: 1.0
# Created on: 18.12.2023
# Last Change: 18.12.2023
# Changed by: Dennis Rupp
# ===========================================================================================
# Change History:
#
# Release: | Date: | Author: | Changes:
# -----------+------------+---------------+-------------------------------------------------
# 1.0 | 18.12.2023 | D. Rupp | Creation
 
$inactiveDays = 90
$inactiveDate = (Get-Date).AddDays(-$inactiveDays)
 
$body = "{0} has been inactive for over $($inactiveDays) days. {0} will be remove now, last logon on: {1}"
$bodyNoLogin = "{0} has no login at now."
 
 
Write-Output ("[info] Starting watch inactive entraID guest users...")
Connect-MgGraph -Identity -NoWelcome
$guestsEntraID = Get-MgUser -ConsistencyLevel eventual -Count userCount -Filter "UserType eq 'Guest'" -Property Id, DisplayName, UserPrincipalName, UserType, SignInActivity -top 10000
 
Write-Output ("[info] " + ($guestsEntraID.Count).ToString() + " active users found in AD.")
foreach($guestEntraID in $guestsEntraID) {
Write-Debug ("[debug] Checking " + $guestEntraID.UserPrincipalName + " last login date...")
try {
if ($null -eq $guestEntraID.SignInActivity.LastSignInDateTime) {
Write-Warning -Message ("[warn] " + $bodyNoLogin -f $guestEntraID.DisplayName, $guestEntraID.SignInActivity.LastSignInDateTime)
continue
}
if (($guestEntraID.SignInActivity.LastSignInDateTime -lt $inactiveDate) -and ($guestEntraID.SignInActivity.LastNonInteractiveSignInDateTime -lt $inactiveDate)) {
Write-Output ("[info] " + $body -f $guestEntraID.DisplayName, $guestEntraID.SignInActivity.LastSignInDateTime)
Remove-MgUser -UserId $guestEntraID.Id
}
}
catch {
Write-Error -Message ("[error] Error at remove entraID guest $($guestEntraID.DisplayName), message: $($_.Exception.Message)")
}
}

3. Wurde der Code eingefügt, auf „Speichern“ und anschließend auf „Veröffentlichen“ klicken. 

Watch-InactiveGuestAccounts

Berechtigungen zuweisen 

Die verwaltete Identität benötigt Rechte, um, mit der Microsoft Graph API kommunizieren zu können. Hierfür gibt es keine GUI und die Befehle müssen mit PowerShell ausgeführt werden. 

In dem PowerShell Schnipsel müssen die Variablen $TenantID, $DisplayNameOfMSI und $PermissionName mit den aktuellen Werten ergänzt werden, um anschließend die Berechtigungen für AuditLog.Read.All und User.ReadWrite.All hinzufügen zu können. 

1
2
3
4
5
6
7
8
9
10
11
12
13
$TenantID="<your tenant id>"
$GraphAppId = "00000003-0000-0000-c000-000000000000"
$DisplayNameOfMSI="<name of managed identity>"
$PermissionName = "User.ReadWrite.All"
 
Install-Module AzureAD
Connect-AzureAD -TenantId $TenantID
 
$MSI = (Get-AzureADServicePrincipal -Filter "displayName eq '$DisplayNameOfMSI'")
$GraphServicePrincipal = Get-AzureADServicePrincipal -Filter "appId eq '$GraphAppId'"
$AppRole = $GraphServicePrincipal.AppRoles | Where-Object {$_.Value -eq $PermissionName -and $_.AllowedMemberTypes -contains "Application"}
 
New-AzureAdServiceAppRoleAssignment -ObjectId $MSI.ObjectId -PrincipalId $MSI.ObjectId -ResourceId $GraphServicePrincipal.ObjectId -Id $AppRole.Id

 

Zusätzliche PowerShell Module installieren 

Damit die verwendeten Module geladen werden, müssen wir diese in unserem Automation Account importieren. 

  1. Navigieren zum Automatisierungskonto und unter dem Menüpunkt „Module“ auf „Ein Modul hinzufügen“ klicken.

Zusätzliche PowerShell Module installieren 

Hier wählen wir folgende Module aus der PS Gallery aus:

  • Microsoft.Graph.Authentication
  • Microsoft.Graph.Users

Zusätzliche PowerShell Module installieren Geplante Aufgabe einrichten und testen

Wenn alle Schritte durchgeführt sind, müssen wir noch einen Timer einstellen und das Runbook testen für die automatische Löschung inaktiver Gastaccounts.

Dazu wählen wir wieder unser Runbook aus und erstellen einen neuen Timer. In unserem Fall führen wir das Skript täglich aus.

Geplante Aufgabe einrichten und Testen

Nachdem wir den Timer eingestellt haben, starten wir das Runbook in der Übersichtsseite, dort können wir auch die Logeinträge einsehen, die unser Skript erstellt hat.

Logeinträge inaktiver Gastaccount einsehen. - Löschung inaktiver Gastaccounts

Logeinträge einsehen

Fazit

Die Automatisierung der Löschung inaktiver Gastaccounts mithilfe von Azure Automation Runbooks stellt sicher, dass unser Verzeichnis stets aktuell und sicher bleibt. Durch die regelmäßige Überprüfung und Bereinigung des Verzeichnisses können potenzielle Sicherheitslücken geschlossen und administrative Aufwände reduziert werden. Azure Automation bietet hierbei eine flexible und skalierbare Lösung, die sich nahtlos in unsere bestehenden Arbeitsabläufe integrieren lässt.

my-IAM RealIdentity zur Bereitstellung von Identitäten jeder Art

Unser Cloud-Service my-IAM RealIdentity ermöglicht ein verteiltes Identitätsmanagement:

RealIdentity sammelt die Identitätsdaten aus den verschiedensten Quellsystemen, sortiert, kombiniert, bereinigt und aktualisiert die Daten und
stellt sie für Anwendungen jeglicher Art zur Verfügung. Demzufolge nutzen Unternehmen RealIdentity als Hauptquelle für ihre Identitätsdaten, die sie in externen Anwendungen benötigen.

Sie können unser Team auch telefonisch erreichen, unter
+49 8196 998 4330.

Artikel erstellt am: 23.07.2024
Tags: Azure Automation RunbooksLöschung inaktiver Gastaccounts automatisierenPowerShell
Teilen

Wissen

Neueste Beiträge

  • Dateiberechtigungen in SharePoint kontrolliert managen
  • Post Merger Integration: IT-Herausforderungen erfolgreich lösen
  • Security Copilot in Entra ID: Best Practices für Administratoren
  • Unterschied zwischen Entra ID Sicherheitsgruppen und M365 Gruppen – und wann man sie einsetzt
  • Microsoft 365 Personensuche verbessern? So geht’s!

Kategorien

  • Entra ID
  • Microsoft Teams
  • my-IAM PeopleConnect
  • my-IAM RealGroup
  • my-IAM RealIdentity
  • News
  • Software

my-IAM PeopleConnect


PeopleConnect entdecken

Kontakt

  • FirstAttribute AG
  • Am Büchele 18, 86928 Hofstetten, Germany
  • +49 8196 998 4330
  • https://my-iam.com

Themen

  • Impressum
  • Datenschutzerklärung
  • Kontakt

News

  • Dateiberechtigungen in SharePoint kontrolliert managen
  • Post Merger Integration: IT-Herausforderungen erfolgreich lösen
  • Security Copilot in Entra ID: Best Practices für Administratoren
  • Unterschied zwischen Entra ID Sicherheitsgruppen und M365 Gruppen – und wann man sie einsetzt
  • Microsoft 365 Personensuche verbessern? So geht’s!

© 2025 · FirstAttribute AG.

Prev Next