Der folgende Beitrag zeigt die Migrationsschritte um von ADFS 3.0 auf ADFS 5.0 (mit Web Application Proxy) zu wechseln. Das Ganze soll ohne Unterbruch durchgeführt werden und die Anmeldung muss jederzeit möglich bleiben. Als Datenbank wird die standartmässige Windows Internal Database verwendet.

1. Installation der neuen Server

Die neuen Server werden parallel zu den alten (Virtualisierung zeigt hier einmal mehr seine Vorteile) installiert. Anschliessend muss sowohl auf den ADFS, wie auch den WAP Server das entsprechende Zertifikat im Personal Store der Local Machine hinterlegt werden.

ADFS_cert.png

⚠️ Achtung: Das Zertifikat muss exakt dasselbe wie auf dem alten Server sein (Thumbprint muss übereinstimmen) und der ADFS Service Account muss Leserechte auf dem Private Key des Zertifikates besitzen

Anschliessend wird die Active Directory Federation Services Rolle installiert, wahlweise via Server Manager oder Powershell.

1
Add-WindowsFeature ADFS-Federation -IncludeManagementTools

Der neue ADFS Server wird als zusätzlicher Node der Farm hinzugefügt. Hierfür kann wieder der Wizard aus dem Server Manager oder Powershell genutzt werden. Im nachfolgenden Powershell Beispiel nutze ich einen Group Managed Service Account, welchen ich vorgängig auf dem neuen Server installiert habe. Die Dokumentation zum Cmdlet ist hier: Add-AdfsFarmNode (ADFS) | Microsoft Docs

1
Add-AdfsFarmNode -PrimaryComputerName vFED -GroupServiceAccountIdentifier "irbe\adfs$" -Credential (Get-Credential -Message "Domain Admin Creds") -CertificateThumbprint 0000B07046001C5270F1E706D2218C7D9B303471

Anschliessend kann der neue WAP Server in Betrieb genommen werden. Dazu muss ebenfalls das Zertifikat unter Local Machine installiert werden. Schliesslich wird die Rolle hinzugefügt und WAP konfiguriert

1
2
Add-WindowsFeature Web-Application-Proxy -IncludeManagementTools
Install-WebApplicationProxy -FederationServiceName adfs.irbe.ch -CertificateThumbprint 0000B07046001C5270F1E706D2218C7D9B303471 -FederationServiceTrustCredential (Get-Credential -Message "ADFS Local Admin Creds")

✔️ Jetzt wäre eine Möglichkeit den Traffic auf den neuen WAP Server umzuleiten, je nachdem wie die Infrastruktur aufgebaut ist, via DNS Eintrag oder Load Balancer

2. Migration der Rollen

Nun werden die primary und secondary Rollen der beiden ADFS Server getauscht. Dazu wird auf dem neuen Server folgende Zeile in Powershell ausgeführt

1
Set-AdfsSyncProperties -Role PrimaryComputer

und auf dem alten Server folgende Zeile in Powershell ausführen

1
Set-AdfsSyncProperties -PrimaryComputerName vFED01 -Role SecondaryComputer

Wenn nun auf dem alten Server die AD FS Management Konsole geöffnet wird, darf die Konfiugration nicht mehr möglich sein und die Mitteilung muss erscheinen, dass die Konfiguration nur auf dem Primary Computer änderbar ist.

3. Alte Server entfernen

Als erstes wird der alte ADFS Server von der Farm entfernt. Dazu muss die ADFS Rolle vom Server entfernt werden, wahlweise wieder via Server Manager oder Powershell. Anschliessend kann der Server abgebaut werden.

1
Remove-WindowsFeature ADFS-Federation -IncludeManagementTools

Vor dem entfernen der Web Application Proxy Rolle auf dem alten WAP Server unbedingt sicherstellen, dass die Kommunikation bereits über den neuen WAP Server läuft.

1
Remove-WindowsFeature Web-Application-Proxy -IncludeManagementTools

4. Anheben des Farm Levels

Der aktuelle Farm Behavior Level kann mit folgender Powershell Zeile abgefragt werden

1
Get-AdfsProperties | Select CurrentFarmBehavior

Sobald alle Farm Nodes auf der gleichen höheren Version (hier 5.0 durch Windows Server 2019) sind kann der Farm Behavior Level angehoben werden. Dies geschieht wiederum mit Powershell

1
Invoke-AdfsFarmBehaviorLevelRaise

Zur Kontrolle wird eine Meldung ausgegeben, welche darauf hinweist, welche Nodes nach dem Anheben noch Teil der Farm sind. Gegebenfalls muss anschliessend der ADFS Service Account manuell zu der Enterprise Key Admins Gruppe hinzugefügt werden.

Damit ist der Upgrade von ADFS 3.0 auf ADFS 5.0 ohne Unterbruch abgeschlossen. Natürlich sollte am Ende nochmals getestet werden ob alles funktioniert und etwaige Leichen wie Load Balancer oder DNS Einträge auf die alten ADFS und WAP Server aufgeräumt werden.