Moderne Authentifizierung in Exchange Server - leb wohl, NTLM und Kerberos!

Lesedauer 13 Minuten


Seit einiger Zeit weist Microsoft bereits darauf hin, dass das Authentifizierungsprotokoll NTLM veraltet ist und Unternehmen es vollständig abschalten sollten.
Dies ist jedoch einfacher gesagt als getan.

In der Praxis gibt es immer noch viele (ältere) Applikationen, die nach wie vor NTLM statt Kerberos zur Authentifizierung einsetzen. Diese würden bei einer Abschaltung entsprechend nicht mehr funktionieren.

Eines dieser Produkte ist tatsächlich Exchange Server. Selbst in der aktuellen Subscription Edition wird beispielsweise noch NTLM verwendet, beispielsweise, wenn eine klassische Hybridbereitstellung etabliert ist und Postfachmigrationen durchgeführt werden sollen.
Der Migrationsendpunkt wird immer noch über NTLM angesprochen. Das ist auch einer der Gründe, warum der erweiterte Schutz - an sich eine sinnvolle Härtungsmaßnahme - in solchen Fällen ausgeschaltet werden muss.

Bedeutet das jedoch, dass man erst seinen Exchange Server vollständig abbauen muss, um NTLM loswerden zu können?

Die moderne Authentifizierung

Die Antwort liefert im Grunde die Cloud. Hier haben sich seit Jahren andere Protokolle für die Authentifizierung etabliert, in der Regel SAML, OAuth und das darauf aufsetzende OpenID Connect. Während SAML bereits von den Active Directory-Verbunddiensten bekannt ist, sind die anderen beiden Varianten (im Kontext von Microsoft) ausschließlich über Entra ID verfügbar.

Diese Protokolle ermöglichen beispielsweise eine browsergestützte Anmeldung und die Abfrage zusätzlicher Faktoren wie z.B. eine Multifaktorauthentifizierung, kennwortlose oder auch phishing-resistente Anmeldung. Damit sind sie wesentlich sicherer als eine klassische Anmeldung mit Benutzername und Kennwort. Diese ganzen Aspekte werden unter dem Überbegriff "Moderne Authentifizierung" zusammengefasst.

Unterstützt Exchange Server die moderne Authentifizierung?

Ja und nein. 😉 Es kommt darauf an, welche Funktion man sich anschaut. Grundsätzlich wird OAuth bereits seit Exchange Server 2013 unterstützt und auch im Hintergrund für die Kommunikation mit Exchange Online verwendet, beispielsweise für Frei/Gebucht-Informationen und den Teams-Zugriff auf lokale Postfächer.

Die Benutzer-Authentifizierung ist hiervon jedoch separat zu sehen. Wichtig hierbei: in Exchange Server unterstützen nicht alle Zugriffsprotokolle OAuth. Hier weicht die Erfahrung etwas von Exchange Online ab. Im Detail ist OAuth nicht für die folgenden Protokolle verfügbar:

  • IMAP
  • Outlook Anywhere
  • POP

Werden diese Protokolle noch eingesetzt, so ist nach Möglichkeit eine Umstellung auf MAPI über HTTP oder ein(e) Austausch/Modernisierung der betroffenen Applikation(en) zu erwägen. Dessen ungeachtet gibt es zwei Optionen, um Exchange Server mit einer modernen Authentifizierung zu betreiben.

Option 1: Hybride moderne Authentifizierung

Die hybride moderne Authentifizierung (HMA) setzt voraus, dass Exchange Server in einer Hybridbereitstellung mit Exchange Online konfiguriert wurde. Dementsprechend wird dann Entra ID für die moderne Authentifizierung genutzt. Dies ermöglicht die Verwendung sämtlicher in Entra ID verfügbaren Authentifizierungsmethoden wie z.B. Passkeys. Ebenso kann der bedingte Zugriff eingesetzt werden, um den Zugriff auf Exchange Server granular steuern und einschränken zu können.

