Exchange Online Authentifizierung
Microsoft macht langsam Ernst und plant die Anmeldung per "Benutzername/Kennwort" an POP, IMAP und immer mehr Diensten abzuschalten. Der neue Weg heißt "OAUTH", bei der sich der Client erst ein Zugangstoken bei einem zugelassenen Federation Service (evoSTS) besorgt. Dieser Service kann dann auch genutzt werden, um MFA, Conditional Access u.a. Mehrwerte umzusetzen.
Aktuell ist eine Anmeldung per "BasicAuth" an den Diensten noch möglich. Aber auch die Anmeldung per OAUTH ist schon freigeschaltet und Entwickler von eigenen Lösungen sollten sich langsam daran machen, ihre Applikationen zu erweitern.
Infos von Microsoft
Wenn man den Aussagen von Microsoft glauben darf, dann sollte an Oktober 2020 eine Anmeldung per POP/IMAP nur noch über "Modern Authentication" möglich sein. Allerdings hat Microsoft diese Aussage im April 2020 aufgrund von Corona aufgeweicht:
In response to the COVID-19 crisis and
knowing that priorities have changed for many of our
customers we have decided to postpone disabling Basic
Authentication in Exchange Online for those tenants still
actively using it until the second half of 2021. We will
provide a more precise date when we have a better
understanding of the impact of the situation.
Quelle:
https://techcommunity.microsoft.com/t5/exchange-team-blog/basic-authentication-and-exchange-online-april-2020-update/ba-p/1275508
Das kann einfach ein Zugeständnis aufgrund von Covid-19 an Kunden sein oder auch aufgrund einer Knappheit an eigenen Kräften kein Risiko einzugehen. Ich persönlich denke aber, dass es noch viel zu viele Lösungen gibt, die Postfächer mit POP3/IMAP4 abrufen und einfach nicht schnell genug umgestellt werden können.
- Basic Authentication and Exchange Online – April 2020 Update
https://techcommunity.microsoft.com/t5/exchange-team-blog/basic-authentication-and-exchange-online-april-2020-update/ba-p/1275508 - Announcing OAuth 2.0 support for IMAP and SMTP AUTH protocols in Exchange
Online
https://techcommunity.microsoft.com/t5/exchange-team-blog/announcing-oauth-2-0-support-for-imap-and-smtp-auth-protocols-in/ba-p/1330432 - Announcing OAuth Support for POP in Exchange Online
https://techcommunity.microsoft.com/t5/exchange-team-blog/announcing-oauth-support-for-pop-in-exchange-online/ba-p/1406600 - Improving Security - Together
https://techcommunity.microsoft.com/t5/exchange-team-blog/improving-security-together/ba-p/805892 - Office 365: Developer Blog: "End of support for Basic Authentication access to Exchange
Online API’s for Office 365 customers "
https://developer.microsoft.com/en-us/office/blogs/end-of-support-for-basic-authentication-access-to-exchange-online-apis-for-office-365-customers/ - Exchange Online deprecating Basic Authentication
https://support.microsoft.com/en-us/help/4521831/exchange-online-deprecating-basic-auth - Upcoming changes to Exchange Web Services (EWS) API for Office 365
https://techcommunity.microsoft.com/t5/exchange-team-blog/upcoming-changes-to-exchange-web-services-ews-api-for-office-365/ba-p/608055 - Microsoft 365 Admin center: Exchange Online Basic Authentication Settings
https://www.microsoft.com/en-us/microsoft-365/roadmap?filters=&searchterms=65007
We are adding Exchange Online Basic Authentication settings to Microsoft Admin center. This will enable an administrator to easily disable Basic Authentication within their tenant. - Authenticate an IMAP, POP or SMTP
connection using OAuth
https://docs.microsoft.com/en-us/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth
Microsoft ist aber nicht der einzige Anbieter, der OAUTH forciert.
- Connect your alternative email client
with Gmail user accounts, using industry
standard IMAP and SMTP protocols.
https://developers.google.com/gmail/imap
Nutzung analysieren
Aber Sie sollten sich vorbereiten und wenn eine Applikation bis dahin nicht erweitert werden kann, sollten Sie die Postfächer besser auf einem lokalen Exchange Server umziehen. Auf jeden Fall ist ein Blick in die Anmeldeüberwachung ratsam, um die Nutzer von POP3/IMAP4 zu erkennen. Über das Azure-Portal können Sie im "Azure Active Directory" unter "Sign-Ins" auf die Clients Filtern.
Zuerst addieren Sie "Client App" als Filter um dann auf dem Filter die "Legacy Authentication Clients" anzukreuzen. Eventuell sollten Sie den Zeitraum von "24h" auf "1 Monat" umstellen. Sie sollten dann alle Anmeldungen an diesen Diensten aufgelistet bekommen. Client, die schon OAUTH nutzen, sind aus Sicht des AzureAD eben keine "Legacy Authentication Clients" sondern tauchen mit ihrem Applikationsnamen auf
- Berichte zu Anmeldeaktivitäten im Azure Active Directory-Portal
https://docs.microsoft.com/de-de/azure/active-directory/reports-monitoring/concept-sign-ins
Applikationen aktualisieren
Die neu möglich gewordene Sicherheit erfordert natürlich eine Anpassung der jeweiligen Anwendung. Allerdings ist niht nur Microsoft auf dem Weg zu OAUTH, sondern auch Google und andere Dienste erweitern ihre Anmeldungsoptionen.
Thunderbird konnte schon in der Version 38 (Releasde 11.Juni 2015) mit Google OAUTH.
- Neu in Thunderbird 38.0
https://support.mozilla.org/de/kb/neu-thunderbird-38 - Using OAuth2 with Thunderbird and Gmail
https://www.supertechcrew.com/thunderbird-oauth2-gmail/
Es dürfte also nicht lange dauern, bis die Funktion auch mit Office 365-Postfächern zur Verfügung steht. Ale anderen Programmierer sollten sich aber zügig mit dieser Funktion auseinandersetzen. Zumal Firmen auch ihre OnPremises-Systeme mittels Hybrid Modern Authentication (HMA) auf OAUTH umstellen.
- OAuth2 authorization code flow
https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow - OAuth2 Device authorization grant flow
https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code
Dieser Weg ist nicht für POP3/IMAP4 möglich. Wenn Dienste Zugriff auf mehrere Postfächer benötigen, dann ist MSGraph der passende Weg. - Announcing OAuth 2.0 support for IMAP and SMTP AUTH protocols in Exchange
Online
https://techcommunity.microsoft.com/t5/exchange-team-blog/announcing-oauth-2-0-support-for-imap-and-smtp-auth-protocols-in/ba-p/1330432 - Announcing OAuth Support for POP in Exchange Online
https://techcommunity.microsoft.com/t5/exchange-team-blog/announcing-oauth-support-for-pop-in-exchange-online/ba-p/1406600 - Authenticate an IMAP, POP or SMTP connection using OAuth
https://docs.microsoft.com/en-us/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth - Microsoft Graph-Authentifizierung (Übersicht)
https://docs.microsoft.com/de-de/graph/auth/
Altlasten mit IMAP4 weiter betreiben
Es wird immer Programme oder Lösungen geben, die nicht mehr durch den Hersteller gewartet oder aktualisiert werden. Sie müssen aber auch nach der Abschaltung von "BasicAuth" funktionieren. gegen Exchange Online mit POP3/IMAP4 wird das schwer. Also gilt es Alternativen zu suchen. Ich stelle hier mal ein ein paar kurz vor.
- Exchange OnPremises
Solange Sie noch Exchange Hybrid sind und einen lokalen Exchange Server betreiben, könnten Sie die fraglichen Postfächer weiterhin "OnPremises" betreiben. Damit kann ihre alte POP3/IMAP4-Applikation, die vermutlich auch nicht in der Cloud läuft, auf das Postfach weiter zugreifen - Lokaler IMAP4-Subdomain
Der Betrieb eines Exchange Servers ist natürlich aufwändig. Wenn es nur um ein "durchlaufendes Postfach" geht, dann können Sie auch in der Nähe der Applikation einen kleinen IMAP4-Server, wie z.B. hMailServer, betreiben. Der kann dann eine Subdomain haben wie "app1.uclabor.de" und in Exchange gibt es einen Kontakt, der alle Mails an app@uclabor.de an mailbox@app.uclabor.de über einen passenden Send-Connector weiter gibt. Dann kann die Applikation die Daten auch wieder abrufen. - Alternative Wege
Wenn die App nicht auf EWS/Graph umgestellt werden kann, dann könnte Sie vielleicht so angepasst werden, dass diese stattdessen Dateien in einem Verzeichnis einliest. Dann können Sie sogar den einfachen Windows SMTP-Server nutzen. Dieser kann auch Mails für einen Domain annehmen und als Dateien im RFC822-Format ablegen. zudem kann auch auch Mails per Dateischnittstelle FILE - Pickup Verzeichnis Nachrichten zum Versand annehmen - IMAP4->EWS/Graph-Proxy
Mit DaveMail (http://davmail.sourceforge.net/advanced.html) gibt es schon länger eine Brücke, mit der IMAP4-Programme weiterhin auf andere Dienste zugreifen können, die nur per EWS/WebDAV erreichbar sind. Aktuell funktioniert der Proxy noch nicht mit OAUTH2 aber könnte vielleicht weiter entwickelt werden. Leider scheint aber Exchange 2010 die letzte Exchange Version zu sein. - Eigener Proxy
IMAP4 ist ja kein besonders kniffliges Protokoll und wenn die alte App einfach nur per TCP-Connection auf einen lokalen IMAP-Server geht, der dann seinerseits gegen Graph die Daten liefert, könne so eine Lösung dann auch möglich sein.
Der Weg, die Mails gar nicht mehr in einer Exchange Online-Mailbox abzulegen, sondern an einen eigenen für die jeweilige Applikation angepassten IMAP4-Server per SMTP zuzustellen, hat aus meiner Sicht den größten Charme.
Prüfen
Ehe Sie nun aber ihre OAUTH-taugliche Applikation gegen Outlook.Office365.com per POP3 oder IMAP4 konfigurieren, können Sie ja mal schauen, welche Authentifizierungsverfahren die Gegenseite ihnen anbietet. Bei Thunderbird habe ich daher eine Verbindung per "IMAP:outlook.office36.com:143" mit konfiguriertem OAUTH2 gestartet. Thunderbird fragt direkt die "Capability" ab
Hier kann man allerdinge OAUTH nicht sehen, denn Microsoft wird dieses Verfahren sicher nicht ohne Verschlüsselung anbieten. Bei OAUTH wird ja das Zugriffstoken direkt übertragen und könnte dann mitgelesen werden. Verschlüsselung ist also Pflicht. Erst dann sollten Sie auch das Verb "AUTH=XOAUTH2" bzw. "AUTH=XOAUTH" ausgeliefert bekommen. Das könnte dann so aussehen
C: 01 CAPABILITY S: * CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA XLISTCHILDREN XYZZY SASL-IR AUTH=XOAUTH2 AUTH=XOAUTH S: 01 OK Completed C: 02 AUTHENTICATE XOAUTH2 <base64token==> S: 02 OK Success ...
Per WireShark können Sie diese Kommunikation leider nicht mitschneiden, wenn Sie per TLS verschlüsselt ist.
- IMAP4 Clients
- IMAP4Push
- IMAP4-Telnet
- G Suite Developer Gmail IMAP Guides - OAuth 2.0 Mechanism
https://developers.google.com/gmail/imap/xoauth2-protocol
Basic abschalten
Sie müssen aber nicht erst warten, bis Microsoft global die Nutzung on Basic Authentication abschaltet. Diese Einstellungen können Sie pro Benutzer in der Exchange PowerShell aktivieren. So können Sie schon heute bei all den Benutzer die Anmeldung per BasicAuth von Vorneherein unterbinden. Zuerst legen wir dazu eine Authentifizierungsrichtlinie an.
New-AuthenticationPolicy ` -Name "Block Basic Auth" ` -BlockLegacyAuthImap ` -BlockLegacyAuthPop
Das Commandlet kennt noch weitere Einstellungen aber ich habe mich hier auf POP3 und IMAP4 beschränkt
- New-AuthenticationPolicy Module:
https://docs.microsoft.com/de-de/powershell/module/exchange/new-authenticationpolicy?view=exchange-ps
Im zweiten Schritt wird die Policy dann an die entsprechenden Postfächer zugewiesen
Set-User ` -Identity <upn> ` -AuthenticationPolicy "Block Basic Auth"
Die Richtlinie kann leider nicht über LDAP-Attribute oder Gruppenmitgliedschaften sondern nur pro Benutzer zugewiesen werden. Wenn Sie mehrere Benutzer bearbeiten wollen, dann können Sie mit PowerShell natürlich eine Schleife programmieren.
Eine elegante Methode ist aber auch die Negierung der Logik. Es gibt eine "Default Authentifizierungpolicy", die für alle Benutzer gilt, die keine abweichende individuelle Richtlinie nutzen. Sie können so BasicAuth generell abschalten und dann für die Ausnahmen wieder zulassen.
# Zwei Policies anlegen New-AuthenticationPolicy ` -Name "Block Basic Auth" ` -BlockLegacyAuthImap ` -BlockLegacyAuthPop New-AuthenticationPolicy ` -Name "Allow Basic Auth" ` -AllowLegacyAuthImap ` -AllowLegacyAuthPop # Ausnahmen zuweisen Set-User ` -identity <pop3username> ` -Authenticationpolicy "Allow Basic Auth" # Default zuweisen Set-OrganizationConfig ` -DefaultAuthenticationPolicy "Block Basic Auth"
- Deaktivieren der Standardauthentifizierung in Exchange Online
https://docs.microsoft.com/de-de/exchange/clients-and-mobile-in-exchange-online/disable-basic-authentication-in-exchange-online
Weitere Links
- POP3/IMAP4 Anmeldung
- Authentifizierung
- Conditional Access
- Hybrid Modern Authentication (HMA)
-
Using hybrid Modern Authentication with
Outlook for iOS and Android
https://docs.microsoft.com/en-us/Exchange/clients/outlook-for-ios-and-android/use-hybrid-modern-auth -
DavMail POP/IMAP/SMTP/Caldav/Carddav/LDAP
Exchange and Office 365 Gateway
http://davmail.sourceforge.net/advanced.html -
Exchange Online: Abschaltung Basic
Authentication in 2021
https://www.borncity.com/blog/2020/04/07/exchange-online-abschaltung-basic-authentication-in-2021/