ADMIN

2021

03

2021-03-01T12:00:00

IT-Automatisierung

SCHWERPUNKT

084

Automatisierung

Ansible

Moderne Authentifizierung für Exchange Online

Alte Zöpfe abschneiden

von Christian Schulenburg

Veröffentlicht in Ausgabe 03/2021 - SCHWERPUNKT

Für Exchange war die Basis-Authentifizierung lange Zeit ein schneller Weg der Anmeldung – immer aktiv und einfach in der Nutzung. In Exchange Online ist ihr Ende aber absehbar und wir zeigen Ihnen in diesem Workshop, welche Auswege es gibt und wie Sie Skripte unbeaufsichtigt weiterlaufen lassen.

Microsoft hat sich bereits 2018 dazu entschieden die Basis-Authentifizierung für Exchange Web Services (EWS) bei Exchange Online zum Oktober 2020 abzuschalten. 2019 wurde diese Abkündigung auf Exchange ActiveSync (EAS), POP3, IMAP und Remote PowerShell ausgeweitet. Durch COVID-19 hat sich diese Frist auf das zweite Halbjahr 2021 verschoben. Für neue Microsoft-365-Subskriptionen, die ab Oktober 2020 gestartet wurden, hat Redmond die OASIS-Authentifizierung bereits per Default deaktiviert. Außerdem wird sie auch bei ungenutzten Abonnements abgeschaltet. Das SMPT-Protokoll und lokale Exchange-Umgebungen sind von den Änderungen nicht betroffen.
Der Hintergrund der Abkündigung ist vor allem das größere Angriffspotenzial. Zusätzliche Sicherheitsmechanismen wie die Multifaktor-Authentifizierung kommen durch deren Komplexität nicht immer zum Einsatz. Zukünftig soll deshalb die Anmeldung über die "Moderne Authentifizierung" (MA) erfolgen, die auf der Active-Directory-Authentifizierungsbibliothek (ADAL) und OAuth 2.0 basiert.
Die Moderne Authentifizierung ist eine Sammlung von Authentifizierungs- und Autorisierungsmethoden. Für die Autorisierung kommt OAuth (Open Authorization) zum Einsatz. Dabei handelt es sich um ein offenes Sicherheitsprotokoll für die Token-basierte Autorisierung und Authentifizierung. Bei Microsoft 365 authentifiziert sich der Client gegenüber dem Azure Ac-tive Directory und erhält einen Token, mit dem er sich gegenüber anderen Diensten wie Exchange ausweist. Das Kennwort wird nicht mehr am Client gespeichert, sondern nur der Token. Die Moderne Authentifizierung ist Voraussetzung für eine mehrstufige Authentifizierung, die Nutzung der kennwortlosen Anmeldung über die Authenticator-App oder die Verwendung von Client-Zertifikaten.
Microsoft hat sich bereits 2018 dazu entschieden die Basis-Authentifizierung für Exchange Web Services (EWS) bei Exchange Online zum Oktober 2020 abzuschalten. 2019 wurde diese Abkündigung auf Exchange ActiveSync (EAS), POP3, IMAP und Remote PowerShell ausgeweitet. Durch COVID-19 hat sich diese Frist auf das zweite Halbjahr 2021 verschoben. Für neue Microsoft-365-Subskriptionen, die ab Oktober 2020 gestartet wurden, hat Redmond die OASIS-Authentifizierung bereits per Default deaktiviert. Außerdem wird sie auch bei ungenutzten Abonnements abgeschaltet. Das SMPT-Protokoll und lokale Exchange-Umgebungen sind von den Änderungen nicht betroffen.
Der Hintergrund der Abkündigung ist vor allem das größere Angriffspotenzial. Zusätzliche Sicherheitsmechanismen wie die Multifaktor-Authentifizierung kommen durch deren Komplexität nicht immer zum Einsatz. Zukünftig soll deshalb die Anmeldung über die "Moderne Authentifizierung" (MA) erfolgen, die auf der Active-Directory-Authentifizierungsbibliothek (ADAL) und OAuth 2.0 basiert.
Die Moderne Authentifizierung ist eine Sammlung von Authentifizierungs- und Autorisierungsmethoden. Für die Autorisierung kommt OAuth (Open Authorization) zum Einsatz. Dabei handelt es sich um ein offenes Sicherheitsprotokoll für die Token-basierte Autorisierung und Authentifizierung. Bei Microsoft 365 authentifiziert sich der Client gegenüber dem Azure Ac-tive Directory und erhält einen Token, mit dem er sich gegenüber anderen Diensten wie Exchange ausweist. Das Kennwort wird nicht mehr am Client gespeichert, sondern nur der Token. Die Moderne Authentifizierung ist Voraussetzung für eine mehrstufige Authentifizierung, die Nutzung der kennwortlosen Anmeldung über die Authenticator-App oder die Verwendung von Client-Zertifikaten.
Aktuellen Status feststellen
Den Status der Modernen Authentifizierung in Ihrer Umgebung prüfen Sie mit folgendem Befehl. Sofern der Wert auf "true" steht, ist der Dienst aktiv:
Get-OrganizationConfig | ft OAuth*
Alternativ loggen Sie sich im Microsoft 365 Admin Center ein und prüfen den Status in den Settings im Menüpunkt "Einstellungen der Organisation". Wählen Sie den Dienst "Modern authentication", öffnet sich ein Fenster zur Konfiguration. An dieser Stelle lässt sich ebenfalls die Basis-Authentifizierung für bestimmte Protokolle deaktivieren.
Bevor Sie nun einfach die Basis-Authentifizierung an dieser Stelle deaktivieren, prüfen Sie zunächst, wie umfangreich sie genutzt wird. Dies lässt sich sehr einfach über die Überwachung der Anmeldung in Microsoft Azure realisieren. Melden Sie sich zunächst in Azure an und wechseln Sie in das Azure Active Directory. Im rechten Bereich finden Sie bei der Überwachung den Punkt "Anmeldungen". In der angezeigten Liste (Bild 1) sehen Sie zunächst alle Anmeldungen Ihrer Umgebung. Fügen Sie nun den zusätzlichen Filter "Client-App" hinzu und wählen Sie die Protokolle in den Legacy-Authentifizierungsclients aus. Sie erhalten nun eine Liste mit den veralteten Anmeldungen. Der Filter lässt sich auch andersherum nutzen und Sie können die Anmeldungen mit Moderner Authentifizierung auf den Bildschirm bringen.
Bild 1: Ein Blick in die Anmeldungsüberwachung von Azure zeigt schnell, wie intensiv die Basis-Authentifizierung genutzt wird.
Clients auf dem Prüfstand
Outlook ab der Version 2016 unterstützt die Moderne Authentifizierung, wobei MAPI/HTTP zum Einsatz kommen muss, was bei Exchange Online bereits Standard ist. Um die Nutzung von MA in Outlook in allen Bereichen zu erzwingen, setzen Sie den Wert für den Schlüssel "AlwaysUse­MSOAuthForAutoDiscover" unter "HKEY_ CURRENT_USER / Software / Microsoft / Exchange" auf "1". Der Status lässt sich über den Outlook-Verbindungsstatus prüfen. Klicken Sie zunächst bei gedrückter Strg-Taste mit der rechten Maustaste auf das Outlook-Tray-Icon in der Taskleiste. In dem Menü wählen Sie den Verbindungsstatus. Prüfen Sie die Spalte "Authn". Der Wert "Träger" beziehungsweise "Bearer" steht dabei für die Nutzung der Modernen Authentifizierung in Outlook.
Outlook 2013 unterstützt MA nach der Ergänzung der folgenden Registry-Einstellung: Setzen Sie den Schlüssel "Enable­ADAL" und "Version" unter "HKCU / SOFTWARE / Microsoft / Office / 15.0 / Common / Identity" auf "1". Im Anschluss lässt sich die Moderne Authentifizierung auch in Outlook 2013 nutzen. Ältere Clients wie Outlook 2010 arbeiten nicht mit MA zusammen – Sie müssen sie umstellen.
Neben Outlook sind auch Clients mit anderen Protokollen betroffen. Dazu zählen mobile Geräte mit Exchange ActiveSync. Bei iOS-Geräten muss mindestens Version 11.3.1 zum Einsatz kommen und bei Android ist Version 8 oder höher empfohlen. Nach der Umstellung werden Sie erneut nach dem Kennwort gefragt und gegebenenfalls müssen Sie das Profil neu einrichten. Die meisten nativen Mail-Apps unterstützen die Moderne Authentifizierung. Microsoft bevorzugt bei mobilen Geräten aber die Nutzung von Outlook mobile oder Outlook on the Web im Browser über "https://outlook.office365.com".
Wollen Sie noch POP3 oder IMAP einsetzen, prüfen Sie, ob die Anwendung MA unterstützt. Ob die Protokolle Verwendung finden, sehen Sie im Protokoll von Azure Active Directory. Eine Beschreibung, wie eine Anwendung über OAuth auf POP3 und IMAP zugreifen kann, finden Sie auf der Seite [1]. Auch Thunderbird lässt sich auf diesem Weg mit OAuth betreiben, das Vorgehen ist hier [2] beschrieben. Bei Anwendungen, die EWS nutzen, prüfen Sie ebenfalls mithilfe des Herstellers, ob MA Unterstützung findet. Beachten Sie, dass EWS in Exchange Online keine Funktionsupdates mehr erhalten wird. Zukünftig ist Microsoft Graph die zentrale Schnittstelle für die Interaktion der verschiedenen Dienste in Microsoft 365 [3].
Änderungen beim PowerShell-Zugriff
Für Exchange-Administratoren ist die PowerShell ein gängiger Weg des Zugriffs auf Exchange Online. Bisher ließ sich eine Verbindung über Import-PSSession aufbauen. Dabei kam die Erweiterung "Credential" zur Abfrage der Zugangsdaten zur Basis-Authentifizierung zum Einsatz:
$UserCredential = Get-Credential
 
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential
 
