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

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

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에서 사용할 수 있는 엑스트라넷 잠금 기능으로 계속 보호할 수 있습니다.

구성 정보

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

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

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

Diagram showing the sign-in process between primary nodes, secondary nodes, and the client.

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

용어

  • FamiliarLocation: 인증 요청 중에 ESL은 제공된 모든 IP(인터넷 프로토콜)를 검사. 이러한 IP는 네트워크 IP, 전달된 IP 및 선택적 x-forwarded-for IP의 조합입니다. 요청이 성공하면 모든 IP가 계정 활동 테이블에 "친숙한 IP"로 추가됩니다. 요청에 "친숙한 IP"에 있는 모든 IP가 있는 경우 요청은 "친숙한" 위치로 처리됩니다.
  • UnknownLocation: 들어오는 요청에 기존 FamiliarLocation 목록에 IP가 하나 이상 없는 경우 요청은 "알 수 없는" 위치로 처리됩니다. 이 작업은 Exchange Online 주소가 성공한 요청과 실패한 요청을 모두 처리하는 Exchange Online 레거시 인증과 같은 프록시 시나리오를 처리합니다.
  • badPwdCount: 잘못된 암호가 제출되고 인증에 실패한 횟수를 나타내는 값입니다. 각 사용자에 대해 친숙한 위치와 알 수 없는 위치에 대해 별도의 카운터가 유지됩니다.
  • UnknownLockout: 사용자가 알 수 없는 위치에서 액세스하지 못하도록 잠긴 경우 사용자당 부울 값입니다. 이 값은 badPwdCountUnfamiliarExtranetLockoutThreshold 값을 기반으로 계산됩니다.
  • ExtranetLockoutThreshold: 이 값은 잘못된 암호 시도의 최대 수를 결정합니다. 임계값에 도달하면 AD FS는 관찰 창이 통과될 때까지 엑스트라넷의 요청을 거부합니다.
  • ExtranetObservationWindow: 이 값은 알 수 없는 위치의 사용자 이름 및 암호 요청이 잠긴 기간을 결정합니다. 창이 통과되면 AD FS가 알 수 없는 위치에서 사용자 이름 및 암호 인증을 다시 수행하기 시작합니다.
  • ExtranetLockoutRequirePDC: 사용하도록 설정하면 엑스트라넷 잠금을 사용하려면 PDC(기본 작업기본 컨트롤러)가 필요합니다. 사용하지 않도록 설정하면 PDC를 사용할 수 없는 경우 엑스트라넷 잠금이 다른 do기본 컨트롤러로 대체됩니다.
  • ExtranetLockoutMode: ESL의 로그 전용적용 모드를 제어합니다.
    • ADFSSmartLockoutLogOnly: ESL을 사용할 수 있습니다. AD FS는 관리자 및 감사 이벤트를 작성하지만 인증 요청을 거부하지는 않습니다. 이 모드는 ADFSSmartLockoutEnforce를 사용하도록 설정하기 전에 FamiliarLocation을 채울 수 있도록 하기 위한 것입니다.
    • ADFSSmartLockoutEnforce: 임계값에 도달할 때 익숙하지 않은 인증 요청을 차단하기 위한 모든 지원입니다.

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

