다음을 통해 공유


AD FS 엑스트라넷 잠금 및 엑스트라넷 스마트 잠금 개요

ESL(Extranet Smart Lockout)은 악의적인 활동으로부터 엑스트라넷 계정 잠금이 발생하지 않도록 사용자를 보호합니다.

ESL을 사용하면 AD FS가 사용자의 친숙한 위치에서 로그인 시도와 공격자가 될 수 있는 로그인 시도를 구분할 수 있습니다. AD FS는 유효한 사용자가 자신의 계정을 계속 사용할 수 있도록 하면서 공격자를 잠글 수 있습니다. 이러한 구분은 사용자에 대한 서비스 거부 및 특정 클래스의 암호 스프레이 공격을 방지하고 보호합니다. ESL은 Windows Server 2016에서 AD FS에 사용할 수 있으며 Windows Server 2019의 AD FS에 기본 제공됩니다.

ESL은 웹 애플리케이션 프록시 또는 타사 프록시를 사용하여 엑스트라넷을 통해 들어오는 사용자 이름 및 암호 인증 요청에만 사용할 수 있습니다. 타사 프록시는 F5 BIG-IP 액세스 정책 관리자와 같은 웹 애플리케이션 프록시 대신 사용할 MS-ADFSPIP 프로토콜을 지원해야 합니다. 프록시가 MS-ADFSPIP 프로토콜을 지원하는지 확인하려면 타사 프록시 설명서를 참조하세요.

AD FS 2019의 기능

AD FS 2019의 엑스트라넷 스마트 잠금은 AD FS 2016에 비해 다음과 같은 이점을 추가합니다.

  • 친숙하고 익숙하지 않은 위치에 대한 독립적인 잠금 임계값입니다. 알려진 좋은 위치에 있는 사용자는 의심스러운 위치의 요청보다 오류의 여지가 더 많을 수 있습니다.
  • 이전 소프트 잠금 동작을 계속 적용하면서 스마트 잠금을 위한 감사 모드입니다. 이러한 구분을 통해 사용자에게 친숙한 위치에 대해 알아보고 AD FS 2012 R2에서 사용할 수 있는 엑스트라넷 잠금 기능으로 계속 보호할 수 있습니다.

Configuration information

ESL을 사용하도록 설정하면 아티팩트 데이터베이스 AdfsArtifactStore.AccountActivity에 새 테이블이 만들어집니다. 또한 AD FS 팜에서 노드가 "사용자 작업" 기본 노드로 선택됩니다. WID(Windows Internal Database) 구성에서 이 노드는 항상 주 노드입니다. SQL 구성에서 하나의 노드가 사용자 작업 주 노드로 선택됩니다.

"사용자 작업" 주 노드로 선택한 노드를 보려면 (Get-AdfsFarmInformation).FarmRoles을(를) 사용합니다.

모든 보조 노드는 포트 80을 통해 새로 로그인할 때마다 주 노드에 연결하여 잘못된 암호 수와 익숙한 새 위치 값의 최신 값을 알아봅니다. 또한 보조 노드는 로그인이 처리된 후 주 노드를 업데이트합니다.

주 노드, 보조 노드 및 클라이언트 간의 로그인 프로세스를 보여 주는 다이어그램

보조 노드가 주 노드에 연결할 수 없는 경우 보조 노드는 AD FS 관리자 로그에 오류 이벤트를 씁니다. 인증은 계속 처리되지만 AD FS는 업데이트된 상태만 로컬로 씁니다. AD FS는 10분마다 주 노드에 다시 연결합니다. 주 노드를 사용할 수 있게 되면 AD FS가 주 노드로 다시 전환됩니다.

