Konfigurieren des AD FS-Extranetsperrschutzes

In AD FS unter Windows Server 2012 R2 haben wir ein Sicherheitsfeature namens „Extranetsperre“ eingeführt. Mit diesem Feature „beendet“ AD FS die Authentifizierung des „schädlichen“ Benutzerkontos von außen für einen bestimmten Zeitraum. Dadurch wird verhindert, dass Ihre Benutzerkonten in Active Directory gesperrt werden. Die AD FS-Extranetsperre schützt Ihre Benutzer nicht nur vor einer AD-Kontosperre, sondern auch vor Brute-Force-Angriffen zum Erraten von Kennwörtern.

Hinweis

Dieses Feature funktioniert nur für das Extranetszenario, in dem die Authentifizierungsanforderungen über den Webanwendungsproxy eingehen, und gilt nur für die Authentifizierung mit Benutzername und Kennwort.

Vorteile der Extranetsperre

Die Extranetsperre bietet die folgenden Hauptvorteile:

  • Sie schützt Ihre Benutzerkonten vor Brute-Force-Angriffen, bei denen ein Angreifer versucht, das Kennwort eines Benutzers zu erraten, indem er kontinuierlich Authentifizierungsanforderungen sendet. In diesem Fall sperrt AD FS das böswillige Benutzerkonto vom Extranetzugriff aus.
  • Sie schützt Ihre Benutzerkonten vor einer böswilligen Kontosperrung, bei der ein Angreifer ein Benutzerkonto sperren möchte, indem er Authentifizierungsanforderungen mit falschen Kennwörtern sendet. In diesem Fall wird das Benutzerkonto zwar von AD FS für den Extranetzugriff gesperrt, aber das tatsächliche Benutzerkonto in AD wird nicht gesperrt, und Benutzer*innen können weiterhin auf Unternehmensressourcen innerhalb der Organisation zugreifen. Dies wird als weiche Sperre (soft lockout) bezeichnet.

Funktionsweise

Es gibt drei Einstellungen in AD FS, die Sie konfigurieren müssen, um dieses Feature zu aktivieren:

  • EnableExtranetLockout <Boolesch>: Legen Sie diesen booleschen Wert auf „True“ fest, wenn Sie die Extranetsperre aktivieren möchten.
  • ExtranetLockoutThreshold <Integer>: Dieser Wert definiert die maximale Anzahl fehlerhafter Kennworteingabeversuche. Sobald der Schwellenwert erreicht ist, lehnt AD FS die Anforderungen aus dem Extranet sofort ab, ohne zu versuchen, den Domänencontroller zwecks Authentifizierung zu kontaktieren, unabhängig davon, ob das Kennwort gültig oder falsch ist, bis das Extranetbeobachtungsfenster verstrichen ist. Dies bedeutet, dass der Wert des badPwdCount-Attributs eines AD-Kontos nicht erhöht wird, während das Konto weich gesperrt ist.
  • ExtranetObservationWindow < TimeSpan>: Dieser Wert bestimmt, wie lange das Benutzerkonto weich gesperrt wird. AD FS beginnt die Authentifizierung mit Benutzername und Kennwort erneut, sobald das Fenster verstrichen ist. AD FS verwendet das AD-Attribut „badPasswordTime“ als Referenz, um zu bestimmen, ob das Extranetbeobachtungsfenster verstrichen ist oder nicht. Das Fenster ist verstrichen, wenn die aktuelle Zeit > badPasswordTime + ExtranetObservationWindow ist.

Hinweis

Die AD FS-Extranetsperre funktioniert unabhängig von den AD-Sperrrichtlinien. Es wird jedoch dringend empfohlen, den ExtranetLockoutThreshold-Parameterwert auf einen Wert festzulegen, der kleiner als der Schwellenwert für die AD-Kontosperrung ist. Andernfalls könnte dies dazu führen, dass AD FS Konten nicht vor der Sperrung in Active Directory schützen kann.

Ein Beispiel für die Aktivierung der Extranetsperrfunktion mit maximal 15 ungültigen Kennwortversuchen und 30 Minuten Dauer der weichen Sperre sehen Sie im Folgenden:

Set-AdfsProperties -EnableExtranetLockout $true -ExtranetLockoutThreshold 15 -ExtranetObservationWindow (new-timespan -Minutes 30)

