Wer das Verwalten von Telefonnummern an bestimmte Personen oder Gruppen delegieren möchte, kann dazu das Exchange Feature “Role Based Access Control (RBAC)“ verwenden. Benutzer oder Gruppen kann mittels RBAC der Zugriff auf das Exchange Admin Center gewährt werden, wo diese Benutzer allerdings nur zuvor festgelegte Aktionen durchführen dürfen.
Anhand des folgenden Beispiels kann einem Benutzer erlaubt werden, nur die Telefonnummern anderer Benutzer zu verwalten.
Vorhandene RBAC Rolle kopieren
Es gibt bereits einige vordefinierte RBAC Rollen für verschiedene administrative Zwecke. Die vorhandenen Rollen können als Vorlage genutzt werden, sodass nur bestimmte Aktionen im EAC ausgeführt werden können. Damit ein Benutzer Telefonnummern für andere Benutzer verwalten kann, bietet sich die Rolle “Mail Recipients” an. Die Rolle kann als Vorlage für die eigene Rolle “Manage Telephone Numbers” verwendet werden:
New-ManagementRole -Name "Manage Telephone Numbers" -Parent "Mail Recipients"
Somit existiert nun eine neue RBAC Rolle mit dem Namen “Manage Telephone Numbers”, die über alle Einstellungen der Rolle “Mail Recipients” verfügt.
Neue RBAC Rolle anpassen
Die ursprüngliche Rolle “Mail Recipients” und damit auch die neue Rolle “Manage Telephone Numbers” hat viel zu viele Berechtigungen wenn es nur um das Verwalten von Telefonnummern geht, daher können nun die Rechte entsprechend eingeschränkt werden. Um die Rolle “Manage Telephone Numbers” einzuschränken, werden alle nicht benötigten Befehle entfernt.
Die folgenden Befehle entfernen alle Befehle die nicht für das Verwalten von Telefonnummern benötigt werden:
Get-ManagementRoleEntry "Manage Telephone Numbers\*" | Where-Object {$_.Name -notmatch "Get-"} | Remove-ManagementRoleEntry -confirm:$false Get-ManagementRoleEntry "Manage Telephone Numbers\*" | Where-Object {$_.Name -match "Get-AcceptedDomain"} | Remove-ManagementRoleEntry -confirm:$false Get-ManagementRoleEntry "Manage Telephone Numbers\*" | Where-Object {$_.Name -match "Get-ActiveSync"} | Remove-ManagementRoleEntry -confirm:$false Get-ManagementRoleEntry "Manage Telephone Numbers\*" | Where-Object {$_.Name -match "Get-AddressBookPolicy"} | Remove-ManagementRoleEntry -confirm:$false Get-ManagementRoleEntry "Manage Telephone Numbers\*" | Where-Object {$_.Name -match "Get-DomainController"} | Remove-ManagementRoleEntry -confirm:$false Get-ManagementRoleEntry "Manage Telephone Numbers\*" | Where-Object {$_.Name -match "Get-HybridConfiguration"} | Remove-ManagementRoleEntry -confirm:$false Get-ManagementRoleEntry "Manage Telephone Numbers\*" | Where-Object {$_.Name -match "Get-ManagementRoleAssignment"} | Remove-ManagementRoleEntry -confirm:$false Get-ManagementRoleEntry "Manage Telephone Numbers\*" | Where-Object {$_.Name -match "Get-ResourceConfig"} | Remove-ManagementRoleEntry -confirm:$false Get-ManagementRoleEntry "Manage Telephone Numbers\*" | Where-Object {$_.Name -match "Get-RoleAssignmentPolicy"} | Remove-ManagementRoleEntry -confirm:$false Get-ManagementRoleEntry "Manage Telephone Numbers\*" | Where-Object {$_.Name -match "Get-SecurityPrincipal"} | Remove-ManagementRoleEntry -confirm:$false Get-ManagementRoleEntry "Manage Telephone Numbers\*" | Where-Object {$_.Name -match "Get-ServiceAvailabilityReport"} | Remove-ManagementRoleEntry -confirm:$false Get-ManagementRoleEntry "Manage Telephone Numbers\*" | Where-Object {$_.Name -match "Get-ServiceStatus"} | Remove-ManagementRoleEntry -confirm:$false Get-ManagementRoleEntry "Manage Telephone Numbers\*" | Where-Object {$_.Name -match "Get-SiteMailbox"} | Remove-ManagementRoleEntry -confirm:$false Get-ManagementRoleEntry "Manage Telephone Numbers\*" | Where-Object {$_.Name -match "Get-SiteMailboxProvisioningPolicy"} | Remove-ManagementRoleEntry -confirm:$false Get-ManagementRoleEntry "Manage Telephone Numbers\*" | Where-Object {$_.Name -match "Get-TextMessagingAccount"} | Remove-ManagementRoleEntry -confirm:$false Get-ManagementRoleEntry "Manage Telephone Numbers\*" | Where-Object {$_.Name -match "Get-Trust"} | Remove-ManagementRoleEntry -confirm:$false Get-ManagementRoleEntry "Manage Telephone Numbers\*" | Where-Object {$_.Name -match "Get-UnifiedAuditSetting"} | Remove-ManagementRoleEntry -confirm:$false Get-ManagementRoleEntry "Manage Telephone Numbers\*" | Where-Object {$_.Name -match "Get-LogonStatistics"} | Remove-ManagementRoleEntry -confirm:$false Get-ManagementRoleEntry "Manage Telephone Numbers\*" | Where-Object {$_.Name -match "Get-OwaMailboxPolicy"} | Remove-ManagementRoleEntry -confirm:$false Get-ManagementRoleEntry "Manage Telephone Numbers\*" | Where-Object {$_.Name -match "Get-PhysicalAvailabilityReport"} | Remove-ManagementRoleEntry -confirm:$false Get-ManagementRoleEntry "Manage Telephone Numbers\*" | Where-Object {$_.Name -match "Get-RbacDiagnosticInfo"} | Remove-ManagementRoleEntry -confirm:$false Get-ManagementRoleEntry "Manage Telephone Numbers\*" | Where-Object {$_.Name -match "Get-Mobile"} | Remove-ManagementRoleEntry -confirm:$false
Die Rolle “Manage Telephone Numbers” enthält jetzt nur noch CMDLets die zum Anzeigen der Daten nötig sind. Damit nun auch Telefonnummern geändert oder eingetragen werden können, muss ebenfalls das entsprechende Rechte vergeben werden.
Mit dem folgenden Befehl werden der Rolle wieder entsprechende CMDLets mit eingeschränktem Parametersatz zugewiesen:
Add-ManagementRoleEntry "Manage Telephone Numbers\Set-User" -Parameters MobilePhone,Phone,Fax,OtherFax,HomePhone,identity
Jetzt ist die Rolle soweit angepasst, das nur noch Telefonnummern (und Fax) editiert werden können.
RBAC Rolle zuweisen
Zum Schluss muss die neue Rolle noch Benutzern zugewiesen werden, damit sie die entsprechenden Rechte erhalten:
New-ManagementRoleAssignment -Role "Manage Telephone Numbers" -User lucky
Der Benutzer mit dem Namen “Lucky” ist in diesem Fall der Glückliche der alle Telefonnummern der Organisation pflegen und anpassen darf.
Die Benutzersicht
Der Benutzer “Lucky” hat nun einen eingeschränkten Zugriff auf das Exchange Admin Center in dem er nur die Einstellungen sieht, die für die Rolle “Manage Telephone Numbers”gelten:
Der Benutzer kann jetzt zwar noch die Einstellungen der Postfächer sehen, aber nicht verändern:
Telefonnummern hingegen dürfen durch den Benutzer verändert werden:
Mittels RBAC Rollen lassen sich also mit wenig Aufwand administrative Tätigkeiten delegieren. Das hier gezeigte Beispiel lässt sich auch für andere Aufgaben umsetzen. Etwa das Verwalten von E-Mail Adressen oder das Anlegen von Postfächern. Die Vorgehensweise ist immer die gleiche:
- Rolle die am besten passt als Vorlage nutzen
- Neue Rolle entsprechend der Bedürfnisse anpassen
- Testen
- Rolle entsprechend der Bedürfnisse anpassen
- Testen
- Rolle zuweisen
Hallo Frank,
wie immer bin ich bei der Recherche zu Exchange bei Dir auf der Seite gelandet. Vielen Dank für Deine Arbeit.
Ich will unserem Supporter Team auch das Recht „Senden Als“ in die Hand geben. Daher habe ich wie beschrieben eine neue Rolle erzeugt.
New-ManagementRole -Name „KKLE-MailboxAdmin“ -Parent „Mail Recipients“
Berechtigungen habe ich keine entfernt, sondern nur versucht Add-AdPermission zu ergänzen.
Add-ManagementRoleEntry „KKLE-MailboxAdmin\Add-AdPermission“ -Parameters Identity, User, ExtendedRights
Da kommt er mit
„Der Verwaltungsrolleneintrag „Add-AdPermission“ wurde für die Verwaltungsrolle „Mail Recipients“ nicht gefunden. Stellen Sie sicher, dass Sie ihn richtig eingegeben haben, und wiederholen Sie den Vorgang.“
Das CMDlet gibt es doch. Bis jetzt haben nur Organisations-Admins da Zugriff, wenn meine Recherche passt.
Warum bezieht die Fehlermeldung sich auf die Verwaltungsrolle „Mail Recipients“? Ich habe es so verstanden, das eine Kopie mit Einstellungen der Parent Rolle angelegt wird und es keine Verbindung dazwischen gibt.
VG
Michael
Hi,
Super Anleitung, ich teste das mal.
Könnte man das erweitern, das diese User auch Kontakte erstellen könnten?
VG
Hi Sebastian,
ja, es kann auch erlaubt werden, dass Kontakte erstellt werden dürfen.
Gruß, Frank
Schönes Praxisbeispiel für RBAC! Vielen Dank!