Jeder kennt das Problem, ein Benutzer braucht „kurzfristig“ erweiterte Berechtigungen. Oftmals haben wir das, wenn externe Mitarbeiter auf Daten zugreifen oder Tätigkeiten durchführen müssen. Meist werden diese dann in eine AD Gruppe aufgenommen und erhalten darüber die entsprechenden Berechtigungen. Soweit so gut, natürlich wird irgendwann der entsprechende Account deaktiviert bzw. wurde gleich mit einem Verfallsdatum angelegt. In diesem Fall ist der Account zwar deaktiviert die Gruppenmitgliedschaft bleibt allerdings bestehen. Bei internen Mitarbeitern haben wir den Luxus nicht, hier laufen die Konten meist nur ab, wenn der Mitarbeiter das Unternehmen verlässt. Wir müssen also proaktiv die Berechtigungen bzw. Gruppenmitgliedschaften auflösen.
Die wenigsten Wissen allerdings, dass Microsoft seit dem Server 2016 dafür eine entsprechendes Active Directory Feature mit dem schönen Namen „Privileged Access Management“ hat.
Zeitgesteuerte Gruppenmitgliedschaft mit Privileged Access Management
Um das Feature zu nutzen, müssen wir es natürlich erst einmal aktivieren, da es standardmäßig von Microsoft nicht aktiviert ist. Aktiviert und verwaltet wird das Feature per PowerShell. Zuerst müssen wir allerdings verifizieren, ob das Feature bereits aktiviert ist. Das machen wir mit dem folgenden Kommando in einer administrativen Powershell Konsole:
Get-ADOptionalFeature -filter "name -eq 'privileged access management feature'"
Die Ausgabe ist relativ unspektakulär. Uns interessiert hier auch nur Enabled Scopes und der Required Forest Mode. Ist Enabled Scopes leer, dann ist das Feature noch deaktiviert.
DistinguishedName : CN=Privileged Access Management Feature,CN=Optional Features,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=licdemo,DC=local EnabledScopes : {} FeatureGUID : ecxxxxxx-ccxx-46xx-b4xx-07ffxxxxxxxx FeatureScope : {ForestOrConfigurationSet} IsDisableable : False Name : Privileged Access Management Feature ObjectClass : msDS-OptionalFeature ObjectGUID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx RequiredDomainMode : RequiredForestMode : Windows2016Forest
Wer jetzt noch Wissen möchte, welcher Domain Forest Mode in seiner Domäne verwendet wird, kann das mit dem folgenden Kommando überprüfen:
(Get-ADForest).ForestMode
Um das Feature nun zu aktivieren reicht das folgende Kommando:
Enable-ADOptionalFeature 'Privileged Access Management Feature' -Scope ForestOrConfigurationSet -Target testdomain.local
Natürlich muss testdomain.local noch durch euren eigenen Domain/Forest Namen ersetzt werden.
Verwenden von Privileged Access Management Feature
Um das Feature nun zu verwenden, müssen wir das CMDLet Add-ADGroupMember lediglich um einen weiteren Parameter (TimeToLive) ergänzen. Das folgende kleine Skript fügt den AD Benutzer testuser der AD Gruppe testgroup hinzu, allerdings nur für 10 Minuten. Nach Ablauf der Zeit wird der Benutzer automatisch wieder aus der Gruppe entfernt.
$User="testuser"
$Group="testgroup"
$ttl = New-TimeSpan -Minutes 10
Add-ADGroupMember -Identity $Group -Members $User -MemberTimeToLive $ttl
Neu ist hier lediglich das CMDLet New-Timespan welches wir in eine Variable packen und dem Add-ADGroupMember als weiteren Parameter übergeben.
Mit folgendem Kommando können wir auch überprüfen, wie lange eine solche Mitgliedschaft noch gültig ist.
Get-ADGroup $Group -Property member –ShowMemberTimeToLive
Im Parameter member sehen wir die TimeToLive in Sekunden. Nach Ablauf dieser Zeit sollte der Benutzer nicht mehr Mitglied der Gruppe sein.