Przejdź do treści

Grupy w Azure Active Directory

0
(0)

To czym jest Azure Active Directory krótko przedstawiałem tutaj. W tym wpisie skoncentruję się na zagadnieniu grup.

Grupy są nieodłącznym elementem Azure Active Directory, który znacząco ułatwia zarządzanie znajdującymi się w nim obiektami (np. kontami użytkowników). Dzięki grupom jesteśmy w stanie masowo zarządzać określonymi użytkownikami bez straty czasu na powtarzanie tych samych czynności dla każdego użytkownika z osobna.

Dla przykładu wyobraźmy sobie sytuację, gdy chcemy nadać określone uprawnienia dla wszystkich osób pracujących w dziale IT naszej firmy. Z racji, że nasza przykładowa firma jest bardzo dużą organizacją przyjmijmy, że w dziale IT pracuje aktualnie około 200 osób oraz występuje duża rotacja pracowników. Nadanie określonych uprawnień każdemu użytkownikowi z osobna, a następnie dokonywanie w ten sposób zmian – odbierania uprawnień odchodzącym użytkownikom i nadawania nowo przybyłym byłoby zupełną stratą czasu. Dużo prościej jest utworzyć grupę, do której automatycznie przypisywani będą wszyscy członkowie działu IT, a następnie określone uprawnienia nadać na całą grupę (czyli de facto na wszystkich członków danej grupy). Na etapie tworzenia samej pracy jest zdecydowanie mniej, ponieważ wystarczy raz a dobrze sprecyzować uprawnienia i ustawić kryteria, zgodnie z którymi do grupy zostaną przypisane odpowiednie osoby (przynależność do działu IT). Utrzymanie też jest dużo prostsze – tworząc konto użytkownika wystarczy tylko określić, że będzie on pracował w dziale IT. Przy dobrze skonfigurowanym środowisku reszta dzieje się automatycznie – zostaje on na tej podstawie przypisany do grupy IT, a następnie ze względu na tą przynależność otrzymuje on odpowiednie uprawnienia. W ten sposób posiadając poprawnie działający proces w zasadzie nie musimy w ogóle w niego ingerować.

Aby za pomocą portalu Azure przejść do zakładki grup wystarczy wyszukać Azure Active Directory:

A następnie wybrać z panelu po lewej stronie zakładkę Groups:

Tworzenie nowej grupy z poziomu Azure portal

Aby utworzyć nową grupę wystarczy, będąc w zakładce Groups, wybrać dostępną na górze opcję New Group:

W kreatorze nowej grupy możemy zauważyć szereg dostępnych opcji. W pierwszym polu wybieramy typ grupy – w Azure dostępne są tylko dwa typy tworzonych grup:

  • Security – przeznaczony do grupowania obiektów w AAD w celu łatwiejszego zarządzania nimi, ich dostępem do określonych zasobów itp.
  • Microsoft 365 – przeznaczony do grupowanie obiektów w AAD w celu zarządzania nimi w kontekście usług dostępnych w Microsoft 365 (poczta, pakiet office itp.). Ten typ grupy pozwala również na udzielenie dostępu do grupy osobom z poza organizacji

Kolejne pole pozwala na wprowadzenia nazwy grupy. Szczególnie w przypadku środowisk produkcyjnych dobrą praktyką jest ustalenie jednolitej konwencji nazewnictwa dla różnego rodzaju grup i ścisłe stosowanie się do niej:

Wyłącznie w przypadku wybrania typu grupy jako Microsoft 365 kolejnym obowiązkowym polem będzie utworzenie adresu email skrzynki funkcyjnej przypisanej do tworzonej grupy:

Kolejne pole jest opcjonalne i pozwala na wprowadzenie opisu grupy w celu ułatwienia jej późniejszej identyfikacji:

Kolejna opcja określa, czy do grupy mogą być przypisywane wbudowane w Azure role:

