Active Directory Gruppenverwaltung mit Self-Service für Mitgliedschaften

Active Directory Gruppenverwaltung klingt nach Designarbeit, nach Gruppenbereichen, Verschachtelung und Namenskonventionen. In der Praxis ist es ein täglicher Strom kleiner Anfragen, eine Person in eine Gruppe aufzunehmen oder zu entfernen, und jede wartet auf einen Administrator, der das Team nicht kennt. Die eingebauten Wege zum Delegieren sind zu weit gefasst oder zu blind.

Dieser Artikel zeigt das Gruppenmodell, die PowerShell hinter einer Mitgliedschaftsänderung und wie au2mator Teamleiter anfragen und Owner freigeben lässt, ohne AD-Rechte.

Was Active Directory Gruppenverwaltung umfasst, von Gruppenbereichen bis zur täglichen Anfrage

Active Directory Gruppenverwaltung heißt im Kern, zu entscheiden, wer zu welcher Gruppe gehört. Über Gruppen vergibt Active Directory (AD) fast alles, von Berechtigungen auf Dateifreigaben und Anwendungsrollen über Gruppenrichtlinienfilter bis hin zu Microsoft-365-Lizenzen via Microsoft Entra Connect. Microsoft unterscheidet Sicherheitsgruppen, die in Zugriffssteuerungslisten (ACLs) stehen, von Verteilergruppen, die E-Mails verteilen. Außerdem gibt es drei Gruppenbereiche (domänenlokal, global und universal), wie die Referenz zu Sicherheitsgruppen auf Microsoft Learn erklärt. Domänenlokale Gruppen halten Berechtigungen in ihrer eigenen Domäne, globale Gruppen sammeln die Personen einer Domäne, und universale Gruppen erstrecken sich über die ganze Gesamtstruktur.

Gut geführte Verzeichnisse folgen dem AGDLP-Muster (Accounts, globale Gruppen, domänenlokale Gruppen, Permissions) aus der Grafik. Konten kommen in globale Gruppen, die eine Rolle beschreiben, diese kommen in domänenlokale Gruppen, die den Zugriff auf eine Ressource beschreiben, und nur die domänenlokale Gruppe steht auf der Ressource. Was sich jeden Tag ändert, ist die Mitgliedschaft der globalen Gruppen. Ein neuer Kollege braucht die Finance-Freigabe, ein Projekt braucht zwei externe Mitarbeiter in der Gruppe für das Customer Relationship Management (CRM), jemand wechselt das Team. In au2mator ist diese Anfrage ein Formular, das der Teamleiter ausfüllt, kein Ticket.

Das AGDLP-Muster für Active-Directory-Gruppen und die Stelle, an der Mitgliedschaftsanfragen entstehenActive Directory Gruppenverwaltung im AGDLP-Muster1. KontenBenutzer und Computer.Bekommen nie Rechte direktauf einer Freigabe oder App2. Globale GruppeBündelt Personen nach Rolle,Sales-Team oder Finance-Ctrl,Mitglieder wechseln oft3. Domänenlokale GruppeBündelt Rechte einer Ressource,Share-Finance-RW oder App-CRM,enthält die globalen Gruppen4. Berechtigung auf der RessourceDie ACL auf der Freigabe, die App-Rolleoder der Gruppenrichtlinienfilter zeigtauf die domänenlokale Gruppe. Einmalgesetzt, fast nie wieder angefasstHier entsteht die AnfrageFast jedes Ticket ändert Schritt 2.Ein Teamleiter will eine Person ineine globale Gruppe oder heraus. Inau2mator läuft das ohne Admin
Die Schritte eins, drei und vier ändern sich selten. Schritt zwei ändert sich täglich, und ein Administrator sollte ihn nicht von Hand anfassen müssen.

Warum Anfragen zu Gruppenmitgliedschaften weiter die Ticket-Warteschlange füllen

