Korzystanie z protokołu OAuth2 z usługą O365
Korzystanie z protokołu OAuth2 z usługą O365
Korzystanie z nowoczesnego uwierzytelniania (OAuth2) jako metody uwierzytelniania poczty e-mail w usłudze O365
Notatka:
Usługa O365 (Exchange Online) ma pewne ograniczenia dotyczące wiadomości e-mail, które mogą mieć wpływ na działanie ESM, jeśli nie zostaną wzięte pod uwagę.
- Z OAuth2 można używać tylko protokołów IMAP i SMTP.
- Uwierzytelniony protokół SMTP ogranicza liczbę wiadomości wychodzących do 30 na minutę/10 000 odbiorców dziennie ( https://docs.microsoft.com/en-us/exchange/troubleshoot/send-emails/smtp-submission-improvements )
Nowoczesne uwierzytelnianie opisane w tym dokumencie jest obsługiwane w wersji ESM 2021.1 i nowszych wersjach .
Aby skonfigurować nowoczesne uwierzytelnianie (OAuth2) zamiast podstawowego uwierzytelniania dla protokołów SMTP i IMAP w ESM, musimy wykonać trzy kroki:
- Należy zarejestrować ESM jako zatwierdzoną aplikację w usłudze Azure Active Directory za pośrednictwem portalu Microsoft Azure .
- Zarejestrowanej aplikacji należy przyznać dostęp do konta pocztowego O365 używanego w programie Efecte.
- Ustawienia platformy ESM muszą zostać zaktualizowane, aby były zsynchronizowane z ustawieniami Microsoft Azure .
Zaleca się wykonanie kroków 1-2 przy użyciu tego samego konta O365, z którego wiadomości e-mail są odczytywane do ESM. Jeśli nie jest to możliwe, aplikacja wymaga skonfigurowania właściciela w usłudze Azure AD .
Rejestrowanie ESM jako aplikacji w usłudze Microsoft Azure
Wymagania wstępne
- Konto Microsoft Azure z aktywną subskrypcją (konto e-mail O365, które ma być używane z ESM).
- Dostępna jest dzierżawa Azure , w ramach której zarejestrujesz swoją aplikację.
Notatka:
W celach testowych możesz wykonać poniższe czynności, aby utworzyć bezpłatne konto platformy Azure i dzierżawcę przy użyciu swojego identyfikatora e-mail usługi O365:
https://azure.microsoft.com/en-us/free
https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-create-new-tenant
Zarejestruj aplikację
Rejestracja aplikacji ustanawia relację zaufania między ESM a platformą tożsamości Microsoft. Zaufanie z zarejestrowaną aplikacją jest jednokierunkowe: aplikacja (ESM) ufa platformie tożsamości Microsoft, a nie odwrotnie. Zaufanie opiera się na identyfikatorze utworzonym w procesie rejestracji.
Aby utworzyć rejestrację aplikacji, wykonaj następujące kroki:
- Zaloguj się do portalu Microsoft Entra ( https://entra.microsoft.com ) lub Azure Portal ( https://portal.azure.com/ ).
- Jeśli masz dostęp do wielu dzierżawców, użyj filtra Katalog + subskrypcja w górnym menu, aby wybrać dzierżawcę, w którym chcesz zarejestrować aplikację.
- Wyszukaj i wybierz Microsoft Entra ID (wcześniej Azure Active Directory ).
- W obszarze Zarządzaj wybierz Rejestracje aplikacji > Nowa rejestracja .
- Wprowadź nazwę swojej aplikacji. Użytkownicy Twojej aplikacji będą mogli zobaczyć tę nazwę, ale możesz ją później zmienić.
- Określ, kto może korzystać z aplikacji, co czasami nazywa się odbiorcami logowania. W przypadku ESM wybierz opcję „Konta tylko w tym katalogu organizacji” .
- Nie wpisuj nic w polu Redirect URI (opcjonalne) .
- Wybierz opcję Zarejestruj, aby dokończyć początkową rejestrację aplikacji.

Po zakończeniu rejestracji w portalu Azure wyświetla się panel Przegląd rejestracji aplikacji, który zawiera jej identyfikator aplikacji (klienta). Nazywany również identyfikatorem klienta, wartość ta jednoznacznie identyfikuje aplikację na platformie tożsamości Microsoft.

Dodaj uprawnienia dostępu do skrzynki pocztowej O365
Aby wysyłać i odbierać wiadomości e-mail ze skrzynki pocztowej O365 przy użyciu protokołu OAuth, musimy zdefiniować zakresy uprawnień interfejsu API dla aplikacji ESM, którą wcześniej zarejestrowaliśmy w usłudze Azure Active Directory .
Delegowane uprawnienia do programu Microsoft Graph
Skonfiguruj uprawnienia delegowane do programu Microsoft Graph, aby umożliwić ESM wykonywanie operacji w imieniu właścicieli aplikacji, na przykład odczytywanie lub wysyłanie ich wiadomości e-mail.
- Zaloguj się do portalu Microsoft Entra ( https://entra.microsoft.com ) lub Azure Portal ( https://portal.azure.com/ ).
- Jeśli masz dostęp do wielu dzierżawców, użyj filtra Katalog + subskrypcja w górnym menu, aby wybrać dzierżawcę zawierającego wcześniej zarejestrowaną aplikację ESM.
- Wybierz Azure Active Directory > Rejestracje aplikacji , a następnie wybierz swoją aplikację kliencką (jeśli nie jest wyświetlana na liście, sprawdź, czy strona wyświetla Wszystkie aplikacje ).
- Wybierz Uprawnienia API > Dodaj uprawnienie > Microsoft Graph .
- Wybierz Uprawnienia delegowane . Microsoft Graph udostępnia wiele uprawnień, a te najczęściej używane są wyświetlane na górze listy.
- W obszarze Wybierz uprawnienia wybierz następujące uprawnienia:
- IMAP.AccessAsUser.All - dostęp do odczytu i zapisu skrzynek pocztowych przez IMAP.
- SMTP.Send — wysyłanie wiadomości e-mail ze skrzynek pocztowych przy użyciu uwierzytelniania SMTP.
- openid - Logowanie użytkowników.
- User.Read - Zaloguj się i przeczytaj profil użytkownika.
- offline_access - Utrzymuje dostęp do danych, do których udzieliłeś dostępu.
- Aby zakończyć proces, wybierz opcję Dodaj uprawnienia .

Jako administrator powinieneś również udzielić zgody w imieniu wszystkich użytkowników ESM Admin, aby nie byli oni o to proszeni po zalogowaniu się do skrzynki pocztowej. Zgoda administratora zostanie omówiona w następnym podrozdziale. Jeśli zdefiniujesz zgodę administratora wcześniej, użytkownicy logujący się do skrzynek pocztowych nie będą proszeni o osobne proszenie o zgodę administratora.
Administratorzy ESM powinni co tydzień logować się na konta e-mail odczytywane przez ESM, aby sprawdzić, czy folder ze spamem zawiera rzeczywiste wiadomości e-mail klientów, a następnie przenieść je do folderu, z którego wiadomości są pobierane do ESM (zwykle jest to folder skrzynki odbiorczej).
Administratorzy powinni również sprawdzać, czy wiadomości e-mail nie są poprawnie pobierane do ESM. Jeśli w skrzynce odbiorczej znajdują się duże wiadomości e-mail, których nie można pobrać do ESM, należy je przenieść do innego folderu, aby uniknąć błędów.
Przycisk zgody administratora
Przycisk „Udziel zgody administratora dla {Twojej dzierżawy}” umożliwia administratorowi udzielenie zgody administratora na uprawnienia skonfigurowane dla aplikacji. Po kliknięciu przycisku pojawi się okno dialogowe z prośbą o potwierdzenie zgody.

Po udzieleniu zgody uprawnienia, które wymagały zgody administratora, są wyświetlane jako objęte udzieloną zgodą:

Przycisk „Udziel zgody administratora” jest wyłączony, jeśli nie jesteś administratorem lub jeśli aplikacja nie ma skonfigurowanych żadnych uprawnień. Jeśli masz uprawnienia, które zostały przyznane, ale jeszcze nie skonfigurowane, przycisk „Udziel zgody administratora” wyświetli monit o ich zatwierdzenie. Możesz je dodać do skonfigurowanych uprawnień lub usunąć.

Ustawienia uwierzytelniania
Aby umożliwić prawidłowe działanie przepływu autoryzacji ROPC dla aplikacji oraz aby ESM mógł uwierzytelniać się i uzyskiwać tokeny dostępu, musimy włączyć ustawienie Domyślny typ klienta (jak pokazano na zrzucie ekranu) w obszarze Uwierzytelnianie → Ustawienia zaawansowane .
Domyślnie ustawienie jest ustawione na „Nie” (klient poufny). Zmiana na „Tak” powoduje zmianę domyślnego typu klienta na klienta publicznego. To bardzo ważny krok. Jeśli go nie wykonasz, pojawi się poniższy błąd:
- A AD STS7000218: The request body must contain the following parameter: client_assertion or client_secret when authenticating to Azure AD .
Zakończyliśmy proces rejestracji i konfiguracji aplikacji. Następnie wystarczy dodać następujące ustawienia platformy w ESM, aby skorzystać z powyższej konfiguracji.
Ustawienia platformy ESM
Notatka:
Te ustawienia to dodatkowe ustawienia dla uwierzytelniania podstawowego. Jeśli wiadomości e-mail nie były wcześniej używane w środowisku, potrzebne są dodatkowe właściwości.
Aby skonfigurować ESM do korzystania z punktu końcowego OAuth2, który właśnie utworzyliśmy w Azure Portal dla wiadomości e-mail, przejdź do widoku administratora ESM i wybierz kolejno Konserwacja > Ustawienia systemu > Edytuj ustawienia platformy . Użyj pola filtru, aby znaleźć kolejno następujące ustawienia poczty i ustawić następujące właściwości:
mail.store.oauth.enabled = true
mail.transport.oauth.enabled = true
mail.oauth.authorize.endpoint = https://login.microsoftonline.com/{tenantID}/oauth2/v2.0/authorize
mail.oauth.client.id = {clientId}
mail.oauth.scopes = https://outlook.office365.com/IMAP.AccessAsUser.All,https://outlook.office365.com/SMTP.Send
Identyfikator klienta i punkt końcowy autoryzacji można znaleźć na stronie głównej Azure Active Directory dla aplikacji zarejestrowanej w ESM. Poniżej znajdziesz informacje, jak je uzyskać.

Należy pamiętać, że zadania pocztowe korzystają z ustawień skonfigurowanych w ich właściwościach. Jeśli ustawienia połączenia i uwierzytelniania zostały zdefiniowane we właściwościach zadania pocztowego (zamiast definiować je centralnie w ustawieniach platformy dla wszystkich zadań pocztowych), należy ustawić powyższe ustawienia bezpośrednio we właściwościach zadania pocztowego dla każdego zadania pocztowego.
Odniesienia
https://docs.microsoft.com/en-us/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth
https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-register-app
https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-authentication-flows
https://blogs.aaddevsup.xyz/2020/09/Jakie są konsekwencje zmiany domyślnego typu klienta z poufnego na publiczny w usłudze Azure Ad dla bezpieczeństwa/