HMA funktioniert grundlegend wie folgt:

  1. Der Benutzer baut eine Verbindung zu Exchange Server auf.
  2. Exchange Server erkennt, dass eine moderne Authentifizierung erzwungen wird und leitet den Benutzer zur Authentifizierung an Entra ID um (evoSTS, Evolutionary Secure Token Service).
  3. Entra ID stellt bei erfolgreicher Authentifizierung (z.B. SSO) ein Token aus.
  4. Der Benutzer authentifiziert sich mit dem Token an Exchange Server und erhält Zugriff.

HMA eignet sich besonders für Unternehmen, die sich bereits für den Einsatz von Cloud-Diensten entschieden haben und eventuell bereits einen Teil des erforderlichen Infrastruktur-Aufbaus erledigt haben.
Es mag jedoch Unternehmen geben, die noch nicht bereit sind, Verbindungen in die Cloud zuzulassen. Für diese Unternehmen gibt es eine Alternative zu HMA.

Option 2: Moderne Authentifizierung mit ADFS

Microsoft stellt mit den Active Directory-Verbunddiensten (Active Directory Federation Services, ADFS) bereits seit vielen Jahren einen besonderen Authentifizierungs-Dienst bereit. ADFS ermöglicht eine Authentifizierung an Active Directory, ohne dass eine direkte Kommunikation per NTLM oder Kerberos zwischen Domänencontrollern und Endgerät/Benutzer nötig ist. ADFS nutzt hierzu das SAML-Protokoll als vermittelnde Instanz. An ADFS können wiederum Drittherstellerprodukte angebunden werden, um hier ebenfalls moderne Authentifizierungsmethoden wie Passkeys oder zumindest MFA zu ermöglichen.

Die moderne Authentifizierung mit ADFS funktioniert grundlegend wie folgt:

  1. Der Benutzer baut eine Verbindung zu Exchange Server auf.
  2. Exchange Server erkennt, dass eine moderne Authentifizierung erzwungen wird und leitet den Benutzer zur Authentifizierung an den ADFS-Server bzw. die -Farm um.
  3. ADFS stellt bei erfolgreicher Authentifizierung (z.B. SSO) ein Token aus.
  4. Der Benutzer authentifiziert sich mit dem Token an Exchange Server und erhält Zugriff.


Unternehmen, die vollständig lokal operieren möchten oder müssen, können sich daher ADFS zunutze machen, um eine moderne Authentifizierung mit Exchange Server zu nutzen.

Konfiguration

Die folgenden Kapitel zeigen, wie die moderne Authentifizierung für Exchange Server eingerichtet werden kann.

Hybride moderne Authentifizierung

Es wird angenommen, dass die folgenden Voraussetzungen bereits erfüllt sind:

Sämtliche Schritte müssen mittels PowerShell durchgeführt werden. Hierzu wird sowohl die Exchange Management Shell als auch eine PowerShell mit bestimmten Modulen für die Cloud-Verwaltung benötigt. Diese werden in der Folge jeweils benannt.

Schritt 1: Ermittlung der lokalen Konfiguration

Zunächst müssen die in der lokalen Exchange-Organisation konfigurierten URLs für den Zugriff ermittelt werden. Diese müssen im Dienstprinzipal in Entra ID ergänzt werden, falls sie dort noch nicht vorhanden sind. Hierzu ist die Exchange Management Shell zu verwenden:

# URLs der virtuellen Verzeichnisse ermitteln
Get-MapiVirtualDirectory | fl server,*url*,*auth*
Get-WebServicesVirtualDirectory | fl server,*url*,*oauth*
Get-OABVirtualDirectory | fl server,*url*,*oauth*
Get-AutoDiscoverVirtualDirectory | fl server,*oauth*
Get-ActiveSyncVirtualDirectory | fl server,*url*,*auth*
PowerShell

In diesem Zuge kann auch gleich geprüft werden, ob OAuth für die virtuellen Verzeichnisse bereits aktiviert ist oder noch aktiviert werden muss:

