Active Directory Delegation mit DSACLS
DSACLS bedeuted soviel wie Domain bzw. Directory Services Access Control Lists. Das Tool ist Kommandozeilen basiert und dient der Steuerung von Zugriffsberechtigungen.
Bei vielen Active Directory Migrationsprojekten wird neben der reinen Nutzerdatenmigration meistens auch eine Neuorganisation des Administrationskonzeptes vorgenommen. Dabei müssen die Delegationsberechtigungen auf die neu geschaffenen Organisationsstrukturen im Active Directory implementiert werden.
Im Folgenden werden Möglichkeiten der Delegation vorgestellt. Anschließend folgen Beispiele mit DSACLS.
Index
Delegation mit dem Delegation of Control Wizard
Der Delegation of Control Wizard der Active Directory Users und Computers Console ist den meisten Administratoren sicher bekannt.
Vorteil: Dieser Wizard ist sehr komfortabel und für das gelegentliche Einrichten von Delegationen mit Standardberechtigungen sehr hilfreich.
Nachteil: Zum Aufbau einer Delegationsstruktur ist der Wizard aber zu umständlich und zu wenig granular einstellbar.
Delegationsstrukturen mit DSCALS
Eine weitere Möglichkeit biete das Command Line Tool DSACLS.exe. Dieses Tool ist ab Windows Server 2008 integriert und mit der Installation der AD DS Server Rolle verfügbar.
Dieses Tool muss in einer Command Console ausgeführt werden die als Administrator gestartet wurde. Dann können auf beliebige Active Directory Objekt Grant /G oder Deny /D Rechte für bestimmte Gruppen oder Nutzer gesetzt werden. Dabei können unterschiedliche Optionen angegeben werden, die Bandbreite geht von Vollzugriff bis zur Vergabe von Schreibberechtigungen auf einzelne Attribute.
Die Basis-Syntax ist dabei:
1 |
Dsacl „Objekt-DN“ /I:[T|S|P] /G <PermissionStatement> [<PermissionStatement>] |
Ein Permission Statement ist aufgebaut nach der Syntax:
1 |
User|Group:Permission:ObjectType|Property |
Eine detaillierte Beschreibung der Syntax mit allen Optionen findet man im Technet von Microsoft.
Hinweis zur Konzeption von Delegationsberechtigungen
Berechtigungen sollten, wenn möglich, immer additiv vergeben werden. D.h. bestimmten Rollen sollten ausschließlich mehr Berechtigungen vergeben werden, sprich Schreibberechtigungen. Es sollte vermieden werden Deny-Berechtigungen zu vergeben, denn das Active Directory ist grundsätzlich ein informierendes Verzeichnis in dem jedes Active Directory Mitglied standardmäßig auf viele Informationen lesenden Zugriff hat. Es sollte vermieden werden diesen Lesezugriff einzuschränken. Dies kann unvorhergesehene Nebeneffekte hervorrufen.
Beispiele für die Anwendung von DSACLs
Im Folgendenen soll an zwei Beispielen die Verwendung von DSACLS näher erläutert werden:
- Die Benutzer- und Berechtigungsverwaltung soll neue Nutzer anlegen können
- Der Helpdesk soll Passwörter zurücksetzen können
Benutzer- und Berechtigungsverwaltung – Benutzeranlage
Wenn nun zum Beispiel die Benutzer- und Berechtigungsverwaltung das Recht bekommen soll neue Nutzer anzulegen sehe das wie folgt aus.
1 |
<b>dsacls "ou=users,ou=de,ou=corp,dc=contoso,dc=com" /I:T /G "CONTOSO\AR-BBV-DE:CC;user"</b> |
Damit wird auf der OrganizationalUnit „ou=users,ou=de,ou=corp,dc=contoso,dc=com“ die Gruppe AR-BBV-DE berechtigt Child-Objekte vom Typ User zu erstellen (CC: Create a child object). Die Vererbung /I:T bedeutet dass dieses Recht auf die OU und alle Unterobjekte vererbt wird.
HelpDesk – Password Reset und Entsperrung
In diesem Beispiel wird an den HelpDesk die Berechtigung zum Password Reset und dem Entsperren von Nutzerkonten vergeben.
1 |
<b>dsacls "ou=corp,dc=contoso,dc=com" /I:S /G "CONTOSO\AR-HELPDESK-ALL:CA;Reset Password;user" "CONTOSO\AR-HELPDESK-ALL:WP;pwdLastSet;user" "CONTOSO\AR-HELPDESK-ALL:WP;lockoutTime;user"</b> |
Mit CA (Control Access) wird Zugriff auf ein erweitertes Recht gewährt. In diesem Beispiel auf „Reset Password“. Mittels der Anweisung WP (Write to a property) kann zum einen die Eigenschaft „pwdLastSet“ durch den HelpDesk beschrieben werden. Damit kann der HelpDesk dem Nutzer die Anweisung geben sein Password bei der nächsten Anmeldung ändern zu müssen. Dazu wird der Wert von der Users und Computers Console auf 0 gesetzt. Mit dem Recht zum Beschreiben der Eigenschaft „lockoutTime“ kann der HelpDesk einen gesperrten Nutzer wieder entsperren indem der „lockoutTime“ Wert auf 0 gesetzt wird.
Fazit
Die beiden Beispiele zeigen bereits, wie mächtig und flexibel DSACLS ist.
Es kann angwendet werden auf:
- OrganizationalUnits
- Container
- jeden Objekttyp der im Active Directory Schema enthalten ist
Die Berechtigungen können generell oder auf einzelne Attribute gesetzt werden, mit jedem Vererbungsmodus.
Hat man die Delegationsstruktur konzeptionell durchgeplant, bietet DSACLS einen einfachen Weg um dieses Konzept in eindeutige technische Regeln umzusetzen. Für jede Delegationsrolle kann so z.B. ein Berechtigungs-Template als CMD-Script erstellt werden. Dieses kann für jede neue Unterorganisation wiederverwendet werden. Außerdem sind die Templates auch ein gutes Backup um verbogene Berechtigungen aus dem Delegationskonzept wieder herzustellen.
Zur Delegation der Benutzeranlage oder anderer Routineaufgaben hat sich das Programm FirstWare-Admin als sehr flexibel und effizient dargestellt.
Leave a Reply
<p>Danke für Ihre Anregungen, Fragen und Hinweise.<br/>Infos zum <a href="https://www.active-directory-faq.dekontakt/">Datenschutz</a></p>