1,010개 이상의 그룹의 구성원인 사용자 계정에 대한 로깅이 Windows Server 기반 컴퓨터에서 실패할 수 있습니다.

이 문서에서는 1,010개 이상의 그룹의 구성원인 사용자 계정에 대한 로깅이 실패하는 문제를 해결합니다.

적용 대상: Windows Server 2008 R2 서비스 팩 1
원래 KB 번호: 328889

증상

사용자가 로컬 컴퓨터 계정 또는 도메인 사용자 계정을 사용하여 컴퓨터에 로그온하려고 하면 로그온 요청이 실패할 수 있습니다. 다음 오류 메시지가 표시됩니다.

로그온 메시지: 다음 오류로 인해 시스템에서 로그온할 수 없습니다. 로그온을 시도하는 동안 사용자의 보안 컨텍스트가 너무 많은 보안 ID를 누적했습니다. 다시 시도하거나 시스템 관리자에게 문의하세요.

이 문제는 로그온 사용자가 약 1,010개 이상의 보안 그룹의 명시적 또는 전이적 멤버일 때 발생합니다.

애플리케이션 및 보안 이벤트 로그 ID 4625는 다음 오류 코드를 표시할 수 있습니다.

0xc000015a

오류가 STATUS_TOO_MANY_CONTEXT_IDS.

원인

사용자가 컴퓨터에 로그온하면 로컬 보안 기관(LSA, 로컬 보안 기관 하위 시스템의 일부)이 액세스 토큰을 생성합니다. 토큰은 사용자의 보안 컨텍스트를 나타냅니다. 액세스 토큰은 사용자가 구성원인 모든 그룹에 대해 고유한 SID(보안 식별자)로 구성됩니다. 이러한 SID에는 사용자 및 그룹 계정의 SIDHistory의 전이적 그룹 및 SID 값이 포함됩니다.

액세스 토큰에 있는 사용자 그룹 멤버 자격의 SID를 포함하는 배열에는 1,024개의 SID를 포함할 수 있습니다. LSA는 토큰에서 SID를 삭제할 수 없습니다. 따라서 더 많은 SID가 있는 경우 LSA가 액세스 토큰을 만들지 못하고 사용자가 로그온할 수 없습니다.

SID 목록이 빌드되면 LSA는 사용자의 그룹 멤버 자격에 대한 SID 외에 잘 알려진 여러 개의 일반 SID도 삽입합니다(전이적으로 평가됨). 따라서 사용자가 약 1,010개 이상의 사용자 지정 보안 그룹의 구성원인 경우 총 SID 수는 1,024 SID 제한을 초과할 수 있습니다.

중요

  • 관리자 계정과 비관리자 계정 모두에 대한 토큰에는 제한이 적용됩니다.
  • 사용자 지정 SID의 정확한 수는 토큰을 만드는 도메인 컨트롤러 및 컴퓨터의 로그온 유형(예: 대화형, 서비스, 네트워크) 및 운영 체제 버전에 따라 달라집니다.
  • 인증 프로토콜로 Kerberos 또는 NTLM을 사용하는 것은 액세스 토큰 제한과 관련이 없습니다.
  • Kerberos 클라이언트 설정 MaxTokenSize사용자가 여러 그룹에 속하는 경우 Kerberos 인증 문제에서 설명합니다. Kerberos 컨텍스트의 토큰은 Windows Kerberos 호스트에서 받은 티켓의 버퍼를 나타냅니다. 티켓의 크기, SID 유형 및 SID 압축이 사용되는지 여부에 따라 버퍼는 액세스 토큰에 맞는 것보다 더 적거나 더 많은 SID를 보유할 수 있습니다.

사용자 지정 SID 목록에는 다음이 포함됩니다.

  • 사용자/컴퓨터의 기본 SID 및 계정이 멤버인 보안 그룹입니다.
  • 로그온 scope 그룹의 SIDHistory 특성에 있는 SID입니다.