# OAuth für MAPI aktivieren, falls noch nicht aktiv
$MapiDirs = Get-MapiVirtualDirectory

# Für jedes ermittelte Verzeichnis OAuth hinzufügen
ForEach ($MapiDir in $MapiDirs)
   {
   $IISAuthMeth = $MapiDir.IISAuthenticationMethods
   if ($IISAuthMeth -notcontains 'OAuth')
      {
      $IISAuthMeth+='OAuth'
      Set-MapiVirtualDirectory -Identity $MapiDir.Name -IISAuthenticationMethods $IISAuthMeth
      }
   else {Write-Host 'OAuth für MAPI bereits aktiv!' -ForegroundColor Green}
   }

# OAuth für Webdienste-Verzeichnis prüfen und aktivieren, falls erforderlich
$WebSvcDirs = Get-WebServicesVirtualDirectory

# Für jedes ermittelte Verzeichnis OAuth aktivieren
ForEach ($WebSvcDir in $WebSvcDirs)
   {
   if ($WebSvcDir.OAuthAuthentication -eq $False){Set-WebServicesVirtualDirectory -Identity $WebSvcDir.Name -OAuthAuthentication $true}
   else {Write-Host 'OAuth für Webdienste bereits aktiv!' -ForegroundColor Green}
   }
   
# OAuth für Offlineadressbuch-Verzeichnis prüfen und aktivieren, falls erforderlich
$OABDirs = Get-OABVirtualDirectory

# Für jedes ermittelte Verzeichnis OAuth aktivieren
ForEach ($OABDir in $OABDirs)
   {
   if ($OABDir.OAuthAuthentication -eq $False){Set-WebServicesVirtualDirectory -Identity $OABDir.Name -OAuthAuthentication $true}
   else {Write-Host 'OAuth für Offlineadressbücher bereits aktiv!' -ForegroundColor Green}
   }
 
# OAuth für Autodiscover-Verzeichnis prüfen und aktivieren, falls erforderlich
$AutoDDirs = Get-AutodiscoverVirtualDirectory

# Für jedes ermittelte Verzeichnis OAuth aktivieren
ForEach ($AutoDDir in $AutoDDirs)
   {
   if ($AutoDDir.OAuthAuthentication -eq $False){Set-WebServicesVirtualDirectory -Identity $AutoDDir.Name -OAuthAuthentication $true}
   else {Write-Host 'OAuth für automatische Ermittlung bereits aktiv!' -ForegroundColor Green}
   }

# OAuth für ActiveSync-Verzeichnis prüfen und aktivieren, falls erforderlich
$ActiveSyncDirs = Get-ActiveSyncVirtualDirectory

# Für jedes ermittelte Verzeichnis OAuth aktivieren
ForEach ($ActiveSyncDir in $ActiveSyncDirs)
   {
   $IntAuthMeth = $ActiveSyncDir.InternalAuthenticationMethods
   $ExtAuthMeth = $ActiveSyncDir.ExternalAuthenticationMethods
   if ($IntAuthMeth -notcontains 'OAuth')
      {
      $IntAuthMeth+='OAuth'
      Set-ActiveSyncVirtualDirectory -Identity $ActiveSyncDir.Name -InternalAuthenticationMethods $IntAuthMeth
      }
   else {Write-Host 'OAuth für ActiveSync (intern) bereits aktiv!' -ForegroundColor Green}
   if ($ExtAuthMeth -notcontains 'OAuth')
      {
      $ExtAuthMeth+='OAuth'
      Set-ActiveSyncVirtualDirectory -Identity $ActiveSyncDir.Name -ExternalAuthenticationMethods $IntAuthMeth
      }
   else {Write-Host 'OAuth für ActiveSync (extern) bereits aktiv!' -ForegroundColor Green}
   }
PowerShell