Bardzo istotnym polem jest wybór typu członkostwa. Dostępne mamy 3 opcje:

  • Assigned – grupa, gdzie użytkownicy zostają ręcznie przypisani do grupy podczas jej tworzenia. Wszystkie zmiany dotyczące członkostwa grupy również dokonywane są ręcznie
  • Dynamic User – grupa, gdzie użytkownicy są przypisywani automatycznie na podstawie podanych kryteriów, zarówno na etapie tworzenia grupy jak i później – wystarczy, że zostanie utworzone nowe konto użytkownika (lub zmodyfikowane istniejące) tak, aby kryteria zostały spełnione, a zostanie on dołączony do grupy
  • Dynamic Device – grupa działająca analogicznie do poprzedniej, z tą różnicą, że kryteria dotyczą urządzeń (jako obiektów dodanych do AAD), a nie użytkowników (którzy oczywiście również są obiektami w AAD, tylko innego typu)

Co istotne, aby móc skorzystać z innego typu członkostwa niż Assigned należy mieć przypisaną licencję Premium P1 lub Premium P2.

Do każdej grupy można przypisać użytkowników pełniących wobec takiej grupy rolę Owner-a (czyli właściciela, takie osoby mogą zarządzać właściwościami grupy, określać kto ma przynależeć do grupy oraz kto ma być jej właścicielem itp.) oraz Member (zwykły członek, który korzysta ze wszystkich elementów (np. uprawnień) przypisanych do grupy, ale nie może zmieniać jej właściwości czy decydować o członkostwie).

W przypadku członkostwa typu Assigned (grupy statycznej) określenie właścicieli oraz członków jest bardzo proste, wystarczy jedynie zaznaczyć odpowiedni obiekt na liście:

W przypadku grup dynamicznych w powyższy sposób wskazujemy jedynie właścicieli grupy. W przypadku członków tworzymy odpowiednie reguły decydujące o tym, czy dany obiekt zostanie przypisany do grupy. Reguły możemy tworzyć na podstawie wyboru odpowiednich elementów z list. Poniżej przedstawiam przykładową regułę, przypisującą do grupy wszystkich użytkowników pracujących w dziale IT (przy parametrze Department we właściwościach ich konta została ustawiona wartość „IT”):

W AAD istnieje jedno konto użytkownika, które ma przypisaną wartość „IT” do pola Department:

Takie konto spełnia więc założone kryteria członkostwa dla świeżo utworzonej grupy. Z tego powodu, po chwili odczekania, konto zostało automatycznie dodane do grupy:

Na potrzeby dalszej prezentacji działania dynamicznego przypisywania do grup tworzę nowe konto o nazwie „Marcin Tester” i przy okazji tworzenia konta ustawiam wartość pola Department na „IT”:

Po chwili, z racji że nowo utworzone konto również spełnia kryteria, użytkownik zostaje automatycznie przypisany do utworzonej grupy:

Tworzenie nowej grupy z poziomu PowerShell-a

Grupy naturalnie możemy tworzyć nie tylko poprzez GUI (Azure portal) jak również z poziomu PowerShell-a, czy to uruchamianego lokalnie na komputerze (po uprzednim połączeniu się do AAD za pomocą odpowiedniego modułu), czy to przez CLI. W przypadku tworzenia użytkowników wyjaśniałem dokładnie w jaki sposób połączyć się ze swoim środowiskiem w Azure uruchamiając PowerShell-a lokalnie na swoim komputerze. W tym przypadku postępuje dokładnie tak samo, łączę się więc do swojego środowiska za pomocą polecenia:

Po poprawnym uwierzytelnieniu za pomocą konta globalnego administratora przechodzę do tworzenia grupy. Na początek tworzę statyczną grupę Security, do czego wykorzystuję następujące polecenie:

  • DisplayName – określa nazwę grupy
  • MailEnabled – określa, czy dla danej grupy włączona zostanie skrzynka funkcyjna
  • SecurityEnabled – określa, że tworzona grupa będzie grupą typu Security
  • MailNickname – określa przedrostek skrzynki mailowej, w przypadku grupy typu Security wpisana wartość nie ma większego znaczenia

W zakładce Groups możemy zaobserwować, że grupa została utworzona poprawnie:

Utworzona grupa jest oczywiście grupą statyczną, lecz jest ona zupełnie pusta – nie posiada przypisanego właściciela ani członków. Aby to zmienić z poziomu PowerShell-a dostępne mamy dwa polecenia – Add-AzureADGroupMember oraz Add-AzureADGroupOwner.

W przypadku obu poleceń niezbędnym elementem jest jednoznaczna identyfikacja grupy oraz obiektu, który chcemy do niej przypisać. Zarówno grupa jak i obiekt posiadają swój unikalny numer identyfikacyjny – ID. Dlatego też na początku musimy poznać wartość obu ID. Aby sprawdzić ID grupy wykonujemy następujące polecenie:

Jako wartość parametru SearchString podajemy oczywiście charakterystyczny element interesującej nas grupy. W środowisku testowym najprawdopodobniej nie ma potrzeby filtrowania grup czy obiektów – można wyświetlić je wszystkie naraz i odnaleźć ten, który nas interesuje, natomiast warto zapoznać się z mechanizmem filtrowania wyników jakim jest min. parametr „SearchString”, ponieważ w realnym środowisku zawierającym tysiące obiektów i grupy przeszukiwanie wszystkich istniejących grup wzrokiem zupełnie mija się z celem.

W moim przypadku jest to jedyna grupa w AAD posiadająca w swojej nazwie wyrażenie „PowerShell”. W wyniku otrzymujemy ID szukanej grupy:

ID grupy już mamy, teraz należy ustalić ID obiektu, który chcemy do niej dodać. W tym przypadku do grupy jako członka chcemy dodać użytkownika „Jan Kowalski”. Aby określić ID wykorzystujemy np. takie polecenie:

Analogicznie do poprzedniego przypadku, wartość parametru „SearchString” powinna pozwolić nam na znalezienie odpowiedniego użytkownika. W wyniku otrzymujemy ID szukanego użytkownika:

Teraz, posiadając zarówno ID grupy jak i ID użytkownika jesteśmy w stanie dodać go do grupy. Do tego celu wykorzystujemy polecenie:

Gdzie „ObjectId” to ID grupy, a „RefObjectID” to id obiektu, który do niej dodajemy.

Po wykonaniu tego polecenie możemy zaobserwować, że użytkownik został prawidłowo dodany do grupy:

Ale co w przypadku, gdy interesuje nas utworzenie grupy z dynamicznym członkostwem zamiast grupy statycznej ? Tutaj z pomocą przychodzi polecenie New-AzureADMSGroup.

Pełne polecenie pozwalające nam na utworzenie takiej grupy będzie wyglądało następująco:

Pierwsze 4 parametry są identyczne jak w przypadku poprzedniego polecenia, więc nie będę ich omawiał drugi raz. Jeżeli chodzi o pozostałe:

  • GroupTypes – określa rodzaj członkostwa w grupue
  • MembershipRule – jest najważniejszym elementem, w którym podajemy regułę, zgodnie z którą obiekty mają być automatycznie przypisane do grupy. Na przykładzie tego polecenia, do grupy będą przypisywani użytkownicy, którzy w polu Department mają wartość „HR”. Sama składnia wydaje się być standardowa dla PowerShell-a, natomiast w razie problemów można posiłkować się „wyklikaniem” reguły w kreatorze dostępnym w portalu Azure, który omawialiśmy wcześniej
  • MembershipRuleProcessingState – określa, czy wskazana reguła ma był włączona. Przy ustawieniu wartości na „On” obiekty będą przypisywane do grupy, w przypadku wartości „Pause” egzekwowanie reguły będzie wstrzymane do momentu ponownego uruchomienia

Jak widać grupa została poprawnie utworzona. W AAD znajduje się aktualnie jeden użytkownik przypisany do działu HR – zgodnie z ustawioną tutaj regułą został on poprawnie przypisany do świeżo utworzonej grupy:

W tym miejscu warto jeszcze poruszyć ewentualny problem, który może pojawić się podczas tworzenia dynamicznej grupy. Jeżeli utworzenie dynamicznej grupy nie jest możliwe warto sprawdzić aktualnie zainstalowane moduły za pomocą polecenia:

Get-InstalledModule