SIDHistory 특성은 여러 값을 포함할 수 있으므로 계정이 여러 번 마이그레이션되는 경우 1,024개의 SID 제한에 빠르게 도달할 수 있습니다. 액세스 토큰의 SID 수는 다음과 같은 상황에서 사용자가 구성원인 총 그룹 수보다 작습니다.

  • 사용자는 SIDHistory 및 SID가 필터링되는 신뢰할 수 있는 도메인 출신입니다.
  • 사용자는 SID가 격리되는 트러스트의 신뢰할 수 있는 도메인 출신입니다. 그런 다음 사용자와 동일한 도메인의 SID만 포함됩니다.
  • 리소스 도메인의 도메인 로컬 그룹 SID만 포함됩니다.
  • 리소스 서버의 서버 로컬 그룹 SID만 포함됩니다.

이러한 차이로 인해 사용자가 한 도메인의 컴퓨터에 로그온할 수 있지만 다른 도메인의 컴퓨터에는 로그온할 수 없습니다. 또한 사용자는 도메인의 한 서버에 로그온할 수 있지만 동일한 도메인의 다른 서버에는 로그온할 수 없습니다.

NTDSUTIL을 사용하는 영향을 받는 사용자의 도메인 그룹 멤버 자격에 대해 알아볼 수 있습니다. 포리스트 경계를 넘어 작동하는 그룹 멤버 자격 평가 도구가 있습니다. 이 도구는 다음 사용자에게도 작동합니다.

  • 1,024개의 SID 제한을 훨씬 초과하는 사용자
  • Kerberos가 버퍼의 65,535바이트에서도 티켓 검색에 실패할 정도로 많은 그룹에 속한 사용자

다음 단계를 따릅니다.

  1. AD 관리 도구(도메인 컨트롤러 또는 RSAT가 있는 컴퓨터)가 있는 컴퓨터에서 명령 프롬프트를 엽니다.

  2. 도구로 gro mem eva 전환한 다음 다음 스크린샷으로 사용 가능한 명령을 가져옵니다.

    gro mem eva 명령을 실행한 후의 출력 스크린샷

  3. 평가에 필요한 DC에 연결합니다.

    • 계정 DC %s - 사용자 도메인의 DC 설정
    • 전역 카탈로그 %s - 사용자 포리스트의 GC 설정
    • 리소스 도메인의 리소스 DC %s - DC 설정
    • 필요에 따라 자격 증명을 설정하거나 결과가 올바르지 않거나 컬렉션이 실패할 때 로그를 세부 정보 표시합니다.
  4. 다음과 같이 평가를 실행합니다(예: 의 관리).contoso.com

    Run contoso.com Admin

  5. 실행은 1-2단계의 사용자 세부 정보, 3단계의 리소스 도메인 그룹 세부 정보를 수집한 다음 4단계와 5단계에서 보고서를 컴파일합니다.

  6. 결과는 다음 스크린샷과 같이 현재 디렉터리의 TSV 파일에 저장됩니다.

    스크린샷은 결과가 현재 디렉터리의 TSV 파일에 저장됨을 보여줍니다.

TSV 파일을 읽으려면 다음 가이드를 참조하세요.

  • SID 유형: 그룹/사용자 또는 SIDHistory의 기본 SID인지 알려줍니다.
  • SID 기록 수: 이 계정이 도입하는 SIDHistory의 SID 수는 몇 개인가요?
  • 한 수준 MemberOf Count: 이 항목이 컬렉션에 단일 수준(항목의 멤버)을 추가하는 SID 수는 몇 개입니까?
  • Total MemberOf Count: 이 항목이 컬렉션에 총 몇 개의 SID를 추가하나요?
  • 그룹 소유자: 위임된 그룹 관리가 있는 환경의 경우 너무 많은 그룹을 사용하여 사용자 로그온을 공격하는 방법에 대한 힌트를 얻을 수 있습니다.
  • 그룹 유형: Sid의 종류입니다. WellKnown, 사용자 SID, 전역 및 범용 보안 그룹은 이 사용자에 대해 만들어진 모든 토큰에 있습니다. 도메인 로컬 보안 그룹은 이 리소스 도메인에만 있습니다. 특정 리소스 도메인에서만 로그온 문제가 있는 경우 중요할 수 있습니다.
  • 멤버 WhenChanged(UTC): 그룹 멤버 자격에 대한 최신 변경 내용입니다. 이는 사용자가 처음 로그온 문제를 보고한 시간과 상관 관계를 지정하는 데 도움이 될 수 있습니다.

