Delegierte Active Directory-Berechtigungen (Anzeigen / Entfernen)

Um diesen Abschnitt vollständig freizuschalten, müssen Sie sich anmelden

Die Active Directory (AD) -Delegierung ist ein wichtiger Bestandteil der IT-Infrastruktur vieler Unternehmen. Durch Delegieren der Verwaltung können Sie Benutzern oder Gruppen nur die Berechtigungen erteilen, die sie benötigen, ohne Benutzer zu privilegierten Gruppen hinzuzufügen (z. B. Domänenadministratoren, Kontobetreiber). Der einfachste Weg zur Delegierung ist die Verwendung des Assistenten zur Delegierung von Steuerelementen im Snap-in Microsoft Management Console (MMC) Active Directory-Benutzer und -Computer.

Obwohl der Assistent zum Delegieren von Steuerelementen eine einfache Möglichkeit zum Delegieren von Berechtigungen bietet, gibt es keinen entsprechenden Assistenten zum Entfernen delegierter Berechtigungen. Jemand bei Microsoft muss diesen Mangel bemerkt und ein Befehlszeilenprogramm namens Dsrevoke erstellt haben.exe, die die vom Assistenten für die Delegierung von Steuerelementen hinzugefügten Berechtigungseinträge entfernen kann.

Die Dsrevoke jedoch.das Programm weist zwei wichtige technische Einschränkungen auf, die im Microsoft-Artikel „Wenn Sie das Dsrevoke-Befehlszeilentool zum Melden von Berechtigungen für alle Organisationseinheiten in einer Windows Server 2003-basierten Domäne verwenden, gibt das Tool möglicherweise nicht alle Zugriffssteuerungseinträge zurück.“ Diese Einschränkungen sind:

  • Dsrevoke.sie können nur bis zu 1.000 OUs in einer einzigen Suche finden. Die vorgeschlagene Problemumgehung für diese Einschränkung besteht darin, die Suche des Programms in einer tiefer verschachtelten Organisationseinheit (OU) zu starten, um die Anzahl der Ergebnisse zu reduzieren.
  • Dsrevoke.exe schlägt fehl, wenn Organisationseinheiten einen Schrägstrich (/) in ihren Namen enthalten. Es gibt keine andere Problemumgehung für diese Einschränkung, als die fehlerhaften Organisationseinheiten umzubenennen.

Aus organisatorischen Gründen ist das Umbenennen der Organisationseinheiten zum Entfernen des Schrägstrichs normalerweise keine Option. Außerdem ist der Schrägstrich ein gültiges Zeichen in einem OU-Namen und Dsrevoke.exe sollte funktionieren, egal ob eine OU einen Schrägstrich in ihrem Namen enthält oder nicht. Außerdem war es zeitaufwändig, das Limit von 1.000 Einheiten in meiner Umgebung zu umgehen.

Ab den letzten Versionen von Windows, die Dsacls.das EXE-Programm bietet eine Möglichkeit, die vom Assistenten für die Delegierung von Steuerelementen hinzugefügten Berechtigungen zu entfernen. Obwohl es nicht fehlschlägt, wenn eine Organisationseinheit einen Schrägstrich in ihrem Namen enthält, Dsacls.exe kann Subcontainer nicht nach Berechtigungen wie Dsrevoke durchsuchen.exe tut es.

Dsrevoke.exe und Dsacls.exe kann eine Liste von Berechtigungen erzeugen, aber die Ausgabe ist sehr lang und technisch.

Wir müssen einige Hintergrundinformationen darüber haben, was passiert, wenn wir den Assistenten für die Delegierung von Steuerelementen verwenden, und einige grundlegende Windows-Sicherheitskonzepte behandeln.

Warum delegieren?

Stellen Sie sich vor, Sie sind Leiter eines großen Unternehmens mit mehreren Abteilungen: Finanzen, Personal, Vertrieb, oberes Management.

Wenn jeder Benutzer, der sein Passwort vergessen hat, den IT-Helpdesk anrufen müsste, würden Sie mit Anrufen überschwemmt.

Stattdessen können Sie Berechtigungen an den Leiter jeder Abteilung delegieren, damit er die Passwörter seines eigenen Teams zurücksetzen kann.

Ein weiterer klassischer Anwendungsfall für die Delegation ist die Möglichkeit für Mitarbeiter, E-Mails als einander zu senden, entweder ein gemeinsames Postfach oder ein PA E-Mail im Namen seines Chefs zu senden.

Jedem Domain-Administrator geben?

Sie haben vielleicht gedacht, lassen Sie uns jedem Abteilungsleiter Domänenadministratorberechtigungen erteilen, damit er die Kennwörter bei Bedarf zurücksetzen kann.

Während dies technisch wahr ist, wären sie dann in der Lage, alles zu tun, was Sie tun können, einschließlich des Zugriffs auf Benutzerdaten.