Terminology

  • FamiliarLocation: During an authentication request, ESL checks all presented Internet Protocols (IPs). 이러한 IP는 네트워크 IP, 전달된 IP, 옵션의 x-forwarded-for IP의 조합입니다. 요청이 성공하면 모든 IP가 계정 활동 테이블에 "친숙한 IP"로 추가됩니다. 요청에 "친숙한 IP"에 있는 모든 IP가 있는 경우 요청은 "친숙한" 위치로 처리됩니다.
  • UnknownLocation: If a request that comes in has at least one IP not present in the existing FamiliarLocation list, then the request is treated as an “Unknown” ___location. 이 작업은 Exchange Online 주소가 성공한 요청과 실패한 요청을 모두 처리하는 Exchange Online 레거시 인증과 같은 프록시 시나리오를 처리합니다.
  • badPwdCount: A value representing the number of times an incorrect password was submitted, and the authentication was unsuccessful. 각 사용자에 대해 친숙한 위치와 알 수 없는 위치에 대해 별도의 카운터가 유지됩니다.
  • UnknownLockout: A boolean value per user if the user is locked out from accessing from unknown locations. This value is calculated based on the badPwdCountUnfamiliar and ExtranetLockoutThreshold values.
  • ExtranetLockoutThreshold: This value determines the maximum number of bad password attempts. 임계값에 도달하면 AD FS는 관찰 창이 통과될 때까지 엑스트라넷의 요청을 거부합니다.
  • ExtranetObservationWindow: This value determines the duration that username and password requests from unknown locations are locked out. When the window has passed, AD FS starts to perform username and password authentication from unknown locations again.
  • ExtranetLockoutRequirePDC: When enabled, extranet lockout requires a primary ___domain controller (PDC). 사용하지 않도록 설정하면 PDC를 사용할 수 없는 경우 엑스트라넷 잠금이 다른 도메인 컨트롤러로 대체됩니다.
  • ExtranetLockoutMode: Controls Log-Only vs Enforced mode of ESL.
    • ADFSSmartLockoutLogOnly: ESL is enabled. AD FS는 관리자 및 감사 이벤트를 작성하지만 인증 요청을 거부하지는 않습니다. This mode is intended to be enabled for FamiliarLocation to be populated before ADFSSmartLockoutEnforce is enabled.
    • ADFSSmartLockoutEnforce: Full support for blocking unfamiliar authentication requests when thresholds are reached.

IPv4 및 IPv6 주소가 지원됩니다.

트랜잭션의 구조

  • Pre-Auth Check: During an authentication request, ESL checks all presented IPs. 이러한 IP는 네트워크 IP, 전달된 IP, 옵션의 x-forwarded-for IP의 조합입니다. 감사 로그에서 이러한 IP는 x-ms-forwarded-client-ip, x-forwarded-for, x-ms-proxy-client-ip 순서로 <IpAddress> 필드에 나열됩니다.

    Based on these IPs, AD FS determines if the request is from a familiar ___location and then checks if the respective badPwdCount is less than the set threshold limit or if the last failed attempt happened longer than the observation window time frame. 이러한 조건 중 하나가 true이면 AD FS에서 이 트랜잭션을 통해 추가 처리 및 자격 증명 유효성 검사를 수행할 수 있습니다. 두 조건이 모두 false이면 관찰 창이 지나갈 때까지 계정이 이미 잠긴 상태입니다. 관찰 창이 지나면 사용자는 인증을 한 번 시도할 수 있습니다. Windows Server 2019에서 AD FS는 IP 주소가 익숙한 위치와 일치하는지 에 따라 적절한 임계값 제한을 확인합니다.

  • Successful Login: If the login succeeds, then the IPs from the request are added to the user's familiar ___location IP list.

  • Failed Login: If the login fails, the badPwdCount is increased. 공격자가 임계값이 허용하는 것보다 더 많은 잘못된 암호를 시스템에 보내는 경우 사용자는 잠금 상태로 전환됩니다. (badPwdCount > ExtranetLockoutThreshold)를 참조하십시오.

성공 및 실패 인증 프로세스를 보여 주는 다이어그램.

The UnknownLockout value equals True when the account is locked out. This lockout means that the user's badPwdCount is over the threshold. 예를 들어 누군가가 시스템에서 허용하는 것보다 더 많은 암호를 시도했습니다. 이 상태에서는 유효한 사용자가 로그인할 수 있는 두 가지 방법이 있습니다.

  • Wait for the ObservationWindow time to elapse.
  • In order to reset the Lockout state, reset the badPwdCount back to zero with Reset-ADFSAccountLockout.

