- Betrifft: Active Directory Federation Service 4.0 (und womöglich älter)
- System: Microsoft Windows Server 2012 R2, Windows Server 2016
- Problem: Nach einem Änderungsvorgang über Powershell (Set-AdfsProperties) können keine Abfragen (Get-AdfsProperties) gestellt werden. In den Rückmeldungen erhält man eine Fehlermeldung, jedoch keine Werte. Der zugehörige Windowsdienst kann nicht gestartet werden, sofern dieser beendet wurde. Es wird für die ADFS-Datenbank ein eigenständiger SQL Server verwendet.
Hintergrund
Im Verlauf der Zeit wird man immer wieder Änderungsvorgänge entweder via Powershell oder via AD FS-Verwaltung durchführen müssen. Man wird dabei vielleicht merken, dass der Änderungsvorgang länger als gewöhnlich dauert.
Bei der Kontrolle ob die Änderung erfolgt wurde, erhält man direkt eine Fehlermeldung:
Get-AdfsProperties : Eine Ausnahme vom Typ “Microsoft.IdentityServer.PolicyModel.Client.StorageOperationException” wurde ausgelöst. In Zeile:1 Zeichen:1 + Get-AdfsProperties | select *kmsi* + ~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidData: (:) [Get-AdfsProperties], StorageOperationException + FullyQualifiedErrorId : Eine Ausnahme vom Typ “Microsoft.IdentityServer.PolicyModel.Client.StorageOperationException” wurde ausgelöst.,Microsoft.IdentityServer.Management.Commands.GetServicePropertiesCommand |
In der Ereignisanzeige treten nach dem Ausführen des Änderungsbefehls (nicht ab der Eigenschaftenabfrage) wiederholte Fehlermeldungen auf. Diese sehen wie folgt aus:
Deutsch | English |
Log File: AD FS/Admin Quelle: AD FS Ereignis-ID: 221 | Log File: AD FS/Admin Quelle: AD FS Ereignis-ID: 221 |
Eine Änderung der Tokendienstkonfiguration wurde festgestellt, es trat jedoch ein Fehler beim erneuten Laden der Konfigurationsänderungen. Zusätzliche Daten | A change to the token service configuration was detected, but there was an error reloading the changes to configuration. Additional DataError: The specified directory service attribute or value does not exist. |
Wenn nun versucht wird, den ADFS-Dienst neu zu starten, dann wird der Startvorgang mit folgender Fehlermeldung scheitern:
Deutsch |
Log File: AD FS/Admin Quelle: AD FS Ereignis-ID: 102 |
Beim Aktivieren von Endpunkten des Verbunddiensts ist ein Fehler aufgetreten. Beheben Sie Konfigurationsfehler mit PowerShell-Cmdlets, und starten Sie den Verbunddienst erneut. Zusätzliche Daten |
English |
Log File: AD FS/Admin Quelle: AD FS Ereignis-ID: 102 |
There was an error in enabling endpoints of Federation Service. Fix configuration errors using PowerShell cmdlets and restart the Federation Service. Additional Data |
Es scheint einen Zusammenhang mit dem KB4019472 (Sicherheitsupdate 2017-05) vom 5. Mai 2017 für Windows Server 2016 zu geben. Das konnte ich nicht direkt verifizieren, da schon recht lange her. Womöglich schlummert der Fehler seit dem Update in vielen Installationen und erst die nächste Konfigurationsänderung löst das Problem aus.
Behebung
Die Angelegenheit ist simpel, aber verlangt nach einer gültigen Datenbanksicherung bevor die Behebung durchgeführt wird. Wer keine Sicherung hat, der kann direkt die Behebung probieren und mit Glück geht es wieder.
Zumindest in meinem Fall hatte ich die Datenbank aus der Sicherung wiederhergestellt, da in die Datenbank (laut Ereignisanzeige) ungültige Daten geschrieben wurden. Erst anschließend wurde die notwendige Behebung durchgeführt. Grundlegend könnte der ADFS-Dienst nach der Wiederherstellung gestartet werden und würde wieder normal laufen, jedoch eine erneute Konfigurationsänderung liefert wieder das obige Problem…
Die Ursache hat mit den Anmeldungseigenschaften des ADFS-Dienstes auf die SQL-Datenbank zu tun. Dazu benötigt man eine aktive Verbindung zum SQL Server via SQL Server Management Studio. Der ADFS-Dienst sollte beendet sein.
Während der Erstinstallation wurde bei der Standardsprache “German” eingestellt. Die Sprache des Betriebssystem scheint unabhängig zu sein. Jedenfalls arbeitet der ADFS-Dienst mit Englisch und erwartet ebenfalls die gleiche Anmeldesprache am SQL-Server.
Somit muss im SQL Server Management Studio der ADFS-Dienstbenutzer aufgerufen und entsprechend abgeändert werden. Danach den ADFS-Dienst starten und jede zukünftige Änderung wird schneller und ohne Problem erfolgen.
Thank you, This is helping me today a have the same issue with French version of SQL. No documentation found any way about this