Website-Icon Frankys Web

Exchange 2019: Kerberos Authentifizierung aktivieren

Wer mehrere Exchange Server über einen Loadbalancer hochverfügbar gemacht hat, nutzt in der Standardeinstellung NTLM für die Authentifizierung von Outlook Benutzern. Mit ein paar Anpassungen lässt sich aber auch Kerberos zur Authentifizierung nutzen. Kerberos reduziert gegenüber NTLM die Anzahl der Anmeldungen gegenüber dem Active Directory, was zu einer besseren Geschwindigkeit führen kann. Außerdem gilt Kerberos gegenüber NTLM als sichereres Protokoll für die Authentifizierung.

Damit Kerberos genutzt werden kann, müssen zunächst die DNS-Namen für die SPNs ermittelt werden. Oft wird eine hochverfügbare Exchange Umgebung etwa wie folgt aussehen:

Ein Loadbalancer ist den Exchange Servern vorgeschaltet und verteilt die Last der Benutzer gleichmäßig auf die Exchange Server. Die DNS Einträge für die Verbindung zeigen dabei auf die IP-Adresse des Virtual Servers des Loadbalancers. In der Regel zeigen also die folgenden DNS Einträge auf den Loadbalancer:

Genau diese DNS-Einträge sind für den SPN relevant, welcher später registriert werden muss. In manchen Umgebungen mag es weitere DNS Namen geben, da möglicherweise OutlookAnywhere und MAPIoberHTTP unterschiedliche DNS Namen verwenden. Die DNS Einträge sollten zudem als HOST-A Eintrag und nicht als CNAME existieren. Normalerweise können hier auch die Hostnamen verwendet werden, welche auf dem Zertifikat eingetragen sind.

Kerberos konfigurieren

Damit die Kerberos Authentifizierung verwendet werden kann, muss zunächst ein Computerkonto erzeugt werden. Dazu kann der folgende Befehl verwendet werden:

New-ADComputer -Name EXCH2019ASA -AccountPassword (Read-Host 'Neues Passwort eingeben' -AsSecureString) -Description 'Alternate Service Account credentials for Exchange' -Enabled:$True -SamAccountName EXCH2019ASA -Path "OU=Server,DC=frankysweblab,DC=de"

Der Distinguished Name hinter „-Path“ gibt die OU an, in der das Computerkonto erstellt werden soll. Der Parameter kann auch weggelassen werden, dann wird das Konto in der Standard OU „Computer“ erstellt:

Der nächste Befehl fügt dem Konto die nötigen Verschlüsselungstypen hinzu. Der Wert 28 gibt an, dass RC4-HMAC, AES128-CTS-HMAC-SHA1-96 und AES256-CTS-HMAC-SHA1-96 unterstützt werden:

Set-ADComputer EXCH2019ASA -add @{"msDS-SupportedEncryptionTypes"="28"}

Jetzt können die SPNs für das Konto registriert werden. In meinem Fall ist es „outlook.frankysweblab.de“ und „autodiscover.frankysweblab.de“. Diese beiden SPNs werden für das neue Computer Konto registriert:

setspn -S http/outlook.frankysweblab.de frankysweblab\EXCH2019ASA$
setspn -S http/autodiscover.frankysweblab.de frankysweblab\EXCH2019ASA$

Damit das Computer Konto als Service Account für die Kerberos Authentifizierung genutzt werden kann, muss es noch auf den Exchange Servern konfiguriert werden. Auf dem ersten Exchange Server kann dazu ein Script aus dem Exchange Script Verzeichnis verwendet werden. Das Script erzeugt dann auch ein neues Passwort für das Konto:

cd $exscripts
.\RollAlternateServiceAccountPassword.ps1 -ToSpecificServer EX19EX1.frankysweblab.de -GenerateNewPasswordFor frankysweblab\EXCH2019ASA$

Nachdem der erste Exchange Server konfiguriert wurde, können alle weiteren Exchange Server konfiguriert werden. Mit dem folgenden Befehl lassen sich die Einstellungen vom ersten Server kopieren (dies muss auf allen weiteren Exchange Servern ausgeführt werden):

cd $exscripts
.\RollAlternateServiceAccountPassword.ps1 -ToSpecificServer EX19EX2.frankysweblab.de -CopyFrom EX19EX1.frankysweblab.de

Wenn das Konto auf allen Exchange Servern konfiguriert wurde, lassen sich die Einstellungen mit folgendem Befehl prüfen:

Get-ClientAccessService EX19EX1 -IncludeAlternateServiceAccountCredentialStatus | Format-List Name, AlternateServiceAccountConfiguration

Als letzter Schritt muss nun noch die Authentifizierung für OutlookAnywhere und MAPIoverHTTP auf „Negotiate“ umgestellt werden. Dazu können die folgenden beiden Befehle verwendet werden:

Get-OutlookAnywhere -Server EX19EX1 | Set-OutlookAnywhere -InternalClientAuthenticationMethod Negotiate
Get-MapiVirtualDirectory -Server EX19EX1 | Set-MapiVirtualDirectory -IISAuthenticationMethods Ntlm,Negotiate

Outlook sollte sich nun mittels Kerberos zu den Exchange Servern verbinden, leider wird dies aber nicht direkt in der Outlook Verbindungsübersicht angezeigt. In der Outlook Verbindungsübersicht sollte nun aber in der Splate „Authn“ der Wert „Nego“ angezeigt werden:

Wenn die Kerberos Authentifizierung geklappt hat, zeigt der Befehl „klist“ auf dem Client zwei Kerberos Tickets an:

Die mobile Version verlassen