Diese Einstellungen gelten für alle Domänen, die der AD FS-Dienst authentifizieren kann. Es funktioniert wie folgt: Wenn AD FS eine Authentifizierungsanforderung empfängt, greift es über einen LDAP-Aufruf auf den primären Domänencontroller (PDC) zu und sucht das badPwdCount-Attribut für den Benutzer/die Benutzerin auf dem PDC. Wenn AD FS den Wert der Einstellung „badPwdCount>= ExtranetLockoutThreshold“ findet und die im Extranetbeobachtungsfenster definierte Zeit noch nicht abgelaufen ist, lehnt AD FS die Anforderung sofort ab. Dies bedeutet, dass, egal, ob der Benutzer/die Benutzerin ein gültiges oder falsches Kennwort aus dem Extranet eingibt, die Anmeldung fehlschlägt, weil AD FS die Anmeldeinformationen nicht an AD sendet. AD FS verwaltet keinen Zustand in Bezug auf badPwdCount oder gesperrte Benutzerkonten. AD FS verwendet AD für die gesamte Zustandsnachverfolgung.

Warnung

Wenn die AD FS-Extranetsperre unter Server 2012 R2 aktiviert ist, werden alle Authentifizierungsanforderungen über den WAP von AD FS auf dem PDC überprüft. Wenn der PDC nicht verfügbar ist, können sich Benutzer nicht aus dem Extranet authentifizieren.

Server 2016 bietet einen zusätzlichen Parameter, mit dem AD FS ein Fallback auf einen anderen Domänencontroller durchführen kann, wenn der PDC nicht verfügbar ist:

  • ExtranetLockoutRequirePDC <Boolesch>: Wenn dieser Wert aktiviert ist, erfordert die Extranetsperre einen primären Domänencontroller (PDC). Wenn er deaktiviert ist, führt die Extranetsperrfunktion ein Fallback auf einen anderen Domänencontroller aus, falls der PDC nicht verfügbar ist.

Sie können den folgenden Windows PowerShell-Befehl verwenden, um die AD FS-Extranetsperre unter Server 2016 zu konfigurieren:

Set-AdfsProperties -EnableExtranetLockout $true -ExtranetLockoutThreshold 15 -ExtranetObservationWindow (new-timespan -Minutes 30) -ExtranetLockoutRequirePDC $false

Arbeiten mit der Active Directory-Sperrrichtlinie

Die Extranetsperrfunktion in AD FS funktioniert unabhängig von der AD-Sperrrichtlinie. Sie müssen jedoch sicherstellen, dass die Einstellungen für die Extranetsperre ordnungsgemäß konfiguriert sind, damit sie ihren Sicherheitszweck mit der AD-Sperrrichtlinie erfüllen kann.

Sehen wir uns zunächst die AD-Sperrrichtlinie an. Es gibt drei Einstellungen für die Sperrrichtlinie in AD:

  • Kontosperrungsschwelle: Diese Einstellung ähnelt der Einstellung „ExtranetLockoutThreshold“ in AD FS. Sie bestimmt die Anzahl der fehlgeschlagenen Anmeldeversuche, die dazu führen, dass ein Benutzerkonto gesperrt wird. Um Ihre Benutzerkonten vor einem böswilligen Kontosperrangriff zu schützen, sollten Sie den Wert von „ExtranetLockoutThreshold“ in AD FS < als den Wert der „Kontosperrungsschwelle“ in AD festlegen.
  • Kontosperrdauer: Diese Einstellung bestimmt, wie lange ein Benutzerkonto gesperrt wird. Diese Einstellung spielt in diesen Ausführungen keine große Rolle, da die Extranetsperre bei ordnungsgemäßer Konfiguration immer erfolgen sollte, bevor es zur AD-Sperre kommt.
  • Kontosperrungszähler zurücksetzen nach: Diese Einstellung bestimmt, wie viel Zeit seit dem letzte Anmeldefehler des Benutzers verstrichen sein muss, damit badPwdCount wieder auf 0 zurückgesetzt wird. Damit die Extranetsperrfunktion in AD FS gut mit der AD-Sperrrichtlinie funktioniert, sollten Sie sicherstellen, dass der Wert von „ExtranetObservationWindow“ in AD FS > ist als der Wert von „Kontosperrungszähler zurücksetzen nach“ in AD. In den folgenden Beispielen wird der Grund hierfür erläutert.