트랜잭션의 해부학

  • 사전 인증 검사: 인증 요청 중에 ESL은 제공된 모든 IP를 검사. 이러한 IP는 네트워크 IP, 전달된 IP 및 선택적 x-forwarded-for IP의 조합입니다. 감사 로그에서 이러한 IP는 x-ms-forwarded-client-ip, x-forwarded-for, x-ms-proxy-client-ip 순서로 필드에 나열 <IpAddress> 됩니다.

    이러한 IP에 따라 AD FS는 요청이 익숙한 위치에서 온 것인지 확인한 다음 각 badPwdCount가 설정된 임계값 제한보다 작거나 마지막으로 실패한 시도가 관찰 기간 기간보다 오래 수행되었는지 여부를 검사. 이러한 조건 중 하나가 true이면 AD FS에서 이 트랜잭션을 통해 추가 처리 및 자격 증명 유효성 검사를 수행할 수 있습니다. 두 조건이 모두 false이면 관찰 창이 지나갈 때까지 계정이 이미 잠긴 상태입니다. 관찰 창이 지나면 사용자는 인증을 한 번 시도할 수 있습니다. Windows Server 2019에서 AD FS는 IP 주소가 익숙한 위치와 일치하는지 에 따라 적절한 임계값 제한에 대해 검사.

  • 로그인 성공: 로그인에 성공하면 요청의 IP가 사용자의 친숙한 위치 IP 목록에 추가됩니다.

  • 로그인 실패: 로그인에 실패 하면 badPwdCount 가 증가합니다. 공격자가 임계값이 허용하는 것보다 더 많은 잘못된 암호를 시스템에 보내는 경우 사용자는 잠금 상태로 전환됩니다. (badPwdCount > ExtranetLockoutThreshold)

Diagram showing the process of successful and unsuccessful authentication.

계정이 잠기면 UnknownLockout 값이 True와 같습니다. 이 잠금은 사용자의 badPwdCount가 임계값을 초과했음을 의미합니다. 예를 들어 누군가가 시스템에서 허용하는 것보다 더 많은 암호를 시도했습니다. 이 상태에서는 유효한 사용자가 로그인할 수 있는 두 가지 방법이 있습니다.

  • ObservationWindow 시간이 경과될 때까지 기다립니다.
  • 잠금 상태를 다시 설정하려면 Reset-ADFSAccountLockout을 사용하여 badPwdCount를 다시 0으로 다시 설정합니다.

재설정이 수행되지 않으면 계정에 각 관찰 창에 대해 AD에 대한 단일 암호 시도가 허용됩니다. 이 시도가 완료되면 계정이 잠긴 상태로 되돌아가고 관찰 창이 다시 시작됩니다. badPwdCount 값은 암호 로그인이 성공한 후에만 자동으로 다시 설정됩니다.

로그 전용 모드 및 적용 모드

AccountActivity 테이블은 로그 전용 모드 및 적용 모드 중에 모두 채워집니다. 로그 전용 모드가 무시되고 ESL이 권장 대기 기간 없이 강제 적용 모드로 직접 이동되는 경우 사용자의 친숙한 IP는 AD FS에 알려지지 않습니다. 그런 다음, ESL은 ADBadPasswordCounter처럼 동작하여 사용자 계정이 활성 무차별 암호 대입 공격을 받는 경우 합법적인 사용자 트래픽을 차단할 수 있습니다. 로그 전용 모드가 무시되고 사용자가 UnknownLockoutTrue인 잠긴 상태로 전환되고 "친숙한" IP 목록에 없는 IP에서 좋은 암호로 로그인하려고 하면 로그인할 수 없습니다. 이 시나리오를 방지하려면 3~7일 동안 로그 전용 모드를 사용하는 것이 좋습니다. 계정이 적극적으로 공격을 받고 있는 경우 합법적인 사용자에 대한 잠금을 방지하기 위해 최소 24시간의 로그 전용 모드가 필요합니다.

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

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

AD FS 2016의 필수 구성 요소

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

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

  2. 사용 권한을 확인합니다.

    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
    

    참고 항목

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

    AD FS 팜에서 SQL Server를 사용하고 이전에 제공된 자격 증명에 SQL Server에 대한 관리자 권한이 없기 때문에 이전 명령이 충분한 권한이 없어 실패할 수 있습니다. 이 경우 다음 명령을 실행하여 AdfsArtifactStore 데이터베이스에 연결된 경우 SQL Server Database에서 데이터베이스 권한을 수동으로 구성할 수 있습니다.

    # 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 서버의 로컬 정책에서 감사를 사용하도록 설정해야 합니다.

구성 지침

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

구성 권장 사항

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

ExtranetObservationWindow (new-timespan -Minutes 30)

ExtranetLockoutThreshold: Half of AD Threshold Value

AD value: 20, ExtranetLockoutThreshold: 10