Active Directory bringt drei Wege mit, damit jemand außer einem Domänenadministrator eine Mitgliedschaft ändern kann, und jeder bleibt hinter dem zurück, was ein Teamleiter braucht. Der erste ist die eingebaute Gruppe Account Operators, die die meisten Benutzer und Gruppen in der Domäne anlegen und ändern kann. Microsoft liefert sie ohne Standardmitglieder aus, und die Referenz zu Sicherheitsgruppen stuft sie als nicht sicher für die Delegierung an Nicht-Dienstadministratoren ein. Ein Teamleiter, der eine Person in eine Gruppe aufnehmen will, gehört dort nicht hinein.

Der zweite ist die Registerkarte Verwaltet von, auf der der Haken Manager kann Mitgliederliste aktualisieren dem Manager Schreibzugriff auf das Attribut member gibt. Das funktioniert, nennt aber nur einen einzigen Manager pro Gruppe, einen Benutzer oder eine Gruppe, ohne Freigabeschritt und ohne Feld, das festhält, warum jemand aufgenommen wurde. Der dritte ist der Assistent Objektverwaltung zuweisen mit der Aufgabe Gruppenmitgliedschaft ändern, angewendet auf eine Organisationseinheit (OU), den AD-Container, in dem die Gruppen liegen. Das skaliert besser, gibt aber weiterhin ein Administratorwerkzeug in die Hände von Nicht-Administratoren, und jede Änderung ist bestenfalls eine Zeile im Sicherheitsereignisprotokoll, ohne Grund, Ticketnummer oder Enddatum.

Das Ergebnis kennst du. Mitgliedschaften werden schnell hinzugefügt und nie entfernt, Gruppen behalten Owner, die das Unternehmen längst verlassen haben, verschachtelte Gruppen gewähren Zugriffe, die niemand mehr nachvollziehen kann, und die vierteljährliche Zugriffsprüfung wird zum Ausgrabungsprojekt. Eine Mitgliedschaftsänderung ist klein, aber sie ist eine Zugriffsentscheidung, und die braucht ein Protokoll darüber, wer gefragt hat, wer freigegeben hat und bis wann. au2mator führt genau dieses Protokoll für jede Änderung, die darüber läuft.


Vier Wege, Gruppenmitgliedschaften im Active Directory zu verwalten

AnsatzWer das AD-Recht hältFreigabe und ProtokollWorauf du achten musst
Ticket an die IT, der Administrator bearbeitet die GruppeDomänen-Admins, Account Operators oder ein OU-Recht aus dem Assistenten Objektverwaltung zuweisenWas immer im Ticket stehtJede Änderung wartet, Entfernungen werden vergessen, der Admin kennt das Team nicht
Verwaltet von mit Manager kann Mitgliederliste aktualisierenEin Manager pro Gruppe, direkt auf dem Attribut memberKeine, der Manager ändert in Active Directory-Benutzer und -ComputerKeine Freigabe, kein Grund, kein Enddatum, ein Prinzipal pro Gruppe
Dein Script plus das au2mator Self-Service PortalNiemand im Team. Ein Service Account hält Schreibrechte auf den Self-Service-Gruppen und führt das Script auf einer der drei Engines aus, die au2mator unterstütztEin Approver oder eine Approver-Gruppe pro Service, Gültigkeit in Tagen als Formularfeld, ein Audit-Eintrag pro ÄnderungDu legst weiterhin fest, welche Gruppen Self-Service sind und wem sie gehören
Gruppenverwaltungs-Suiten und Identity-Governance-Tools (IGA)Der Service Account der SuiteEingebaute Workflows und AttestierungskampagnenEine weitere Konsole, Lizenz pro User, oft auf Konzerne mit Tausenden Gruppen ausgelegt

In der dritten Zeile stellt die Person die Anfrage, die das Team kennt, der von dir gesetzte Approver entscheidet, niemand außerhalb der IT hält ein AD-Recht, und es gibt keine zweite Konsole. Das Script, das die Arbeit auf PowerShell, Azure Automation oder System Center Orchestrator erledigt, ist dasselbe, das deine Administratoren heute schon ausführen.


Die PowerShell hinter einer Mitgliedschaftsänderung