Es ist überdies zu prüfen, ob das Objekt für die Umleitung der Authentifizierung zu Entra ID bereits vorhanden ist oder noch angelegt werden muss:

# Objekt für evoSTS prüfen
Get-AuthServer | Where-Object {$_.Name -like "EvoSts*"} | fl Name,DomainName,IssuerIdentifier,Realm,TokenIssuingEndpoint,Enabled,IsDefault*
PowerShell

Wenn dieses nicht vorhanden ist, muss der Exchange-Hybridbereitstellungsassistent (noch einmal) ausgeführt werden.

Schritt 2: Ergänzung der URLs im Dienstprinzipal

Anschließend muss eine Verbindung zu Entra ID über Microsoft Graph aufgebaut werden, um ggf. fehlende URLs im Dienstprinzipal für Exchange Server/Online zu prüfen und zu ergänzen:

# # Prüfen, ob benötigte Module installiert sind und Installation, falls nicht
if (!(Get-InstalledModule Microsoft.Graph.Authentication -ErrorAction SilentlyContinue)){Install-Module Microsoft.Graph.Authentication -Scope CurrentUser}
if (!(Get-InstalledModule Microsoft.Graph.Applications -ErrorAction SilentlyContinue)){Install-Module Microsoft.Graph.Applications -Scope CurrentUser}

# Verbindung zu Microsoft Graph aufbauen
Connect-MgGraph -Scopes 'Application.ReadWrite.All'

# Aktuell im Dienstprinzipal hinterlegte URLs prüfen
Get-MgServicePrincipal -Filter "AppId eq '00000002-0000-0ff1-ce00-000000000000'" | select -ExpandProperty ServicePrincipalNames

# Fehlende URL(s) ergänzen
$Principal = Get-MgServicePrincipal -Filter "AppId eq '00000002-0000-0ff1-ce00-000000000000'"
$Principal.ServicePrincipalNames += 'https://autodiscover.microwsoft.de/'    # z.B. URL für Autodiscover
$Principal.ServicePrincipalNames += 'https://mail.microwsoft.de/'            # z.B. allg. URL für Zugriff auf MAPI, EWS, EAS, usw.
Update-MgServicePrincipal -ServicePrincipalId $Principal.Id -ServicePrincipalNames $Principal.ServicePrincipalNames
PowerShell

Schritt 3: HMA aktivieren

Sobald alle Voraussetzungen erfüllt sind, kann HMA über die Exchange Management Shell wie folgt aktiviert werden:

# evoSTS als Standard-Autorisierungs-Endpunkt konfigurieren und OAuth aktivieren
Set-AuthServer -Identity "EvoSts - d1c9beac-0655-48e7-9949-5e497af1d38d" -DomainName '<Standarddomäne, z.B. microwsoft.de>' -IsDefaultAuthorizationEndpoint $true
Set-OrganizationConfig -OAuth2ClientProfileEnabled $true

# Webserver neu starten
iisreset
PowerShell

Schritt 4: Verteilung eines Registry-Werts an Clients

Die moderne Authentifizierung ist nun grundlegend verfügbar. Allerdings kann es vorkommen, dass Outlook weiterhin ein älteres Authentifizierungsprotokoll verwendet. Daher ist es sinnvoll, die Verwendung der modernen Authentifizierung zu erzwingen. Hierfür muss ein bzw. Registry-Wert auf den Endgeräten hinzugefügt werden:

Pfad: HKEY_CURRENT_USER\Software\Microsoft\Exchange
Wert: AlwaysUseMSOAuthForAutoDiscover
Typ: REG_DWORD
Inhalt: 1

(OPTIONAL) Schritt 5: Aktivierung von HMA für OWA und ECP