Jeżeli na liście będzie znajdował się moduł „AzureAD” zamiast „AzureADPreview” należy najpierw odinstalować ten pierwszy za pomocą polecenia:

Uninstall-Module -Name AzureAD

a następnie zainstalować drugi moduł za pomocą polecenia:

Install-Module -Name AzureADPreview

Usuwanie grup

W przypadku, gdy dana grupa nie jest nam już zupełnie potrzebna istnieje kilka prostych sposobów na jej usunięcie. Jeżeli chcielibyśmy tego dokonać za pomocą Azure portal, wystarczy że przejdziemy do zakładki Groups, zaznaczymy odpowiednią grupę, a następnie przycisk Delete:

Jeżeli chcemy usunąć grupę z poziomu PowerShella możemy do tego wykorzystać polecenie Remove-AzureADGroup. Na początku musimy oczywiście poznać ID grupy, którą chcemy usunąć:

Znając ID grupy wykorzystujemy wyżej wymienione polecenie i usuwamy wskazaną grupę:

Jak widać, w tym przypadku fakt, że była to grupa dynamiczna tworzona innym rodzajem polecenia (New-AzureADMSGroup, a usuwana jest za pomocą Remove-AzureADGroup, którym tworzyliśmy grupę statyczną) nie ma to większego znaczenia, jesteśmy w stanie za pomocą tego jednego polecenia usuwać dowolny typ grupy istniejący w naszym AAD.

Słowo końcowe

Możliwość grupowanie obiektów w AD jest kluczowe w kwestii efektywnego zarządzania swoim środowiskiem. Szczególnie w przypadku organizacji posiadających duże ilości użytkowników czy komputerów dołączonych do Active Directory wykorzystywanie grup wydaje się nieodłącznym elementem, dzięki któremu jesteśmy w stanie nie pogubić się w procesie administracji takim środowiskiem. W przypadku małych środowisk, bądź tych tworzonych całkowicie od zera również niezwykle istotne jest stosowanie się do dobrych praktyk administrowania środowiskiem, w kontekście tego artykułu wykorzystywanie grup np. do nadawania uprawnień. Nie ma znaczenia, że na tą chwilę jesteś w stanie wszystko „ogarnąć” ręcznie, że przypisanie roli do konkretnego użytkownika czy do grupy, która ma tylko jednego członka wyjdzie na to samo – w każdej rozwijającej się firmie liczba obiektów będzie prędzej czy później wzrastać. Po co przebudowywać wszystko na etapie, w którym przestajemy nadążać za ilością niezbędnych zmian, skoro możemy od samego początku zorganizować wszystko poprawnie i ułatwić sobie tym samym codzienną pracę?

Grupy dynamiczne są bardzo wygodnym narzędziem dla administratora. Przy raz skonfigurowanych regułach członkostwa oraz ustawieniu odpowiednich uprawnień dla członków konkretnych grup, rola administratora w kontekście dynamicznego przypisywania użytkowników do grup sprowadza się w zasadzie do przypilnowania, aby dane zostały odpowiednio uzupełnione (co najczęściej również realizowane jest za pomocą odpowiedniego skryptu w PowerShellu). Takie podejście jest znacznie bardziej wydajne, a przede wszystkim minimalizuje ryzyko błędu, szczególnie jeżeli konfiguracja funkcjonuje już od jakiegoś czasu i została dobrze przetestowana w praktyce. A automatyzacja to kluczowa kwestia dla dobrze funkcjonującego środowiska.

Coś jest dla Ciebie niezrozumiałe? Chciałbyś wyrazić opinię na temat artykułu? Znalazłeś jakiś błąd? Koniecznie daj mi o tym znać wysyłając maila lub wypełniając formularz!

Czy ten wpis był dla Ciebie przydatny?

Zostaw ocenę!

Średnia ocena 0 / 5. 0

Nikt nie ocenił jeszcze tego wpisu. Bądź pierwszym, który to zrobi!

Przykro mi, że post nie był dla Ciebie przydatny ...

Podziel się proszę swoją opinią

Twoja opinia jest dla mnie niezwykle ważna

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.