ADFS 4.0: Migration der SQL Datenbank

  • Beitrags-Kategorie:Tutorial / Windows
  • Beitrags-Autor:
  • Lesedauer:3 Minuten zum Lesen
  • Beitrags-Kommentare:0 Kommentare
  • Betrifft: Active Directory Federation Service 4.0 (und womöglich älter)
  • System: Microsoft Windows Server 2012 R2, Windows Server 2016, Windows Server 2019, Windows Server 2022
  • Problem: Der SQL Server wird ersetzt und die SQL Datenbank soll vom alten SQL Server zum neuen übernommen werden.

Hintergrund

Der ADFS nutzt demnach nicht die integrierte Datenbank, sondern bereits als Backend-Server einen anderes System mit SQL Server. Die Angelegenheit für die Migration kann immer wieder aus unterschiedlichen Gründen vorkommen. Im meinem Fall ist dies meistens, wenn der Backend-Server – also der dort genutzte Microsoft SQL Server oder Microsoft Windows Server – langsam außerhalb des Supports gelangt und durch einen neuen ersetzt werden soll.

Daneben gibt es ebenso Möglichkeiten bei Wiederherstellungsszenarien. Theoretisch wäre damit auch eine Migration von der internen Windows Datenbank zu Microsoft SQL Server denkbar. Wird aber für gewöhnlich (durch Microsoft) abgeraten und über die Backup und Restore Funktion eines zusätzlichen Produktes (von Microsoft) empfohlen.

Behebung

Nachfolgend die dazu notwendigen Schritte zur Durchführung:

  • Aktuelle Sicherung (der Server)
  • Auslesen der aktuellen Konfiguration
  • Beenden des ADFS-Dienstes (aller Server)
  • Umzug der SQL Datenbanken
  • Konfiguration aller ADFS auf neuen SQL Server
  • Umzug des ADFSArtifactStore
  • Finaler Test

Aktuelle Sicherung (der Server)

Sofern virtuelle Maschinen, einfach einen Snapshot anlegen und fertig. Möglichkeiten gibt es hierbei viele und besser haben und nicht brauchen, als nicht haben, aber dann brauchen 😉 .

Auslesen der aktuellen Konfiguration

Es gibt zwei wichtige Befehle zur Anzeige der aktuellen Konfiguration:

Get-WmiObject -namespace root/ADFS -class SecurityTokenService
adfs-wmiobject
Die WMI-Abfrage liefert unter ConfigurationDatabaseConnectionString den aktuell konfigurierten Pfad.
Get-AdfsProperties | fl artifactdbconnection
adfs-properties
Die Powershell-Abfrage liefert dank Filter direkt den aktuell konfigurierten Pfad.

Beenden des ADFS-Dienstes (aller Server)

Sofern eine ADFS-Farm in Verwendung ist, so sollten nun bei allen Servern der ADFS-Dienst beendet werden.

Stop-Service -Name adfssrv

Umzug der SQL-Datenbanken

Der ADFS nutzt zwei Datenbanken: AdfsConfigurationV3 und AdfsArtifactStore. Diese sollten über das SQL Server Management Studio getrennt werden. Dabei darf keine Fehlermeldung kommen – wenn doch, dann wurde vermutlich die ADFS-Rolle nicht auf allen Servern beendet 🙄 . Am neuen Server muss nicht nur die SQL-Datenbanken (vier Dateien) übertragen werden, sondern unter Anmeldung sollte ebenso der genutzte Benutzer für den ADFS-Dienst angelegt werden.

Konfiguration aller ADFS auf neuen SQL Server

Auf jeden Server muss der neue Pfad zur Konfigurationsdatenbank geändert werden.

$adfs = Get-WmiObject -namespace root/ADFS -class SecurityTokenService
$adfs.ConfigurationDatabaseConnectionString="Data Source=*neuer SQL-Server\Instanz*;Initial Catalog=AdfsConfigurat
ionV3;Integrated Security=True"
$adfs.put()
adfs-new-configuration-database
Abänderung der Konfigurationsdatenbank vom ADFS-Dienst.

Umzug des ADFSArtifactStore

Der folgende Schritt wird nur einmalig pro ADFS Farm benötigt. Zudem muss der ADFS-Dienst auf diesen Server gestartet sein.

Start-Service -Name adfssrv
Set-AdfsProperties -ArtifactDbConnection "Data Source=*neuer SQL-Server\Instanz*;Initial Catalog=AdfsArtifactStore;Integrated Security=True"
adfs-new-artifact-database
Abänderung der Artifact-Datenbank wird nach einem Neustart des ADFS-Dienstes verlangt.

Auf diesem Server kann direkt der Neustart des ADFS-Dienstes veranlasst werden.

Restart-Service -Name adfssrv

Finaler Test

Der Umzug bzw. Migration ist abgeschlossen. Ab nun können alle ADFS-Dienste gestartet werden – sofern eine ADFS-Farm zum Einsatz kommt. In meinem Beispiel aus dem Screenshot war es nur ein Server. Varianten habe ich schon unterschiedliche gehabt. Verlief eigentlich immer recht harmlos und zügig. Ein kurzer Test ein paar externer Webdienste (mit Authentifizierung, sonst wird der ADFS nicht genutzt 😉 ) würde ich trotzdem vorschlagen. Allein schon beim Start des ADFS-Dienstes sollte im SQL Server Management Studio der Zugriff auf die Datenbank am neuen Server sichtbar sein.

Andyt

Ich bin Blogger, Sporttaucher, Roadster-Fahrer und interessiere mich für Technik. Übrigens, folge mir auf verschiedenen sozialen Netzwerken (siehe Untermenü in der Fußzeile) oder abonniere meinen Blog via RSS-Feed oder telegram Channel (beides oben beim Hauptmenü).

Schreibe einen Kommentar