Eine Mitgliedschaftsänderung besteht aus einer Handvoll Cmdlets des ActiveDirectory-Moduls. Get-ADGroup findet die Gruppe und ihren Owner in ManagedBy, Add-ADGroupMember und Remove-ADGroupMember ändern die Mitgliedschaft, Get-ADGroupMember listet sie auf. Der interessante Parameter ist MemberTimeToLive. Mit ihm trägt die Mitgliedschaft ein Ablaufdatum, und Active Directory selbst entfernt das Mitglied, wenn die Zeit um ist. MemberTimeToLive braucht eine Gesamtstrukturfunktionsebene ab Windows Server 2016 und das optionale Feature Privileged Access Management (PAM), das du einmal pro Gesamtstruktur mit Enable-ADOptionalFeature aktivierst. Wie der AD-Papierkorb lässt es sich nicht wieder abschalten, also stimme das mit dem Verantwortlichen für die Gesamtstruktur ab. Ab dann begrenzt ein Domänencontroller auch die Gültigkeitsdauer des Kerberos-Tickets eines Users auf die kürzeste verbleibende Mitgliedschaft, und genau das lässt kurze Ablaufzeiten wirken. Wenn deine Gesamtstruktur noch nicht so weit ist, erledigt eine geplante Entfernung am Enddatum dieselbe Aufgabe. In dem Fall lässt du den MemberTimeToLive-Zweig weg und speicherst das Enddatum in deinem Anfrageprotokoll.

param([string]$UserPrincipalName, [string]$GroupName, [string]$Action, [int]$DaysValid, [string]$TicketId)
$ErrorActionPreference = 'Stop'

# Laeuft auf deiner Engine als der Service Account, der nur auf der Self-Service-OU Schreibrechte hat
$selfServiceOU = 'OU=SelfService,OU=Groups,DC=contoso,DC=com'
$group = Get-ADGroup -Identity $GroupName -Properties ManagedBy, Member
if ($group.DistinguishedName -notlike "*,$selfServiceOU") { throw "$GroupName ist nicht fuer Self-Service freigegeben" }

$user = Get-ADUser -Filter { UserPrincipalName -eq $UserPrincipalName }
if (-not $user -or -not $user.Enabled) { throw "Kein aktiviertes Konto fuer $UserPrincipalName" }
$isMember = $group.Member -contains $user.DistinguishedName
if ($Action -eq 'Add' -and $isMember) { throw "$UserPrincipalName ist bereits Mitglied von $GroupName" }

switch ($Action) {
    'Add' {
        if ($DaysValid -gt 0) { Add-ADGroupMember -Identity $group -Members $user -MemberTimeToLive (New-TimeSpan -Days $DaysValid) }
        else { Add-ADGroupMember -Identity $group -Members $user }
    }
    'Remove' { Remove-ADGroupMember -Identity $group -Members $user -Confirm:$false }
    default  { throw "Unbekannte Aktion $Action" }
}
$until = if ($Action -eq 'Add' -and $DaysValid -gt 0) { ", laeuft in $DaysValid Tagen ab" } else { "" }
$owner = if ($group.ManagedBy) { (Get-ADObject $group.ManagedBy).Name } else { 'keiner' }
"Ticket $TicketId, $Action $UserPrincipalName in $GroupName$until, Owner $owner"

Das Script ist mit Absicht klein. Es lehnt jede Gruppe außerhalb der OU ab, die du für Self-Service freigegeben hast, sodass ein Tippfehler im Namen die Domänen-Admins nicht erreichen kann. Es lehnt deaktivierte Konten und doppelte Aufnahmen ab, und es gibt eine Zeile für das Anfrageprotokoll zurück. Der Service Account, der es ausführt, braucht Schreibrechte auf das Attribut member der Gruppen in dieser OU und nichts über den Lesezugriff hinaus, den jedes Domänenkonto hat. Das ist ein einziger Eintrag im Assistenten Objektverwaltung zuweisen statt einer Rolle für jeden Teamleiter.


Wie au2mator Teamleiter Gruppenmitgliedschaften ohne AD-Rechte verwalten lässt

