понедельник, 16 сентября 2019 г.

Разделение прав в Exchange 2016. RBAC

Всем доброго времени суток!
В больших организациях, как правило, возникает необходимость разделения прав между Администраторами. Как правило это Администраторы головного предприятия и Администраторами филиальной сети. Администраторам филиальной сети , как правило, выпадает необходимость в заведении пользователей, регистрации им почтовых ящиков. Про Делегирование прав в AD DS, я думаю, напишу позже, а вот про делегирование прав в Exchange возникла необходимость лично у меня сейчас. Когда то я уже делал это, но моменты некоторые стерлись в голове.
Давайте вспоминать вместе.

От том как работает RBAC в Exchange в интернете можно найти немало статей, но в моем случае задача достаточно специфична.
Условия задачи.
1. Имеем домен domain.local
2. Есть филиал, контейнер которого находится в домене domain.local. Учетные записи пользователей лежат в этом контейнере. domain.local/branch
3. Необходимо дать права Администратору филиала управлять ящиками своих пользователей. Сами ящики лежат на сервере Exchange в отдельной базе.
То есть, задача стоит так, что Администратор филиала создает ящики только пользователям своего филиала и только в своей базе. Если он попытается привязать ящик к другому пользователю организации или поместить ящик в другую базу он должен получить отказ.
Задача ясна и приступаем к ее реализации.
Для начала заходим на сервер Exchange и открываем с повышенными правами Exchange management shell.


ПримечаниеВ качестве понимания как работает RBAC можно ознакомиться например вот этой статьей http://www.alexxhost.ru/2010/04/role-based-access-control-rbac-exchange.html
Для начала создадим границы для Администратора филиала. Таких границ у него будет две.
1. Граница почтовых баз, в которых будут находиться ящики пользователей филиала.
2. Это ограничение контейнером AD DS, ящики будут создаваться только учетным записям в этом контейнере.

ШАГ 1.
Создаем границы почтовых баз. Вариантов ограничения тут два.
1. Ограничение на основе конкретных  баз. Этот метод имеет свой минус в том, что если у Вас потом добавятся еще база то Вам придется изменять условия.
#New-ManagementScope -Name "Branch Databases" -DatabaseList BR-MAILDB01, BR-MAILDB02
2. Наиболее гибкий вариант. При создании баз филиала использовать префиксы баз. Затем создать фильтр, на основе которого потом вновь созданные базы будут автоматически попадать в границы
#New-ManagementScope "Branch Databases" -DatabaseRestrictionFilter {Name -like "BR-*" }
Где Branch Databases  это произвольное имя Management Scope филиала почтовых баз


Теперь надо создать границы пользователей филиала.
#New-ManagementScope "Branch Recipients management scope" -RecipientRoot "DOMAIN.LOCAL/Branch" -RecipientRestrictionFilter {RecipientType -ne $null}
Где Branch Recipients management scope это произвольное имя Management Scope учетных записей пользователей филиала. DOMAIN.LOCAL/Branch это контейнер в AD DS.

ШАГ 2.
После создания границ ящиков и пользователей необходимо создать права Администратору филиала, что бы он мог создавать ящики и управлять ими. То есть создадим новую роль. Роль будет создаваться на основе родительской роли Mail Recipient Creation. 
Примечание: Если у Вас много филиалов, то этот шаг выполняется только ОДИН раз.

#New-ManagementRole -Name "BRANCH Mail Recipient Creation" -Parent "Mail Recipient Creation"

Где BRANCH Mail Recipient Creation это имя роли. Задается произвольно, что бы Вам было понятно.
После создания роли, список действий для этой роли можно получить командой

#Get-ManagementRoleEntry "BRANCH Mail Recipient Creation\*"

В результате будет выведен список действий, который будет применен к этой роли. Если Вы хотите удалить какое либо действие из этой роли введите команду

#Remove--ManagementRoleEntry "BRANCH Mail Recipient Creation\rolename"

У себя я оставил следующие роли (Exchange 2016)

Name                     
----                         
Get-MailContact   
Get-ADServerSettings
Get-AddressBookPolicy
Get-MailUser               
Get-Mailbox                 
Get-MailboxPreferredLocation 
Get-ManagementRoleAssignment
Get-MobileDeviceMailboxPolicy
Get-OrganizationalUnit       
Get-RbacDiagnosticInfo     
Get-RemoteMailbox           
Get-ResourceConfig           
Get-RoleAssignmentPolicy
Get-SharingPolicy
Get-ThrottlingPolicy
Get-ThrottlingPolicyAssocia...
Get-Trust                   
Get-UnifiedAuditSetting 
Get-User                   
Get-UserPrincipalNamesSuffix
New-MailContact             
New-MailUser                 
New-Mailbox                 
New-SchedulingMailbox
Remove-MailContact     
Remove-MailUser           
Remove-Mailbox             
Remove-PushNotificationSubs...
Remove-RemoteMailbox         
Set-ADServerSettings         
Set-MailboxFolderPermission 
Set-RemoteMailbox           
Set-UnifiedAuditSetting   
Start-AuditAssistant         
Write-AdminAuditLog     
Get-MailboxDatabase       
Get-Recipient             
New-RemoteMailbox 

ШАГ 3.
Теперь у нас все готово для последнего шага. Собираем все вместе. Для этого выполняем несколько команд.
Собираем необходимые роли управления в переменную.

#$ManagementRoles_Recipient = (Get-RoleGroup -Identity 'Recipient Management').Roles | Get-ManagementRole | Where-Object { $_.Name -ne 'Mail Recipient Creation' }

#$ManagementRoles_Recipient += Get-ManagementRole 'BRANCH Mail Recipient Creation'

Не забываем изменить BRANCH Mail Recipient Creation на свое если оно отличается от моего примера.

#New-RoleGroup -Name "Branch Recipient Management" -Description "Управление почтовыми ящиками серверов с именем BR"  -CustomRecipientWriteScope "Branch Recipients management scope" -CustomConfigWriteScope "Branch Databases" -Roles $ManagementRoles_Recipient

Где
Branch Recipient Management и Управление почтовыми ящиками серверов с именем BR это имя и описание Административной группы группы, которая будет отображаться в Exchange control patel (https://ex/ecp) . Permissions- Admin roles.

Branch Recipients management scope и Branch Databases названия границ, которые были созданы в ШАГ 1.

Вот собственно и все. Заходим в панель управления Exchange, Permissions- Admin roles находим Branch Recipient Management и добавляем в нее группу Администраторов филиала.
После этого Администраторы филиалов заходят по адресу https://ex/ecp вводят свои учетные данные и работают с ящиками пользователей.

Комментариев нет:

Отправить комментарий

При обновлении VCenter 6.7 до VCenter 7.0 ошибка Host not found

 Всем доброго времени суток! При обновлении VCenter 6.7 до версии 7.0 пришлось столкнуться со следующей ошибкой при обновлении , точнее в пр...