HMA kann auch für OWA und ECP verwendet werden. Allerdings ist hierbei folgendes zu beachten:

  • Die moderne Authentifizierung gilt nicht nur für Benutzer, sondern auch für Administratorkonten. Falls diese gemäß bewährten Methoden nicht in die Cloud synchronisiert werden, können diese sich nicht mehr an der Weboberfläche anmelden.
  • OWA und ECP müssen die gleichen Authentifizierungsverfahren verwenden. Es kann also nicht OAuth für das eine, jedoch nicht für das andere Verzeichnis aktiviert sein. um bspw. Administratorkonten weiterhin einen Zugriff auf ECP über Kerberos zu ermöglichen.

Falls für OWA und ECP andere URLs verwendet werden, müssen diese wie im Schritt 2 gezeigt ebenfalls zum Dienstprinzipal hinzugefügt werden.

Ansonsten kann OAuth wie folgt aktiviert werden (die Reihenfolge ist wichtig - zuerst ECP, dann OWA):

# 1) ECP-Verzeichnis(se) konfigurieren
Get-EcpVirtualDirectory | Set-EcpVirtualDirectory -AdfsAuthentication $false -BasicAuthentication $false -FormsAuthentication $false -DigestAuthentication $false -OAuthAuthentication $true

# 2) OWA-Verzeichnis(se) konfigurieren
Get-OwaVirtualDirectory | Set-OwaVirtualDirectory -AdfsAuthentication $false -BasicAuthentication $false -FormsAuthentication $false -DigestAuthentication $false -OAuthAuthentication $true

# Webserver neu starten
iisreset
PowerShell

Schon gewusst? Mit HMA können Benutzer über die Outlook Mobile-App auf ihr lokales Postfach zugreifen, ohne dass dafür die Exchange-Organisation über das Internet erreichbar sein muss. Klingt seltsam? Funktioniert aber, siehe hier: Verwenden der modernen Hybridauthentifizierung mit Outlook für iOS und Android | Microsoft Learn

Moderne Authentifizierung mit ADFS

Es wird angenommen, dass die folgenden Voraussetzungen bereits erfüllt sind:

  • Existierender und grundlegend eingerichteter ADFS-Server bzw. -Farm mit gültigen Zertifikaten

Sämtliche Schritte müssen mittels PowerShell durchgeführt werden.

Schritt 1: Auswahl der Methodik für einmalige Anmeldung

Um Benutzern den Zugriff zu erleichtern, kann eine einmalige Anmeldung eingerichtet werden. Anmeldedaten werden hierbei automatisch durchgereicht, so dass der Benutzer nicht erneut zu einer Authentifizierung aufgefordert wird. Dies ist über die folgenden Verfahren möglich:

VerfahrenBeschreibung
GeräteregistrierungDer Benutzer führt einen Workplace Join mit seinem Gerät durch. Dies muss explizit in ADFS aktiviert werden.
KSMIKeep me signed in; ADFS erstellt bei der Authentifizierung des Benutzers ein persistentes Cookie. Dieses kann 8 Stunden bis 7 Tage gültig sein.

Die Geräteregistrierung ist aufwändiger in der Konfiguration, verbessert jedoch die Sicherheit. Details zur Einrichtung (auch von KMSI) werden in dem folgenden Artikel gegeben: Aktivieren der modernen Authentifizierung in Exchange Server lokal | Microsoft Learn

Schritt 2: Erstellung der ADFS-Outlook-Anwendungsgruppe

Als nächstes muss die notwendige Konfiguration in ADFS angelegt werden. Hierzu sind die folgenden Befehle auszuführen:

# Neue Anwendungsgruppe erstellen
New-AdfsApplicationGroup -Name 'Outlook' -ApplicationGroupIdentifier 'Outlook' -Disabled:$false

# Bereiche erstellen
Add-AdfsScopeDescription -Name 'EAS.AccessAsUser.All' -Description 'EAS-Bereich'
Add-AdfsScopeDescription -Name 'EWS.AccessAsUser.All' -Description 'EWS-Bereich'
Add-AdfsScopeDescription -Name 'offline_access' -Description 'Offline-Zugriff'