au2mator ist ein Self-Service-Portal vor den Scripts auf deiner Engine. Der Teamleiter füllt ein Formular aus, der Approver, den du am Service hinterlegt hast, typischerweise der Owner dieser Gruppenfamilie, gibt frei, und ein Service Account führt das Script aus. Der Teamleiter meldet sich mit seinem normalen AD-Konto am Portal an und hält nie ein AD-Recht, der Approver öffnet nie eine Konsole, und das Script bleibt, wie es ist.

Wie eine Mitgliedschaftsanfrage vom Teamleiter ohne AD-Rechte bis ins Active Directory gelangtSo kommt au2mator ohne AD-Rechte von der Anfrage zur Mitgliedschaft1. TeamleiterÖffnet das Portal, wähltZur Gruppe hinzufügen, den User,die Gruppe und die Anzahl Tage2. au2mator-FormularFelder sind Script-Parameter,User-Suche aus dem AD, Gruppennur aus der Self-Service-OU3. FreigabeDer Approver am Service,zum Beispiel der Gruppen-Owner,gibt im Portal frei4. au2mator startet es auf der EngineEin Service Account mit Schreibrechten aufder Self-Service-OU führt dein unverändertesScript auf PowerShell, Azure Automation oderSystem Center Orchestrator aus.Add-ADGroupMember mit Ablaufzeit5. Audit-EintragWer welche Mitgliedschaft für wenbeantragt hat, wer freigegeben hat,wann sie abläuft, was das Script zurückgab.Der Teamleiter hatte nie ein AD-Recht.Dein Script kann es ans Ticketsystem melden
Der Teamleiter stellt die Anfrage, der Approver entscheidet, der Service Account führt das Script aus, au2mator führt das Protokoll.

au2mator liefert keinen Active-Directory-Connector mit und braucht auch keinen. Es bringt fertige PowerShell-Scripts mit, mit denen du starten kannst, oder du registrierst das Script, das du bereits hast. Deine Automatisierung bekommt einen Eingang, eine Freigabe und ein Protokoll.

So sieht ein Service für Gruppenmitgliedschaften in au2mator aus

Der Service ist das Mitgliedschafts-Script von oben, auf der Engine, auf der es bereits läuft. Das Formular zeigt nur, was der Anfragende entscheidet, typischerweise eine User-Suche aus dem Verzeichnis und ein Gruppen-Dropdown, das eine Abfrage füllt, die auf die Self-Service-OU oder ein Namenspräfix begrenzt ist. Dazu kommt ein optionales Feld für die Anzahl Tage, die die Mitgliedschaft gelten soll, das auf den Parameter DaysValid abgebildet wird, sowie eine Ticketnummer oder ein Grund für den Parameter TicketId. Die Berechtigungen legen fest, wer den Service sieht, während die Gruppenabfrage festlegt, welche Gruppen ein Anfragender auswählen kann. Die Freigabe wird pro Service gesetzt, ein Approver oder eine Approver-Gruppe, du baust also einen Service pro Team oder Gruppenfamilie mit dem jeweiligen Owner als Approver, oder keine Freigabe für Verteilergruppen. Für die Ausführung startet au2mator das Script über die API deiner Engine, und das Script meldet sich mit seinem eigenen Service Account an. Der Audit-Eintrag enthält Anfragenden, Approver, Zeitstempel, Formularwerte und Script-Ausgabe, und dein Script kann das Ergebnis an dein Ticketsystem melden. Wenn dein Helpdesk Passwort-Resets schon als au2mator-Services betreibt, ist die Gruppenmitgliedschaft meist der nächste Kandidat mit hohem Volumen.


Gruppen sauber halten durch Owner, ablaufende Mitgliedschaften und Reviews

Personen hinzuzufügen ist die leichte Hälfte. Gruppen werden unordentlich, weil niemand jemanden entfernt, also muss der Prozess das Entfernen zum Standard machen, und drei Gewohnheiten erledigen den Großteil der Arbeit. Jede Self-Service-Gruppe hat einen Owner unter ManagedBy, und dieser Owner, nicht die IT, ist der Approver am Service, der die Gruppe abdeckt. Jede Projektmitgliedschaft bekommt ein Enddatum, durchgesetzt über MemberTimeToLive oder eine geplante Entfernung, damit der Zugriff mit dem Projekt endet. Und jede Leaver-Anfrage entfernt alle direkten Mitgliedschaften in dem Lauf, der das Konto deaktiviert.