Active Directory 잠금은 ESL과 독립적으로 작동합니다. 그러나 Active Directory 잠금을 사용하는 경우 AD FS에서 ExtranetLockoutThreshold를 선택하고 AD의 계정 잠금 임계값을 선택합니다.

ExtranetLockoutRequirePDC - $false

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

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

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

로그 전용 모드 사용

로그 전용 모드에서 AD FS는 사용자의 친숙한 위치 정보를 채우고 보안 감사 이벤트를 작성하지만 요청을 차단하지는 않습니다. 이 모드는 스마트 잠금이 실행 중인지 확인하고 AD FS가 적용 모드를 사용하도록 설정하기 전에 사용자에게 친숙한 위치를 "학습"할 수 있도록 하는 데 사용됩니다. AD FS는 학습하면서 사용자당 로그인 작업(로그 전용 모드 또는 적용 모드)을 저장합니다. 다음 cmdlet을 실행하여 잠금 동작을 로그 전용 으로 설정합니다.

Set-AdfsProperties -ExtranetLockoutMode AdfsSmartlockoutLogOnly

로그 전용 모드는 시스템이 스마트 잠금 동작을 사용하여 잠금 적용을 도입하기 전에 로그인 동작을 학습할 수 있도록 임시 상태로 사용됩니다. 로그 전용 모드에 권장되는 기간은 3-7일입니다. 계정이 공격을 받고 있는 경우 로그 전용 모드는 최소 24시간 동안 실행되어야 합니다.

AD FS 2016에서 엑스트라넷 스마트 잠금을 사용하도록 설정하기 전에 2012 R2 엑스트라넷 소프트 잠금 동작을 사용하도록 설정하면 로그 전용 모드에서 엑스트라넷 소프트 잠금 동작을 사용하지 않도록 설정합니다. AD FS 스마트 잠금은 로그 전용 모드에서 사용자를 잠그지 않습니다. 그러나 온-프레미스 AD는 AD 구성에 따라 사용자를 잠글 수 있습니다. AD 잠금 정책을 검토하여 온-프레미스 AD에서 사용자를 잠그는 방법을 알아봅니다.

AD FS 2019의 또 다른 장점은 아래 PowerShell을 사용하여 이전 소프트 잠금 동작을 계속 적용하면서 스마트 잠금에 로그 전용 모드를 사용하도록 설정할 수 있다는 것입니다.

Set-AdfsProperties -ExtranetLockoutMode 3

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

Restart-service adfssrv

모드가 구성되면 EnableExtranetLockout 매개 변수를 사용하여 스마트 잠금을 사용하도록 설정할 수 있습니다.

Set-AdfsProperties -EnableExtranetLockout $true

적용 모드 사용

잠금 임계값 및 관찰 창에 익숙해지면 다음 PSH cmdlet을 사용하여 ESL을 적용 모드로 이동할 수 있습니다.

Set-AdfsProperties -ExtranetLockoutMode AdfsSmartLockoutEnforce

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

Restart-service adfssrv

사용자 계정 활동 관리

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

참고 항목

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

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

Get-ADFSAccountActivity -UserPrincipalName

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

Get-ADFSAccountActivity user@contoso.com

속성:

  • BadPwdCountFamiliar: 알려진 위치에서 인증에 실패하면 증가합니다.
  • BadPwdCountUnknown: 알 수 없는 위치에서 인증이 실패하면 증가합니다.
  • LastFailedAuthFamiliar: 익숙한 위치에서 인증에 실패한 경우 LastFailedAuthFamiliar 는 실패한 인증 시간으로 설정됩니다.
  • LastFailedAuthUnknown: 알 수 없는 위치에서 인증에 실패한 경우 LastFailedAuthUnknown 은 실패한 인증 시간으로 설정됩니다.
  • FamiliarLockout: BadPwdCountFamiliar>ExtranetLockoutThreshold인 경우 True인 부울 값입니다.
  • UnknownLockout: BadPwdCountUnknown>ExtranetLockoutThreshold인 경우 True인 부울 값입니다.
  • FamiliarIPs: 사용자에게 친숙한 최대 20개 IP입니다. IP가 20개 초과되면 목록에서 가장 오래된 IP가 제거됩니다.

