Monitoring der Active-Directory-Verbunddienste (3)
Die Active-Directory-Verbunddienste spielen in Unternehmen nach wie vor eine wichtige Rolle. Trotz vorhandener Alternativen können wichtige Vertrauensstellungen zur Microsoft-Cloud oder zu Partnerunternehmen darauf basieren. Daher sollten IT-Verantwortliche die Farm zu jeder Zeit im Auge behalten. Unser Workshop zeigt Wege, ADFS zu überwachen – sei es lokal auf den Servern mit kostenlosen Skripten und Bordmitteln oder aus dem Azure-Portal heraus. Im dritten Teil gehen wir vor allem darauf ein, wie Sie Protokolle automatisiert auslesen und dabei für einen hohen Detailgrad sorgen.
Protokolle automatisiert auslesen
Suchen Sie konkret nach Informationen zur Ursache eines Problems, ist es sinnvoll, das Ereignisprotokoll von Hand zu durchstöbern. In der täglichen Praxis und in Bezug auf das Monitoring ist dies aber wenig tauglich. Welcher Admin macht schon morgens gerne als Erstes das Eventlog auf, um zu prüfen, ob alles in Ordnung ist? Im administrativen Alltag funktioniert es eigentlich nur automatisiert und zum Glück gibt es die PowerShell.
Ein Cmdlet, um auf das Ereignisprotokoll zuzugreifen, lautet "Get-WinEvent". Mit den entsprechenden Parametern versehen, lässt es sich an beliebige Bedürfnisse anpassen. Folgender Befehl beispielsweise listet alle Fehler der vergangenen zwei Tage aus dem ADFS-Log eines Federation-Servers:
Get-WinEvent -FilterHashTable @{LogName='AD FS/Admin'; Level=2; StartTime=(Get-Date).AddDays(-2)} -ComputerName adfs2
Der Parameter "Level=2" veranlasst das Kommando, nur Einträge mit Fehlern auszugeben. "Level=2,3" bringt zusätzlich noch alle Warnungen für den Zeitraum auf den Screen.
Mehr Details zu dem Cmdlet finden Sie in der Microsoft-Dokumentation. Darin erfahren Sie etwa, wie sich mehrere Computer abarbeiten lassen, um die Logs aller ADFS-Server in der Farm einzusammeln, oder auch wie sich Ereignisse zählen lassen, um zu ermitteln, ob überhaupt Einträge vorhanden sind. Das können Sie beliebig ausbauen und etwa das Skript in Intervallen durch den Zeitplaner ausführen. Sind Ereignisse vorhanden, kann die Reaktion vielfältig sein: Das Erzeugen einer Datei mit den Events beispielsweise, die Sie dann auf Ihrem Desktop finden.
Detaillierte Ereignisprotokollierung
Suchen Sie die Ursache für ein Problem und werden in der Ereignisanzeige nicht fündig, kann eine Option sein, das Monitoring aufzumotzen und dem ADFS-Server noch mehr Informationen zu entlocken. Eine Möglichkeit besteht darin, die Ablaufverfolgung einzuschalten. Dazu öffnen Sie auf dem Verbunddienstserver die Datei "Microsoft.IdentityServer.Servicehost.exe.config" im Verzeichnis "C:\Windows\ADFS" und passen den "switchValue" wie in der Datei beschrieben an. Anschließend müssen Sie noch in der Ereignisanzeige im Ansicht-Menü die analytischen Debug-Protokolle einblenden und diese über das Kontextmenü aktivieren.
Das Logging ist auch für den Microsoft-Support hilfreich, um bei der Problem-analyse fündig zu werden. Im Regelbetrieb ist es deaktiviert, da es Ressourcen des Servers verbraucht. Vergessen Sie daher nicht, alle Schritte später wieder rückgängig zu machen.
In Umgebungen mit höheren Anforderungen für eine Überwachung der Sicherheit sollten Sie das Protokoll für die Sicherheitseinstellungen einschalten. Auch finden Sie in der ADFS-Verwaltungskonsole unter "Eigenschaften" einen Dialog zu den Eigenschaften des Servers. Ein paar weitere Handgriffe sind noch vonnöten, was genau beschreibt Microsoft in einer technischen Referenz. Nach erfolgreicher Konfiguration landen alle Einträge im Sicherheitsprotokoll. Gepaart mit dem oben beschriebenen Get-WinEvent-Cmdlet zum Auslesen von Ereignisprotokollen lässt sich eine Liste mit Benutzern erzeugen, die durch den ADFS-Server authentifiziert worden sind, oder eine Übersicht derer, bei denen es fehlgeschlagen ist.
Weitere Hilfsmittel zur Diagnose
Um die Diagnose zu vereinfachen, bietet Microsoft noch den ADFS Diagnostics Analyzer an. Dabei handelt es sich nicht um ein Monitoringwerkzeug im klassischen Sinn, aber das Tool hilft dem Administrator dabei, den ADFS-Aufbau zu untersuchen. Die Arbeit damit gestaltet sich in mehreren Schritten, durch die Sie die Webseite führt. Zunächst müssen Sie das PowerShell-Modul "ADFSToolbox" herunterladen. Darin enthalten sind diverse Cmdlets, die den Admin-Alltag vereinfachen. Eines davon ist "Export-AdfsDiagnosticsFile". Hierüber erstellen Sie eine JSON-Datei von einem oder mehreren ADFS- oder WAP-Servern. Die erzeugte Ausgabedatei laden Sie im letzten Schritt auf der Webseite des Diagnostics Analyzer wieder hoch. Hier werden dann die Diagnosedaten untersucht und ein Analyseergebnis in Kategorien angezeigt.
Die Diagnose mit dem Diagnostics Analyzer geht weiter als die reine Überwachung zum Beispiel in Azure AD Connect Health. Als Bestandteil eines Betriebshandbuchs und im Zug regelmäßiger Arbeiten – beispielsweise quartalsmäßig – verrichtet die Diagnose wertvolle Dienste und weist auf Auffälligkeiten in der Konfiguration hin. Es versteht sich als proaktives Tool, das auf Unzulänglichkeiten hindeutet.
Der Diagnostics Analyzer ist kostenlos und ohne viel Aufwand installiert. Es bietet sich an, mit der Webseite zu experimentieren, und vielleicht passt der Ablauf und die Handhabung des Tools ja in ihre regelmäßigen administrativen Abläufe.
Fazit
Verantwortliche für unternehmenskritische ADFS-Implementierungen sollten sich solide Gedanken über das Monitoring machen. Treten Probleme in der Verbundserver-Farm auf und die Benutzer lassen sich nicht authentifizieren, ist kein Zugriff auf Microsoft 365 mehr möglich. Gleiches gilt natürlich auch für eine Föderation mit einem Partnerunternehmen. Dass es bei der Überwachung nicht immer eine teure Monitoringsuite sein muss, haben wir in diesem Beitrag gezeigt. Und mit etwas programmiertechnischem Eifer und Kenntnissen in der PowerShell lassen sich die gezeigten Möglichkeiten noch deutlich erweitern.
ln/Klaus Bierschenk
Im ersten Teil der Workshopserie haben wir einen Blick auf die Abhängigkeiten von ADFS geworfen und das Monitoring mit AD Connect Health erklärt. Im zweiten Teil ging es um den Server-Manager als Schaltzentrale und das Eventlog als Datenbasis.