Der Lebenszyklus einer Gruppenmitgliedschaft von der Anfrage bis zu Ablauf und OffboardingLebenszyklus einer Gruppenmitgliedschaft, von Anfrage bis Entfernung1. AnfrageTeamleiter oder Helpdesk fragteine Mitgliedschaft an, mitGrund und Dauer2. Owner gibt freiDer Approver am Service, alsoder Owner, entscheidet. Kein Admin,der das Team nicht kennt3. Mitgliedschaft mit AblaufAdd-ADGroupMember mitMemberTimeToLive oder einegeplante Entfernung am Enddatum4. Review vor dem AblaufDer Owner bekommt die Liste der ablaufendenMitglieder und verlängert sie mit einerneuen Anfrage oder lässt sie auslaufen.Niemand bleibt aus Versehen in einer Gruppe5. Leaver entfernt allesDie Offboarding-Anfrage entferntjede direkte Mitgliedschaft in einem Lauf.Das Audit zeigt, wer worauf Zugriffhatte, und bis wann
Owner, Enddatum und Leaver-Lauf, drei Gewohnheiten, die vergessene Zugriffe aus dem Verzeichnis fernhalten.

Der Schritt, den die meisten Teams auslassen, ist der Review. Ein zweites, zeitgesteuertes Script listet mit Get-ADGroup -ShowMemberTimeToLive die Mitgliedschaften, die in den nächsten zwei Wochen ablaufen, und mailt sie dem Owner, der sie mit einer neuen Anfrage verlängert oder auslaufen lässt. Derselbe Mechanismus erledigt eine vierteljährliche Attestierung einer sensiblen Gruppe. Ablaufende Mitgliedschaften sind außerdem die Basis für Just-in-Time-Adminzugriff, den unser Artikel zur zeitbasierten Gruppenmitgliedschaft im Active Directory ausführlich behandelt.


FAQ: Active Directory Gruppenverwaltung

Was ist Active Directory Gruppenverwaltung?

Sie umfasst das Anlegen von Gruppen, die Wahl von Typ und Bereich, Benennung und Ownership und vor allem die Verwaltung der Mitglieder. Sicherheitsgruppen tragen Berechtigungen über Zugriffssteuerungslisten, Verteilergruppen verteilen E-Mails. Die meiste tägliche Arbeit sind Mitgliedschaftsänderungen in globalen Gruppen, und genau diesen Schritt lohnt es sich, mit einem Anfrageprozess zu automatisieren.

Wie delegiere ich die Verwaltung von Gruppenmitgliedschaften im Active Directory?

Du nimmst die Person in die Account Operators auf, was viel zu weit geht, oder trägst sie unter Verwaltet von ein und setzt den Haken Manager kann Mitgliederliste aktualisieren, was Schreibzugriff ohne Freigabe und ohne Protokoll gibt. Oder du nutzt den Assistenten Objektverwaltung zuweisen auf einer OU mit der Aufgabe Gruppenmitgliedschaft ändern. au2mator hält die Delegierung auf einem einzigen Service Account und gibt dem Teamleiter stattdessen ein Formular.

Kann ein Teamleiter User ohne Admin-Rechte zu einer AD-Gruppe hinzufügen?

Mit der Konsole nicht, weil jeder Weg über die Konsole ein Recht auf der Gruppe braucht. Im au2mator Self-Service Portal füllt der Teamleiter ein Formular aus, der am Service hinterlegte Approver, typischerweise der Gruppen-Owner, gibt frei, und ein Service Account führt dein unverändertes Add-ADGroupMember-Script auf PowerShell, Azure Automation oder System Center Orchestrator aus.

Wie füge ich einen User per PowerShell zu einer Gruppe hinzu?