Geben Sie daher Nicht-IT-Benutzern die Rolle des Domänenadministrators, um die Verwaltungsaufgaben zu verringern: Dieser Ansatz kann zu mehreren Problemen führen.

Um die im Dialogfeld Erweiterte Sicherheitseinstellungen bereitgestellten Informationen zu verstehen, müssen Sie die folgenden Windows-Sicherheitskonzepte kennen: zugriffssteuerungsliste (ACL), Zugriffssteuerungseintrag (ACE), Treuhänder und Vererbung. Sie müssen diese Konzepte auch verstehen, um Remove-DSACE.ps1.

ACL: Es gibt zwei Arten von ACLs: diskretionäre ACLs (DACLs) und System-ACLs (SACLs). Eine DACL identifiziert die Konten, denen der Zugriff auf ein Objekt gestattet oder verweigert wird. Eine SACL beschreibt, wie ein Administrator Zugriffsversuche auf ein Objekt protokollieren möchte (z. B. Überwachung).

ASS: Eine ACL besteht aus Assen. Jeder ACE identifiziert einen Treuhänder und gibt den Zugriff des Treuhänders (zulassen, Verweigern oder Prüfen) auf das Objekt an. Der Assistent zum Delegieren von Steuerelementen fügt der DACL eines AD-Containers ACEs hinzu. Die vorherige Abbildung zeigt die DACL für die Organisationseinheit Alle Benutzer. In dieser Abbildung ist der Begriff Berechtigungseintrag gleichbedeutend mit ACE.

Treuhänder: Ein Treuhänder ist die Entität (ein Benutzer, eine Sicherheitsgruppe oder eine Anmeldesitzung), für die ein ACE gilt. Jedes ASS gilt für einen einzelnen Treuhänder. In Abbildung 5 ist der Begriff Auftraggeber gleichbedeutend mit Treuhänder. Abbildung 5 zeigt, dass der Gruppe zum Zurücksetzen des Kennworts zwei ASSe zugewiesen sind. Mit anderen Worten, die Gruppe zum Zurücksetzen des Kennworts ist der Treuhänder (Principal) für diese beiden ASSe.

Vererbung: Ein ASS kann direkt auf ein Objekt angewendet oder vom übergeordneten Objekt der Ressource geerbt werden. In der vorherigen Abbildung werden die beiden ASSe für die Organisationseinheit Alle Benutzer, die die Gruppe zum Zurücksetzen des Kennworts als Treuhänder enthalten, nicht vom übergeordneten Container geerbt (d. h. die Spalte Geerbt von lautet None), da sie vom Assistenten zum Delegieren von Steuerelementen direkt zur DACL hinzugefügt wurden.

Hinzufügen delegierter Berechtigungen mit dem Assistenten

Der Assistent zum Delegieren von Steuerelementen bietet eine einfache Möglichkeit zum Delegieren von Berechtigungen. Angenommen, Sie möchten, dass Mitglieder der Gruppe zum Zurücksetzen von Kennwörtern Kennwörter für Benutzer in der Organisationseinheit Alle Benutzer in Ihrer AD-Domäne zurücksetzen können. Dazu müssen Sie die folgenden Schritte ausführen:

Öffnen Sie die Active Directory-Konsole Benutzer und Computer, klicken Sie mit der rechten Maustaste auf die Organisationseinheit Alle Benutzer (oder eine beliebige Organisationseinheit), und wählen Sie Delegate Control (Steuerung delegieren), wie in Abbildung 1 dargestellt. Klicken Sie auf die Schaltfläche Weiter, um die Begrüßungsseite des Assistenten zu verlassen.

Delegierte Active Directory-Berechtigungen (Anzeigen/Entfernen)

Klicken Sie auf der Seite Benutzer oder Gruppen des Assistenten auf die Schaltfläche Hinzufügen.

Geben Sie im Dialogfeld Benutzer, Computer oder Gruppen auswählen den Namen der Gruppe ein (Kennwort zurücksetzen), klicken Sie auf die Schaltfläche Namen prüfen, um sicherzustellen, dass der Name der Gruppe korrekt ist, und klicken Sie auf OK, wie in der folgenden Abbildung dargestellt:

 Delegierte Active Directory-Berechtigungen (Anzeigen / Entfernen)

Nachdem Sie sichergestellt haben, dass der Name der Gruppe auf der Seite Benutzer oder Gruppen aufgeführt ist, klicken Sie auf Weiter, wie in der folgenden Abbildung dargestellt:

Delegierte Active Directory-Berechtigungen (Anzeigen/Entfernen)

Wählen Sie auf der Seite Zu delegierende Aufgaben die Option Benutzerkennwörter zurücksetzen und Kennwortänderung bei der nächsten Anmeldung erzwingen aus, und klicken Sie auf Weiter, wie in der folgenden Abbildung dargestellt:

 Delegierte Active Directory-Berechtigungen (Anzeigen / Entfernen)