Set-ADFSAccountActivity

Set-ADFSAccountActivity 는 익숙한 새 위치를 추가합니다. 친숙한 IP 목록에는 최대 20개의 항목이 있습니다. 20개 항목을 초과하면 목록에서 가장 오래된 IP가 제거됩니다.

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

Reset-ADFSAccountLockout

익숙한 각 위치(badPwdCountFamiliar) 또는 익숙하지 않은 위치 카운터(badPwdCountUnfamiliar)에 대한 사용자 계정에 대한 잠금 카운터를 다시 설정합니다. 카운터를 다시 설정하면 다시 설정 카운터가 임계값보다 작으므로 FamiliarLockout 또는 UnfamiliarLockout 값이 업데이트됩니다.

Reset-ADFSAccountLockout user@contoso.com -Location Familiar

Reset-ADFSAccountLockout user@contoso.com -Location Unknown

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

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

Connect Health

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

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

참고 항목

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

엑스트라넷 스마트 잠금 이벤트를 작성하려면 로그 전용 또는 적용 모드에서 ESL을 사용하도록 설정해야 하며 AD FS 보안 감사를 사용하도록 설정해야 합니다. AD FS는 다음과 같은 경우 보안 감사 로그에 엑스트라넷 잠금 이벤트를 씁니다.

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

로그 전용 모드에서는 잠금 이벤트에 대한 보안 감사 로그를 검사 수 있습니다. 발견된 이벤트의 경우 cmdlet을 사용하여 Get-ADFSAccountActivity 사용자 상태를 검사 통해 친숙하거나 익숙하지 않은 IP 주소에서 잠금이 발생했는지 확인할 수 있습니다. cmdlet을 Get-ADFSAccountActivity 사용하여 해당 사용자의 친숙한 IP 주소 목록을 두 번 검사 수도 있습니다.

이벤트 ID 설명
1203 이 이벤트는 잘못된 암호 시도마다 기록됩니다. badPwdCount가 ExtranetLockoutThreshold지정된 값에 도달하면 계정이 ExtranetObservationWindow에 지정된 기간 동안 AD FS에서 잠깁니다.
활동 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 팜에 악의적인 사용자 잠금이 표시될까요?

AD FS 스마트 잠금이 적용 모드로 설정된 경우 무차별 암호 대입 또는 서비스 거부로 잠긴 합법적인 사용자의 계정이 표시되지 않습니다. 악의적인 계정 잠금으로 인해 사용자 로그인을 방지할 수 있는 유일한 방법은 잘못된 행위자가 사용자 암호를 가지고 있거나 해당 사용자의 알려진 정상(친숙한) IP 주소에서 요청을 보낼 수 있는 경우입니다.

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

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

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

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

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의 크기를 예측할 수 있나요?

ESL을 사용하도록 설정하면 AD FS는 ADFSArtifactStore 데이터베이스의 사용자에 대한 계정 활동 및 알려진 위치를 추적합니다. 이 데이터베이스는 추적된 사용자 및 알려진 위치의 수를 기준으로 크기를 조정합니다. ESL을 사용하도록 계획할 때 ADFSArtifactStore 데이터베이스의 크기를 사용자 100,000명당 최대 1GB의 속도로 늘릴 것으로 예상할 수 있습니다. AD FS 팜에서 WID(Windows 내부 데이터베이스)를 사용하는 경우 데이터베이스 파일의 기본 위치는 C:\Windows\WID\Data입니다. 이 드라이브를 채우지 않도록 하려면 ESL을 사용하도록 설정하기 전에 최소 5GB의 무료 스토리지가 있는지 확인합니다. 디스크 스토리지 외에도 500,000명 이하의 사용자 채우기에 대해 ESL을 최대 1GB RAM으로 사용하도록 설정한 후 총 프로세스 메모리가 증가할 계획입니다.

참고 항목