재설정이 수행되지 않으면 계정에 각 관찰 창에 대해 AD에 대한 단일 암호 시도가 허용됩니다. 이 시도가 완료되면 계정이 잠긴 상태로 되돌아가고 관찰 창이 다시 시작됩니다. The badPwdCount value only resets automatically after a successful password sign-in.

로그 전용 모드 및 적용 모드

The AccountActivity table is populated both during Log-Only mode and Enforce mode. If Log-Only mode is bypassed, and ESL is moved directly into Enforce mode without the recommended waiting period, the familiar IPs of the users aren't known to AD FS. ESL then behaves like ADBadPasswordCounter, potentially blocking legitimate user traffic if the user account is under an active brute force attack. If the Log-Only mode is bypassed, and the user enters a locked out state where UnknownLockout equals True and attempts to sign in with a good password from an IP that isn't in the “familiar” IP list, then they aren't able to sign in. Log-Only mode is recommended for 3-7 days to avoid this scenario. If accounts are actively under attack, a minimum of 24 hours of Log-Only mode is necessary to prevent lockouts to legitimate users.

엑스트라넷 스마트 잠금 구성

다음 섹션에서는 AD FS 2016용 ESL을 사용하도록 설정하기 위한 필수 구성 요소 및 구성에 대해 설명합니다.

AD FS 2016의 필수 구성 요소

  1. 팜의 모든 노드에 업데이트를 설치합니다.

    먼저 모든 Windows Server 2016 AD FS 서버가 2018년 6월 Windows 업데이트 최신 상태이고 AD FS 2016 팜이 2016 팜 동작 수준에서 실행되는지 확인합니다.

  2. Verify Permissions.

    ESL을 사용하려면 모든 AD FS 서버에서 Windows 원격 관리를 사용하도록 설정해야 합니다.

  3. 아티팩트 데이터베이스 권한을 업데이트합니다.

    ESL을 사용하려면 AD FS 서비스 계정에 AD FS 아티팩트 데이터베이스에 새 테이블을 만들 수 있는 권한이 있어야 합니다. AD FS 관리자로 AD FS 서버에 로그인합니다. 그런 다음, 다음 명령을 실행하여 PowerShell 명령 프롬프트 창에서 이 권한을 부여합니다.

    PS C:\>$cred = Get-Credential
    PS C:\>Update-AdfsArtifactDatabasePermission -Credential $cred
    

    Note

    $cred 자리 표시자는 AD FS 관리자 권한이 있는 계정입니다. 이렇게 하면 표를 만들 수 있는 쓰기 권한이 제공되어야 합니다.

    AD FS 팜에서 SQL Server를 사용하고 이전에 제공된 자격 증명에 SQL Server에 대한 관리자 권한이 없기 때문에 이전 명령이 충분한 권한이 없어 실패할 수 있습니다. In this case, you can configure database permissions manually in SQL Server Database when you're connected to the AdfsArtifactStore database by running the following command:

    # when prompted with “Are you sure you want to perform this action?”, enter Y.
    
    [CmdletBinding(SupportsShouldProcess=$true,ConfirmImpact = 'High')]
    Param()
    
    $fileLocation = "$env:windir\ADFS\Microsoft.IdentityServer.Servicehost.exe.config"
    
    if (-not [System.IO.File]::Exists($fileLocation))
    {
    write-error "Unable to open AD FS configuration file."
    return
    }
    
    $doc = new-object Xml
    $doc.Load($fileLocation)
    $connString = $doc.configuration.'microsoft.identityServer.service'.policystore.connectionString
    $connString = $connString -replace "Initial Catalog=AdfsConfigurationV[0-9]*", "Initial Catalog=AdfsArtifactStore"
    
    if ($PSCmdlet.ShouldProcess($connString, "Executing SQL command sp_addrolemember 'db_owner', 'db_genevaservice' "))
    {
    $cli = new-object System.Data.SqlClient.SqlConnection
    $cli.ConnectionString = $connString
    $cli.Open()
    
    try
    {
    
    $cmd = new-object System.Data.SqlClient.SqlCommand
    $cmd.CommandText = "sp_addrolemember 'db_owner', 'db_genevaservice'"
    $cmd.Connection = $cli
    $rowsAffected = $cmd.ExecuteNonQuery()
    if ( -1 -eq $rowsAffected )
    {
    write-host "Success"
    }
    }
    finally
    {
    $cli.CLose()
    }
    }
    