Wenn Sie auf die Schaltfläche Fertig stellen klicken, fügt der Assistent zum Delegieren von Steuerelementen der Organisationseinheit Alle Benutzer die angeforderten Berechtigungen hinzu. Sie können die Auswirkungen der Delegierung anzeigen, indem Sie mit der rechten Maustaste auf die Organisationseinheit Alle Benutzer klicken, Eigenschaften auswählen und die Registerkarte Sicherheit auswählen. (Wenn die Registerkarte Sicherheit nicht sichtbar ist, aktivieren Sie die Option Erweiterte Funktionen im Menü Ansicht der Active Directory-Konsole Benutzer und Computer.)

Für eine detaillierte Ansicht können Sie auf die Schaltfläche Erweitert klicken. Die folgende Abbildung zeigt das Dialogfeld Erweiterte Sicherheitseinstellungen, das angezeigt wird.

Delegierte Active Directory-Berechtigungen (Anzeigen/Entfernen)

Berechtigung prüfen (mit PowerShell)

Nachdem wir die Delegierung entdeckt haben, fragen Sie sich möglicherweise, ob es Delegationen gibt, von denen Sie nichts wissen, entweder von früheren Mitarbeitern oder von böswilligen Administratoren.

Wir haben ein kurzes PowerShell-Skript zusammengestellt, das jeden delegierbaren Objekttyp durchsucht und die beiden gemeinsamen Berechtigungsdelegationen reset password und send-as (von Exchange) auflistet.

Hier ist ein Beispiellauf von einer Domäne:

Delegierte Active Directory-Berechtigungen (Anzeigen/Entfernen)

Und hier der Skriptcode:

###### Search common delegation targets$filter = "(|(objectClass=domain)(objectClass=organizationalUnit)(objectClass=group)(sAMAccountType=805306368)(objectCategory=Computer))" ###### Search just OUs and Groups#$filter = "(|(objectClass=organizationalUnit)(objectClass=group))"###### More filters can be found here: http://www.ldapexplorer.com/en/manual/109050000-famous-filters.htm###### Connect to DOMAINCONTROLLER using LDAP path, with USERNAME and PASSWORD#$bSearch = New-Object System.DirectoryServices.DirectoryEntry("LDAP://DOMAINCONTROLLER/LDAP"), "USERNAME", "PASSWORD") ###### Connect to DOMAINCONTROLLER using LDAP path$bSearch = New-Object System.DirectoryServices.DirectoryEntry("LDAP://DOMAINCONTROLLER/LDAP") $dSearch = New-Object System.DirectoryServices.DirectorySearcher($bSearch)$dSearch.SearchRoot = $bSearch$dSearch.PageSize = 1000$dSearch.Filter = $filter #comment out to look at all object types$dSearch.SearchScope = "Subtree"####### List of extended permissions available here: https://technet.microsoft.com/en-us/library/ff405676.aspx$extPerms = '00299570-246d-11d0-a768-00aa006e0529', 'ab721a54-1e2f-11d0-9819-00aa0040529b', '0'$results = @()foreach ($objResult in $dSearch.FindAll()){ $obj = $objResult.GetDirectoryEntry() Write-Host "Searching... " $obj.distinguishedName $permissions = $obj.PsBase.ObjectSecurity.GetAccessRules($true,$false,) $results += $permissions | Where-Object { $_.AccessControlType -eq 'Allow' -and ($_.ObjectType -in $extPerms) -and $_.IdentityReference -notin ('NT AUTHORITY\SELF', 'NT AUTHORITY\SYSTEM', 'S-1-5-32-548') } | Select-Object ` @{n='Object'; e={$obj.distinguishedName}}, @{n='Account'; e={$_.IdentityReference}}, @{n='Permission'; e={$_.ActiveDirectoryRights}}}$results | Out-GridView

So verwenden Sie dieses Skript auf Ihrer eigenen Domain:

  • Öffnen Sie Active Directory-Benutzer und -Computer, und navigieren Sie zu der Domäne (oder Organisationseinheit), die Sie untersuchen.
  • Klicken Sie mit der rechten Maustaste darauf und wählen Sie Eigenschaften.
  • Suchen Sie auf der Registerkarte Attributeditor nach der Eigenschaft distinguishedName.
  • Wählen Sie es aus und drücken Sie Ansicht, dann kopieren Sie den LDAP-Pfad. Sie werden dies später benötigen.
  • Zeile 6 bearbeiten ($bSearch = …), ersetzen Sie DOMAINCONTROLLER durch den Namen eines der DCs Ihrer Domain.
  • Bearbeiten Sie Zeile 6 und ersetzen Sie LDAP durch den zuvor kopierten Pfad.
  • Speichern Sie das Skript und drücken Sie Ausführen.
  • Lassen Sie das Skript Ihr Active Directory durchsuchen; Der Fortschritt wird in der Konsole gemeldet, und wenn er abgeschlossen ist, erhalten Sie ein Popup mit Details zu Objekten, denen Berechtigungen delegiert wurden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.