변경 대상 그룹을 찾는 힌트:

  • SIDHistory가 있는 그룹은 SID 수를 줄이는 데 도움이 되는 좋은 활용을 제공합니다.

  • 중첩을 통해 다른 많은 그룹을 도입하는 그룹은 SID 수를 줄이는 데 큰 활용이 있습니다.

  • 그룹 이름에서 단서를 찾아 그룹이 더 이상 사용되지 않을 수 있는지 여부를 확인합니다. 예를 들어 소프트웨어 배포 솔루션에 애플리케이션당 그룹이 있는 고객이 있었습니다. Office2000 또는 access2000이 포함된 그룹을 찾았습니다.

  • 그룹 목록의 보고서를 서비스 및 애플리케이션 관리자에게 전달합니다. 이 사업부 또는 부서의 이 사용자에 대해서만 더 이상 필요하지 않은 그룹을 식별합니다.

제한 사항:

  • 이 도구에는 이 문서에서 아래에 나열된 특수/WellKnown SID의 종류가 포함되어 있지 않습니다. 따라서 사용자가 성공적으로 로그온하려면 먼저 보고서에서 1,024에서 여러 SID를 지워야 합니다.

  • 이 도구는 서버-로컬 그룹도 다루지 않습니다. 리소스 도메인의 특정 서버에만 문제가 있는 경우 사용자 또는 해당 그룹 중 일부는 서버 로컬 그룹의 구성원일 수 있습니다.

서버-로컬 그룹 및 해당 멤버 목록을 얻으려면 다음을 수행합니다.

참고

관리자 권한 명령 프롬프트에서 관리자 권한으로 실행합니다.

Net localgroup | findstr * > %computername%-grouplist.txt

도메인에서 멤버 목록을 얻으려면 다음을 수행합니다.

Md server-groups

For /f "delims=*" %d in (%computername%-grouplist.txt) do Net localgroup %d | findstr \ > server-groups\%d-domain-memberlist.txt**

보고된 그룹을 NTDSUTIL의 사용자 보고서와 혼합하고 일치합니다.

해결 방법

이 문제를 해결하려면 상황에 맞게 다음 방법 중 하나를 사용합니다.

방법 1

이 해결 방법은 다음과 같은 상황에 적용됩니다.

  • 로그온 오류가 발생한 사용자는 관리자가 아닙니다.
  • 관리자는 컴퓨터 또는 도메인에 성공적으로 로그온할 수 있습니다.

이 해결 방법은 사용자의 그룹 멤버 자격을 변경할 수 있는 권한이 있는 관리자가 수행해야 합니다. 관리자는 사용자의 그룹 멤버 자격을 변경하여 사용자가 더 이상 약 1,010개 이상의 보안 그룹의 구성원이 아닌지 확인해야 합니다. 전이적 그룹 멤버 자격 및 로컬 그룹 멤버 자격을 고려합니다.

