Integracja z AAD przy pomocy akcji wywołania REST oraz Microsoft Graph

Facebooktwitterpinterestlinkedinmail
Dotyczy wersji 2019.1.4.x; autor: Michał Bednarz 

W przypadku implementacji systemu opartego o autentykacje AAD może zajść konieczność tworzenia zarządzania użytkownikami bezpośrednio w O365 z poziomu WEBCON BPS. BPS dostarcza dedykowane akcje dla lokalnego AD. W przypadku AAD możemy wykorzystać standardowe akcje dostępne w BPS (akcja wywołania REST) oraz REST Service Microsoft Graph.

 

1. Przygotowanie aplikacji po stronie AAD

W konsoli zarządzania AAD należy zarejestrować nową aplikację. Wykonuje się to analogicznie do procesu rejestracji aplikacji do synchronizacji listy użytkowników BPS (https://kb.webcon.pl/synchronizacja-listy-uzytkownikow-bps/).

Różnica pojawia się w sekcji API Permissions, nowej aplikacji nadajemy następujące uprawnienia:

2. Tworzenie użytkownika w AAD za pomocą akcji wywołania REST

Metody z których możemy skorzystać do zarządzania obiektem użytkownika w AAD opisane są w dokumentacji https://docs.microsoft.com/en-us/graph/api/resources/users?view=graph-rest-beta Użytkownika tworzymy za pomocą https://docs.microsoft.com/en-us/graph/api/user-post-users?view=graph-rest-beta&tabs=http

W procesie warto utworzyć atrybut User ID – będziemy w nim przechowywać ID użytkownika z AAD, ID będzie konieczne do późniejszego zarządzania utworzonym użytkownikiem.

2.1. Konfiguracja źródła danych dla połączenia z Graph

Dane konieczne do autentykacji pobieramy z konfiguracji aplikacji z AAD analogicznie jak w przypadku aplikacji do synchronizacji listy użytkowników BPS (https://kb.webcon.pl/synchronizacja-listy-uzytkownikow-bps/).

2.2. Konfiguracja akcji wywołania REST – tworzenie użytkownika w AAD

W pierwszej zakładce wybieramy skonfigurowane wcześniej połączenie:

W kolejnej konfigurujemy REST suffix oraz wybieramy metodę HTTP, w przypadku tworzenia użytkownika będzie to POST:

Kolejny etap to przekazanie obiektu użytkownik w formacie JSON, lista atrybutów obiegu user dostępna jest w dokumentacji Graph.

Jeśli chcemy przekazać do elementu BPS dane z odpowiedzi konieczna jest również konfiguracja zakładki Response. W przypadku wywołania Graph wczytanie wartości zakończy się niepowodzeniem, jeśli zakładka JSON zawiera parametry (wąsy). Aby ominąć ten problem należy uzupełnić potrzebne dane bezpośrednio w zakładce JSON. Wykonujemy to jednorazowo podczas konfiguracji. Uwaga: Wczytanie konfiguracji spowoduje wywołanie metody, a co za tym idzie utworzenie użytkownika. W tym konkretnym przypadku interesuje nas ID utworzonego obiektu:

2.3. Konfiguracja akcji REST – tworzenie grupy AAD

W przypadku grup korzystamy z obiektu https://docs.microsoft.com/en-us/graph/api/resources/group?view=graph-rest-beta oraz metody https://docs.microsoft.com/en-us/graph/api/group-post-groups?view=graph-rest-beta&tabs=http

Konfiguracja zakładek Autentication oraz Request data jest analogiczna jak w przypadku tworzenia użytkownika.

W zakładce JSON wskazujemy atrybuty dla grupy AAD:

W zakładce Response wczytujemy dane w sposób analogiczny jak w przypadku tworzenia użytkownika, ID nowego obiektu zapisujemy w odpowiednim atrybucie:

2.4. Konfiguracja akcji REST – zarządzanie zawartością grup AAD

Podobnie jak w poprzednim punkcie korzystamy z obiektu Group, a konkretnie dodajemy użytkownika do grupy https://docs.microsoft.com/en-us/graph/api/group-post-members?view=graph-rest-beta&tabs=http

Konfiguracja zakładki Authentication jest taka sama, jak w przypadku poprzednich akcji.

W zakładce Request data w polu REST suffix wskazujemy ID grupy AAD na której przeprowadzamy operacje modyfikacji. Metoda HTTP to w dalszym ciągu POST:

W zakładce JSON przekazujemy obiekt użytkownika, którego chcemy dodać do grupy:

W przypadku modyfikacji zawartości grup, Graph zwraca status HTTP 204 w przypadku powodzenia. Nie ma potrzeby modyfikacji zakładki Response (response body jest puste).

W przypadku implementacji zaawansowanych scenariuszy ID obiektów z AAD możemy pobrać z tabeli CacheOrganizationStructure – jeśli AAD jest źródłem synchronizacji listy użytkowników BPS.

W przykładach tych przedstawiliśmy tylko kilka możliwości z bardzo wielu udostępnionych przez Microsoft Graph.