Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel wird das Extranet-Feature für intelligente Sperrung in Windows Server 2016 beschrieben.
Gilt für: Windows Server 2016
Ursprüngliche KB-Nummer: 4096478
Übersicht
Seit dem Update vom März 2018 für Windows Server 2016 verfügt Active Directory-Verbunddienste (AD FS) (AD FS) über ein neues Feature mit dem Namen "Extranet Smart Lockout (ESL). In einer Ära erhöhter Angriffe auf Authentifizierungsdienste ermöglicht ESL AD FS, zwischen Anmeldeversuchen von einem gültigen Benutzer und Anmeldeversuchen von dem zu unterscheiden, was ein Angreifer sein kann. Daher kann AD FS Angreifer sperren, während gültige Benutzer weiterhin ihre Konten verwenden können. Dies verhindert denial-of-Service für Benutzer und schützt vor gezielten Angriffen auf bekannte Benutzerkonten.
Das ESL-Feature ist für AD FS in Windows Server 2016 verfügbar.
Installieren und Konfigurieren von ESL
Installieren von Updates auf allen Knoten in der Farm
Stellen Sie zunächst sicher, dass alle AD FS-Server von Windows Server 2016 ab März 2018 auf dem neuesten Stand sind.
Aktualisieren von Artefakt-Datenbankberechtigungen
Die intelligente Extranetsperre erfordert, dass das AD FS-Dienstkonto über Berechtigungen zum Erstellen einer neuen Tabelle in der AD FS-Artefaktdatenbank verfügt. Melden Sie sich bei einem beliebigen AD FS-Server als AD FS-Administrator an, und erteilen Sie diese Berechtigung, indem Sie die folgenden Befehle in einem PowerShell-Eingabeaufforderungsfenster ausführen:
$cred= Get-Credential
Update-AdfsArtifactDatabasePermission -Credential$cred
Hinweis
Der $cred-Platzhalter steht für ein Konto mit AD FS-Administratorberechtigungen. Dadurch sollten Sie eine Schreibberechtigung zum Erstellen der Tabelle erhalten.
Die oben genannten Befehle können aufgrund unzureichender Berechtigungen fehlschlagen, da Ihre AD FS-Farm SQL Server verwendet und die oben angegebenen Anmeldeinformationen keine Administratorberechtigung für SQL Server aufweisen. In diesem Fall können Sie Datenbankberechtigungen in SQL Server-Datenbank manuell konfigurieren, indem Sie den folgenden Befehl ausführen, während Sie mit der AdfsArtifactStore-Datenbank verbunden sind.
ALTER AUTHORIZATION ON SCHEMA::[ArtifactStore] TO [db_genevaservice]
Konfigurieren von ESL
Ein neuer Parameter namens ExtranetLockoutMode wird zur Unterstützung von ESL hinzugefügt. Sie enthält die folgenden Werte:
- ADPasswordCounter– Dies ist der ältere AD FS-Modus "Extranet soft lockout", der sich nicht basierend auf dem Standort unterscheidet. Dies ist der Standardwert.
- ADFSSmartLockoutLogOnly - Dies ist Extranet Smart Lockout. Statt Authentifizierungsanforderungen abzulehnen, schreibt AD FS Administrator- und Überwachungsereignisse.
- ADFSSmartLockoutEnforce- Dies ist Extranet Smart Lockout mit vollständiger Unterstützung zum Blockieren unbekannter Anforderungen, wenn Schwellenwerte erreicht werden.
Es wird empfohlen, zuerst den Sperranbieter so festzulegen, dass er sich nur für einen kurzen Zeitraum (1 bis 3 Tage) anmeldet, indem Sie das folgende Cmdlet ausführen. Überprüfen Sie während dieses Zeitraums die Überwachungen (Details siehe unten), um die Anzahl der möglicherweise betroffenen Konten sowie die Häufigkeit dieser Ereignisse zu ermitteln. Legen Sie nach erfolgreicher Bewertung der Überwachungen die Einstellung auf den Modus „ADFSSmartLockoutEnforce“ fest:
Set-AdfsProperties -ExtranetLockoutMode AdfsSmartlockoutLogOnly
In diesem Modus führt AD FS die Analyse durch, blockiert jedoch keine Anforderungen aufgrund von Sperrzählern. Dieser Modus wird verwendet, um zu überprüfen, ob die intelligente Sperre erfolgreich ausgeführt wird, bevor der Modus „Erzwingen“ aktiviert wird.
Damit der neue Modus wirksam wird, starten Sie den AD FS-Dienst auf allen Knoten in der Farm neu, indem Sie den folgenden Befehl ausführen:
Restart-service adfssrv
Festlegen des Sperrschwellen- und Beobachtungsfensters
Es gibt zwei Schlüsseleinstellungen für ESL: Sperrschwellenwert und Beobachtungsfenster.
Sperrschwellenwerteinstellung
Jedes Mal, wenn eine kennwortbasierte Authentifizierung erfolgreich ist, speichert AD FS die Client-IPs als vertraute Speicherorte in der Kontoaktivitätstabelle.
Wenn die kennwortbasierte Authentifizierung fehlschlägt und die Anmeldeinformationen nicht von einem vertrauten Speicherort stammen, wird die Anzahl der fehlgeschlagenen Authentifizierungen erhöht.
Nachdem die Anzahl der fehlgeschlagenen Kennwortversuche von unbekannten Speicherorten den Sperrschwellenwert erreicht hat, wenn die kennwortbasierte Authentifizierung von einem unbekannten Speicherort fehlschlägt, wird das Konto gesperrt.
Notiz
Sperrung gilt weiterhin separat für vertraute Speicherorte von diesem neuen unbekannten Sperrzähler.
Der Schwellenwert wird mithilfe von Set-AdfsProperties
.
Beispiel:
Set-AdfsProperties -ExtranetLockoutThreshold 10
Einstellung des Beobachtungsfensters
Mit der Einstellung des Beobachtungsfensters kann ein Konto nach einiger Zeit automatisch entsperrt werden. Nachdem das Konto entsperrt wurde, ist ein Authentifizierungsversuch zulässig. Wenn die Authentifizierung erfolgreich ist, wird die Anzahl der fehlgeschlagenen Authentifizierungen auf 0 zurückgesetzt. Wenn der Fehler auftritt, wartet das System auf ein anderes Beobachtungsfenster, bevor der Benutzer den Vorgang erneut ausführen kann.
Das Beobachtungsfenster wird wie Set-AdfsProperties
im folgenden Beispielbefehl festgelegt:
Set-AdfsProperties -ExtranetObservationWindow ( new-timespan -minutes 5 )
Sperrung aktivieren
Extranetsperrung kann mithilfe des EnableExtranetLockout-Parameters wie in den folgenden Beispielen aktiviert oder deaktiviert werden.
Führen Sie zum Aktivieren der Sperrung den folgenden Befehl aus:
Set-AdfsProperties -EnableExtranetLockout $true
Führen Sie zum Deaktivieren der Sperrung den folgenden Befehl aus:
Set-AdfsProperties -EnableExtranetLockout $false
Erzwingungsmodus aktivieren
Nachdem Sie sich mit dem Sperrschwellen- und Beobachtungsfenster vertraut machen, kann ESL mithilfe des folgenden PSH-Cmdlets in den Modus "Erzwingen" verschoben werden:
Set-AdfsProperties -ExtranetLockoutMode AdfsSmartLockoutEnforce
Damit der neue Modus wirksam wird, starten Sie den AD FS-Dienst auf allen Knoten in der Farm neu, indem Sie den folgenden Befehl verwenden:
Restart-service adfssrv
Verwalten von ESL
Verwalten von Benutzerkontoaktivitäten
AD FS stellt drei Cmdlets zum Verwalten von Benutzerkontoaktivitätsdaten bereit. Diese Cmdlets stellen automatisch eine Verbindung mit dem Knoten in der Farm her, der über die Masterrolle verfügt.
Notiz
Dieses Verhalten kann durch Übergeben des -Server-Parameters überschrieben werden.
Get-ADFSAccountActivity
Ermittelt die aktuelle Kontoaktivität für ein Benutzerkonto. Das Cmdlet stellt über den AccountActivity-REST-Endpunkt immer automatisch eine Verbindung mit dem Farmmaster her. Daher sollten alle Daten immer konsistent sein.
Get-ADFSAccountActivity user@contoso.com
Set-ADFSAccountActivity
Aktualisieren Sie die Kontoaktivität für ein Benutzerkonto. Dies kann verwendet werden, um neue vertraute Speicherorte hinzuzufügen oder den Zustand für ein beliebiges Konto zu löschen.
Set-ADFSAccountActivity user@contoso.com -FamiliarLocation "1.2.3.4"
Reset-ADFSAccountLockout
Setzt den Sperrzähler für ein Benutzerkonto zurück.
Reset-ADFSAccountLockout user@contoso.com -Familiar
Problembehandlung
Aktualisieren von Datenbankberechtigungen
Wenn Fehler vom Update-AdfsArtifactDatabasePermission
Cmdlet zurückgegeben werden, überprüfen Sie Folgendes:
- Die Überprüfung schlägt fehl, wenn sich Knoten in der Farmliste befinden, aber nicht mehr Mitglieder der Farm sind. Dies kann durch Ausführen behoben
remove-adfsnode <node name>
werden. - Stellen Sie sicher, dass das Update auf allen Knoten in der Farm bereitgestellt wird.
- Überprüfen Sie, ob die an das Cmdlet übergebenen Anmeldeinformationen über die Berechtigung zum Ändern des Besitzers des AD FS-Artefaktdatenbankschemas verfügen.
Protokollierung/Überwachung
Wenn eine Authentifizierungsanforderung abgelehnt wird, da das Konto den Sperrschwellenwert überschreitet, schreibt AD FS ein ExtranetLockoutEvent in den Sicherheitsüberwachungsstream.
Beispiel für protokolliertes Ereignis
Es ist ein Extranetsperrungsereignis aufgetreten. Siehe XML für Details zu Fehlern.
Aktivitäts-ID: 172332e1-1301-4e56-0e00-008000000db
Zusätzliche Daten
XML: <?xml version="1.0" encoding="utf-16"?><AuditBase xmlns:xsd="http://www.w3.org/2001/XMLSchema
" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
" xsi:type="ExtranetLockoutAudit"><AuditType>ExtranetLockout</AuditType>
<AuditResult-Fehler></AuditResult>
<FailureType>ExtranetLockoutError</FailureType>
<ErrorCode>AccountRestrictedAudit</ErrorCode>
<ContextComponents>
<Component xsi:type="ResourceAuditComponent">
<RelyingParty>http://contoso.com
/adfs/services/trust</RelyingParty>
<ClaimsProvider>N/A</ClaimsProvider>
<UserId>TQDFTD\Administrator</UserId>
</Bestandteil>
<Component xsi:type="RequestAuditComponent">
<Server>N/A</Server>
<AuthProtocol>WSFederation</AuthProtocol>
<NetworkLocation>Intranet</NetworkLocation>
<IpAddress>4.4.4.4</IpAddress>
<ForwardedIpAddress />
<ProxyIpAddress>1.2.3.4</ProxyIpAddress>
<NetworkIpAddress 1.2.3.4</NetworkIpAddress>>
<ProxyServer>N/A</ProxyServer>
<UserAgentString>Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, wie Gecko) Chrome/63.0.3239.132 Safari/537.36</UserAgentString>
<Endpunkt>/adfs/ls</Endpoint>
</Bestandteil>
<Component xsi:type="LockoutConfigAuditComponent">
<CurrentBadPasswordCount>5</CurrentBadPasswordCount>
<ConfigBadPasswordCount>5</ConfigBadPasswordCount>
<LastBadAttempt>02/07/2018 21:47:44</LastBadAttempt>
<LockoutWindowConfig>00:30:00</LockoutWindowConfig>
</Bestandteil>
</ContextComponents>
</AuditBase>
Deinstallieren
SQL Server-Datenbankfarmen können das Update mithilfe der Einstellungsanwendung ohne Probleme deinstallieren.
WID-Datenbankfarmen müssen die folgenden Schritte ausführen, da die aktualisierte WID-Datenbanküberprüfungsdatei binär ist:
Führen Sie das Skript "Deinstallieren psh" aus, das den Dienst beendet, und legen Sie die Kontoaktivitätstabelle ab.
Stop-Service adfssrv -ErrorAction Stop $doc = new-object Xml $doc.Load("$env:windir\ADFS\Microsoft.IdentityServer.Servicehost.exe.config") $connString = $doc.configuration.'microsoft.identityServer.service'.policystore.connectionString if ( -not $connString -like "*##wid*" ) { Write-Error "SQL installs don't require DB updates, skipping DB table drop" } else { $connString = "Data Source=np:\\.\pipe\microsoft##wid\tsql\query;Initial Catalog=AdfsArtifactStore;Integrated Security=True" stop-service adfssrv $cli = new-object System.Data.SqlClient.SqlConnection $cli.ConnectionString = $connString $cli.Open() try { $cmd = new-object System.Data.SqlClient.SqlCommand $cmd.CommandText = "IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[ArtifactStore].[AccountActivity]') AND type in (N'U')) DROP TABLE [ArtifactStore].[AccountActivity]" $cmd.Connection = $cli $cmd.ExecuteNonQuery() } finally { $cli.CLose() } write-warning "Finish removing the patch using the Settings app and then restart the complete to complete the uninstall" }
Deinstallieren Sie das Update mithilfe der Einstellungsanwendung.
Starten Sie den Computer neu.