# Anwendung erstellen - Outlook Desktop
Add-AdfsNativeClientApplication -Name 'Outlook Desktop' -ApplicationGroupIdentifier 'Outlook' -Identifier 'd3590ed6-52b3-4102-aeff-aad2292ab01c' -RedirectUri @('ms-appx-web://Microsoft.AAD.BrokerPlugin/d3590ed6-52b3-4102-aeff-aad2292ab01c','msauth.com.microsoft.Outlook://auth','urn:ietf:wg:oauth:2.0:oob')

# (Optional) Anwendung erstellen - iOS Mail App
Add-AdfsNativeClientApplication -Name 'iOS/macOS - Mail-App' -ApplicationGroupIdentifier 'Outlook' -Identifier 'f8d98a96-0999-43f5-8af3-69971c7bb423' -RedirectUri @('com.apple.mobilemail://oauth-redirect','com.apple.preferences.internetaccounts://oauth-redirect/','com.apple.Preferences://oauth-redirect/')

# URLs definieren - hier die URL(s) eintragen, die für den Zugriff auf Exchange und Autodiscover verwendet werden
$EXSServiceFQDNs = @('https://autodiscover.microwsoft.de/','https://mail.microwsoft.de/')

# Transformations-Regeln erstellen
$issuanceTransformRules = @'
@RuleName = 'ActiveDirectoryUserSID'
c:[Type == 'http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid']
 => issue(claim = c);