사용자 토큰의 SID 수를 줄이는 옵션은 다음과 같습니다. NTDSUTIL의 데이터 수집은 변경 또는 제거를 위해 scope 있는 그룹을 확인하는 데 도움이 됩니다.

  • 충분한 수의 보안 그룹에서 사용자를 제거합니다.

  • 사용되지 않는 보안 그룹을 메일 그룹으로 변환합니다. 메일 그룹은 액세스 토큰 제한에 포함되지 않습니다. 변환된 그룹이 필요한 경우 메일 그룹을 보안 그룹으로 다시 변환할 수 있습니다.

  • 보안 주체가 리소스 액세스를 위해 SID 기록을 사용하는지 여부를 확인합니다. 그렇지 않은 경우 이러한 계정에서 SIDHistory 특성을 제거합니다. 신뢰할 수 있는 복원을 통해 특성 값을 검색할 수 있습니다.

참고

사용자가 구성원이 될 수 있는 최대 보안 그룹 수는 1,024개이지만 모범 사례로 1,010개 미만으로 제한합니다. 이 숫자는 LSA에 의해 삽입되는 일반 SID에 대한 공간을 제공하기 때문에 토큰 생성이 항상 성공하도록 합니다.

방법 2

해결 방법은 관리자 계정이 컴퓨터에 로그온할 수 없는 상황에 적용됩니다.

너무 많은 그룹 멤버 자격으로 인해 로그온이 실패하는 사용자가 Administrators 그룹의 구성원인 경우 관리자 계정에 대한 자격 증명이 있는 관리자(즉, 잘 알려진 상대 식별자 [RID]가 500인 계정)는 안전 모드 시작 옵션을 선택하거나 네트워킹 시작 시 안전 모드 옵션을 선택하여 도메인 컨트롤러를 다시 시작해야 합니다. 안전 모드에서 관리자는 관리자 계정 자격 증명을 사용하여 도메인 컨트롤러에 로그온해야 합니다.

Microsoft에서 토큰 생성 알고리즘을 변경했습니다. LSA는 관리자 계정에 대한 액세스 토큰을 만들어 관리자 계정이 구성원인 전이적 그룹 또는 과도 그룹 수에 관계없이 관리자가 로그온할 수 있도록 할 수 있습니다. 이러한 안전 모드 시작 옵션 중 하나를 사용하는 경우 관리자 계정에 대해 만들어진 액세스 토큰에는 관리자 계정이 속한 모든 기본 제공 및 모든 Domain Global 그룹의 SID가 포함됩니다.

이러한 그룹에는 일반적으로 다음이 포함됩니다.

  • 모두(S-1-1-0)
  • BUILTIN\Users(S-1-5-32-545)
  • BUILTIN\Administrators(S-1-5-32-544)
  • NT AUTHORITY\INTERACTIVE(S-1-5-4)
  • NT AUTHORITY\Authenticated Users(S-1-5-11)
  • LOCAL(S-1-2-0)
  • Domain\Domain Users(S-1-5-21-xxxxxxxx-yyyyyyyy-zzzzzzzz-513)
  • Domain\Domain Admins(S-1-5-21-xxxxxxxx-yyyyyyy-zzzzzzzz-512)
  • 모든 사용자가 이 그룹의 구성원인 경우 BUILTIN\Pre-Windows 2000 호환 액세스(S-1-5-32-554)
  • 도메인 컨트롤러가 Windows Server 2003을 실행하는 경우 NT AUTHORITY\This Organization(S-1-5-15)

참고

안전 모드 시작 옵션을 사용하는 경우 Active Directory 사용자 및 컴퓨터 스냅인 UI(사용자 인터페이스)를 사용할 수 없습니다. Windows Server 2003에서 관리자는 네트워킹 시작 시 안전 모드 옵션을 선택하여 로그온할 수도 있습니다. 이 모드에서는 Active Directory 사용자 및 컴퓨터 스냅인 UI를 사용할 수 있습니다.

관리자가 안전 모드 시작 옵션 중 하나를 선택하고 관리자 계정의 자격 증명을 사용하여 로그온한 후 관리자는 로그온 서비스 거부를 발생시킨 보안 그룹의 멤버 자격을 식별하고 수정해야 합니다.