Import-PSSession $Session
Es standen nun sämtliche Exchange-Befehle zur Verfügung und nach dem Ende der Arbeiten ließ sich die Verbindung über Remove-PSSession $Session beenden.
Ein Zugriff auf Exchange Online über die Moderne Authentifizierung ist mit der klassischen PowerShell nicht mehr möglich. Hierzu benötigen Sie das Remote-PowerShell-Modul von Exchange Online. Laden Sie es über den Punkt "Hybrid" im Exchange Admin Center (EAC) herunter. Wichtig ist dabei, dass Sie die Anwendung unter Edge beziehungsweise dem Internet Explorer ausführen. Es wird automatisch eine Verknüpfung im Startmenü erstellt, die Sie zum Verbinden mit Exchange Online verwenden. Alternativ laden Sie sich das Modul über Install-Module -Name ExchangeOnlineManagement. Mit Connect-Exchange­Online stellen Sie im Anschluss eine Verbindung über die Moderne Authentifizierung her. Es sind dann keine weiteren Eingaben mehr zu tätigen.
Das Exchange-Online-PowerShell-V2-Modul (abgekürzt Exo-V2-Modul) ermöglicht einen direkteren Zugriff auf Exchange Online. Dieser Weg ist der empfohlene Weg, um sich mit Exchange Online zu verbinden. Exo V2 bringt dabei noch einige neue Cmdlets mit, die für die Massenbearbeitung ausgelegt sind. Der Kasten "Alte und neue PowerShell-Cmdlets" stellt die neuen und alten Befehle gegenüber, wobei die alten weiterhin verfügbar sind.
Alte und neue PowerShell-Cmdlets
Altes Cmdlet
Neues Exo-V2-Cmdlet
Get-CASMailbox
Get-EXOCASMailbox
Get-Mailbox
Get-EXOMailbox
Get-MailboxFolderPermission
Get-EXOMailboxFolderPermission
Get-MailboxFolderStatistics
Get-EXOMailboxFolderStatistics
Get-MailboxPermission
Get-EXOMailboxPermission
Get-MailboxStatistics
Get-EXOMailboxStatistics
Get-MobileDeviceStatistics
Get-EXOMobileDeviceStatistics
Get-Recipient
Get-EXORecipient
Get-RecipientPermission
Get-EXORecipientPermission
Skriptzugriff ermöglichen
Um nun auch PowerShell-Skripten weiterhin die unbeaufsichtigte Ausführung zu ermöglichen, steht Ihnen die zertifikatsbasierte Authentifizierung des Exo-V2-Moduls zur Verfügung. Hierfür sind aber ein paar mehr Schritte nötig. Richten Sie vorab im Azure Active Directory eine neue Registrierung unter dem Menüpunkt "App-Registrierung" ein. Merken Sie sich die Anwendungs-ID, da Sie diese für den Verbindungsaufbau benötigen. Fügen Sie nun bei den API-Berechtigungen der neu eingerichteten Registrierung die Berechtigung "Office 365 Exchange Online" hinzu und wählen Sie dabei in den Anwendungsberechtigungen den Punkt "Exchange.ManageAsApp" aus (Bild 2). Wichtig ist, dass Sie in der Berechtigungsübersicht noch die Administrator-Zustimmung für Ihre Umgebung erteilen. Im nächsten Schritt erstellen Sie sich ein selbstsigniertes Zertifikat. Am schnellsten geht das über die PowerShell mit dem folgenden Befehl:
New-SelfSignedCertificate -Subject "CN=ExOPSScript" -CertStoreLocation "Cert:\CurrentUser\My" -KeyExportPolicy Exportable -KeySpec Signature
Bild 2: Damit das PowerShell-Skript auch weiterhin autark läuft, ist eine App-Registrierung und die Vergabe von Rechten nötig.
Das Zertifikat wird automatisch im lokalen Speicher abgelegt. Exportieren Sie es über den Zertifikatsspeicher ohne privaten Schlüssel. Den Zertifikatsspeicher des aktuellen Benutzers rufen Sie am schnellsten über Certmgr.msc auf. Das exportierte Zertifikat laden Sie in der zuvor erstellten Registrierung in Azure unter dem Punkt "Zertifikate & Geheimnisse" hoch. Im Anschluss müssen Sie der Anwendung noch einer Rolle zuordnen. Wechseln Sie hierzu in das Azure Active Directory in den Punkt "Rollen und Administratoren". Suchen Sie die Rolle "Exchange-Administratoren" und gehen Sie in die Details. Unter "Zuweisungen" erstellen Sie eine neue und fügen die App über die ID hinzu.
Der Verbindungsaufruf erfolgt nun über Connect-ExchangeOnline mit dem Hinweis auf das Zertifikat, das sich im lokalen Speicher befinden muss, und der AppID. Ihre Mandanten-Domain finden Sie im Microsoft 365 Admin Center in den Domains unter den Einstellungen. Sie endet mit "OnMicrosoft.com". Das genaue Vorgehen beschreibt Microsoft auf der Seite [4] etwas ausführlicher.
Fazit
Der Workshop hat Ihnen die Änderungen und Handlungsmöglichkeiten im Rahmen der Deaktivierung der Basis-Authentifizierung in Microsoft 365 aufgezeigt. Sofern Sie hier noch nicht aktiv geworden sind, ist nun der richtige Zeitpunkt, um mit dem Ablösen der veralteten Authentifizierung zu beginnen. Dann sollte es bei der Umstellung im zweiten Halbjahr 2021 keine bösen Überraschungen geben.
(ln)
Link-Codes
[2] Exchange Online mit IMAP & OAuth2 konfigurieren: https://eightwone.com/2020/07/01/configuring-exchange-account-with-imap-oauth2/
[3] Kommende Änderungen in der EWS-API für Office 365: https://www.iis.net/downloads/microsoft/url-rewrite
[4] App-only-Authentifikation für unbeaufsichtigte Skripte im Exo-V2-Modul: https://docs.microsoft.com/en-us/powershell/exchange/app-only-auth-powershell-v2?view=exchange-ps/