AD FS 보안 감사 로깅이 사용하도록 설정되어 있는지 확인

이 기능은 보안 감사 로그를 사용하므로 AD FS 및 모든 AD FS 서버의 로컬 정책에서 감사를 사용하도록 설정해야 합니다.

Configuration Instructions

ESL uses the AD FS property ExtranetLockoutEnabled. 이 속성은 이전에 Server 2012 R2에서 엑스트라넷 소프트 잠금을 제어하는 데 사용되었습니다. ESL을 사용하도록 설정하고 현재 속성 구성을 보려면 Get-AdfsProperties을(를) 실행합니다.

Configuration Recommendations

ESL을 구성할 때 임계값을 설정하는 모범 사례를 따릅니다.

ExtranetObservationWindow (new-timespan -Minutes 30)

ExtranetLockoutThreshold: Half of AD Threshold Value

AD value: 20, ExtranetLockoutThreshold: 10

Active Directory 잠금은 ESL과 독립적으로 작동합니다. However, if Active Directory lockout is enabled, select ExtranetLockoutThreshold in AD FS and Account Lockout Threshold in AD.

ExtranetLockoutRequirePDC - $false

사용하도록 설정하면 엑스트라넷 잠금에 PDC(Primary Domain Controller)가 필요합니다. 사용하지 않도록 설정되고 false로 구성된 경우 PDC를 사용할 수 없는 경우 엑스트라넷 잠금은 다른 도메인 컨트롤러로 대체됩니다.

이 속성을 설정하려면 다음을 실행합니다.

Set-AdfsProperties -EnableExtranetLockout $true -ExtranetLockoutThreshold 15 -ExtranetObservationWindow (New-TimeSpan -Minutes 30) -ExtranetLockoutRequirePDC $false

로그 전용 모드 사용

In Log-Only mode, AD FS populates a user's familiar ___location information and writes security audit events but doesn't block any requests. This mode is used to validate that smart lockout is running and to enable AD FS to “learn” familiar locations for users before enabling Enforce mode. As AD FS learns, it stores sign-in activity per user (whether in Log-Only mode or Enforce mode). Set the lockout behavior to Log-Only by running the following cmdlet:

Set-AdfsProperties -ExtranetLockoutMode AdfsSmartlockoutLogOnly

Log-Only mode is intended to be a temporary state so that the system can learn sign-in behavior prior to introducing lockout enforcement with the smart lockout behavior. The recommended duration for Log-Only mode is 3-7 days. If accounts are actively under attack, Log-Only mode must run for a minimum of 24 hours.

On AD FS 2016, if 2012 R2 Extranet Soft Lockout behavior is enabled prior to enabling Extranet Smart Lockout, Log-Only mode disables the Extranet Soft Lockout behavior. AD FS Smart Lockout doesn't lock out users in Log-Only mode. 그러나 온-프레미스 AD는 AD 구성에 따라 사용자를 잠글 수 있습니다. AD 잠금 정책을 검토하여 온-프레미스 AD에서 사용자를 잠그는 방법을 알아봅니다.

On AD FS 2019, another advantage is to be able to enable Log-Only mode for smart lockout while continuing to enforce the previous soft lockout behavior by using the below PowerShell:

Set-AdfsProperties -ExtranetLockoutMode 3

새 모드가 적용되려면 다음을 사용하여 팜의 모든 노드에서 AD FS 서비스를 다시 시작합니다.

Restart-service adfssrv

Once the mode is configured, you can enable smart lockout by using the EnableExtranetLockout parameter:

Set-AdfsProperties -EnableExtranetLockout $true

강제 적용 모드를 활성화

After you're comfortable with the lockout threshold and observation window, ESL can be moved to Enforce mode by using the following PSH cmdlet:

Set-AdfsProperties -ExtranetLockoutMode AdfsSmartLockoutEnforce

새 모드가 적용되려면 다음 명령을 사용하여 팜의 모든 노드에서 AD FS 서비스를 다시 시작합니다.