Mit Add-ADGroupMember, der Gruppe als Identity und dem User als Members. Mit Remove-ADGroupMember nimmst du ihn wieder heraus, Get-ADGroupMember listet die Mitglieder. Mit MemberTimeToLive läuft die Mitgliedschaft von selbst ab, dafür brauchst du das optionale Feature Privileged Access Management und eine Gesamtstrukturfunktionsebene ab Windows Server 2016.

Was ist der Unterschied zwischen Sicherheitsgruppen und Verteilergruppen?

Sicherheitsgruppen lassen sich in Zugriffssteuerungslisten eintragen und vergeben damit Berechtigungen auf Freigaben, Anwendungen und Gruppenrichtlinien. Verteilergruppen sind E-Mail-aktivierte Listen ohne Sicherheitsfunktion, sie können nicht in ACLs stehen und keinen Zugriff gewähren. Beide haben einen Bereich, domänenlokal, global oder universal, der festlegt, woher die Mitglieder kommen und wo die Gruppe verwendet werden kann.

Wie verhindere ich Wildwuchs bei Active-Directory-Gruppen?

Gib jeder Gruppe einen Owner unter ManagedBy, nutze eine Namenskonvention, die Bereich und Zweck zeigt, setze ein Enddatum auf Projektmitgliedschaften, entferne Mitgliedschaften im Leaver-Lauf und prüfe sensible Gruppen regelmäßig mit dem Owner. Ein geplantes Script listet ablaufende Mitgliedschaften und mailt sie dem Owner, der sie mit einer neuen au2mator-Anfrage verlängert. So passiert das Entfernen standardmäßig und nicht aus dem Gedächtnis.


Fazit: Die Gruppenmitgliedschaft ist eine Entscheidung des Teams, keine Aufgabe des Administrators

Active Directory gibt dir das Gruppenmodell, die Cmdlets und sogar ein Ablaufdatum für Mitgliedschaften. Was es dir nicht gibt, ist ein Weg, auf dem die Leute, die das Team kennen, die Änderung ohne Administratorrechte vornehmen. Ein kleines Script setzt deine Regeln um, ein Service Account mit Schreibrechten auf einer OU führt es auf deiner Engine aus, und ein Formular davor lässt den Teamleiter fragen, den Approver entscheiden und das Portal das Protokoll führen.

Wenn du sehen willst, wie aus deinen Tickets zu Gruppenmitgliedschaften freigegebene Self-Service-Anfragen werden, buche ein 30-minütiges Gespräch mit Michael Seidl, Microsoft MVP und Gründer von au2mator, und bring die Gruppe mit, die niemand erklären kann.

Do more with au2mator!

Self-Service portal with three automation engines

Similar articles

Active Directory Gruppenverwaltung per Self-Service: Formular Zur Gruppe hinzufügen mit User, Gruppe, Bis und Grund im au2mator Self-Service Portal

Active Directory Gruppenverwaltung mit Self-Service für Mitgliedschaften

Active Directory Gruppenverwaltung klingt nach Designarbeit, nach Gruppenbereichen, Verschachtelung und Namenskonventionen. In der Praxis ist es ein täglicher Strom kleiner Anfragen, eine Person in eine ...

MFA Reset in Microsoft Entra ID als Self-Service-Request für den Helpdesk mit Identitätsprüfung, ohne Admin-Rechte

MFA Reset in Microsoft Entra ID sicher an den Helpdesk delegieren

Ein MFA Reset löscht die Multifaktor-Authentifizierungsmethoden eines Users, damit ein neues Handy registriert werden kann. In Microsoft Entra ID ist er ein tägliches Helpdesk-Ticket, ein ...

Microsoft 365 Lizenzverwaltung: Formular Lizenz zuweisen im au2mator Self-Service Portal mit den Aktionen Zuweisen, Ändern und Zurückholen

Microsoft 365 Lizenzverwaltung mit automatisierter Zuweisung und Rücknahme

Jede Microsoft 365 Lizenz wird irgendwann von Hand zugewiesen. Neuzugänge warten, Teamleiter öffnen Tickets für Power BI, Abgänge behalten ein E3, an das sich niemand ...

8 Wege zum Ruinieren deiner Azure Automation