In Exchange 2010 wurde ein neues Berechtigungsmodell eingeführt, Role Based Access Control. Es basiert auf sogenannten Rollen anstelle von ACLs, diese Rollen (eigentlich die Role Entries) steuern den Zugriff auf cmdlets. Um dieses neue Modell zu verstehen muss man die Grundbausteine verstehen aus denen es besteht. Vereinfacht gesagt wird festgelegt wer was wo machen darf.

 

Scope (wo)

  • Definiert die Objekte im Active Direcotry auf welchen die Rolle Berechtigungen hat.
  • New-ManagementScope

Role/Role Entry (was)

  • Eine Rolle ist eine Sammlung von Role Entries, sie definiert welche cmdlets und welche Parameter ausgeführt werden dürfen.
  • New-ManagementRole
  • Add-ManagementRoleEntry, Remove-ManagementRoleEntry

RoleGroup (wer)

  • Universelle Sicherheitsgruppe deren Mitglieder die Rechte bekommen die in der Role definiert sind.
  • Verknüpft Rolle und Scope.
  • New-RoleGroup –Roles “” –CustomRecipientWriteScope “”

Role Assignment

  • Verbindet die oben genannten Elemente, legt fest wer was wo machen darf.
  • Das cmlet New-RoleGroup erzeugt den ManagementRoleAssignmenteintrag
  • Get-ManagementRoleAssignment

Es gibt in Exchange 2010 65 vordefinierte Rollen die man sich mit Get-ManagementRole anzeigen lassen kann.

image

Will man die Role Entries zu einer Rolle sehen führt man folgendes cmdlet aus: Get-ManagementRoleEntry Rolle\*

Beispiel: Get-ManagementRoleEntry "Move Mailboxes\*"

image

 

Benutzerdefinierte Rolle erstellen

Soll eine Benutzerdefinierte Rolle bzw. ein Scope erstellt werde, dann in dieser Reihenfolge:

  • New-ManagementScope "Gruppe1Scope" -RecipientRestrictionFilter {memberofgroup -eq "CN=Gruppe1,OU=users,DC=domain,DC=local}
    • Diese Rolle darf nur Mitglieder der Gruppe1 bearbeiten.
  • New-ManagementRole "Create Move Request Gruppe1" –Parent “Move Mailboxes”
    • Eine neue Rolle wird erstellt
  • New-RoleGroup "Gruppe1 Movers" -roles "Create Move Request Gruppe1" -CustomRecipientWriteScope "Gruppe1Scope"
    • Eine neue Gruppe wird erstellt (Universelle Sicherheitsgruppe im AD), die Rolle sowie der Scope werden dieser Gruppe zugewiesen
  • Add-RoleGroupMember "Gruppe1 Movers" -members "username"
    • Benutzer werden der Gruppe hinzugefügt, kann auch im AD gemacht werden

So sieht die soeben erstellte Rolle aus:

Get-ManagementRoleEntry "Create Move Request Gruppe1\*"

image

 

Benutzerdefinierte Rolle anpassen

Meine soeben erstellte Rolle soll nur Berechtigungen haben einen Move Request zu erstellen. Mitglieder sollen den Move Request nicht löschen, anhalten oder weiterführen können. Also passe ich die RoleEntries entsprechend an.

  • Nicht gewünschte cmdlets entfernen mit remove-ManagementRoleEntry
    • remove-ManagementRoleEntry “Create Move Request Gruppe1\Remove-MoveRequest”
    • remove-ManagementRoleEntry “Create Move Request Gruppe1\Suspend-MoveRequest”
    • remove-ManagementRoleEntry “Create Move Request Gruppe1\Resume-MoveRequest”
  • Mit add-ManagmentRoleEntry “Create Move Request Gruppe1\RoleEntry” kann man weitere Einträge erstellen und die Rolle weiter personalisieren.

Nachdem die nicht erwünschten cmdlets entfernt wurden sieht das Ganze so aus:

Get-ManagementRoleEntry "Create Move Request Gruppe1\*"

image

 

Wichtig: RBAC Rollen sind nicht gleichzusetzen mit ACLs (Sicherheitsberechtigungen), das heißt es wird nicht die restriktivste Rolle angewandt. Benutzer erhalten durch alle Rollen die ihnen zugewiesen sind Zugriff auf ein bestimmtes “Set” an Funktionen. Mehr Rollen = Mehr Funktionen.

Wenn man das Prinzip einmal verstanden hat, wird einem schnell bewusst wie mächtig dieses neue Berechtigungsmodell ist. Da die Exchange Management Konsole auch nichts anderes macht also PowerShell Befehle abzusetzen kann man so wirklich alles genau an seine Bedürfnisse anpassen.

tom

This post has been migrated from our earlier blog based on BlogEngine.NET.