이 변경이 수행되면 사용자는 도메인의 복제 대기 시간과 동일한 기간이 경과한 후 성공적으로 로그온할 수 있어야 합니다.

방법 3

이 옵션은 특정 서버 집합에서 사용되는 리소스에 대한 액세스 권한을 부여하기 위해 만든 그룹이 많고 다른 많은 서버와 관련이 없는 경우 가장 큰 매력이 있습니다. 사용자의 액세스 토큰에는 항상 사용자, 전역 및 유니버설 그룹의 SID가 포함됩니다. 그러나 리소스 서버가 있는 도메인의 Domain-Local 그룹의 SID만 포함합니다. 따라서 사용자가 속한 600개 그룹에서 400개 그룹이 두 서버 그룹의 파일 서버 리소스에 대한 액세스 권한을 부여하는 데 도움을 주고 있으며 다음 아이디어가 가능할 수 있습니다.

  • Domain-Local 그룹 수에 따라 서버를 여러 그룹으로 분할합니다.
  • 모든 그룹 및 서버가 있는 하나의 리소스 도메인 대신 필요한 서버를 포함하는 정의된 그룹만 있는 여러 도메인이 있습니다.
  • 도메인 로컬 그룹이 거의 필요하지 않은 서버에 대해 별도의 도메인이 있습니다. 한 가지 예는 Exchange 서버가 될 수 있습니다. Exchange는 범용 그룹에 대해 강력한 기본 설정을 하므로 입니다.

추가 정보

계정의 일반 SID는 다음과 같은 경우가 많습니다.

  • 모두(S-1-1-0)
  • BUILTIN\Users(S-1-5-32-545)
  • BUILTIN\Administrators(S-1-5-32-544)
  • NT AUTHORITY\Authenticated Users(S-1-5-11)
  • 로그온 세션 시드(S-1-5-5-X-Y)
  • BUILTIN\Pre-Windows 2000 Compatible Access(S-1-5-32-554) 사용자가 이 그룹의 구성원인 경우(중첩)

중요

도구 Whoami는 액세스 토큰을 검사하는 데 자주 사용됩니다. 이 도구는 로그온 세션 SID를 표시하지 않습니다.

로그온 세션 유형에 따라 SID의 예:

  • LOCAL(S-1-2-0)
  • 콘솔 로그온(S-1-2-1)
  • NT AUTHORITY\NETWORK(S-1-5-2)
  • NT AUTHORITY\SERVICE(S-1-5-6)
  • NT AUTHORITY\INTERACTIVE(S-1-5-4)
  • NT AUTHORITY\TERMINAL SERVER 사용자(S-1-5-13)
  • NT AUTHORITY\BATCH(S-1-5-3)

자주 사용되는 기본 그룹에 대한 SID:

  • Domain\Domain Computers(S-1-5-21-xxxxxxxx-yyyyyyy-zzzzzzzz-515)
  • Domain\Domain Users(S-1-5-21-xxxxxxxx-yyyyyyyy-zzzzzzzz-513)
  • Domain\Domain Admins(S-1-5-21-xxxxxxxx-yyyyyyy-zzzzzzzz-512)

로그온 세션이 확인된 방법을 문서화하는 SID는 다음 값 중 하나입니다.

  • 인증 기관이 ID를 어설션했습니다(S-1-18-1)
  • 서비스 어설션 ID(S-1-18-2)

토큰 컨텍스트 및 클레임 세부 정보에 대한 세부 정보를 제공하는 SID는 다음을 수행할 수 있습니다.

  • 사용 중인 디바이스 클레임(S-1-5-21-0-0-0-496)
  • 사용 중인 사용자 클레임(S-1-5-21-0-0-0-497)
  • 이 조직 인증서(S-1-5-65-1)
  • 토큰은 PKI 확인 ID(S-1-18-4)의 도움으로 빌드되었습니다.
  • 토큰은 MFA 접근 방식(S-1-18-5)을 사용하여 빌드되었습니다.
  • Credential Guard가 사용됨(S-1-18-6)