Restart-service adfssrv

사용자 계정 활동 관리

AD FS는 계정 활동 데이터를 관리하는 세 개의 cmdlet을 제공합니다. 이러한 cmdlet은 기본 역할을 보유하는 팜의 노드에 자동으로 연결됩니다.

Note

JEA(Just Enough Administration)를 사용하여 AD FS commandlet을 위임하여 계정 잠금을 다시 설정할 수 있습니다. 예를 들어 ESL commandlet을 사용하도록 지원 센터 담당자에게 권한을 위임할 수 있습니다. 자세한 내용은 AD FS Powershell commandlet 액세스를 nonadmin Users에 위임을 참조하세요.

-Server 매개 변수를 전달하여 이 동작을 재지정할 수도 있습니다.

Get-ADFSAccountActivity -UserPrincipalName

이 cmdlet은 계정 활동 REST 엔드포인트를 사용하여 팜 주 노드에 자동으로 연결됩니다. 따라서 모든 데이터는 항상 일치해야 합니다. 다음을 사용하여 사용자 계정에 대한 현재 계정 활동을 읽습니다.

Get-ADFSAccountActivity user@contoso.com

Properties:

  • BadPwdCountFamiliar: Incremented when an authentication is unsuccessful from a known ___location.
  • BadPwdCountUnknown: Incremented when an authentication is unsuccessful from an unknown ___location.
  • LastFailedAuthFamiliar: If authentication was unsuccessful from a familiar ___location, LastFailedAuthFamiliar is set to time of unsuccessful authentication.
  • LastFailedAuthUnknown: If authentication was unsuccessful from an unknown ___location, LastFailedAuthUnknown is set to time of unsuccessful authentication.
  • FamiliarLockout: Boolean value that is True if the BadPwdCountFamiliar>ExtranetLockoutThreshold.
  • UnknownLockout: Boolean value that is True if the BadPwdCountUnknown>ExtranetLockoutThreshold.
  • FamiliarIPs: maximum of 20 IPs that are familiar to the user. IP가 20개 초과되면 목록에서 가장 오래된 IP가 제거됩니다.

Set-ADFSAccountActivity

Set-ADFSAccountActivity adds new familiar locations. 친숙한 IP 목록에는 최대 20개의 항목이 있습니다. 20개 항목을 초과하면 목록에서 가장 오래된 IP가 제거됩니다.

Set-ADFSAccountActivity user@contoso.com -AdditionalFamiliarIps “1.2.3.4”

Reset-ADFSAccountLockout

Resets the lockout counter for a user account for each Familiar ___location (badPwdCountFamiliar) or Unfamiliar Location counter (badPwdCountUnfamiliar). When you reset a counter, the FamiliarLockout or UnfamiliarLockout value updates, as the reset counter is less than the threshold.

Reset-ADFSAccountLockout user@contoso.com -Location Familiar

Reset-ADFSAccountLockout user@contoso.com -Location Unknown

AD FS 엑스트라넷 잠금에 대한 이벤트 로깅 & 사용자 활동 정보

다음 섹션에서는 이벤트 로깅, 사용자 계정 활동 및 잠금을 모니터링하는 방법을 설명합니다.

Connect Health

사용자 계정 활동을 모니터링하는 권장 방법은 Connect Health를 사용하는 것입니다. Connect Health는 위험한 IP 및 잘못된 암호 시도에 대해 다운로드 가능한 보고를 생성합니다. 위험한 IP 보고서의 각 항목에는 지정된 임계값을 초과하는 실패한 AD FS 로그인 활동에 대한 집계 정보가 표시됩니다. AD FS 로그인 작업이 실패할 때 사용자 지정 가능한 전자 메일 설정을 사용하여 관리자에게 경고하도록 전자 메일 알림을 설정할 수 있습니다. 자세한 내용 및 설정 지침은 Microsoft Entra Connect Health를 사용하여 AD FS 모니터링을 참조하세요.

AD FS 엑스트라넷 스마트 잠금 이벤트

Note

ESL 문제를 해결하려면 암호 스프레이 공격 및 계정 잠금 완화를 참조하세요.

