Använda OAuth2 med O365
Använda modern autentisering (OAuth2) som e-postautentiseringsmetod med O365
Notera:
O365 (Exchange Online) har vissa begränsningar gällande e-postmeddelanden som kan påverka ESM:s drift om de inte beaktas.
- Endast IMAP och SMTP kan användas med OAuth2.
- Autentiserad SMTP begränsar utgående e-postmeddelanden till 30 meddelanden per minut / 10 000 mottagare per dag ( https://docs.microsoft.com/en-us/exchange/troubleshoot/send-emails/smtp-submission-improvements )
Den moderna autentisering som beskrivs i detta dokument stöds i ESM version 2021.1 och senare versioner .
För att konfigurera modern autentisering (OAuth2) istället för grundläggande autentisering för SMTP- och IMAP-protokollen i ESM, behöver vi göra tre steg:
- ESM måste registreras som en godkänd applikation i Azure Active Directory via Microsoft Azure -portalen.
- Den registrerade applikationen måste beviljas åtkomst till det O365-postlådekonto som används för Efecte.
- ESM-plattformsinställningarna måste uppdateras för att vara synkroniserade med Microsoft Azure -inställningarna.
Det rekommenderas att utföra steg 1–2 med samma O365-konto som e-postmeddelandena läses från till ESM. Om det inte är möjligt behöver applikationen konfigurera en ägare i Azure AD .
Registrera ESM som en applikation i Microsoft Azure
Förkunskapskrav
- Ett Microsoft Azure -konto med en aktiv prenumeration (det O365-e-postkonto som ska användas med ESM).
- En tillgänglig Azure klient under vilken du registrerar ditt program.
Notera:
För teständamål kan du följa dessa instruktioner för att skapa ett gratis Azure-konto och en hyresgäst med ditt O365-e-postadress:
https://azure.microsoft.com/en-us/free
https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-create-new-tenant
Registrera en ansökan
Genom att registrera ett program upprättas en förtroenderelation mellan ESM och Microsoft Identity Platform. Förtroendet för det registrerade programmet är enkelriktat: programmet (ESM) litar på Microsoft Identity Platform och inte tvärtom. Förtroendet baseras på det ID som skapas i registreringsprocessen.
Följ dessa steg för att skapa appregistreringen:
- Logga in på Microsoft Entra -portalen ( https://entra.microsoft.com ) eller Azure -portalen ( https://portal.azure.com/ ).
- Om du har åtkomst till flera hyresgäster använder du filtret Katalog + prenumeration i den översta menyn för att välja den hyresgäst där du vill registrera ett program.
- Sök efter och välj Microsoft Entra ID (tidigare Azure Active Directory ).
- Under Hantera väljer du Appregistreringar > Ny registrering .
- Ange ett namn för din applikation. Användare av din app kan se det här namnet, och du kan ändra det senare.
- Ange vem som kan använda applikationen, ibland kallad inloggningspublik. För ESM väljer du alternativet Konton endast i denna organisationskatalog .
- Ange ingenting för Omdirigerings-URI (valfritt) .
- Välj Registrera för att slutföra den första appregistreringen.

När registreringen är klar visar Azure portalen appens översiktsfönster, som inkluderar dess program-ID (klient-ID). Detta värde, även kallat klient-ID, identifierar unikt ditt program i Microsoft Identity Platform.

Lägg till behörigheter för att komma åt O365-postlådan
För att kunna skicka och ta emot e-postmeddelanden från O365-postlådan med OAuth måste vi definiera API behörighetsområden för ESM-applikationen som vi tidigare registrerade i Azure Active Directory .
Delegerad behörighet till Microsoft Graph
Konfigurera delegerad behörighet till Microsoft Graph för att tillåta ESM att utföra åtgärder för app-ägarnas räkning, till exempel att läsa eller skicka deras e-postmeddelanden.
- Logga in på Microsoft Entra -portalen ( https://entra.microsoft.com ) eller Azure -portalen ( https://portal.azure.com/ ).
- Om du har åtkomst till flera hyresgäster använder du filtret Katalog + prenumeration i den översta menyn för att välja den hyresgäst som innehåller ditt tidigare registrerade ESM-program.
- Välj Azure Active Directory > Appregistreringar och välj sedan ditt klientprogram (om det inte visas i listan kontrollerar du att sidan visar Alla program ).
- Välj API behörigheter > Lägg till en behörighet > Microsoft Graph .
- Välj Delegerade behörigheter . Microsoft Graph exponerar många behörigheter, där de vanligaste visas högst upp i listan.
- Under Välj behörigheter väljer du följande behörigheter:
- IMAP.AccessAsUser.All - Läs- och skrivåtkomst till postlådor via IMAP.
- SMTP.Send - Skicka e-postmeddelanden från brevlådor med SMTP-AUT.
- openid - Logga in användare.
- Användare.Läs - Logga in och läs användarprofilen.
- offline_access – Behåll åtkomst till data som du har gett den åtkomst till.
- Välj Lägg till behörigheter för att slutföra processen.

Som administratör bör du också ge samtycke för alla ESM-administratörsanvändare, så att de inte uppmanas att göra det när de loggar in i postlådan. Administratörssamtycke diskuteras i nästa underkapitel. Om du definierar administratörssamtycke i förväg uppmanas inte de användare som loggar in i postlådorna att be om administratörssamtycke separat.
ESM-administratörer bör logga in varje vecka på de e-postkonton som läses in i ESM för att kontrollera om skräppostmappen innehåller faktiska kundmejl och flytta dem till den mapp från vilken e-postmeddelandena hämtas till ESM (vanligtvis inkorgen).
Administratörer bör också kontrollera om det finns fall där e-postmeddelanden inte hämtas till ESM. Om det finns stora e-postmeddelanden i inkorgen som inte kan hämtas till ESM bör dessa flyttas till en annan mapp för att undvika fel.
Knapp för administratörsmedgivande
Knappen Ge administratörsmedgivande för {din hyresgäst} låter en administratör ge administratörsmedgivande till de behörigheter som konfigurerats för programmet. När du väljer knappen visas en dialogruta som ber dig bekräfta medgivandeåtgärden.

Efter att samtycke har beviljats visas de behörigheter som krävde administratörssamtycke som beviljade:

Knappen Ge administratörsmedgivande är inaktiverad om du inte är administratör eller om inga behörigheter har konfigurerats för programmet. Om du har behörigheter som har beviljats men ännu inte konfigurerats, uppmanas du att hantera dessa behörigheter via knappen för administratörsmedgivande. Du kan lägga till dem i konfigurerade behörigheter eller ta bort dem.

Autentiseringsinställningar
För att ROPC-auktoriseringsflödet ska fungera korrekt för applikationen och för att ESM ska autentisera och hämta åtkomsttokens måste vi aktivera standardinställningen för klienttyp (som visas på skärmdumpen) i Autentisera → Avancerade inställningar .
Som standard är inställningen inställd på Nej (konfidentiell klient). Om du uppdaterar den till Ja konverteras standardklienttypen till en offentlig klient. Detta är ett mycket viktigt steg, om du inte gör det kommer du att se följande fel:
- A AD STS7000218: The request body must contain the following parameter: client_assertion or client_secret when authenticating to Azure AD .
Vi har nu slutfört processen med registrering och konfiguration av applikationen. Efter detta behöver vi bara lägga till följande plattformsinställningar i ESM för att använda ovanstående inställningar.
ESM-plattformsinställningar
Notera:
Dessa inställningar är ytterligare inställningar för grundläggande autentisering. Om e-postadresser inte har använts i miljön tidigare behövs ytterligare egenskaper
För att konfigurera ESM för att använda OAuth2-slutpunkten som vi just skapade i Azure -portalen för e-postmeddelanden, gå till ESM-administratörsvyn och navigera till Underhåll > Systeminställningar > Redigera plattformsinställningar . Använd filterfältet för att hitta följande e-postinställningar en i taget och ange följande egenskaper:
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
Klient-ID och auktoriserad slutpunkt finns på Azure Active Directory startsidan för applikationen vi registrerade för ESM. Se nedan hur du får tag på dem.

Observera att mailtasks använder de inställningar som konfigurerats i deras egenskaper. Om anslutnings- och autentiseringsinställningar har definierats i mailtask-egenskaperna (istället för att definiera dem centralt i plattformsinställningarna för alla mailtasks), vänligen ange inställningarna som anges ovan direkt i mailtask-egenskaperna för varje mailtask.
Referenser
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/whats-the-security-implication-of-changing-the-default-client-type-from-confidential-to-public-in-azure-ad/