Privileged Access Management Feature: Zeitbegrenzte Gruppenzugehörigkeit

Mit Windows Server 2016 wurde ein neues Privileged Access Management Feature eingeführt, welches es ermöglicht Benutzer nur für einen gewissen Zeitraum einer Gruppe hinzuzufügen und nach Ablauf der Zeit automatisch wieder zu entfernen.

Nützlich ist dieses Feature, wenn einem Benutzer nur für einem gewissen Zeitraum administrative Rechte (Zum Beispiel Domain Admin) gegeben werden sollen. Ein anderer Anwendungsfall wäre die zeitbegrenzte Aufnahme in Exchange Verteilergruppen.

Das Feature ist allerdings nur verfügbar wenn das Gesamtstrukturfunktionslevel bereits auf “Windows Server 2016” angehoben wurde. Dies bedeutet konkret: Es dürfen und können keine Windows Server 2012 R2 Domain Controller mehr in Betrieb sein.

In diesem kleinen Beispiel ist das Gesamtstrukturfunktionslevel bereits auf Windows Server 2016 angehoben worden:

image

Das Feature welches die zeitbegrenzte Aufnahme in Gruppen ermöglicht, nennt sich “Privileged Access Management Feature”. Das Feature ist optional und muss zunächst aktiviert werden. Nachdem das Privileged Access Management Feature aktiviert wurde, kann es nicht wieder deaktiviert werden. Die Aktvierung erfolgt über folgenden Befehl:

Enable-ADOptionalFeature "Privileged Access Management Feature" -Scope ForestOrConfigurationSet -Target frankysweb.de

Privileged Access Management Feature

Nach der Aktivierung lassen sich Mitglieder zeitbegrenzt zu Gruppen hinzufügen. Der Typ der Gruppe ist nicht relevant, es kann sich hier um Sicherheit- sowie um Verteilergruppen handeln.

Im folgenden Beispiel wird der Benutzer “Frank” für die Zeitspanne von 5 Tagen zur Gruppe “Info” hinzugefügt:

$timespan = New-TimeSpan -Days 5
Get-ADGroup info | Add-ADGroupMember -Members frank -MemberTimeToLive $timespan

image

“New-TimeSpan” gibt dabei die Zeitspanne an, hier lassen sich auch Stunden (-Hours) oder ein Enddatum (-End) angeben:

image

Auf diese Weise ist es allerdings nicht möglich Start- und Enddatum anzugeben. Die Zeitspanne kann also nicht in der Zukunft liegen:

image

Die oben gezeigte Zeitspanne würde also beim Zuweisen eines Benutzers 24 Stunden gelten und nicht erst am 07.04.2017 starten, sondern sofort.

In der Konsole “Active Directory Benutzer und Computer” ist nicht erkenntlich, ob die Mitgliedschaft zeitlich begrenzt ist:

image

Mittels PowerShell lässt sich die verbleibende TTL allerdings anzeigen. Die Mitglieder und ggf. deren TTL wird hierbei in Sekunden angegeben:

Get-ADGroup info -Property member -ShowMemberTimeToLive

image

Der Benutzer “Frank” ist dieser Gruppe also noch 431974 Sekunden zugeordnet. Mit dem folgenden Script lässt sich die Ausgabe auch etwas übersichtlicher gestalten:

$GroupName = "info"
$GroupMembers = (Get-ADGroup $GroupName -Property member -ShowMemberTimeToLive).Member
$MemberList=@()
foreach ($GroupMember in $GroupMembers)
 {
  if ($GroupMember -match "TTL=")
   {
	$TTL = $GroupMember.split(",")[0].split("=")[1].replace(">","")
	$TTLDate = (Get-Date).AddSeconds($TTL)
	$MemberDN = $GroupMember.Split(">")[1].Replace(",CN","CN")
	$MemberList += new-object PSObject -property @{DN=$MemberDN;TTLDate="$TTLDate";TTL="$TTL"}
   }
   else
   {
    $TTL = "Unlimited"
	$TTLDate = "Unlimited"
	$MemberDN = $GroupMember
	$MemberList += new-object PSObject -property @{DN=$MemberDN;TTLDate="$TTLDate";TTL="$TTL"}
   }
 }
$MemberList

image

TTLDate ist Zeitpunkt an dem der Benutzer automatisch wieder entfernt wird. Die Zuordnung zur Gruppe wird dann entfernt und der Benutzer taucht dann auch nicht mehr als Mitglied der Gruppe auf:

image

Jetzt müssen nur noch alle Domain Controller aktualisiert werden…

2 thoughts on “Privileged Access Management Feature: Zeitbegrenzte Gruppenzugehörigkeit”

  1. Moin Franky,

    wie immer schön flüssig und übersichtlich geschrieben :-) Zu erwähnen wären vielleicht noch zwei Sachen:

    1. Im Gegensatz zu einer normalen Gruppenmitgliedschaft beeinflusst die Angabe der TTL auch das Erneuern des Kerberos-Tickets, so dass der User auch aus Sicht seiner lokalen Sitzung sofort aus der Gruppe rausfliegt und nicht im worst case erst 10 Stunden später wie es beim manuellen Entfernen der Fall wäre.

    2. Mit Domänen-Admins und anderen hochprivilegierten Gruppen funktioniert der Trick nicht. Die Mitglieder kann man zwar an der PowerShell sehen, die Gruppen kommen aber trotzdem nicht n das Ticken. Ich habe bisher aber keine definitive Info hierzu gefunden…

    Danke für die gute Arbeit!

    Evgenij

    Reply
  2. Sehr cooles Feature! Gibt es noch mehr Abhängigkeit wenn man die Gesamtstruktur auf 2016 anhebt? Z. B. Ältere clients?

    Mir ist bereits aufgefallen das es ab Server 2016 keine unix Attribute mehr gibt (zumindest keine gui mehr sowie die Login zum hoch zählen) . Da wir diese sehr viel verwenden habe ich das setzen der uids usw via Script gelöst.

    Reply

Leave a Comment