Sehen wir uns zwei Beispiele an, und finden wir heraus, wie sich badPwdCount im Laufe der Zeit auf Grundlage verschiedener Einstellungen und Zustände ändert. Nehmen wir in beiden Beispielen an, dass die Kontosperrungsschwelle = 4 und ExtranetLockoutThreshold = 2 ist. Der rote Pfeil stellt den ungültigen Kennwortversuch dar, während der grüne Pfeil einen gültigen Kennwortversuch darstellt. In Beispiel 1 ist ExtranetObservationWindow>Kontosperrungszähler zurücksetzen nach. In Beispiel 2 ist ExtranetObservationWindow<Kontosperrungszähler zurücksetzen nach.

Beispiel 1

Diagram that shows how badPwdCount changes over time based on different settings and states.

Beispiel 2

Example1

Wie Sie oben sehen können, gibt es zwei Bedingungen, wann badPwdCount auf 0 zurückgesetzt wird. Eine ist, wenn eine erfolgreiche Anmeldung vorliegt. Die andere ist, wenn es an der Zeit ist, diesen Zähler zurückzusetzen, wie in der Einstellung Kontosperrungszähler zurücksetzen nach definiert. Wenn Kontosperrungszählers zurücksetzen nach<ExtranetObservationWindow ist, besteht kein Risiko, dass ein Konto von AD gesperrt wird. Wenn jedoch Kontosperrungszähler zurücksetzen nach>ExtranetObservationWindow ist, besteht die Möglichkeit, dass ein Konto von AD gesperrt wird, aber auf „verzögerte Art“. Je nach Ihrer Konfiguration kann es eine Weile dauern, bis ein Konto von AD gesperrt wird, da AD FS während des Beobachtungsfensters nur einen ungültigen Kennwortversuch zulässt, bis badPwdCount die Kontosperrungsschwelle erreicht.

Weitere Informationen finden Sie unter Konfigurieren der Kontosperre.

Bekannte Probleme

Es gibt ein bekanntes Problem, bei dem sich das AD-Benutzerkonto nicht bei AD FS authentifizieren kann, weil das badPwdCount-Attribut nicht auf den Domänencontroller repliziert wird, den AD FS abfragt. Weitere Detailinformationen finden Sie unter 2971171. Sie finden alle AD FS-QFEs, die bisher veröffentlicht wurden, hier.

Zu berücksichtigende Hauptpunkte

  • Die Extranetsperrfunktion funktioniert nur mit dem Extranetszenario, in dem die Authentifizierungsanforderungen über den Webanwendungsproxy eingehen.
  • Die Extranetsperrfunktion gilt nur für die Authentifizierung mit Benutzername und Kennwort
  • AD FS verfolgt weder badPwdCount noch Benutzer*innen nach, die weich gesperrt sind. AD FS verwendet AD für die gesamte Zustandsnachverfolgung.
  • AD FS sucht bei jedem Authentifizierungsversuch mit einem LDAP-Aufruf nach dem badPwdCount-Attribut für den Benutzer auf dem PDC.
  • Ältere Versionen von AD FS als 2016 schlagen fehl, wenn sie nicht auf den PDC zugreifen können. Mit AD FS 2016 wurden Verbesserungen eingeführt, die es AD FS gestatten, ein Fallback auf andere Domänencontroller durchzuführen, falls der PDC nicht verfügbar ist.
  • AD FS lässt Authentifizierungsanforderungen aus dem Extranet zu, wenn „badPwdCount“ < „ExtranetLockoutThreshold“ ist.
  • Wenn badPwdCount>= ExtranetLockoutThreshold UND badPasswordTime + ExtranetObservationWindow< aktuelle Uhrzeit, lehnt AD FS Authentifizierungsanforderungen aus dem Extranet ab.
  • Um böswillige Kontosperrungen zu vermeiden, sollten Sie sicherstellen, dass ExtranetLockoutThreshold<Account Lockout Threshold UND ExtranetObservationWindow>Kontosperrungszähler zurücksetzen nach ist.