For Extranet Smart Lockout events to be written, ESL must be enabled in Log-Only or Enforce mode, and AD FS security auditing must be enabled. AD FS는 다음과 같은 경우 보안 감사 로그에 엑스트라넷 잠금 이벤트를 씁니다.

  • 사용자가 잠겼습니다. 즉, 사용자가 실패한 로그인 시도에 대한 잠금 임계값에 도달합니다.
  • AD FS는 이미 잠금 상태인 사용자에 대한 로그인 시도를 받습니다.

While in Log-Only mode, you can check the security audit log for lockout events. 발견된 이벤트의 경우 Get-ADFSAccountActivity cmdlet을 사용하여 사용자 상태를 확인하여 친숙하거나 익숙하지 않은 IP 주소에서 잠금이 발생했는지 확인할 수 있습니다. Get-ADFSAccountActivity cmdlet을 사용하여 해당 사용자의 친숙한 IP 주소 목록을 다시 확인할 수도 있습니다.

Event ID Description
1203 이 이벤트는 잘못된 암호 시도마다 기록됩니다. As soon as the badPwdCount reaches the value specified in ExtranetLockoutThreshold, the account is locked out on AD FS for the duration specified in ExtranetObservationWindow.
Activity ID: %1
XML: %2
1210 이 이벤트는 사용자가 잠겼을 때마다 기록됩니다.
활동 ID: %1
XML: %2
557(AD FS 2019) 노드 %1에서 계정 저장소 Rest 서비스와 통신하는 동안 오류가 발생했습니다. WID 팜을 사용하는 경우 주 노드가 오프라인일 수 있습니다. SQL 팜을 사용하는 경우 AD FS는 사용자 저장소 기본 역할을 호스트할 새 노드를 자동으로 선택합니다.
562(AD FS 2019) 서버 %1의 계정 저장소 엔드포인트와 통신할 때 오류가 발생했습니다.
예외 메시지: %2
563(AD FS 2019) 엑스트라넷 잠금 상태를 계산하는 동안 오류가 발생했습니다. %1의 값으로 인해 이 사용자에 대한 인증 설정이 허용되고 토큰 발급이 계속됩니다. WID 팜을 사용하는 경우 주 노드가 오프라인일 수 있습니다. SQL 팜을 사용하는 경우 AD FS는 사용자 저장소 기본 역할을 호스트할 새 노드를 자동으로 선택합니다.
계정 저장소 서버 이름: %2
사용자 ID: %3
예외 메시지: %4
512 다음 사용자에 대한 계정이 잠겨 있습니다. 시스템 구성으로 인해 로그인 시도가 허용되고 있습니다.
활동 ID: %1
사용자: %2
클라이언트 IP: %3
잘못된 암호 수: %4
마지막 잘못된 암호 시도: %5
515 다음 사용자 계정이 잠긴 상태이고 올바른 암호가 제공되었습니다. 이 계정이 손상되었을 수 있습니다.
추가 데이터
활동 ID: %1
사용자: %2
클라이언트 IP: %3
516 다음 사용자 계정이 너무 많은 잘못된 암호 시도로 인해 잠겼습니다.
활동 ID: %1
사용자: %2
클라이언트 IP: %3
잘못된 암호 수: %4
마지막 잘못된 암호 시도: %5

ESL 질문과 대답

적용 모드에서 엑스트라넷 스마트 잠금을 사용하는 AD FS 팜에 악의적인 사용자 잠금이 표시될까요?

If AD FS Smart Lockout is set to Enforce mode, then you never see the legitimate user's account locked out by brute force or denial of service. 악의적인 계정 잠금으로 인해 사용자 로그인을 방지할 수 있는 유일한 방법은 잘못된 행위자가 사용자 암호를 가지고 있거나 해당 사용자의 알려진 정상(친숙한) IP 주소에서 요청을 보낼 수 있는 경우입니다.

ESL을 사용하도록 설정하고 잘못된 행위자가 사용자의 암호를 가지고 있으면 어떻게 되나요?