@RuleName = 'ActiveDirectoryUPN'
c:[Type == 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn']
 => issue(claim = c);

@RuleName = 'AppIDACR'
 => issue(Type = 'appidacr', Value = '2');

@RuleName = 'SCP'
 => issue(Type = 'scp', Value = 'user_impersonation');

@RuleName = 'SCPEAS'
 => issue(Type = 'scp', Value = 'EAS.AccessAsUser.All');

@RuleName = 'SCPEWS'
 => issue(Type = 'scp', Value = 'EWS.AccessAsUser.All');

@RuleName = 'offlineaccess'
 => issue(Type = 'scp', Value = 'offline_access');
'@

# Web API-Anwendungen erstellen
foreach ($FQDN in $EXSServiceFQDNs) 
   {
   Add-AdfsWebApiApplication -Name 'Outlook - Web-API ($((New-Guid).ToString('N')))' -ApplicationGroupIdentifier 'Outlook' -Identifier $fqdn -IssuanceTransformRules $issuanceTransformRules -AccessControlPolicyName 'Permit Everyone'
   }

# Clientberechtigungen in Web API-Anwendungen hinzufügen
$clientRoleIdentifier = @('f8d98a96-0999-43f5-8af3-69971c7bb423','d3590ed6-52b3-4102-aeff-aad2292ab01c')
(Get-AdfsWebApiApplication -ApplicationGroupIdentifier 'Outlook') | ForEach-Object {
    [string]$serverRoleIdentifier = $_.Identifier
    foreach ($id in $clientRoleIdentifier) {
        Grant-AdfsApplicationPermission -ClientRoleIdentifier $id -ServerRoleIdentifier $serverRoleIdentifier -ScopeNames 'winhello_cert','email','profile','vpn_cert','logon_cert','user_impersonation','allatclaims','offline_access','EAS.AccessAsUser.All','EWS.AccessAsUser.All','openid','aza'
    }
}
PowerShell

Schritt 3: Erstellung von Richtlinien für die selektive Freischaltung der modernen Authentifizierung

Standardmäßig versuchen Clients, stets OAuth für die Authentifizierung zu verwenden. Es mag jedoch Clients geben, die nicht mit der ADFS-Variante kompatibel sind und sich daher nicht verbinden können. Daher sind Richtlinien zu erstellen, um die moderne Authentifizierung grundsätzlich zu blockieren und nur für ausgewählte Postfächer freigeben zu können:

# Richtlinie zum Blockieren der modernen Authentifizierung erstellen
New-AuthenticationPolicy 'POL-EXO-BLOCK-ModernAuthentication' -BlockModernAuthWebServices -BlockModernAuthActiveSync -BlockModernAuthAutodiscover -BlockModernAuthImap -BlockModernAuthMapi -BlockModernAuthOfflineAddressBook -BlockModernAuthPop -BlockModernAuthRpc

# Richtlinie global aktivieren
Set-OrganizationConfig -DefaultAuthenticationPolicy 'POL-EXO-BLOCK-ModernAuthentication'

# Richtlinie zum selektiven Erlauben der modernen Authentifizierung erstellen
New-AuthenticationPolicy 'POL-EXO-ALLOW-ModernAuthentication'

# Postfächern die Richtlinie zuweisen
Set-Mailbox -Identity <Name> -AuthenticationPolicy 'POL-EXO-ALLOW-ModernAuthentication'
PowerShell

Schritt 4: Aktivierung von OAuth für die virtuellen Verzeichnisse

OAuth muss für die virtuellen Verzeichnisse hinzugefügt werden. Mit den folgenden Befehlen kann OAuth automatisch ergänzt werden, falls es noch fehlt:

# OAuth für MAPI aktivieren, falls noch nicht aktiv
$MapiDirs = Get-MapiVirtualDirectory

# Für jedes ermittelte Verzeichnis OAuth hinzufügen
ForEach ($MapiDir in $MapiDirs)
   {
   $IISAuthMeth = $MapiDir.IISAuthenticationMethods
   if ($IISAuthMeth -notcontains 'OAuth')
      {
      $IISAuthMeth+='OAuth'
      Set-MapiVirtualDirectory -Identity $MapiDir.Name -IISAuthenticationMethods $IISAuthMeth
      }
   else {Write-Host 'OAuth für MAPI bereits aktiv!' -ForegroundColor Green}
   }

# OAuth für Webdienste-Verzeichnis prüfen und aktivieren, falls erforderlich
$WebSvcDirs = Get-WebServicesVirtualDirectory

# Für jedes ermittelte Verzeichnis OAuth aktivieren
ForEach ($WebSvcDir in $WebSvcDirs)
   {
   if ($WebSvcDir.OAuthAuthentication -eq $False){Set-WebServicesVirtualDirectory -Identity $WebSvcDir.Name -OAuthAuthentication $true}
   else {Write-Host 'OAuth für Webdienste bereits aktiv!' -ForegroundColor Green}
   }
   
# OAuth für Offlineadressbuch-Verzeichnis prüfen und aktivieren, falls erforderlich
$OABDirs = Get-OABVirtualDirectory

# Für jedes ermittelte Verzeichnis OAuth aktivieren
ForEach ($OABDir in $OABDirs)
   {
   if ($OABDir.OAuthAuthentication -eq $False){Set-WebServicesVirtualDirectory -Identity $OABDir.Name -OAuthAuthentication $true}
   else {Write-Host 'OAuth für Offlineadressbücher bereits aktiv!' -ForegroundColor Green}
   }
 
 # OAuth für Autodiscover-Verzeichnis prüfen und aktivieren, falls erforderlich
$AutoDDirs = Get-AutodiscoverVirtualDirectory

# Für jedes ermittelte Verzeichnis OAuth aktivieren
ForEach ($AutoDDir in $AutoDDirs)
   {
   if ($AutoDDir.OAuthAuthentication -eq $False){Set-WebServicesVirtualDirectory -Identity $AutoDDir.Name -OAuthAuthentication $true}
   else {Write-Host 'OAuth für automatische Ermittlung bereits aktiv!' -ForegroundColor Green}
   }

# OAuth für ActiveSync-Verzeichnis prüfen und aktivieren, falls erforderlich
$ActiveSyncDirs = Get-ActiveSyncVirtualDirectory

# Für jedes ermittelte Verzeichnis OAuth aktivieren
ForEach ($ActiveSyncDir in $ActiveSyncDirs)
   {
   $IntAuthMeth = $ActiveSyncDir.InternalAuthenticationMethods
   $ExtAuthMeth = $ActiveSyncDir.ExternalAuthenticationMethods
   if ($IntAuthMeth -notcontains 'OAuth')
      {
      $IntAuthMeth+='OAuth'
      Set-ActiveSyncVirtualDirectory -Identity $ActiveSyncDir.Name -InternalAuthenticationMethods $IntAuthMeth
      }
   else {Write-Host 'OAuth für ActiveSync (intern) bereits aktiv!' -ForegroundColor Green}
   if ($ExtAuthMeth -notcontains 'OAuth')
      {
      $ExtAuthMeth+='OAuth'
      Set-ActiveSyncVirtualDirectory -Identity $ActiveSyncDir.Name -ExternalAuthenticationMethods $IntAuthMeth
      }
   else {Write-Host 'OAuth für ActiveSync (extern) bereits aktiv!' -ForegroundColor Green}
   }
PowerShell

Schritt 5: Konfiguration von Exchange Server für die Verwendung der modernen Authentifizierung

Nun kann in der Exchange-Organisation der ADFS-Server für die moderne Authentifizierung hinterlegt werden. Hierzu sind die folgenden Befehle auszuführen:

# Neues Authentifizierungsserverobjekt erstellen
New-AuthServer -Type ADFS -Name '<Name des ADFS-Servers/der Farm>' -AuthMetadataUrl 'https://<URL des ADFS-Servers/der Farm>/FederationMetadata/2007-06/FederationMetadata.xml'

# Authentifizierungsserverobjekt als Standard-Autorisierungs-Endpunkt konfigurieren und OAuth aktivieren
Set-AuthServer -Identity '<Name des ADFS-Servers/der Farm>' -IsDefaultAuthorizationEndpoint $true
Set-OrganizationConfig -OAuth2ClientProfileEnabled $true

# (Optional) Falls macOS verwendet wird, folgende Befehle ausführen
New-SettingOverride -Name 'EnableKeepADFSHeadersOnTokenExpiry' -Component 'OAuth' -Section 'KeepADFSHeadersOnTokenExpiry' -Parameters @('Enabled=true') -Reason 'Outlook für macOS'
Get-ExchangeDiagnosticInfo -Process Microsoft.Exchange.Directory.TopologyService -Component VariantConfiguration -Argument Refresh

# Webserver neu starten
iisreset
PowerShell

Schritt 6: Einrichtung der modernen Authentifizierung auf Endgeräten

Um die moderne Authentifizierung über ADFS auf Endgeräten zu aktivieren, müssen noch einige Einstellungen als Registry-Werte verteilt werden:

Es werden zwei Schlüssel angelegt, die die URL zu ADFS enthalten - einmal mit und einmal ohne abschließendes '/'

Pfad: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\AAD\AuthTrustedDomains
Wert: <URL des ADFS-Servers/der Farm>/
Typ: Schlüssel

Pfad: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\AAD\AuthTrustedDomains
Wert: <URL des ADFS-Servers/der Farm>
Typ: Schlüssel

Pfad: HKCU\SOFTWARE\Microsoft\Office\16.0\Common\Identity
Wert: EnableExchangeOnPremModernAuth
Typ: REG_DWORD
Inhalt: 1

Für macOS ist ADFS wie folgt zu hinterlegen (über Terminal):

defaults write com.microsoft.Outlook ADFSAuthorizedURLs -array <URL des ADFS-Servers/der Farm>

(OPTIONAL) Schritt 7: Aktivierung der anspruchsbasierten Authentifizierung für OWA und ECP

Eine ADFS-basierte Anmeldung kann auch für OWA und ECP eingerichtet werden. Die Konfiguration kann über die ADFS-Konsole vorgenommen werden und wird im offiziellen Artikel im Detail beschrieben: Verwenden der anspruchsbasierten AD FS-Authentifizierung mit Outlook im Web | Microsoft Learn



Gefällt Dir der Beitrag? Lass es andere wissen!