Wstęp
W artykule zebrana została lista minimalnych uprawnień dla aplikacji Microsoft Graph do współpracy z WEBCON BPS dla funkcjonalności związanych ze skrzynkami nadawczymi i odbiorczymi:
- Powiadomienia E-mail
- Powiadomienia administracyjne
- HotMailBoxy
- MailApproval
Dla każdej z tych funkcjonalności istnieje możliwość wyboru Typ serwera: Exchange Online – Microsoft Graph umożliwiająca (jak wynika z nazwy) pracę w oparciu o Exchange Online z wykorzystaniem Microsoft Graph.
Konfiguracja aplikacji w Microsoft Azure
Każda z funkcjonalności wymaga wcześniejszego zarejestrowania w Microsoft Azure aplikacji, która będzie wykorzystywana do komunikacji między WEBCON BPS a Exchange Online.
W trakcie rejestracja aplikacji w Microsoft Azure należy podać jej nazwę, aplikacji zostaną wygenerowane i przypisane Tenant ID oraz Application ID. Następnie w sekcji Certificates & secrets należy utworzyć Client secret.
Ważne jest żeby zachować wszystkie te trzy elementy ponieważ są one częścią konfiguracji połączenia.
Ta część konfiguracji będzie przebiegać tak samo niezależnie od funkcjonalności pod którą konfigurujemy aplikację.
Wszystkie operacje związane z wysyłaniem i odbieraniem wiadomości e-mail z Exchange Online są wykonywane przy użyciu Microsoft Graph API w kontekście aplikacji.
Z tego też względu aplikacja Microsoft Azure powinna posiadać odpowiednie uprawnienia typu Application permissions.
Uprawnienia aplikacji w zależności od kontekstu w którym będzie używana (funkcjonalności która będzie korzystać z aplikacji) muszą pozwalać na wysyłanie, odbiór lub usuwanie wiadomości.
Poniżej zestawiono minimalne uprawnienia jakie powinna posiadać aplikacja aby funkcjonalność która korzysta z aplikacji mogła działać poprawnie.
Funkcjonalność | Minimalne uprawnienia |
Konfiguracja wysyłki e-mail | Mail.Send |
Powiadomienia administracyjne | Mail.Send (dla niestandardowych ustawień skrzynki nadawczej) |
HotMailBox | Mail.ReadWrite |
MailApproval | Mail.ReadWrite (dla niestandardowych ustawień skrzynki odbiorczej)
Mail.Send (dla niestandardowych ustawień skrzynki nadawczej) |
Dobrą praktyką jest by każda z funkcjonalności posiadała swoją własną aplikację z dedykowanym kontem do wysyłania lub odbierania wiadomości.
Drugą dobrą praktyką jest aby aplikacja posiadała absolutnie minimalne uprawnienia do potrzebnego zadania.
W sekcji API permissions należy dodać odpowiednie uprawnienia, właściwe dla funkcjonalności która będzie wykorzystywać aplikację.
Uprawnienia muszą zostać potwierdzone przez administratora.
Konto wysyłki i odbioru e-mail
Zarówno wysyłanie jak i odbiór e-mail wymaga wskazania konkretnego konta, które będzie wykorzystywane przez daną funkcjonalność systemu.
W przypadku funkcjonalności wysyłających wiadomości e-mail (Powiadomienia systemowe, Powiadomienia administracyjne) musza one używać standardowej (najlepiej dedykowanej do tego celu) skrzynki e-mail.
Dla funkcjonalności odbierających i przetwarzających wiadomości e-mail (HotMailBox, MailApproval) zamiast standardowej skrzynki można również używać Shared Mailbox.
Ograniczenie dostępu do wybranej skrzynki
Uprawnienia Mail.Send oraz Mail.ReadWrite nadane aplikacji, dają jej dostęp do wszystkich skrzynek w organizacji. Ze względów bezpieczeństwa, przeważnie chcemy tego unikać, i ograniczyć uprawnienia do wybranych skrzynek.
W tym celu tworzymy dedykowaną grupę typu Mail-enabled security a następnie w oparciu o nią skonfigurować odpowiednie ApplicationAccessPolicy.
Pełen opis konfiguracji ApplicationAccessPolicy można znaleźć pod adresem
https://learn.microsoft.com/en-us/graph/auth-limit-mailbox-access
Uwaga: Należy pamiętać, że propagacja wszelkich zmiany wykonanych w ApplicationAccessPolicy może zająć ponad godzinę. Nawet jeśli testowe sprawdzenie uprawnień (komenda Test-ApplicationAccessPolicy) zakończy się sukcesem, efektywne nadanie uprawnień może potrwać dłużej.
Podsumowanie
Rozwiązania chmurowe Microsoft 365 są popularną alternatywą do rozwiązań on-prem, a Exchange Online jest ich standardowym elementem odpowiedzialnym za komunikację i kalendarz wydarzeń. WEBCON BPS bezproblemowo komunikuje się z produktami Microsoft za pomocą interfejsu Graph które umożliwiają dostęp do infrastruktury Microsoft 365.
W tym artykule wymieniono cztery standardowe funkcjonalności skrzynek nadawczych i odbiorczych jakie istnieją w WEBCON BPS, i które są w stanie operować w oparciu o Exchange Online – po odpowiednim skonfigurowaniu po stronie Graph i WEBCON BPS.
Należy pamiętać o dobrych praktykach podczas tworzenia aplikacji w Graph:
- Każda funkcjonalność (np. HotMailBox, MailApproval) powinna mieć osobną dedykowaną aplikację Graph.
- Aplikacje Graph powinny mieć minimalne możliwe uprawnienia do obsługi danej funkcjonalnści.
- Jeżeli to możliwe, uprawnienia Mail.Send oraz Mail.ReadWrite powinny być ograniczone do wybranych skrzynek za pomocą ApplicationAccessPolicy.
- Nie zgub Client secret!