무차별 암호 대입 공격 시나리오의 일반적인 목표는 암호를 추측하고 성공적으로 로그인하는 것입니다. 사용자가 피싱되거나 암호가 추측되는 경우 로그인이 올바른 암호와 새 IP의 성공적인 조건을 충족하므로 ESL 기능이 액세스를 차단하지 않습니다. 그러면 잘못된 행위자 IP가 친숙한 것으로 표시됩니다. 이 시나리오에서 가장 좋은 완화 방법은 AD FS에서 사용자의 활동을 지우고 사용자에게 다단계 인증을 요구하는 것입니다. 추측 가능한 암호가 시스템에 들어오지 않도록 Microsoft Entra Password Protection을 설치해야 합니다.

사용자가 IP에서 성공적으로 로그인한 적이 없는 경우 잘못된 암호를 몇 번 시도하면 마지막으로 암호를 올바르게 입력하면 로그인할 수 있나요?

사용자가 잘못된 암호를 여러 개 제출하고(예: 잘못된 암호) 다음 시도에서 암호가 올바른 경우 사용자는 즉시 성공적으로 로그인합니다. This successful sign-in clears the bad password count and adds that IP to the FamiliarIPs list. 그러나 알 수 없는 위치에서 실패한 로그인의 임계값을 초과하면 잠금 상태가 됩니다. 그런 다음 관찰 창을 지나서 기다렸다가 유효한 암호로 로그인해야 합니다. 계정을 재설정하려면 관리자의 개입이 필요할 수 있습니다.

ESL도 인트라넷에서 작동하나요?

클라이언트가 웹 애플리케이션 프록시 서버를 통하지 않고 AD FS 서버에 직접 연결하는 경우 ESL 동작이 적용되지 않습니다.

클라이언트 IP 필드에 Microsoft IP 주소가 표시됩니다. ESL이 EXO를 통해 프록시된 무차별 암호 대입 공격을 차단하나요?  

ESL은 Exchange Online 또는 기타 레거시 인증 무차별 암호 대입 공격 시나리오를 방지하기 위해 잘 작동합니다. 레거시 인증의 "활동 ID"는 000000000-0000-0000-0000-00000000000000입니다. 이러한 공격에서 악의적인 행위자는 Exchange Online 기본 인증(레거시 인증이라고도 함)을 활용하여 클라이언트 IP 주소가 Microsoft 주소로 표시되도록 합니다. 클라우드 프록시의 Exchange Online 서버는 Outlook 클라이언트를 대신하여 인증 확인을 수행합니다. 이러한 시나리오에서 악의적인 제출자의 IP 주소는 x-ms-forwarded-client-ip에 있고 Microsoft Exchange Online 서버 IP는 x-ms-client-ip 값에 있습니다. 엑스트라넷 스마트 잠금은 네트워크 IP, 전달된 IP, x-forwarded-client-IP 및 x-ms-client-ip 값을 확인합니다. 요청이 성공하면 모든 IP가 친숙한 목록에 추가됩니다. 요청이 들어오고 제공된 IP가 친숙한 목록에 없는 경우 요청은 익숙하지 않은 것으로 표시됩니다. 익숙한 사용자는 익숙하지 않은 위치의 요청이 차단되는 동안 성공적으로 로그인할 수 있습니다.

ESL을 사용하도록 설정하기 전에 ADFSArtifactStore의 크기를 예측할 수 있나요?

With ESL enabled, AD FS tracks the account activity and known locations for users in the ADFSArtifactStore database. 이 데이터베이스는 추적된 사용자 및 알려진 위치의 수를 기준으로 크기를 조정합니다. When planning to enable ESL, you can estimate the size for the ADFSArtifactStore database to grow at a rate of up to 1 GB per 100,000 users. AD FS 팜에서 WID(Windows Internal Database)를 사용하는 경우 데이터베이스 파일의 기본 위치는 C:\Windows\WID\Data입니다. 이 드라이브를 채우지 않도록 방지하려면 ESL을 사용하도록 설정하기 전에 최소 5GB의 사용 가능한 스토리지가 있어야 합니다. 디스크 스토리지 외에도, ESL을 사용하도록 설정한 후에 총 프로세스 메모리를 500,000명 이하의 사용자 집단에 대해 최대 1GB의 추가 RAM까지 늘리도록 계획합니다.

See also