Delegowanie uprawnień do tworzenia skrzynek za pomocą Unscoped Management Role.

Role Based Access Control (RBAC) to potezne narzedzie umozliwiajace delegowanie zadan administracyjnych. Jak delegowac uprawnienia do tworzenia skrzynek pocztowych, inzynierom pierwszych linii wsparcia bez przydzielania im zbyt wielu uprawnien? Jednym ze znanych sposobów jest stworzenie nowej Management Role, na podstawie juz istniejacej roli zarzadzajacej o nazwie: "Mailbox Recipient Creation". W nastepnym kroku nalezy usunac z niej wszystkie cmdlet, aby pozostalo tylko polecenie New-Mailbox.

Kolejnym, rzadziej stosowanym rozwiazaniem, jest stworzenie Management Role typu Unscoped.  Rola zarzadcza tego typu, umozliwia uruchamianie skryptu tworzacego skrzynke. Management Role typu Unscoped przyznaja uprawnienia do wykonywania skryptów Powershell. Administrator, który ma otrzymal uprawnienia za pomoca Unscoped Management Role, bedzie mógl wywolac tylko ten skrypt Powershell, do którego rola zarzadcza typu Unscoped ma delegowany dostep. Unscoped Management Role nie przyznaje dostepu do wykonywania polecen nalezacych do przystawki Exchange Management Shell. Mozna jednak przyznawac uprawnienia do wykonywania skryptów, które zawieraja polecenie nalezace do tej przystawki, takie jak New-Mailbox. Ze wzgledu na to, ze Management Role typu Unscoped, inaczej niz tradycyjne role zarzadcze, deleguje uprawnienia do wykonywania polecen wobec wszystkich obiektów w Organizacji Exchange, ich zakres trzeba ograniczyc wewnatrz skryptu. Mozna to zrobic, poprzez zdefiniowanie w kodzie skryptu bazy skrzynkowej, w której ma byc zalozona skrzynka lub poprzez okreslenie, w którym Organizational Unit ma byc zalozone konto uzytkownika.

W celu utworzenia Management Role typu Unscoped, trzeba miec przyznane odpowiednie uprawnienia. Domyslnie zadna z Role Group nie daje mozliwosci tworzenia Management Role typu Unscoped. Istniejaca rola zarzadcza o nazwie "Unscoped Role Management", chociaz umozliwia utworzenie Management Role typu Unscoped, to nie jest powiazana z zadna Role Group za pomoca Management Role Assignment typu Regular. Management Role Assignment o nazwie "Unscoped Role Management-Organization Management-Delegating" jest typu DelegatingOrgWide. Pokazuje to ponizszy zrzut z ekranu.

Ten typ powiazania umozliwia tylko przypisywanie Management Role do innych Role Group, nie daje jednak uprawnien czlonkom Role Group.

W celu utworzenia Management Role typu Unscoped, nalezy zmodyfikowac typ ManagementRoleAssignment na Regular, lub utworzyc nowa Role Group i przypisac do niej Management Role "Unscoped Role Management". W artykule zostalo przedstawione drugie rozwiazanie.

W tym celu nalezy wykonac polecenie, które utworzy nowa Role Group i powiaze ja z Management Role o nazwie "Unscoped Role Management"
New-RoleGroup "Create Unscoped Management Role" -roles "Unscoped Role Management"

Nastepnie nalezy dodac konto administracyjne do nowo zalozonej Role Group, aby uzyskac uprawnienia do tworzenia Unscoped Management Role.
Add-RoleGroupMember –Identity „Create Unscoped Management Role” –Member UserName

Z tymi uprawnieniami, utworzyc mozna Management Role typu Unscoped o nazwie np. „PFE Create Mailbox” poleceniem:
New-ManagementRole "PFE Create Mailbox" -UnScopedTopLevel

Nastepnie, ponizszym poleceniem przyznaje sie Management Role „PFE Create Mailbox” mozliwosc wykonywaniu skryptu mbxcreate.ps1.
Add-ManagementRoleEntry "PFE Create Mailbox\mbxcreate.ps1" -Parameters FirstName,LastName –UnscopedTopLevel

Kolejnym krokiem jest utworzenie Role Group i dodanie do niej uprawnien, które posiada Management Role “PFE Create Mailbox” za pomoca Management Role Assignment
New-RoleGroup „PFE Mailbox Management” –Roles „PFE Create Mailbox”

Nastepnie nalezy dodac konto uzytkownika, nalezace do administratora pierwszej linii wsparcia, do nowo zalozonej Role Group.

Add-RoleGroupMember –Identity “PFE Mailbox Management” –Member HelpdeskUser

To tyle. Teraz pozostaje przetestowanie calosci. W tym celu uruchamiany jest Exchange Management

Tworzenie Management Role typu Unscoped pozwala delegowac uzytkownikom uprawnienia do uruchamiania skryptów, które automatyzuja pewne czynnosci, bez koniecznosci przydzielania dostepu do wykonywania konkretnych cmdlet. Korzystanie z tej metody przydzielania uprawnien jest przydatne, gdy chcemy delegowac uprawnienia administratorom pierwszej linii wsparcia.

Przyklad skryptu tworzacego skrzynke pocztowa.

Skrypt, na podstawie 3 danych wejsciowych: imienia, nazwiska i hasla, bedzie zakladal skrzynke uzytkownika w bazie skrzynkowej. Skrypt moze wygladac na przyklad tak:

param (

[Parameter(Mandatory=$true)][string] $FirstName,

[Parameter(Mandatory=$true)][string] $LastName

)

$password=Read-Host -AsSecureString -Prompt "Podaj haslo:"

$upnsuffix="@pfe.net"

$mdb="db1" # Nazwa bazy, w ktorej bedzie utworzona skrzynka

$ou="Mailboxes" # Organizational Unit, w którym bedzie utworzone konto uzytkownika

$Name=$FirstName+" "+$LastName

New-Mailbox -Name $Name -UserPrincipalName "$FirstName.$LastName$Upnsuffix" -FirstName $Firstname -LastName $LastName -password $password -database $mdb -organizationalUnit $ou

Skrypt nalezy umiescic w folderze RemoteScripts znajdujacym sie w katalogu instalacyjnym Exchange.