가장 일반적인 예제인 토큰의 일관성 수준을 설명하는 SID:

  • 중간 필수 수준(S-1-16-8192)
  • 높은 필수 수준(S-1-16-12288)

액세스 토큰에는 다음 값 중 하나인 사용자/컴퓨터 원본을 기준으로 하는 SID가 포함됩니다.

  • NT AUTHORITY\OTHER_ORGANIZATION(S-1-5-1000)
  • 계정이 컴퓨터와 동일한 포리스트에 있는 경우 NT AUTHORITY\This Organization(S-1-5-15)

참고

  • SID 항목 로그온 세션 SID의 메모와 함께 볼 수 있듯이 도구 출력 목록에서 SID를 계산하지 말고 모든 대상 컴퓨터 및 로그온 유형에 대해 완료된 것으로 가정합니다. 계정이 1,000개 이상의 SID가 있는 경우 이 제한에 처할 위험이 있다고 고려해야 합니다. 토큰이 만들어진 컴퓨터에 따라 서버 또는 워크스테이션 로컬 그룹도 추가할 수 있습니다.
  • xxxxxxxx-yyyy-zzzzzzzzzz 는 SID의 도메인 또는 워크스테이션 구성 요소를 나타냅니다.

다음 예제에서는 사용자가 도메인의 컴퓨터에 로그온할 때 사용자의 토큰에 표시되는 도메인 로컬 보안 그룹을 보여 줍니다.

이 예제에서는 Joe가 도메인 A 에 속하고 도메인 로컬 그룹 Domain A\Chicago Users의 구성원이라고 가정합니다. Joe는 도메인 로컬 그룹 도메인 B\시카고 사용자의 구성원이기도 합니다. Joe가 도메인 A에 속한 컴퓨터(예: Domain A\Workstation1)에 로그온하면 컴퓨터에서 Joe에 대한 토큰이 생성되고 토큰에는 모든 범용 및 글로벌 그룹 멤버 자격 외에도 도메인 A\시카고 사용자용 SID가 포함됩니다. Joe가 로그온한 컴퓨터(Domain A\Workstation1)가 도메인 A에 속하기 때문에 도메인 B\시카고 사용자에 대한 SID는 포함되지 않습니다.

마찬가지로 Joe가 도메인 B 에 속한 컴퓨터(예: Domain B\Workstation1)에 로그온하면 컴퓨터에서 Joe에 대한 토큰이 생성되고 토큰에는 모든 범용 및 전역 그룹 멤버 자격 외에도 도메인 B\시카고 사용자용 SID가 포함됩니다. Joe가 로그온한 컴퓨터(Domain B\Workstation1)가 도메인 B에 속하기 때문에 도메인 A\시카고 사용자에 대한 SID는 포함되지 않습니다.

그러나 Joe가 도메인 C에 속한 컴퓨터(예: Domain C \Workstation1)에 로그온하면 Joe의 사용자 계정에 대한 모든 범용 및 글로벌 그룹 멤버 자격을 포함하는 로그온 컴퓨터에서 Joe에 대한 토큰이 생성됩니다. Joe가 멤버인 도메인 로컬 그룹이 Joe가 로그온한 컴퓨터(Domain C\Workstation1)와 다른 도메인에 있기 때문에 도메인 A\시카고 사용자용 SID 또는 도메인 B\Chicago 사용자용 SID가 토큰에 나타나지 않습니다. 반대로 Joe가 도메인 C에 속한 일부 도메인 로컬 그룹(예: 도메인 C\시카고 사용자)의 구성원인 경우 컴퓨터에서 Joe에 대해 생성된 토큰에는 모든 범용 및 글로벌 그룹 멤버 자격 외에도 도메인 C\시카고 사용자용 SID가 포함됩니다.

참조