RBAC -Rolle für EAS Quarantäne
Exchange 2010 hat die Funktion EAS Quarantäne eingeführt, mit der neue Mobilgeräte nicht sofort "drin" sind, sondern erst zugelassen werden müssen. Diese Funktion kann per Default natürlich der Exchange Administrator ausüben aber der hat sicher besseres zu tun.
Delegierung erwünscht
Daher steht die Aufgabe an, diese Funktion über eine Managementrolle zu zu delegieren, dass z.B. ein Helpdesk Mitarbeiter diese Aufgabe übernehmen kann. Exchange hat selbst schon einige Rollen vordefiniert, die hier interessant sind:
- Helpdesk
Diese Mitglieder dieser Gruppe haben schon mal "READ"-Rechte auf viele Einstellungen der Anwender und können so diese z.B. auch im Exchange Control Panel einige Informationen einsehen. Aber nicht genug zum ändern - Organization Client Access
Diese Gruppe könnte den relevanten "Set-CASMailbox"-Befehl mit den Optionen AllowedActiveSyncDevice und BlockedActiveSyncDevice ausführen. Dummerweise hat diese Gruppe noch ganz andere Rechte, die man besser nicht einem Helpdesk gibt, z.B. Abschalten der Quarantäne
Eine neue Rolle kann man nun basierend auf einer bestehenden Rolle machen, der man Befehle entfernt oder durch eine ganz neu aufgebaute Rolle, die dann sogar eigene Befehle enthalten kann. Ich habe es hier den Weg einer Kopie gewählt. In aller Kürze:
- Anlegen einer neuen managementRolle als „Kopie“ von „Organization Client Access"
- Entfernen aller
„unerwünschten“
ManagementRoleEntries
Es blieb nur set-casmailbox und ein paar „get-*“ Commandlets über - Zuweisen dieser neuen ManagementRole an die Gruppe „msxfaq EAS-Management“
- Entfernen der „Organization Client Access" von „msxfaq EAS-Management“
Das Ergebnis ist, dass der Helpdesk nun über /ECP zwar noch die ActiveSync Richtlinien einsehen darf aber nicht mehr ändern. Er darf nur noch „AllowedDevice“ und „BlockedDevice“ ausführen.
Interessant am Rande: Die bisherige als auch die Rolle hat nicht den Befehl „Clear-ActiveSyncDevice“ enthalten.
Ausführliche Beschreibung
Hinweis zum Namenskonzept
Ich vermeide Veränderungen an den Exchange
Standardrollen und Gruppen. Wer weiß ob nicht
ein Servicepack hier Erweiterungen bringt. für eigene Anpassungen lege ich neue Objekte an um
Benutzern zusätzliche Rechte zu geben. Damit
auch erkennbar ist, dass diese Objekte nicht zum
"Standard" gehören, bietet sich ein Prefix an.
Hier im Beispiel nutze ich "msxfaq". Sie können auch ihren Firmennamen verwenden.
Wichtig ist immer eine gute aktuelle Dokumentation der Schritte und Änderungen , ein Namenskonzept und ein Berechtigungskonzept.
Für die Verwaltung der EAS Quarantäne wird eine Adminrolle gebraucht, die nur diese Rechte bereitstellt. Die Rolle „Organization Client Access" darf folgende Commandlets ausführen.
(Get-ManagementRole "Organization Client Access").roleentries Write-AdminAuditLog Set-CASMailbox Get-ActiveSyncDeviceClass,Set-ActiveSyncOrganizationSettings,Get-CASMailbox Remove-ActiveSyncDeviceClass Set-RpcClientAccess,Set-OutlookProvider,Set-ClientAccessArray,Set-ActiveSyncDeviceAccessRule Remove-RpcClientAccess,Remove-OutlookProvider,Remove-ClientAccessArray,Remove-ActiveSyncDeviceAccessRule New-RpcClientAccess,New-OutlookProvider,New-ClientAccessArray,New-ActiveSyncDeviceAccessRule Get-RpcClientAccess,Get-OutlookProvider,Get-DomainController,Get-ClientAccessArray,Get-ActiveSyncOrganizationSettings,Get-ActiveSyncDeviceAccessRule Export-AutoDiscoverConfig
Dies sind auf jeden Fall zu viele Funktionen. Daher wird eine eigene „ManagementRole“ angelegt. In Exchange können neue Rollen entweder „leer und unscoped“ oder als Kopie einer bestehenden Rolle angelegt werden. Es ist nicht klar, woran /ECP aber festmacht, welche Menüs der Anwender zu sehen bekommt. Wir starten daher mit einer Kopie der Rolle, in der wir die kritischen Einträge entfernen.
# Anlegen einer Kopie New-ManagementRole msxfaq-EASQuarantineManagement -Parent "Organization Client Access"
Alternativ könnte eine neue Rolle mit "New-ManagementRole -Name "xxxx" -UnScopedTopLevel" angelegt werden, ist hier aber nicht erforderlich
#Anzeigen der aktuellen Einstellungen Get-ManagementRoleEntry msxfaq-EASManagement\* [PS] C:\>Get-ManagementRoleEntry msxfaq-EASQuarantineManagement \* Name Role ---- ---- Export-AutoDiscoverConfig msxfaq-EASQuarantineManagement Get-ActiveSyncDeviceAccessRule msxfaq-EASQuarantineManagement Get-ActiveSyncDeviceClass msxfaq-EASQuarantineManagement Get-ActiveSyncOrganizationS... msxfaq-EASQuarantineManagement Get-CASMailbox msxfaq-EASQuarantineManagement Get-ClientAccessArray msxfaq-EASQuarantineManagement Get-DomainController msxfaq-EASQuarantineManagement Get-OutlookProvider msxfaq-EASQuarantineManagement Get-RpcClientAccess msxfaq-EASQuarantineManagement Remove-ActiveSyncDeviceAcce... msxfaq-EASQuarantineManagement Remove-ActiveSyncDeviceClass msxfaq-EASQuarantineManagement Remove-ClientAccessArray msxfaq-EASQuarantineManagement Remove-OutlookProvider msxfaq-EASQuarantineManagement Remove-RpcClientAccess msxfaq-EASQuarantineManagement Set-ActiveSyncDeviceAccessRule msxfaq-EASQuarantineManagement Set-ActiveSyncOrganizationS... msxfaq-EASQuarantineManagement Set-CASMailbox msxfaq-EASQuarantineManagement Set-ClientAccessArray msxfaq-EASQuarantineManagement Set-OutlookProvider msxfaq-EASQuarantineManagement Set-RpcClientAccess msxfaq-EASQuarantineManagement Write-AdminAuditLog msxfaq-EASQuarantineManagement
Hier sind natürlich viel zu viele Commandlets dabei, die ich nicht haben möchte , Die Rolle soll ja "nur" die Quarantäne bedienen. Also weg mit den Einsträgen
# Entfernen unerwünschter Einträge Get-ManagementRoleEntry msxfaq-EASQuarantineManagement\New-* ` | Remove-ManagementRoleEntry -Confirm:$false Get-ManagementRoleEntry msxfaq-EASQuarantineManagement\Export-* ` | Remove-ManagementRoleEntry -Confirm:$false Get-ManagementRoleEntry msxfaq-EASQuarantineManagement\Remove-* ` | Remove-ManagementRoleEntry -Confirm:$false Get-ManagementRoleEntry msxfaq-EASQuarantineManagement\Set-clientaccessarray ` | Remove-ManagementRoleEntry -Confirm:$false Get-ManagementRoleEntry msxfaq-EASQuarantineManagement\Set-OutlookProvider ` | Remove-ManagementRoleEntry -Confirm:$false Get-ManagementRoleEntry msxfaq-EASQuarantineManagement\Set-RPCClientAccess ` | Remove-ManagementRoleEntry -Confirm:$false Get-ManagementRoleEntry msxfaq-EASQuarantineManagement\Set-ActiveSync* ` | Remove-ManagementRoleEntry -Confirm:$false Get-ManagementRoleEntry msxfaq-EASQuarantineManagement\Get-ClientAccessArray ` | Remove-ManagementRoleEntry -Confirm:$false Get-ManagementRoleEntry msxfaq-EASQuarantineManagement\Get-OutlookProvider ` | Remove-ManagementRoleEntry -Confirm:$false Get-ManagementRoleEntry msxfaq-EASQuarantineManagement\Get-DomainController ` | Remove-ManagementRoleEntry -Confirm:$false Get-ManagementRoleEntry msxfaq-EASQuarantineManagement\Get-RPCClientAccess ` | Remove-ManagementRoleEntry -Confirm:$false
Danach kontrolliere ich noch mal die nun geänderte Rolle:
# Verbliebene Einträge: Get-ManagementRoleEntry msxfaq-EASQuarantineManagement\* Name Role Parameters ---- ---- ---------- Get-ActiveSyncDeviceAccessRule msxfaq-EASQuarantineMan.. Get-ActiveSyncOrganizationS... msxfaq-EASQuarantineMan... Get-CASMailbox msxfaq-EASQuarantineMan... Get-ActiveSyncDeviceClass msxfaq-EASQuarantineMan.. Set-CASMailbox msxfaq-EASQuarantineMan... Write-AdminAuditLog msxfaq-EASQuarantineMan..
Der kritische Befehl “Set-CAS-Mailbox” hat nur folgende Parameter (gekürzt um Standardparameter)
(Get-ManagementRoleEntry msxfaq-EASManagement\set-casmailbox).parameters ActiveSyncAllowedDeviceIDs ActiveSyncBlockedDeviceIDs
Damit ist diese Rolle entsprechend abgespeckt und zum Einsatz bereit. muss man die Rolle natürlich einer Gruppe zuweisen. Das kann eine bestehende Gruppe wie z.B. Helpdesk sein oder eine neue Gruppe:
# Neue Gruppe anlegen New-RoleGroup ` -Name "msxfaq EASManagement" ` -Roles "msxfaq-EASQuarantineManagement" # Alternativ Zuweisen der Rolle an eine bestehnede Gruppe New-ManagementRoleAssignment ` -Name msxfaq-EASQuarantineManagement ` -SecurityGroup "msxfaq EASManagement" ` -Role "msxfaq-EASQuarantineManagement"
Damit ist das Werk schon fast vollbracht. Sie müssen natürlich noch die Anwender in die Gruppe addieren, um die Berechtigungen auch zu erhalten.
Weitere Links
- EAS Quarantäne
- RBAC
- Create a Role Group
http://technet.microsoft.com/en-us/library/dd638209.aspx - Client Access Permissions
http://technet.microsoft.com/en-US/library/dd638131.aspx - Understanding Role Based
Access Control: Built-in Role
Groups:Help Desk
http://technet.microsoft.com/en-us/library/dd876949.aspx - New-ManagementRole
http://technet.microsoft.com/en-us/library/dd298073.aspx - Organization Client Access
Role: Exchange 2010 Help
http://technet.microsoft.com/en-us/library/dd876962.aspx - Remove a Role Entry from a
Role: Exchange 2010 Help
http://technet.microsoft.com/en-us/library/dd297947.aspx - Understanding Management Roles:
Exchange 2010 Help
http://technet.microsoft.com/en-us/library/dd298116.aspx - Management Roles and Role
Entries : Create a Role
http://technet.microsoft.com/en-us/library/dd351214.aspx - Create New Management Role -
RBAC
http://www.exchangedictionary.com/index.php/Articles/create-new-management-role-rbac.html - Built-in Management Roles
http://technet.microsoft.com/en-us/library/dd638077.aspx - Clear-ActiveSyncDevice
http://technet.microsoft.com/en-us/library/aa995904.aspx - ändern der
ActiveSync-Einstellungen für ein Benutzerpostfach
http://technet.microsoft.com/de-de/exchangelabshelp/ff628720 - Role Based
Access Control Exchange 2010
http://www.exchangedictionary.com/index.php/Articles/role-based-access-control-exchange-2010.html - Exchange 2010 RBAC Creating
a custom Management Role Group
and assigning a custom
management role scope
http://blog.meigh.eu/2010/04/01/exchange-2010-rbac-creating-a-custom-management-role-group-and-assigning-a-custom-management-role-scope.aspx - Use PowerShell and RBAC to
Control Access to Exchange
Server Cmdlets
http://blogs.technet.com/b/heyscriptingguy/archive/2012/01/13/use-PowerShell-and-rbac-to-control-access-to-exchange-server-cmdlets.aspx